Linux kernel 如何在linux内核中为pl011 uart指定虚拟地址
我是内核移植的初学者。我正在尝试将Linux内核(版本-4.9.22)移植到定制SoC(基于cpu=arm1176jzfs)上,以用于定制评估板。我的SoC中有ARM Prime cell pl011 UART。它被物理映射到Linux kernel 如何在linux内核中为pl011 uart指定虚拟地址,linux-kernel,embedded,Linux Kernel,Embedded,我是内核移植的初学者。我正在尝试将Linux内核(版本-4.9.22)移植到定制SoC(基于cpu=arm1176jzfs)上,以用于定制评估板。我的SoC中有ARM Prime cell pl011 UART。它被物理映射到0x5800_1000地址。当我试图将其用作调试UART时,内核请求它的虚拟地址。我应该如何配置此选项 i、 e: 谢谢, Vivek T.如果您有一个调试器,那么您当然可以调试内核没有启动的原因 您可以观看以下步骤: -在内核配置中,启用配置调试信息(内核黑客->编译时检
0x5800_1000
地址。当我试图将其用作调试UART时,内核请求它的虚拟地址。我应该如何配置此选项
i、 e:
谢谢,
Vivek T.如果您有一个调试器,那么您当然可以调试内核没有启动的原因 您可以观看以下步骤: -在内核配置中,启用配置调试信息(内核黑客->编译时检查和编译器选项) -编译内核 -从调试器软件中,从elf加载符号。该命令因调试器而异 -找到符号“log_buf”,并选择“将内存显示为转储”选项
所以我认为内核日志存储在缓冲区中。也许它可以帮助您:)标准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)的虚拟地址只是使用一组规则(通常非常简单,如位移位和位掩码)对物理地址的映射。您需要首先弄清楚为什么驱动程序配置会要求这样做。
-> 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