ラズパイ2のシリアル回りを調べる

ラズパイ3でベアメタル - QEMUでUART(PL011) - へにゃぺんて@日々勉強のまとめ

PL011 の PDF

http://infocenter.arm.com/help/topic/com.arm.doc.ddi0183g/DDI0183G_uart_pl011_r1p5_trm.pdf

カノニカルモードとは

端末のカノニカルモード - 技術メモ帳

FILE の read がどのように実装されているか?

デバイスドライバにreadを実装する - Linuxデバイスドライバ開発

VTIME/VMIN の関係

termios.c_cc の VMIN VTIME について(メモ) - 壊れたメガネ

シリアルドライバに関係する関数的なやつ?

https://www.kernel.org/doc/Documentation/serial/driver

IRQ について

割り込み

ここで受信IO完了を待っているっぽい、VMIN > 0 の時は timeout が MAX_SCHEDULE_TIMEOUT に設定されるので、完全ブロックになる。VMIN = 0 の時は timeout が VTIMEの値になるので、このwaitに来る前にbreakが走って抜ける。

linux/n_tty.c at rpi-4.14.y · raspberrypi/linux · GitHub

FIFOの段数はここで決まっている。UART011_IFLS_RX4_8 は 1/2 ウォーターマークの意味。include/linux/amba/serial/h にその定義がある

linux/amba-pl011.c at rpi-4.14.y · raspberrypi/linux · GitHub

受信割り込みのマスクの設定はここで行っている

linux/amba-pl011.c at rpi-4.14.y · raspberrypi/linux · GitHub