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