tty目录下的8250指的是intel的8250系列串口芯片驱动目录;8250系列包括8250,16450,16450A等。
【struct uart_port解析】
flag串口属性标志,以下是解释
#define UPF_FOURPORT 4端口串口卡,8250系列
#define UPF_SAK 当串口接收到break信号时终止在当前虚拟终端上运行的所有进程(包括X窗口)。这个组合键被称为“安全访问键“(SAK).
#define UPF_SPD_MASK 波特率掩码
#define UPF_SPD_HI 当设置波特率的参数非法时,默认其为57600
#define UPF_SPD_VHI 当设置波特率的参数非法时,默认其为115200
#define UPF_SPD_CUST 当期望波特率为38400时,如果UPF_SPD_HI和UPF_SPD_VHI同时被指定,则波特率除数由port->custom_divisor指定,这个用不到
#define UPF_SPD_SHI 当设置波特率的参数非法时,默认其为230400
#define UPF_SPD_WARP 当设置波特率的参数非法时,默认其为460800
#define UPF_SKIP_TEST 调过检测串口是否存在,当前只有8250系列驱动在用
#define UPF_AUTO_IRQ 串口中断号由port->ops->config_port()自动探测
#define UPF_HARDPPS_CD 支持硬件秒脉冲检测
#define UPF_LOW_LATENCY 串口接收到数据后是否立即传递到line discipline处理
#define UPF_BUGGY_UART 古怪的串口???一般不用
#define UPF_NO_TXEN_TEST 不进行传输使能检测
#define UPF_MAGIC_MULTIPLIER 波特率除数计算时不通过uart_get_divisor()来获得,而是直接指定
#define UPF_CONS_FLOW 具有流控功能
#define UPF_SHARE_IRQ 与其他设备共享中断号,未用到
#define UPF_EXAR_EFR 串口为8250系列XR17D15x芯片,它的Extended Features Register位置和普通8250系列不一样
#define UPF_BUG_THRE 8250系列串口,存在THRE的bug
#define UPF_FIXED_TYPE 串口类型是固定的,否则由port->ops->config_port()来探测
#define UPF_BOOT_AUTOCONF 是否在串口注册时自动配置(调用port->ops->config_port())
#define UPF_FIXED_PORT 串口类型属性注册后就不可以改变
#define UPF_DEAD