Thread 中讨论的其他器件: SysConfig、 AM625、OMAP-L137、 AM62D-Q1
工具/软件:
您好:
我们正在尝试按照此处 AM62P 处理器 SDK 文档中所述的顺序重新制作越狱演示:
但是、我们不能使用 UART1、因为它专用于我们硬件上的另一种资源、我们需要使用 UART2。 我们对下面所示的 Yocto 方法中使用的 ti-jailhouse git 存储库应用了补丁。
我们能够运行 Linux Inmate 演示程序 (ping、ivshmem-demo)成功并在 UART2的配合控制台端口上获取适当的数据。
但是、裸机演示程序不起作用 (uart-demo.bin 和 GIC-demo.bin)。 我们在 UART2端口/控制台上没有任何输出。
是否可能需要写入额外的代码、以使 UART2退出复位条件或者在裸机代码中配置时钟等? 在我们的主 Linux DTS 中、我们强制始终应用 UART2引脚多路复用引脚、同时保持器件标记为"保留"。
我在 ti-jailhouse、git 存储库中看不到任何需要修改的内容来使裸机示例使用 UART2运行。
iff --git a/configs/arm64/dts/inmate-k3-am62p5-sk.dts b/configs/arm64/dts/inmate-k3-am62p5-sk.dts index 047f9621..70787aab 100644 --- a/configs/arm64/dts/inmate-k3-am62p5-sk.dts +++ b/configs/arm64/dts/inmate-k3-am62p5-sk.dts @@ -10,7 +10,7 @@ #size-cells = <2>; aliases { - serial1 = &main_uart1; + serial1 = &main_uart2; }; chosen { @@ -87,11 +87,11 @@ interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; }; - main_uart1: serial@2810000 { + main_uart2: serial@2820000 { compatible = "ti,am64-uart", "ti,am654-uart"; - reg = <0x00 0x02810000 0x00 0x100>; - interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>; - power-domains = <&k3_pds 152 1>; + reg = <0x00 0x02820000 0x00 0x100>; + interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; + power-domains = <&k3_pds 153 0>; current-speed = <115200>; clock-frequency = <48000000>; }; diff --git a/configs/arm64/k3-am62p5-sk-inmate-demo.c b/configs/arm64/k3-am62p5-sk-inmate-demo.c index 0190aa3c..3014ff84 100644 --- a/configs/arm64/k3-am62p5-sk-inmate-demo.c +++ b/configs/arm64/k3-am62p5-sk-inmate-demo.c @@ -37,7 +37,7 @@ struct { .num_pci_devices = 0, .console = { - .address = 0x02810000, + .address = 0x02820000, .divider = 0x1b, .type = JAILHOUSE_CON_TYPE_8250, .flags = JAILHOUSE_CON_ACCESS_MMIO | @@ -50,9 +50,9 @@ struct { }, .mem_regions = { - /* MAIN UART1 */ { - .phys_start = 0x02810000, - .virt_start = 0x02810000, + /* MAIN UART2 */ { + .phys_start = 0x02820000, + .virt_start = 0x02820000, .size = 0x10000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_IO, diff --git a/configs/arm64/k3-am62p5-sk-linux-demo.c b/configs/arm64/k3-am62p5-sk-linux-demo.c index b9c07342..aa37f983 100644 --- a/configs/arm64/k3-am62p5-sk-linux-demo.c +++ b/configs/arm64/k3-am62p5-sk-linux-demo.c @@ -2,7 +2,7 @@ * Jailhouse, a Linux-based partitioning hypervisor * * Configuration for Linux inmate on AM62P5 based platforms - * 3 CPUs, 512MB RAM, 1 serial port (MAIN UART1) + * 3 CPUs, 512MB RAM, 1 serial port (MAIN UART2) * * Copyright (c) 2023 Texas Instruments Incorporated - http://www.ti.com/ * @@ -43,7 +43,7 @@ struct { .vpci_irq_base = 189 - 32, .console = { - .address = 0x02810000, + .address = 0x02820000, .divider = 0x1b, .type = JAILHOUSE_CON_TYPE_8250, .flags = JAILHOUSE_CON_ACCESS_MMIO | @@ -107,9 +107,9 @@ struct { JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA | JAILHOUSE_MEM_LOADABLE, }, - /* MAIN UART1 */ { - .phys_start = 0x02810000, - .virt_start = 0x02810000, + /* MAIN UART2 */ { + .phys_start = 0x02820000, + .virt_start = 0x02820000, .size = 0x10000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_IO, @@ -185,8 +185,8 @@ struct { /* vpci */ 1 << (189 - 160) | 1 << (190 - 160), - /* uart */ - 1 << (211 - 192), + /* uart 2 */ + 1 << (212 - 192), 0, 0, }, },
此外、在 Yocto 配方中、 提供一个选项来将 cpio 文件的压缩映像用于 initrd 文件会很有用。 我们即将使用...cpio.xz 作为我们的 initrd、它允许使用更大的 initrd 文件/ ramfs。
谢谢、
Mike