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
 
				 
		 
					