如何在真實串口驅動還未加載的狀況下調試uboot?

1. 先找出真實串口是什麼型號linux

  1.1 怎麼找?筆者提供兩種方案:debug

  方案一: 若當前的板子支持dm,從uboot的dts找串口節點對應的compatible屬性調試

  方案二: 從linux內核的dts找串口節點對應的compatible屬性ip

  1.2 筆者當前的uboot不支持dm,因此筆者是從linux內核的dts中找到的it

    compatible="ns16550",因此筆者的板子硬件是ns16550這個ip配置

2. 配置選項硬件

  CONFIG_DEBUG_UART=y (在make menuconfig中使能此選項後,會出現配置使用哪一種串口、串口基地址、輸入時鐘、寄存器偏移等等可配置項)bug

  CONFIG_DEBUG_UART_NS16550=y (須要根據具體的串口ip選擇哦)make

  CONFIG_DEBUG_UART_BASE = 0x21c0500 (須要根據具體的soc修改哦)co

  CONFIG_DEBUG_UART_CLOCK = CONFIG_SYS_CLK_FREQ / 2 (須要根據具體的soc修改哦)

  CONFIG_DEBUG_UART_SHIFT=0 (須要根據具體的soc修改哦)

3. 須要在調試以前調用debug_uart_init(),以下:

  #include <debug_uart.h>

  debug_uart_init();

相關文章
相關標籤/搜索