ラズパイ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