Kabylake PCH UART 测试工具 UEFI Shell 版

在 KablyLake/AmberLake的PCH上存在着3个UART,默认情况下使用 UART2(第三个UART,INTEL RVP上使用的就是这个Port作为UEFI Debug Log 输出)。为此,编写一个 UEFI Shell Application 能够让三个 UART 分别发送 “This is PCH UART0/1/2”。在通过串口连接出去的机器上可以收到。这样能够方便的确认硬件连接以及配置是否工作正常。

运行结果:

ZUART UEFI Shell 下运行结果

工具下载(无 SourceCode):

《Kabylake PCH UART 测试工具 UEFI Shell 版》有4个想法

  1. 目前剛好在工作上 第一次使用PCH 上的 UART (Elkhart Lake)
    碰巧看到您這篇文章,
    故想請教您一些問題

    1. PCH UART, 是否都是透過 PCI MMIO Register去發送 Tx/Rx呢?
    看了一下 Datasheet 關鍵的Register 如 RBR/DLH/IIR 都放在 MMIO上面

    2. 如果是如透過MMIO, Serial IO protocol 是否也會attach 上去呢?
    如果沒有, 是否就ˋ需要自行寫tool 去 操作 MMIO 來送收 Tx/Rx 呢?

    3. 如果於windows底下, Device Manager是否會長出 COM 呢 ? 還是需要自行撰寫ASL 後,才能進行收送的測試
    (目前於沒有長出COM , 所以才有此一問)

    1. 1.PCH UART 都是通过 MMIO 来发送 TX RX 的,具体可以查看BIOS代码

      2.这个看 IBV 是否提供,一般都会提供的。

      3.回复在另外的里面

      这部分MMIO操作 Datasheet 写的非常模糊,BWG 又通常不会提,所以需要以实际代码为准。

  2. 您好 常閱讀您的文章
    目前剛好工作上 也使用到 PCH 的UART
    請問您在Windows 底下是如何 發送 UART的呢?

    在 windows 裝置管理員 並沒有出現COM port 裝置 故也無法使用putty相關工具去測試
    windows 裝置管理員只有UART controller device

    1. Windows 下PCH Uart 通讯的标准做法应该是:在ASL UART Controller 下面通过ASL 声明一个设备,这个设备使用 UART Port,然后写一个设备驱动来进行通讯。

      换句话说,这个更多是软件工程师的事情,不是BIOS工程师的活。如果非要写的话,可以通过直接对 PCH Register Program 来实现。这样的做法存在风险,发送数据问题不大,接收的话可能会有问题。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注