Part Number: TDA4VM
change console from main_uart8 to main_uart3 failed.
SOC: TDA4AL
SDK Version: ti-processor-sdk-linux-j721s2-evm-08_04_00_13
error log:
U-Boot SPL 2021.01-00005-g97e01d82d5-dirty (Dec 15 2022 - 22:31:09 +0800)
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.1--v08.04.01 (Jolly Jellyfi')
SPL initial stack usage: 13472 bytes
Trying to boot from MMC2
Starting ATF on ARM64 core...
NOTICE: BL31: v2.6(release):v2.7-rc0-dirty
NOTICE: BL31: Built : 22:24:29, Dec 15 2022
ERROR: Unhandled External Abort received on 0x80000000 from S-EL1
ERROR: exception reason=0 syndrome=0xbf000000
Unhandled Exception from EL1
x0 = 0x000000009b680000
x1 = 0x0000000000000000
x2 = 0x000000009b7fffff
x3 = 0x000000009e85ecc8
x4 = 0x0000000002800000
x5 = 0x000000000000001f
x6 = 0x000000000288001f
x7 = 0x0000000000200000
x8 = 0x000000009e895a48
x9 = 0x000000009e87bff0
x10 = 0x0000000000000000
x11 = 0x0000000000000000
x12 = 0x000000009e8959b8
x13 = 0x000000000000000a
x14 = 0x00000000ffffffff
x15 = 0x0000000000000020
x16 = 0x000000009e80fe48
x17 = 0x0000000000000000
x18 = 0x0000000000000000
x19 = 0x000000009e895b30
x20 = 0x0000000000000001
x21 = 0x000000009e86a71c
x22 = 0x0000000000000000
x23 = 0x0000000000000007
x24 = 0x000000009e895c40
x25 = 0x0000000000000000
x26 = 0x0000000000000006
x27 = 0x0000000000000001
x28 = 0x0000000000000100
x29 = 0x000000009e895a50
x30 = 0x000000009e80fe5c
scr_el3 = 0x0000000000000e38
sctlr_el3 = 0x0000000030cd183f
cptr_el3 = 0x0000000000000000
tcr_el3 = 0x0000000080803520
daif = 0x00000000000002c0
mair_el3 = 0x00000000004404ff
spsr_el3 = 0x00000000800003c4
elr_el3 = 0x000000009e80fe5c
ttbr0_el3 = 0x0000000070011cc0
esr_el3 = 0x00000000bf000000
far_el3 = 0x0000000000000000
spsr_el1 = 0x0000000000000000
elr_el1 = 0x0000000000000000
spsr_abt = 0x0000000000000000
spsr_und = 0x0000000000000000
spsr_irq = 0x0000000000000000
spsr_fiq = 0x0000000000000000
sctlr_el1 = 0x0000000000c8180d
actlr_el1 = 0x0000000000000000
cpacr_el1 = 0x0000000000000000
csselr_el1 = 0x0000000000000000
sp_el1 = 0x000000009e86b5c0
esr_el1 = 0x0000000000000000
ttbr0_el1 = 0x000000009e88b000
ttbr1_el1 = 0x0000000000000000
mair_el1 = 0x00000000ff00ff04
amair_el1 = 0x0000000000000000
tcr_el1 = 0x0000000080803fa0
tpidr_el1 = 0x0000000000000000
tpidr_el0 = 0x0000000000000000
tpidrro_el0 = 0x0000000000000000
par_el1 = 0x0400000002880b00
mpidr_el1 = 0x0000000080000000
afsr0_el1 = 0x0000000000000000
afsr1_el1 = 0x0000000000000000
contextidr_el1 = 0x0000000000000000
vbar_el1 = 0x000000009e801000
cntp_ctl_el0 = 0x0000000000000000
cntp_cval_el0 = 0x0000000000000000
cntv_ctl_el0 = 0x0000000000000000
cntv_cval_el0 = 0x0000000000000000
cntkctl_el1 = 0x0000000000000000
sp_el0 = 0x000000007000b2e0
isr_el1 = 0x0000000000000000
dacr32_el2 = 0x0000000000000000
ifsr32_el2 = 0x0000000000000000
cpuectlr_el1 = 0x0000001b00000040
cpumerrsr_el1 = 0x0000000000000000
l2merrsr_el1 = 0x0000000000000000
Change console from main_uart8 to main_uart3, rebuild ATF use :
make CROSS_COMPILE=aarch64-none-linux-gnu- ARCH=aarch64 PLAT=k3 TARGET_BOARD=generic SPD=opteed K3_USART=0x3
uboot change:
diff --git a/arch/arm/dts/k3-j721s2-common-proc-board-u-boot.dtsi b/arch/arm/dts/k3-j721s2-common-proc-board-u-boot.dtsi
index c44d167b5f..8589f3127b 100644
--- a/arch/arm/dts/k3-j721s2-common-proc-board-u-boot.dtsi
+++ b/arch/arm/dts/k3-j721s2-common-proc-board-u-boot.dtsi
@@ -12,7 +12,7 @@
aliases {
serial0 = &wkup_uart0;
serial1 = &mcu_uart0;
- serial2 = &main_uart8;
+ serial2 = &main_uart3;
i2c0 = &wkup_i2c0;
i2c1 = &mcu_i2c0;
i2c2 = &mcu_i2c1;
@@ -101,18 +101,22 @@
u-boot,dm-spl;
};
-&main_uart8_pins_default {
- u-boot,dm-spl;
-};
+// &main_uart8_pins_default {
+// u-boot,dm-spl;
+// };
&main_mmc1_pins_default {
u-boot,dm-spl;
};
-&main_usbss0_pins_default {
+&main_uart3_pins_default {
u-boot,dm-spl;
};
+// &main_usbss0_pins_default {
+// u-boot,dm-spl;
+// };
+
&wkup_pmx0 {
u-boot,dm-spl;
};
@@ -129,7 +133,11 @@
u-boot,dm-spl;
};
-&main_uart8 {
+// &main_uart8 {
+// u-boot,dm-spl;
+// };
+
+&main_uart3 {
u-boot,dm-spl;
};
&main_mmc1_pins_default {
u-boot,dm-spl;
@@ -133,9 +133,9 @@
u-boot,dm-spl;
};
-&main_uart8 {
- u-boot,dm-spl;
-};
+// &main_uart8 {
+// u-boot,dm-spl;
+// };
diff --git a/arch/arm/dts/k3-j721s2-common-proc-board.dts b/arch/arm/dts/k3-j721s2-common-proc-board.dts
index 55d2a2a789..50d901d6ad 100644
--- a/arch/arm/dts/k3-j721s2-common-proc-board.dts
+++ b/arch/arm/dts/k3-j721s2-common-proc-board.dts
@@ -18,11 +18,11 @@
chosen {
stdout-path = "serial2:115200n8";
- bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x2880000";
+ bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x2830000";
};
aliases {
- serial2 = &main_uart8;
+ serial2 = &main_uart3;
mmc0 = &main_sdhci0;
&main_pmx0 {
- main_uart8_pins_default: main-uart8-pins-default {
- pinctrl-single,pins = <
- J721S2_IOPAD(0x040, PIN_INPUT, 14) /* (AC28) MCASP0_AXR0.UART8_CTSn */
- J721S2_IOPAD(0x044, PIN_OUTPUT, 14) /* (Y26) MCASP0_AXR1.UART8_RTSn */
- J721S2_IOPAD(0x0d0, PIN_INPUT, 11) /* (AF26) SPI0_CS1.UART8_RXD */
- J721S2_IOPAD(0x0d4, PIN_OUTPUT, 11) /* (AH27) SPI0_CLK.UART8_TXD */
- >;
- };
+ // main_uart8_pins_default: main-uart8-pins-default {
+ // pinctrl-single,pins = <
+ // J721S2_IOPAD(0x040, PIN_INPUT, 14) /* (AC28) MCASP0_AXR0.UART8_CTSn */
+ // J721S2_IOPAD(0x044, PIN_OUTPUT, 14) /* (Y26) MCASP0_AXR1.UART8_RTSn */
+ // J721S2_IOPAD(0x0d0, PIN_INPUT, 11) /* (AF26) SPI0_CS1.UART8_RXD */
+ // J721S2_IOPAD(0x0d4, PIN_OUTPUT, 11) /* (AH27) SPI0_CLK.UART8_TXD */
+ // >;
+ // };
- main_i2c3_pins_default: main-i2c3-pins-default {
+ main_uart3_pins_default: main-uart3-pins-default {
pinctrl-single,pins = <
- J721S2_IOPAD(0x064, PIN_INPUT_PULLUP, 13) /* (W28) MCAN0_TX.I2C3_SCL */
- J721S2_IOPAD(0x060, PIN_INPUT_PULLUP, 13) /* (AC27) MCASP2_AXR1.I2C3_SDA */
+ J721S2_IOPAD(0x0c4, PIN_INPUT, 14) /* (AB26) UART3_RXD */
+ J721S2_IOPAD(0x0c8, PIN_OUTPUT, 14) /* (AD28) UART3_TXD */
>;
};
&main_uart3 {
- status = "disabled";
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_uart3_pins_default>;
+
+ /* Shared with TFA on this platform */
+ power-domains = <&k3_pds 352 TI_SCI_PD_SHARED>;
};
diff --git a/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts b/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
index 9daa243d4e..3d62814611 100644
--- a/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
+++ b/arch/arm/dts/k3-j721s2-r5-common-proc-board.dts
@@ -12,7 +12,7 @@
/ {
chosen {
firmware-loader = &fs_loader0;
- stdout-path = &main_uart8;
+ stdout-path = &main_uart3;
tick-timer = &timer1;
};
@@ -97,12 +97,19 @@
};
&main_pmx0 {
- main_uart8_pins_default: main-uart8-pins-default {
+ // main_uart8_pins_default: main-uart8-pins-default {
+ // pinctrl-single,pins = <
+ // J721S2_IOPAD(0x040, PIN_INPUT, 14) /* (AC28) MCASP0_AXR0.UART8_CTSn */
+ // J721S2_IOPAD(0x044, PIN_OUTPUT, 14) /* (Y26) MCASP0_AXR1.UART8_RTSn */
+ // J721S2_IOPAD(0x0d0, PIN_INPUT, 11) /* (AF26) SPI0_CS1.UART8_RXD */
+ // J721S2_IOPAD(0x0d4, PIN_OUTPUT, 11) /* (AH27) SPI0_CLK.UART8_TXD */
+ // >;
+ // };
+
+ main_uart3_pins_default: main-uart3-pins-default {
pinctrl-single,pins = <
- J721S2_IOPAD(0x040, PIN_INPUT, 14) /* (AC28) MCASP0_AXR0.UART8_CTSn */
- J721S2_IOPAD(0x044, PIN_OUTPUT, 14) /* (Y26) MCASP0_AXR1.UART8_RTSn */
- J721S2_IOPAD(0x0d0, PIN_INPUT, 11) /* (AF26) SPI0_CS1.UART8_RXD */
- J721S2_IOPAD(0x0d4, PIN_OUTPUT, 11) /* (AH27) SPI0_CLK.UART8_TXD */
+ J721S2_IOPAD(0x0c4, PIN_INPUT, 14) /* (AB26) UART3_RXD */
+ J721S2_IOPAD(0x0c8, PIN_OUTPUT, 14) /* (AD28) UART3_TXD */
>;
-&main_uart8 {
+&main_uart3 {
pinctrl-names = "default";
- pinctrl-0 = <&main_uart8_pins_default>;
+ pinctrl-0 = <&main_uart3_pins_default>;
};
+// &main_uart8 {
+// pinctrl-names = "default";
+// pinctrl-0 = <&main_uart8_pins_default>;
+// };
diff --git a/arch/arm/mach-k3/j721s2/clk-data.c b/arch/arm/mach-k3/j721s2/clk-data.c
index ad6bd991b7..4042c4a9fa 100644
--- a/arch/arm/mach-k3/j721s2/clk-data.c
+++ b/arch/arm/mach-k3/j721s2/clk-data.c
@@ -268,6 +268,7 @@ static const struct clk_data clk_list[] = {
CLK_MUX("gtc_clk_mux_out0", gtc_clk_mux_out0_parents, 16, 0x108030, 0, 4, 0),
CLK_DIV("k3_pll_ctrl_wrap_main_0_chip_div24_clk_clk", "k3_pll_ctrl_wrap_main_0_sysclkout_clk", 0x41011c, 0, 5, 0, 0),
CLK_DIV("k3_pll_ctrl_wrap_wkup_0_chip_div24_clk_clk", "k3_pll_ctrl_wrap_wkup_0_sysclkout_clk", 0x4201011c, 0, 5, 0, 0),
+ CLK_DIV("usart_programmable_clock_divider_out3", "hsdiv4_16fft_main_1_hsdivout0_clk", 0x1081cc, 0, 2, 0, 0),
};
static const struct dev_clk soc_dev_clk_data[] = {
@@ -393,11 +394,13 @@ static const struct dev_clk soc_dev_clk_data[] = {
DEV_CLK(360, 18, "board_0_hfosc1_clk_out"),
DEV_CLK(360, 22, "k3_pll_ctrl_wrap_main_0_chip_div1_clk_clk"),
DEV_CLK(360, 23, "k3_pll_ctrl_wrap_main_0_chip_div1_clk_clk"),
+ DEV_CLK(352, 2, "k3_pll_ctrl_wrap_main_0_chip_div1_clk_clk"),
+ DEV_CLK(352, 3, "usart_programmable_clock_divider_out3"),
};
const struct ti_k3_clk_platdata j721s2_clk_platdata = {
.clk_list = clk_list,
- .clk_list_cnt = 104,
+ .clk_list_cnt = 105,
.soc_dev_clk_data = soc_dev_clk_data,
- .soc_dev_clk_data_cnt = 122,
+ .soc_dev_clk_data_cnt = 124,
};
diff --git a/arch/arm/mach-k3/j721s2/dev-data.c b/arch/arm/mach-k3/j721s2/dev-data.c
index e36f1edb78..b4ec75ca78 100644
--- a/arch/arm/mach-k3/j721s2/dev-data.c
+++ b/arch/arm/mach-k3/j721s2/dev-data.c
@@ -44,6 +44,7 @@ static struct ti_lpsc soc_lpsc_list[] = {
[16] = PSC_LPSC(78, &soc_psc_list[1], &soc_pd_list[3], NULL),
[17] = PSC_LPSC(80, &soc_psc_list[1], &soc_pd_list[4], &soc_lpsc_list[16]),
[18] = PSC_LPSC(81, &soc_psc_list[1], &soc_pd_list[5], &soc_lpsc_list[16]),
+ [19] = PSC_LPSC(44, &soc_psc_list[1], &soc_pd_list[2], &soc_lpsc_list[12]),
};
static struct ti_dev soc_dev_list[] = {
@@ -71,6 +72,7 @@ static struct ti_dev soc_dev_list[] = {
PSC_DEV(4, &soc_lpsc_list[16]),
PSC_DEV(202, &soc_lpsc_list[17]),
PSC_DEV(203, &soc_lpsc_list[18]),
+ PSC_DEV(352, &soc_lpsc_list[19]),
};
const struct ti_k3_pd_platdata j721s2_pd_platdata = {
@@ -80,6 +82,6 @@ const struct ti_k3_pd_platdata j721s2_pd_platdata = {
.devs = soc_dev_list,
.num_psc = 2,
.num_pd = 6,
- .num_lpsc = 19,
- .num_devs = 24,
+ .num_lpsc = 20,
+ .num_devs = 25,
};
diff --git a/include/configs/j721s2_evm.h b/include/configs/j721s2_evm.h
index c84eaa4a20..25095c14b6 100644
--- a/include/configs/j721s2_evm.h
+++ b/include/configs/j721s2_evm.h
@@ -71,7 +71,7 @@
"name_kern=Image\0" \
"console=ttyS2,115200n8\0" \
"args_all=setenv optargs ${optargs} " \
- "earlycon=ns16550a,mmio32,0x02880000 ${mtdparts}\0" \
+ "earlycon=ns16550a,mmio32,0x02830000 ${mtdparts}\0" \
"run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}\0"