简述
串口都算是一个比较古老的功能了,也就是比较成熟了。Super IO中的大部分是硬件已经做好的,BIOS这边只需做小小的改动甚至默认便可以工作了。
串口寄存器
串口有关的寄存器总的来说有4个,两个用来设置IO资源的地址,一个是中断号选择,还有一个特殊配置寄存器。
标题Serial Port Base Address MSB & LSB Register
用于配置串口的IO空间地址,如 0x2E8, 0x2F8, 0x3E8, 0x3F8 等。
Serial Port Special Configuration Register
根据手册表中的值设置即可
Serial Port Special Configuration Register
此寄存器要关注的是Bit0 IRQ Type,设置后ASL代码也要作相应的改动。
最后说下串口2 PIN配置寄存器,它位于 Global Configuration Registers 中,可看到:
默认居然是GPIO的功能,一不小心可能就会踩到这个坑,所以注意要配置一下。
配置步骤
- 检查串口的PIN是否有复用功能,若有,需要配置为串口功能。
- 分配IO地址及中断号,IO 地址主要有四个:0x2E8, 0x2F8, 0x3E8, 0x3F8;中断号: 3, 4, 5, 7
- 启用该设备
- ASL Code中也需要配置一下2、3步骤
串口号
在OS下,可能会出现串口号重复的问题,解决方法就是在每个UART的ASL代码中加入 Name(_DDN,“COMxx”),COMxx为具体的串口号,如COM1,COM2,这样就可以将它们配置成固定的串口号了。
串口是比较成熟的功能了, 只要按上面步骤做就没有什么问题了.
为了方便调试, 这里提供下ASL供参考: Ite_uar1.zip