📄 syscon_platform_tty.c
字号:
{ return malta_tty1_on_texas ? syscon_uint8_read( param, (void *)&size64, size ) : syscon_uint8_read( param, (void *)&size8, size );}static UINT32board_reg_ic_sead_read( void *param, void *data, UINT32 size ){ return sys_corecard == MIPS_REVISION_CORID_SEAD_MSC01 ? syscon_true_read( param, data, size ) : syscon_false_read( param, data, size );}static UINT32board_reg_ic1_malta_read( void *param, void *data, UINT32 size ){ return malta_tty1_on_texas ? syscon_false_read( param, data, size ) : syscon_true_read( param, data, size );}static UINT32board_baudrate1_div_malta_read( void *param, void *data, UINT32 size ){ return malta_tty1_on_texas ? com_baudrate_div_read( param, (void *)&serial_baudrate_div_ti16550c, size) : com_baudrate_div_read( param, (void *)&serial_baudrate_div_smsc, size);}static UINT32board_intline1_malta_read( void *param, void *data, UINT32 size ){ return malta_tty1_on_texas ? syscon_uint32_read( param, &intline_malta_ti16550_2, size ) : syscon_uint32_read( param, &intline_malta_ti16550_1, size );}static UINT32board_bigend1_malta_read( void *param, void *data, UINT32 size ){ return malta_tty1_on_texas ? syscon_endian_big_read( param, data, size ) : syscon_false_read( param, data, size );}static UINT32board_baudrate1_verify_malta_write( void *param, void *data, UINT32 size ){ return malta_tty1_on_texas ? com_baudrate_verify_write(param, (void *)&serial_baudrate_div_ti16550c, size ) : com_baudrate_verify_write(param, (void *)&serial_baudrate_div_smsc, size );}/************************************************************************ * Implementation : Public functions ************************************************************************//************************************************************************ * * syscon_arch_tty_init * Description : * ------------- * * Initialize platform specific part of SYSCON TTY objects. * * Return values : * --------------- * * None * ************************************************************************/voidsyscon_arch_tty_init( void ){ /* Number of serial ports supported by YAMON (TTY0/TTY1). * YAMON supports max 2 ports. */ uart_count = 2; /* Same for all currently supported platforms */ if (sys_corecard == MIPS_REVISION_CORID_SEAD_MSC01) { intline_sead_ti16550_0 = SEAD_MSC01_INTLINE_TTY0; intline_sead_ti16550_1 = SEAD_MSC01_INTLINE_TTY1; } syscon_register_id_board( SYSCON_BOARD_TI16C550C_BASE0_ID, /* Atlas */ board_ti16c550c_base0_atlas_read, NULL, NULL, NULL, /* SEAD */ board_ti16c550c_base0_sead_read, NULL, NULL, NULL, /* Malta */ board_ti16c550c_base0_malta_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_BOARD_TI16C550C_BASE1_ID, /* Atlas */ NULL, NULL, NULL, NULL, /* SEAD */ board_ti16c550c_base1_sead_read, NULL, NULL, NULL, /* Malta */ board_ti16c550c_base1_malta_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_REG_SIZE_ID, /* Atlas (TI16550) */ syscon_uint8_read, &size32, NULL, NULL, /* SEAD (TI16550) */ syscon_uint8_read, &size32, NULL, NULL, /* Malta (TI16550) */ syscon_uint8_read, &size8, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_REG_SIZE_ID, /* Atlas (SAA9730) */ NULL, NULL, NULL, NULL, /* SEAD (TI16550) */ syscon_uint8_read, &size32, NULL, NULL, /* Malta (TI16550) */ board_reg_size1_malta_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_REG_SPACING_ID, /* Atlas (TI16550) */ syscon_uint8_read, &size64, NULL, NULL, /* SEAD (TI16550) */ syscon_uint8_read, &size64, NULL, NULL, /* Malta (TI16550) */ syscon_uint8_read, &size8, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_REG_SPACING_ID, /* Atlas (SAA9730) */ NULL, NULL, NULL, NULL, /* SEAD (TI16550) */ syscon_uint8_read, &size64, NULL, NULL, /* Malta (TI16550) */ board_reg_space1_malta_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_IC_IN_USE_ID, /* Atlas */ syscon_true_read, NULL, NULL, NULL, /* SEAD */ board_reg_ic_sead_read, NULL, NULL, NULL, /* Malta */ syscon_true_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_IC_IN_USE_ID, /* Atlas */ syscon_true_read, NULL, NULL, NULL, /* SEAD */ board_reg_ic_sead_read, NULL, NULL, NULL, /* Malta */ board_reg_ic1_malta_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_ADJUST_BREAK_ID, /* Atlas */ syscon_true_read, NULL, NULL, NULL, /* SEAD */ syscon_false_read, NULL, NULL, NULL, /* Malta */ syscon_true_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_ADJUST_BREAK_ID, /* Atlas */ syscon_false_read, NULL, NULL, NULL, /* SEAD */ syscon_false_read, NULL, NULL, NULL, /* Malta */ syscon_false_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_BIGEND_ID, /* Atlas */ syscon_endian_big_read, NULL, NULL, NULL, /* SEAD */ syscon_endian_big_read, NULL, NULL, NULL, /* Malta (PCI is always little endian) */ syscon_false_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_BIGEND_ID, /* Atlas (SAA9730 is PCI device and thus little endian) */ syscon_false_read, NULL, NULL, NULL, /* SEAD */ syscon_endian_big_read, NULL, NULL, NULL, /* Malta (PCI is always little endian) */ board_bigend1_malta_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_INTLINE_ID, /* Atlas */ syscon_uint32_read, &intline_atlas_ti16550, NULL, NULL, /* SEAD */ syscon_uint32_read, &intline_sead_ti16550_0, NULL, NULL, /* Malta */ syscon_uint32_read, &intline_malta_ti16550_0, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_INTLINE_ID, /* Atlas */ syscon_uint32_read, &intline_atlas_saa9730, NULL, NULL, /* SEAD */ syscon_uint32_read, &intline_sead_ti16550_1, NULL, NULL, /* Malta */ board_intline1_malta_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_BAUDRATE_DIV_ID, /* Atlas */ com_baudrate_div_read, (void *)&serial_baudrate_div_ti16550c, NULL, NULL, /* SEAD */ com_baudrate_div_read, (void *)&serial_baudrate_div_ti16550c, NULL, NULL, /* Malta */ com_baudrate_div_read, (void *)&serial_baudrate_div_smsc, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_BAUDRATE_DIV_ID, /* Atlas */ com_baudrate_div_read, (void *)&serial_baudrate_div_saa9730, NULL, NULL, /* SEAD */ com_baudrate_div_read, (void *)&serial_baudrate_div_ti16550c, NULL, NULL, /* Malta */ board_baudrate1_div_malta_read, NULL, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_BAUDRATE_VERIFY_ID, /* Atlas */ NULL, NULL, com_baudrate_verify_write, (void *)&serial_baudrate_div_ti16550c, /* SEAD */ NULL, NULL, com_baudrate_verify_write, (void *)&serial_baudrate_div_ti16550c, /* Malta */ NULL, NULL, com_baudrate_verify_write, (void *)&serial_baudrate_div_smsc ); syscon_register_id_board( SYSCON_COM_TTY1_BAUDRATE_VERIFY_ID, /* Atlas */ NULL, NULL, com_baudrate_verify_write, (void *)&serial_baudrate_div_saa9730, /* SEAD */ NULL, NULL, com_baudrate_verify_write, (void *)&serial_baudrate_div_ti16550c, /* Malta */ NULL, NULL, board_baudrate1_verify_malta_write, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_MAJOR, /* Atlas */ syscon_uint32_read, &atlas_major_tty0, NULL, NULL, /* SEAD */ syscon_uint32_read, &sead_major_tty0, NULL, NULL, /* Malta */ syscon_uint32_read, &malta_major_tty0, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY0_MINOR, /* Atlas */ syscon_uint32_read, &atlas_minor_tty0, NULL, NULL, /* SEAD */ syscon_uint32_read, &sead_minor_tty0, NULL, NULL, /* Malta */ syscon_uint32_read, &malta_minor_tty0, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_MAJOR, /* Atlas */ syscon_uint32_read, &atlas_major_tty1, NULL, NULL, /* SEAD */ syscon_uint32_read, &sead_major_tty1, NULL, NULL, /* Malta */ syscon_uint32_read, &malta_major_tty1, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_MINOR, /* Atlas */ syscon_uint32_read, &atlas_minor_tty1, NULL, NULL, /* SEAD */ syscon_uint32_read, &sead_minor_tty1, NULL, NULL, /* Malta */ syscon_uint32_read, &malta_minor_tty1, NULL, NULL ); syscon_register_id_board( SYSCON_COM_TTY1_ON_TEXAS, /* Atlas */ NULL, NULL, NULL, NULL, /* SEAD */ NULL, NULL, NULL, NULL, /* Malta */ syscon_bool_read, (void *)&malta_tty1_on_texas, syscon_bool_write, (void *)&malta_tty1_on_texas ); syscon_register_generic( SYSCON_BOARD_UART_COUNT_ID, syscon_uint8_read, (void *)&uart_count, NULL, NULL );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -