如何在linux内核中为pl011 uart指定虚拟地址

时间:2017-08-21 17:44:07

标签: linux-kernel embedded

我是内核移植的初学者。我正在尝试在Custom SoC(基于cpu = arm1176jzfs)上移植Linux内核(版本4.9.22)以获得自定义评估板。我的SoC中有ARM Prime单元pl011 UART。它物理映射到0x5800_1000地址。虽然我试图将它用作Debug UART,但内核要求它的虚拟地址。我应该如何配置此选项。

即:

-> Kernel low-level debugging functions
    -> kernel low-level debugging port (Kernel low-level debugging on via ARM Ltd PL01x Primecell UART)
(0x58001000) Physical base address of debug UART
(??) Virtual base address of debug UART

谢谢, Vivek T。

2 个答案:

答案 0 :(得分:0)

如果你有一个调试器,那么你当然可以调试你的内核没有启动的原因。

您可以观看以下步骤:

- 在内核配置中,启用CONFIG_DEBUG_INFO(内核黑客 - >编译时检查和编译器选项)

- 编译内核

- 从调试器软件中加载elf中的符号。该命令从一个调试器到另一个调试器不等

- 找到符号“log_buf”,并选择“将内存显示为转储”

选项

所以我认为内核日志存储在缓冲区中。也许它可以帮助你:))

答案 1 :(得分:0)

标准UART地址是:

标准端口地址为:

COM1 0x3F8(1016)  COM2 0x2F8(760)  COM3 0x3E8(1000)  COM4 0x2E8(744)

其他端口地址为:

COM5 0x3E0(992)  COM6 0x2E0(736)  COM7 0x338(824)  COM8 0x238(568)