Part Number: AM62P
Hi Ti
Now I use AM62P SKEVM board ,the RAM is 8GB
But we want to use 1 GB RAM ,
How to change linux kernel RAM is 1GB?
Thanks
Hi,
I’ve assigned your query to the concerned expert. Please note that responses may be delayed due to the Christmas and New Year holidays. Please feel free to ping this thread if you don't receive a response latest by Jan 1st week
Regards,
Johnson
Hi Pengfei,
Please refer the device tree: we reserve just 2GB out of 8GB
Please modify based on your customization.
Best Regards
Suren
Hi Pengfei,
Please refer to the below FAQ:
[FAQ] AM625: Memory node initialization for 1GB, 2GB, 4GB, 8GB size
Please see the device tree changes for each of these configurations.
Best Regards,
Suren
Hi Suren Porwar
I have already modify linux Memory is 1GB
I set bootargs ="console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait mem=1G"
there is the linux kernel log
Starting linux and RTOS/Baremetal applications NOTICE: BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty NOTICE: BL31: Built : 07:01:36, Jul 1 2025 [ 0.000000] Boot time to Start Kernel : 6475 ms [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 6.12.35-ti-00920-g78e6abff3220-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Thu Jul 3 17:10:29 UTC 2025 [ 0.000000] KASLR disabled due to lack of seed [ 0.000000] Machine model: Texas Instruments AM62P5 SK [ 0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '') [ 0.000000] printk: legacy bootconsole [ns16550a0] enabled [ 0.000000] Memory limited to 1024MB [ 0.000000] efi: UEFI not found. [ 0.000000] OF: reserved mem: failed to allocate memory for node 'linux,cma': size 576 MiB [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009b500000, size 3 MiB [ 0.000000] OF: reserved mem: initialized node rtos-ipc-memory@9b500000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009b500000..0x000000009b7fffff (3072 KiB) nomap non-reusable rtos-ipc-memory@9b500000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009c800000..0x000000009c8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9c800000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB [ 0.000000] OF: reserved mem: initialized node r5f-memory@9c900000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009c900000..0x000000009e6fffff (30720 KiB) nomap non-reusable r5f-memory@9c900000 [ 0.000000] OF: reserved mem: 0x000000009e780000..0x000000009e7fffff (512 KiB) nomap non-reusable tfa@9e780000 [ 0.000000] OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000 [ 0.000000] OF: reserved mem: 0x0000000093500000..0x000000009b4fffff (131072 KiB) nomap non-reusable rtos-framebuffer-memory@93500000 [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000bfffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080000000-0x00000000934fffff] [ 0.000000] node 0: [mem 0x0000000093500000-0x000000009e6fffff] [ 0.000000] node 0: [mem 0x000000009e700000-0x000000009e77ffff] [ 0.000000] node 0: [mem 0x000000009e780000-0x000000009fffffff] [ 0.000000] node 0: [mem 0x00000000a0000000-0x00000000bfffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff] [ 0.000000] cma: Reserved 32 MiB at 0x00000000bce00000 on node -1 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: Trusted OS migration not required [ 0.000000] psci: SMC Calling Convention v1.5 [ 0.000000] percpu: Embedded 22 pages/cpu s50520 r8192 d31400 u90112 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: GIC system register CPU interface [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] alternatives: applying boot alternatives [ 0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait mem=1G [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 262144 [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off [ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 1MB [ 0.000000] software IO TLB: area num 4. [ 0.000000] software IO TLB: mapped [mem 0x00000000bcc80000-0x00000000bcd80000] (1MB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=4. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4. [ 0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4. [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode [ 0.000000] GICv3: 256 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=1 [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000 [ 0.000000] ITS [mem 0x01820000-0x0182ffff] [ 0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19 [ 0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0) [ 0.000000] ITS: using cache flushing for cmd queue [ 0.000000] GICv3: using LPI property table @0x0000000080050000 [ 0.000000] GIC: using cache flushing for LPI property table [ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080060000 [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns [ 0.000000] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[ 0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
[ 0.000000] printk: legacy bootconsole [ns16550a0] enabled
[ 0.000000] Memory limited to 1024MB
But I found linux,cma have some errors
[ 0.000000] OF: reserved mem: failed to allocate memory for node 'linux,cma': size 576 MiB
Then kernel dead
I modify dts CMA memory is 200MB
the kernel also is dead
there is the log
Starting linux and RTOS/Baremetal applications NOTICE: BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty NOTICE: BL31: Built : 07:01:36, Jul 1 2025 [ 0.000000] Boot time to Start Kernel : 13624 ms [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 6.12.35-ti-00920-g78e6abff3220-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Thu Jul 3 17:10:29 UTC 2025 [ 0.000000] KASLR disabled due to lack of seed [ 0.000000] Machine model: Texas Instruments AM62P5 SK [ 0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '') [ 0.000000] printk: legacy bootconsole [ns16550a0] enabled [ 0.000000] Memory limited to 1024MB [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created CMA memory pool at 0x00000000b3800000, size 200 MiB [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x00000000b3800000..0x00000000bfffffff (204800 KiB) map reusable linux,cma [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009b500000, size 3 MiB [ 0.000000] OF: reserved mem: initialized node rtos-ipc-memory@9b500000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009b500000..0x000000009b7fffff (3072 KiB) nomap non-reusable rtos-ipc-memory@9b500000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009c800000..0x000000009c8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9c800000 [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB [ 0.000000] OF: reserved mem: initialized node r5f-memory@9c900000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x000000009c900000..0x000000009e6fffff (30720 KiB) nomap non-reusable r5f-memory@9c900000 [ 0.000000] OF: reserved mem: 0x000000009e780000..0x000000009e7fffff (512 KiB) nomap non-reusable tfa@9e780000 [ 0.000000] OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000 [ 0.000000] OF: reserved mem: 0x0000000093500000..0x000000009b4fffff (131072 KiB) nomap non-reusable rtos-framebuffer-memory@93500000 [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000bfffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080000000-0x00000000934fffff] [ 0.000000] node 0: [mem 0x0000000093500000-0x000000009e6fffff] [ 0.000000] node 0: [mem 0x000000009e700000-0x000000009e77ffff] [ 0.000000] node 0: [mem 0x000000009e780000-0x000000009fffffff] [ 0.000000] node 0: [mem 0x00000000a0000000-0x00000000bfffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff] [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: Trusted OS migration not required [ 0.000000] psci: SMC Calling Convention v1.5 [ 0.000000] percpu: Embedded 22 pages/cpu s50520 r8192 d31400 u90112 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: GIC system register CPU interface [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] alternatives: applying boot alternatives [ 0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait mem=1G [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 262144 [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off [ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 1MB [ 0.000000] software IO TLB: area num 4. [ 0.000000] software IO TLB: mapped [mem 0x00000000b2480000-0x00000000b2580000] (1MB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=4. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4. [ 0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4. [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode [ 0.000000] GICv3: 256 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=1 [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000 [ 0.000000] ITS [mem 0x01820000-0x0182ffff] [ 0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19 [ 0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0) [ 0.000000] ITS: using cache flushing for cmd queue [ 0.000000] GICv3: using LPI property table @0x0000000080050000 [ 0.000000] GIC: using cache flushing for LPI property table [ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080060000 [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns [ 0.000000] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
How to reslove the kernel dead issue ? when I modify Memory size 1GB
Best Regards
SUI
Hi Suren Porwar
How to reslove the kernel dead issue ? when I modify Memory size 1GB
Best Regards
SUI
Hi Pengfei Sui,
Can you share your device tree changes that you made for 1GB DDR?
Best Regards,
Suren
Hi Suren Porwar
I use AM62P SKEVM board , SDK is 11_01_05_03
There is my device tree
// SPDX-License-Identifier: GPL-2.0-only OR MIT
/*
* Device Tree file for the AM62P5-SK
* Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
*
* Schematics: https://www.ti.com/lit/zip/sprr487
*/
/dts-v1/;
#include <dt-bindings/leds/common.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/net/ti-dp83867.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "k3-am62p5.dtsi"
/ {
compatible = "ti,am62p5-sk", "ti,am62p5";
model = "Texas Instruments AM62P5 SK";
aliases {
serial0 = &wkup_uart0;
serial1 = &mcu_uart0;
serial2 = &main_uart0;
serial3 = &main_uart1;
mmc0 = &sdhci0;
mmc1 = &sdhci1;
mmc2 = &sdhci2;
spi0 = &ospi0;
ethernet0 = &cpsw_port1;
ethernet1 = &cpsw_port2;
usb0 = &usb0;
usb1 = &usb1;
};
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait mem=1G";
stdout-path = &main_uart0;
framebuffer0: framebuffer@0 {
compatible = "simple-framebuffer";
power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 186 6>,
<&dss0_vp1_clk>,
<&k3_clks 186 2>;
display = <&dss0>;
status = "disabled";
};
};
memory@80000000 {
/* 8G RAM */
reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
<0x00000008 0x80000000 0x00000001 0x80000000>;
device_type = "memory";
bootph-pre-ram;
};
reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
linux,cma {
compatible = "shared-dma-pool";
reusable;
/********576 MB**********
size = <0x00 0x24000000>;
************************/
/*******200MB***********/
size = <0x00 0xc800000>;
linux,cma-default;
};
rtos_ipc_memory_region: rtos-ipc-memory@9b500000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9b500000 0x00 0x00300000>;
no-map;
};
mcu_r5fss0_core0_dma_memory_region: mcu-r5fss-dma-memory-region@9b800000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9b800000 0x00 0x100000>;
no-map;
};
mcu_r5fss0_core0_memory_region: mcu-r5fss-memory-region@9b900000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9b900000 0x00 0xf00000>;
no-map;
};
wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9c800000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9c800000 0x00 0x100000>;
no-map;
};
wkup_r5fss0_core0_memory_region: r5f-memory@9c900000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9c900000 0x00 0x1e00000>;
no-map;
};
secure_tfa_ddr: tfa@9e780000 {
reg = <0x00 0x9e780000 0x00 0x80000>;
no-map;
};
secure_ddr: optee@9e800000 {
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
no-map;
};
rtos_framebuffer_memory_region: rtos-framebuffer-memory@93500000 {
reg = <0x00 0x93500000 0x00 0x08000000>;
no-map;
};
};
vmain_pd: regulator-0 {
/* TPS65988 PD CONTROLLER OUTPUT */
compatible = "regulator-fixed";
regulator-name = "vmain_pd";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
bootph-all;
};
vcc_5v0: regulator-1 {
/* Output of TPS630702RNMR */
compatible = "regulator-fixed";
regulator-name = "vcc_5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&vmain_pd>;
regulator-always-on;
regulator-boot-on;
bootph-all;
};
vdd_mmc1: regulator-2 {
/* TPS22918DBVR */
compatible = "regulator-fixed";
regulator-name = "vdd_mmc1";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
enable-active-high;
gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
bootph-all;
};
vddshv_sdio: regulator-3 {
compatible = "regulator-gpio";
regulator-name = "vddshv_sdio";
pinctrl-names = "default";
pinctrl-0 = <&vddshv_sdio_pins_default>;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
states = <1800000 0x0>,
<3300000 0x1>;
bootph-all;
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&usr_led_pins_default>;
led-0 {
label = "am62-sk:green:heartbeat";
gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
function = LED_FUNCTION_HEARTBEAT;
default-state = "off";
};
};
opp-table {
/* Requires VDD_CORE at 0v85 */
opp-1400000000 {
opp-hz = /bits/ 64 <1400000000>;
opp-supported-hw = <0x01 0x0004>;
clock-latency-ns = <6000000>;
};
};
tlv320_mclk: clk-0 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <12288000>;
};
codec_audio: sound {
compatible = "simple-audio-card";
simple-audio-card,name = "AM62x-SKEVM";
simple-audio-card,widgets =
"Headphone", "Headphone Jack",
"Line", "Line In",
"Microphone", "Microphone Jack";
simple-audio-card,routing =
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"LINE1L", "Line In",
"LINE1R", "Line In",
"MIC3R", "Microphone Jack",
"Microphone Jack", "Mic Bias";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&sound_master>;
simple-audio-card,frame-master = <&sound_master>;
simple-audio-card,bitclock-inversion;
simple-audio-card,cpu {
sound-dai = <&mcasp1>;
};
sound_master: simple-audio-card,codec {
sound-dai = <&tlv320aic3106>;
clocks = <&tlv320_mclk>;
};
};
hdmi0: connector-hdmi {
compatible = "hdmi-connector";
label = "hdmi";
type = "a";
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&sii9022_out>;
};
};
};
};
&main_gpio0 {
bootph-all;
};
&main_gpio1 {
bootph-all;
};
&main_pmx0 {
bootph-all;
main_i2c0_pins_default: main-i2c0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B25) I2C0_SCL */
AM62PX_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A24) I2C0_SDA */
>;
};
main_i2c1_pins_default: main-i2c1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (C24) I2C1_SCL */
AM62PX_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (B24) I2C1_SDA */
>;
bootph-all;
};
main_i2c2_pins_default: main-i2c2-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (T22) GPMC0_CSn2.I2C2_SCL */
AM62PX_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (U25) GPMC0_CSn3.I2C2_SDA */
>;
};
main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C22) UART0_RTSn.GPIO1_23 */
>;
};
main_mcasp1_pins_default: main-mcasp1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0090, PIN_INPUT, 2) /* (U24) GPMC0_BE0n_CLE.MCASP1_ACLKX */
AM62PX_IOPAD(0x0098, PIN_INPUT, 2) /* (AA24) GPMC0_WAIT0.MCASP1_AFSX */
AM62PX_IOPAD(0x008c, PIN_OUTPUT, 2) /* (T25) GPMC0_WEn.MCASP1_AXR0 */
AM62PX_IOPAD(0x0084, PIN_INPUT, 2) /* (R25) GPMC0_ADVn_ALE.MCASP1_AXR2 */
>;
};
main_mdio1_pins_default: main-mdio1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0160, PIN_OUTPUT, 0) /* (F17) MDIO0_MDC */
AM62PX_IOPAD(0x015c, PIN_INPUT, 0) /* (F16) MDIO0_MDIO */
>;
bootph-all;
};
main_mmc1_pins_default: main-mmc1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x023c, PIN_INPUT, 0) /* (H20) MMC1_CMD */
AM62PX_IOPAD(0x0234, PIN_OUTPUT, 0) /* (J24) MMC1_CLK */
AM62PX_IOPAD(0x0230, PIN_INPUT, 0) /* (H21) MMC1_DAT0 */
AM62PX_IOPAD(0x022c, PIN_INPUT_PULLUP, 0) /* (H23) MMC1_DAT1 */
AM62PX_IOPAD(0x0228, PIN_INPUT_PULLUP, 0) /* (H22) MMC1_DAT2 */
AM62PX_IOPAD(0x0224, PIN_INPUT_PULLUP, 0) /* (H25) MMC1_DAT3 */
AM62PX_IOPAD(0x0240, PIN_INPUT, 0) /* (D23) MMC1_SDCD */
>;
bootph-all;
};
main_mmc2_pins_default: main-mmc2-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0120, PIN_INPUT, 0) /* (K24) MMC2_CMD */
AM62PX_IOPAD(0x0118, PIN_OUTPUT, 0) /* (K21) MMC2_CLK */
AM62PX_IOPAD(0x011C, PIN_INPUT, 0) /* () MMC2_CLKLB */
AM62PX_IOPAD(0x0114, PIN_INPUT, 0) /* (K23) MMC2_DAT0 */
AM62PX_IOPAD(0x0110, PIN_INPUT_PULLUP, 0) /* (K22) MMC2_DAT1 */
AM62PX_IOPAD(0x010c, PIN_INPUT_PULLUP, 0) /* (L20) MMC2_DAT2 */
AM62PX_IOPAD(0x0108, PIN_INPUT_PULLUP, 0) /* (L21) MMC2_DAT3 */
>;
bootph-all;
};
main_rgmii1_pins_default: main-rgmii1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x014c, PIN_INPUT, 0) /* (B15) RGMII1_RD0 */
AM62PX_IOPAD(0x0150, PIN_INPUT, 0) /* (B16) RGMII1_RD1 */
AM62PX_IOPAD(0x0154, PIN_INPUT, 0) /* (A14) RGMII1_RD2 */
AM62PX_IOPAD(0x0158, PIN_INPUT, 0) /* (B14) RGMII1_RD3 */
AM62PX_IOPAD(0x0148, PIN_INPUT, 0) /* (A16) RGMII1_RXC */
AM62PX_IOPAD(0x0144, PIN_INPUT, 0) /* (A15) RGMII1_RX_CTL */
AM62PX_IOPAD(0x0134, PIN_INPUT, 0) /* (A18) RGMII1_TD0 */
AM62PX_IOPAD(0x0138, PIN_INPUT, 0) /* (C17) RGMII1_TD1 */
AM62PX_IOPAD(0x013c, PIN_INPUT, 0) /* (A17) RGMII1_TD2 */
AM62PX_IOPAD(0x0140, PIN_INPUT, 0) /* (C16) RGMII1_TD3 */
AM62PX_IOPAD(0x0130, PIN_INPUT, 0) /* (B17) RGMII1_TXC */
AM62PX_IOPAD(0x012c, PIN_INPUT, 0) /* (B18) RGMII1_TX_CTL */
>;
bootph-all;
};
main_rgmii2_pins_default: main-rgmii2-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0184, PIN_INPUT, 0) /* (E19) RGMII2_RD0 */
AM62PX_IOPAD(0x0188, PIN_INPUT, 0) /* (E16) RGMII2_RD1 */
AM62PX_IOPAD(0x018c, PIN_INPUT, 0) /* (E17) RGMII2_RD2 */
AM62PX_IOPAD(0x0190, PIN_INPUT, 0) /* (C19) RGMII2_RD3 */
AM62PX_IOPAD(0x0180, PIN_INPUT, 0) /* (D19) RGMII2_RXC */
AM62PX_IOPAD(0x017c, PIN_INPUT, 0) /* (F19) RGMII2_RX_CTL */
AM62PX_IOPAD(0x016c, PIN_INPUT, 0) /* (B19) RGMII2_TD0 */
AM62PX_IOPAD(0x0170, PIN_INPUT, 0) /* (A21) RGMII2_TD1 */
AM62PX_IOPAD(0x0174, PIN_INPUT, 0) /* (D17) RGMII2_TD2 */
AM62PX_IOPAD(0x0178, PIN_INPUT, 0) /* (A19) RGMII2_TD3 */
AM62PX_IOPAD(0x0168, PIN_INPUT, 0) /* (D16) RGMII2_TXC */
AM62PX_IOPAD(0x0164, PIN_INPUT, 0) /* (A20) RGMII2_TX_CTL */
>;
bootph-all;
};
main_uart0_pins_default: main-uart0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x1c8, PIN_INPUT, 0) /* (A22) UART0_RXD */
AM62PX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (B22) UART0_TXD */
>;
bootph-all;
};
main_uart1_pins_default: main-uart1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0194, PIN_INPUT, 2) /* (D25) MCASP0_AXR3.UART1_CTSn */
AM62PX_IOPAD(0x0198, PIN_OUTPUT, 2) /* (E25) MCASP0_AXR2.UART1_RTSn */
AM62PX_IOPAD(0x01ac, PIN_INPUT, 2) /* (G23) MCASP0_AFSR.UART1_RXD */
AM62PX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (G20) MCASP0_ACLKR.UART1_TXD */
>;
bootph-all;
};
main_usb1_pins_default: main-usb1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0258, PIN_INPUT | PIN_DS_PULLUD_ENABLE | PIN_DS_PULL_UP, 0) /* (G21) USB1_DRVVBUS */
>;
};
main_wlirq_pins_default: main-wlirq-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */
>;
};
ospi0_pins_default: ospi0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0000, PIN_OUTPUT, 0) /* (P23) OSPI0_CLK */
AM62PX_IOPAD(0x002c, PIN_OUTPUT, 0) /* (M25) OSPI0_CSn0 */
AM62PX_IOPAD(0x000c, PIN_INPUT, 0) /* (L25) OSPI0_D0 */
AM62PX_IOPAD(0x0010, PIN_INPUT, 0) /* (N24) OSPI0_D1 */
AM62PX_IOPAD(0x0014, PIN_INPUT, 0) /* (N25) OSPI0_D2 */
AM62PX_IOPAD(0x0018, PIN_INPUT, 0) /* (M24) OSPI0_D3 */
AM62PX_IOPAD(0x001c, PIN_INPUT, 0) /* (N21) OSPI0_D4 */
AM62PX_IOPAD(0x0020, PIN_INPUT, 0) /* (N22) OSPI0_D5 */
AM62PX_IOPAD(0x0024, PIN_INPUT, 0) /* (P21) OSPI0_D6 */
AM62PX_IOPAD(0x0028, PIN_INPUT, 0) /* (N20) OSPI0_D7 */
AM62PX_IOPAD(0x0008, PIN_INPUT, 0) /* (P22) OSPI0_DQS */
>;
bootph-all;
};
usr_led_pins_default: usr-led-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0244, PIN_INPUT, 7) /* (D24) MMC1_SDWP.GPIO1_49 */
>;
};
vddshv_sdio_pins_default: vddshvr-sdio-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x007c, PIN_INPUT, 7) /* (Y25) GPMC0_CLK.GPIO0_31 */
>;
bootph-all;
};
wlan_en_pins_default: wlan-en-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0124, PIN_INPUT, 7) /* (J25) MMC2_SDCD.GPIO0_71 */
>;
};
main_dpi_pins_default: main-dpi-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0100, PIN_OUTPUT, 0) /* (W20) VOUT0_VSYNC */
AM62PX_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AC20) VOUT0_HSYNC */
AM62PX_IOPAD(0x0104, PIN_OUTPUT, 0) /* (Y21) VOUT0_PCLK */
AM62PX_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (W21) VOUT0_DE */
AM62PX_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (AE24) VOUT0_DATA0 */
AM62PX_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (W23) VOUT0_DATA1 */
AM62PX_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA2 */
AM62PX_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA3 */
AM62PX_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (AB23) VOUT0_DATA4 */
AM62PX_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (AD23) VOUT0_DATA5 */
AM62PX_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (AC23) VOUT0_DATA6 */
AM62PX_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AE23) VOUT0_DATA7 */
AM62PX_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (AE22) VOUT0_DATA8 */
AM62PX_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (AC22) VOUT0_DATA9 */
AM62PX_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (W22) VOUT0_DATA10 */
AM62PX_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AE21) VOUT0_DATA11 */
AM62PX_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AD21) VOUT0_DATA12 */
AM62PX_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AC21) VOUT0_DATA13 */
AM62PX_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (AA20) VOUT0_DATA14 */
AM62PX_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (Y20) VOUT0_DATA15 */
AM62PX_IOPAD(0x005c, PIN_OUTPUT, 1) /* (AC25) GPMC0_AD8.VOUT0_DATA16 */
AM62PX_IOPAD(0x0060, PIN_OUTPUT, 1) /* (AB25) GPMC0_AD9.VOUT0_DATA17 */
AM62PX_IOPAD(0x0064, PIN_OUTPUT, 1) /* (AA25) GPMC0_AD10.VOUT0_DATA18 */
AM62PX_IOPAD(0x0068, PIN_OUTPUT, 1) /* (W24) GPMC0_AD11.VOUT0_DATA19 */
AM62PX_IOPAD(0x006c, PIN_OUTPUT, 1) /* (Y24) GPMC0_AD12.VOUT0_DATA20 */
AM62PX_IOPAD(0x0070, PIN_OUTPUT, 1) /* (AD25) GPMC0_AD13.VOUT0_DATA21 */
AM62PX_IOPAD(0x0074, PIN_OUTPUT, 1) /* (AB24) GPMC0_AD14.VOUT0_DATA22 */
AM62PX_IOPAD(0x0078, PIN_OUTPUT, 1) /* (AC24) GPMC0_AD15.VOUT0_DATA23 */
AM62PX_IOPAD(0x009c, PIN_OUTPUT, 1) /* (AD24) GPMC0_WAIT1.VOUT0_EXTPCLKIN */
>;
};
main_epwm0_pins_default: main_epwm0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01b4, PIN_OUTPUT, 2) /* (D20) SPI0_CS0.EHRPWM0_A */
AM62PX_IOPAD(0x01b8, PIN_OUTPUT, 2) /* (E20) SPI0_CS1.EHRPWM0_B */
>;
};
main_epwm1_pins_default: main_epwm1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01bc, PIN_OUTPUT, 2) /* (B21) SPI0_CLK.EHRPWM1_A */
AM62PX_IOPAD(0x01c0, PIN_OUTPUT, 2) /* (B20) SPI0_D0.EHRPWM1_B */
>;
};
main_ecap1_pins_default: main_ecap1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x019c, PIN_OUTPUT, 2) /* (E24) MCASP0_AXR1.ECAP1_IN_APWM_OUT */
>;
};
main_ecap2_pins_default: main-ecap2-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01a4, PIN_OUTPUT, 2) /* (F24) MCASP0_ACLKX.ECAP2_IN_APWM_OUT */
>;
};
};
&main_i2c0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c0_pins_default>;
clock-frequency = <400000>;
typec_pd0: usb-power-controller@3f {
compatible = "ti,tps6598x";
reg = <0x3f>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
self-powered;
data-role = "dual";
power-role = "sink";
port {
usb_con_hs: endpoint {
remote-endpoint = <&usb0_hs_ep>;
};
};
};
};
};
&main_i2c1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c1_pins_default>;
clock-frequency = <100000>;
bootph-all;
tlv320aic3106: audio-codec@1b {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3106";
reg = <0x1b>;
ai3x-micbias-vg = <1>; /* 2.0V */
};
exp1: gpio@22 {
compatible = "ti,tca6424";
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "OLDI_INT#", "x8_NAND_DETECT",
"UART1_FET_SEL", "MMC1_SD_EN",
"VPP_EN", "EXP_PS_3V3_EN",
"UART1_FET_BUF_EN", "EXP_HAT_DETECT",
"DSI_GPIO0", "DSI_GPIO1",
"OLDI_EDID", "BT_UART_WAKE_SOC_3V3",
"USB_TYPEA_OC_INDICATION", "CSI_GPIO0",
"CSI_GPIO1", "WLAN_ALERTn",
"HDMI_INTn", "TEST_GPIO2",
"MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
"MCASP1_FET_SEL", "DSI_EDID",
"PD_I2C_IRQ", "IO_EXP_TEST_LED";
interrupt-parent = <&main_gpio1>;
interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
interrupt-controller;
#interrupt-cells = <2>;
pinctrl-names = "default";
pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
bootph-all;
};
exp2: gpio@23 {
compatible = "ti,tca6424";
reg = <0x23>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "BT_EN_SOC", "EXP_PS_5V0_EN",
"", "",
"", "",
"", "",
"WL_LT_EN", "",
"TP3", "TP6",
"TP4", "TP7",
"TP5", "TP8",
"SoC_I2C2_MCAN_SEL", "GPIO_HDMI_RSTn",
"GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
"GPIO_OLDI_RSTn", "GPIO_AUD_RSTn",
"GPIO_eMMC_RSTn", "SoC_WLAN_SDIO_RST";
};
sii9022: bridge-hdmi@3b {
compatible = "sil,sii9022";
reg = <0x3b>;
interrupt-parent = <&exp1>;
interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
#sound-dai-cells = <0>;
sil,i2s-data-lanes = < 0 >;
hdmi_tx_ports: ports {
#address-cells = <1>;
#size-cells = <0>;
/*
* HDMI can be serviced with 3 potential VPs -
* (DSS0 VP1 / DSS1 VP0 / DSS1 VP1).
* For now, we will service it with DSS0 VP1.
*/
port@0 {
reg = <0>;
sii9022_in: endpoint {
remote-endpoint = <&dss0_dpi1_out>;
};
};
port@1 {
reg = <1>;
sii9022_out: endpoint {
remote-endpoint = <&hdmi_connector_in>;
};
};
};
};
};
&main_i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c2_pins_default>;
clock-frequency = <400000>;
};
&sdhci0 {
status = "okay";
ti,driver-strength-ohm = <50>;
disable-wp;
bootph-all;
};
&sdhci1 {
/* SD/MMC */
status = "disabled";
vmmc-supply = <&vdd_mmc1>;
vqmmc-supply = <&vddshv_sdio>;
pinctrl-names = "default";
pinctrl-0 = <&main_mmc1_pins_default>;
disable-wp;
bootph-all;
};
&cpsw3g {
pinctrl-names = "default";
pinctrl-0 = <&main_rgmii1_pins_default>,
<&main_rgmii2_pins_default>;
status = "okay";
};
&cpsw_port1 {
phy-mode = "rgmii-rxid";
phy-handle = <&cpsw3g_phy0>;
status = "okay";
};
&cpsw_port2 {
phy-mode = "rgmii-rxid";
phy-handle = <&cpsw3g_phy1>;
status = "okay";
};
&cpsw3g_mdio {
pinctrl-names = "default";
pinctrl-0 = <&main_mdio1_pins_default>;
status = "okay";
cpsw3g_phy0: ethernet-phy@0 {
reg = <0>;
bootph-all;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,min-output-impedance;
};
cpsw3g_phy1: ethernet-phy@1 {
reg = <1>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,min-output-impedance;
};
};
&usbss0 {
status = "okay";
ti,vbus-divider;
};
&usbss1 {
status = "okay";
ti,vbus-divider;
};
&usb0 {
usb-role-switch;
port {
usb0_hs_ep: endpoint {
remote-endpoint = <&usb_con_hs>;
};
};
};
&usb1 {
dr_mode = "host";
pinctrl-names = "default";
pinctrl-0 = <&main_usb1_pins_default>;
};
&mcasp1 {
status = "okay";
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp1_pins_default>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
1 0 2 0
0 0 0 0
0 0 0 0
0 0 0 0
>;
};
&fss {
bootph-all;
};
&ospi0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&ospi0_pins_default>;
bootph-all;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0x0>;
spi-tx-bus-width = <8>;
spi-rx-bus-width = <8>;
spi-max-frequency = <25000000>;
cdns,tshsl-ns = <60>;
cdns,tsd2d-ns = <60>;
cdns,tchsh-ns = <60>;
cdns,tslch-ns = <60>;
cdns,read-delay = <4>;
cdns,phy-mode;
bootph-all;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
bootph-all;
partition@0 {
label = "sbl_ospi_linux_stage1.release.hs_fs.tiimage";
reg = <0x00 0x80000>;
};
partition@80000 {
label = "wkup-r5_stage2.release.appimage.hs_fs";
reg = <0x80000 0xa00000>;
};
partition@100000 {
label = "hsm_a.appimage.hs_fs";
reg = <0xa80000 0x40000>;
};
partition@140000 {
label = "mcu-r5_a.release.appimage.hs_fs";
reg = <0xac0000 0x200000>;
};
partition@340000 {
label = "linux.falcon_a.appimage.hs_fs";
reg = <0xcc0000 0x1100000>;
};
partition@1440000 {
label = "hsm_b.appimage.hs_fs";
reg = <0x1dc0000 0x40000>;
};
partition@1480000 {
label = "mcu-r5_b.release.appimage.hs_fs";
reg = <0x1e00000 0x200000>;
};
partition@1680000 {
label = "linux.falcon_b.appimage.hs_fs";
reg = <0x2000000 0x1100000>;
};
partition@2780000 {
label = "slot_partition";
reg = <0x3100000 0x40000>;
};
partition@27c0000 {
label = "backup1";
reg = <0x3140000 0xa00000>;
};
partition@3fc0000 {
label = "ospi_phy_pattern";
reg = <0x3fc0000 0x40000>;
bootph-all;
};
};
};
};
&mailbox0_cluster0 {
status = "okay";
mbox_r5_0: mbox-r5-0 {
ti,mbox-rx = <0 0 0>;
ti,mbox-tx = <1 0 0>;
};
};
&mailbox0_cluster1 {
status = "okay";
mbox_mcu_r5_0: mbox-mcu-r5-0 {
ti,mbox-rx = <0 0 0>;
ti,mbox-tx = <1 0 0>;
};
};
&wkup_r5fss0 {
status = "okay";
};
&wkup_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_r5_0>;
memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
<&wkup_r5fss0_core0_memory_region>;
};
&mcu_r5fss0 {
status = "okay";
};
&mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster1 &mbox_mcu_r5_0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
};
&main_uart0 {
pinctrl-names = "default";
pinctrl-0 = <&main_uart0_pins_default>;
interrupts-extended = <&gic500 GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
<&main_pmx0 0x1c8>; /* (D14) UART0_RXD PADCONFIG114 */
interrupt-names = "irq", "wakeup";
status = "okay";
bootph-all;
};
&main_uart1 {
pinctrl-names = "default";
pinctrl-0 = <&main_uart1_pins_default>;
/* Main UART1 is used by TIFS firmware */
status = "reserved";
bootph-all;
};
&mcu_pmx0 {
bootph-all;
wkup_uart0_pins_default: wkup-uart0-default-pins {
pinctrl-single,pins = <
AM62PX_MCU_IOPAD(0x024, PIN_INPUT, 0) /* (D8) WKUP_UART0_RXD */
AM62PX_MCU_IOPAD(0x028, PIN_OUTPUT, 0) /* (D7) WKUP_UART0_TXD */
>;
bootph-all;
};
};
&wkup_uart0 {
/* WKUP UART0 is used by DM firmware */
pinctrl-names = "default";
pinctrl-0 = <&wkup_uart0_pins_default>;
status = "reserved";
bootph-all;
};
/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
&mcu_gpio0 {
status = "reserved";
};
&mcu_gpio_intr {
status = "reserved";
};
&dss_oldi_io_ctrl {
bootph-all;
};
&dss0 {
ti,dss-shared-mode;
ti,dss-shared-mode-vp = "vp1";
ti,dss-shared-mode-vp-owned = <0>;
ti,dss-shared-mode-common = "common1";
ti,dss-shared-mode-planes = "vid";
ti,dss-shared-mode-plane-zorder = <0>;
interrupt-parent = <&gic500>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
&dss0 {
bootph-all;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_dpi_pins_default>;
};
&dss0_ports {
/* DSS0-VP2: DPI/HDMI Output */
hdmi0_dss: port@1 {
reg = <1>;
dss0_dpi1_out: endpoint {
remote-endpoint = <&sii9022_in>;
};
};
};
&epwm0 {
/* Pin 24/26 of J4 */
pinctrl-names = "default";
pinctrl-0 = <&main_epwm0_pins_default>;
status = "okay";
};
&epwm1 {
/* Pin 23/19 of J4 */
pinctrl-names = "default";
pinctrl-0 = <&main_epwm1_pins_default>;
status = "okay";
};
&ecap1 {
/* ECAP1 in APWM mode */
/* Pin 36 of J4 */
pinctrl-names = "default";
pinctrl-0 = <&main_ecap1_pins_default>;
status = "okay";
};
&ecap2 {
/* ECAP2 in APWM mode */
/* Pin 11 of J4 */
pinctrl-names = "default";
pinctrl-0 = <&main_ecap2_pins_default>;
status = "okay";
};
&{/} {
display {
compatible = "microtips,mf-101hiebcaf0", "panel-simple";
/*
* Note that the OLDI TX 0 transmits the odd set of pixels
* while the OLDI TX 1 transmits the even set. This is a
* fixed configuration in the IP integration and is not
* changeable. The properties, "dual-lvds-odd-pixels" and
* "dual-lvds-even-pixels" have been used to merely
* identify if a Dual Link configuration is required.
* Swapping them will cause an error in the dss oldi driver.
*/
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dual-lvds-odd-pixels;
lcd_in0: endpoint {
remote-endpoint = <&oldi0_dss0_out>;
};
};
port@1 {
reg = <1>;
dual-lvds-even-pixels;
lcd_in1: endpoint {
remote-endpoint = <&oldi1_dss0_out>;
};
};
};
};
};
&dss0 {
status = "okay";
};
&oldi0_dss0 {
status = "okay";
ti,companion-oldi = <&oldi1_dss0>;
};
&oldi1_dss0 {
status = "okay";
ti,secondary-oldi;
};
&oldi0_dss0_ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
oldi0_dss0_in: endpoint {
remote-endpoint = <&dss0_dpi0_out0>;
};
};
port@1 {
reg = <1>;
oldi0_dss0_out: endpoint {
remote-endpoint = <&lcd_in0>;
};
};
};
&oldi1_dss0_ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
oldi1_dss0_in: endpoint {
remote-endpoint = <&dss0_dpi0_out1>;
};
};
port@1 {
reg = <1>;
oldi1_dss0_out: endpoint {
remote-endpoint = <&lcd_in1>;
};
};
};
&dss0_ports {
#address-cells = <1>;
#size-cells = <0>;
/* VP1: Output to OLDI */
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
dss0_dpi0_out0: endpoint@0 {
reg = <0>;
remote-endpoint = <&oldi0_dss0_in>;
};
dss0_dpi0_out1: endpoint@1 {
reg = <1>;
remote-endpoint = <&oldi1_dss0_in>;
};
};
};
&main_i2c0 {
#address-cells = <1>;
#size-cells = <0>;
touchscreen@41 {
compatible = "ilitek,ili251x";
reg = <0x41>;
interrupt-parent = <&exp1>;
interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&exp2 20 GPIO_ACTIVE_LOW>;
};
};
And there is the device tree changes
From 40bdfbf29d8b2a020cd7044b33e1ec48a0d04f8f Mon Sep 17 00:00:00 2001
From: suipengfei <suipengfei01@163.com>
Date: Fri, 16 Jan 2026 08:20:44 +0800
Subject: [PATCH] modify-k3-am62p5-sk.dts
---
arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 211 ++++++++++++++++++++++--
1 file changed, 193 insertions(+), 18 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
index ddcbdee853e6..393d078318e2 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
@@ -10,7 +10,9 @@
#include <dt-bindings/leds/common.h>
#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/net/ti-dp83867.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "k3-am62p5.dtsi"
/ {
@@ -36,7 +38,7 @@ chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
-
+ bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait mem=1G";
stdout-path = &main_uart0;
framebuffer0: framebuffer@0 {
@@ -66,7 +68,12 @@ reserved_memory: reserved-memory {
linux,cma {
compatible = "shared-dma-pool";
reusable;
+ /********576 MB**********
size = <0x00 0x24000000>;
+ ************************/
+ /*******200MB***********/
+ size = <0x00 0xc800000>;
+
linux,cma-default;
};
@@ -109,6 +116,11 @@ secure_ddr: optee@9e800000 {
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
no-map;
};
+
+ rtos_framebuffer_memory_region: rtos-framebuffer-memory@93500000 {
+ reg = <0x00 0x93500000 0x00 0x08000000>;
+ no-map;
+ };
};
vmain_pd: regulator-0 {
@@ -613,7 +625,7 @@ &sdhci0 {
&sdhci1 {
/* SD/MMC */
- status = "okay";
+ status = "disabled";
vmmc-supply = <&vdd_mmc1>;
vqmmc-supply = <&vddshv_sdio>;
pinctrl-names = "default";
@@ -737,40 +749,61 @@ partitions {
bootph-all;
partition@0 {
- label = "ospi.tiboot3";
+ label = "sbl_ospi_linux_stage1.release.hs_fs.tiimage";
reg = <0x00 0x80000>;
};
partition@80000 {
- label = "ospi.tispl";
- reg = <0x80000 0x200000>;
+ label = "wkup-r5_stage2.release.appimage.hs_fs";
+ reg = <0x80000 0xa00000>;
+ };
+
+ partition@100000 {
+ label = "hsm_a.appimage.hs_fs";
+ reg = <0xa80000 0x40000>;
+ };
+
+ partition@140000 {
+ label = "mcu-r5_a.release.appimage.hs_fs";
+ reg = <0xac0000 0x200000>;
};
- partition@280000 {
- label = "ospi.u-boot";
- reg = <0x280000 0x400000>;
+ partition@340000 {
+ label = "linux.falcon_a.appimage.hs_fs";
+ reg = <0xcc0000 0x1100000>;
};
- partition@680000 {
- label = "ospi.env";
- reg = <0x680000 0x40000>;
+ partition@1440000 {
+ label = "hsm_b.appimage.hs_fs";
+ reg = <0x1dc0000 0x40000>;
};
- partition@6c0000 {
- label = "ospi.env.backup";
- reg = <0x6c0000 0x40000>;
+ partition@1480000 {
+ label = "mcu-r5_b.release.appimage.hs_fs";
+ reg = <0x1e00000 0x200000>;
};
- partition@800000 {
- label = "ospi.rootfs";
- reg = <0x800000 0x37c0000>;
+ partition@1680000 {
+ label = "linux.falcon_b.appimage.hs_fs";
+ reg = <0x2000000 0x1100000>;
+ };
+
+ partition@2780000 {
+ label = "slot_partition";
+ reg = <0x3100000 0x40000>;
+ };
+
+ partition@27c0000 {
+ label = "backup1";
+ reg = <0x3140000 0xa00000>;
};
partition@3fc0000 {
- label = "ospi.phypattern";
+ label = "ospi_phy_pattern";
reg = <0x3fc0000 0x40000>;
bootph-all;
};
+
};
};
};
@@ -864,6 +897,17 @@ &dss_oldi_io_ctrl {
bootph-all;
};
+&dss0 {
+ ti,dss-shared-mode;
+ ti,dss-shared-mode-vp = "vp1";
+ ti,dss-shared-mode-vp-owned = <0>;
+ ti,dss-shared-mode-common = "common1";
+ ti,dss-shared-mode-planes = "vid";
+ ti,dss-shared-mode-plane-zorder = <0>;
+ interrupt-parent = <&gic500>;
+ interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+};
+
&dss0 {
bootph-all;
status = "okay";
@@ -911,3 +955,134 @@ &ecap2 {
pinctrl-0 = <&main_ecap2_pins_default>;
status = "okay";
};
+
+
+&{/} {
+ display {
+ compatible = "microtips,mf-101hiebcaf0", "panel-simple";
+
+ /*
+ * Note that the OLDI TX 0 transmits the odd set of pixels
+ * while the OLDI TX 1 transmits the even set. This is a
+ * fixed configuration in the IP integration and is not
+ * changeable. The properties, "dual-lvds-odd-pixels" and
+ * "dual-lvds-even-pixels" have been used to merely
+ * identify if a Dual Link configuration is required.
+ * Swapping them will cause an error in the dss oldi driver.
+ */
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ dual-lvds-odd-pixels;
+
+ lcd_in0: endpoint {
+ remote-endpoint = <&oldi0_dss0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ dual-lvds-even-pixels;
+
+ lcd_in1: endpoint {
+ remote-endpoint = <&oldi1_dss0_out>;
+ };
+ };
+ };
+ };
+};
+
+&dss0 {
+ status = "okay";
+};
+
+&oldi0_dss0 {
+ status = "okay";
+ ti,companion-oldi = <&oldi1_dss0>;
+};
+
+&oldi1_dss0 {
+ status = "okay";
+ ti,secondary-oldi;
+};
+
+&oldi0_dss0_ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ oldi0_dss0_in: endpoint {
+ remote-endpoint = <&dss0_dpi0_out0>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ oldi0_dss0_out: endpoint {
+ remote-endpoint = <&lcd_in0>;
+ };
+ };
+};
+
+&oldi1_dss0_ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ oldi1_dss0_in: endpoint {
+ remote-endpoint = <&dss0_dpi0_out1>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ oldi1_dss0_out: endpoint {
+ remote-endpoint = <&lcd_in1>;
+ };
+ };
+};
+
+&dss0_ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* VP1: Output to OLDI */
+ port@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dss0_dpi0_out0: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&oldi0_dss0_in>;
+ };
+
+ dss0_dpi0_out1: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&oldi1_dss0_in>;
+ };
+ };
+};
+
+&main_i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen@41 {
+ compatible = "ilitek,ili251x";
+ reg = <0x41>;
+ interrupt-parent = <&exp1>;
+ interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+ reset-gpios = <&exp2 20 GPIO_ACTIVE_LOW>;
+ };
+};
+
--
2.34.1
Best Regards
SUI
Hi Suren Porwar
How to reslove the kernel dead issue ? when I modify Memory size 1GB
Best Regards
SUI
Hi Pengfei,
Based on the device tree changes this is our observations:
The system is making several memory reservations:
If possible, increase the system memory beyond 1GB to accommodate all these reservations and let us know if it works? Or does reducing the CMA pool to 128MB help
Best Regards,
Suren
Hi Suren Porwar
1、Now I increase the system memory 2GB accommodate all these reservations the linux kernel start failed , there is 2GB log
Starting linux and RTOS/Baremetal applications
NOTICE: BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty
NOTICE: BL31: Built : 07:01:36, Jul 1 2025
Booting Linux on physical CPU 0x0000000000 [0x410fd034]
Linux version 6.12.35-ti-00921-g40bdfbf29d8b-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Thu Jul 3 17:10:29 UTC 2025
KASLR disabled due to lack of seed
Machine model: Texas Instruments AM62P5 SK
earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
printk: legacy bootconsole [ns16550a0] enabled
efi: UEFI not found.
Reserved memory: created CMA memory pool at 0x00000000dc000000, size 576 MiB
OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
OF: reserved mem: 0x00000000dc000000..0x00000000ffffffff (589824 KiB) map reusable linux,cma
Reserved memory: created DMA memory pool at 0x000000009b500000, size 3 MiB
OF: reserved mem: initialized node rtos-ipc-memory@9b500000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b500000..0x000000009b7fffff (3072 KiB) nomap non-reusable rtos-ipc-memory@9b500000
Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB
OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000
Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB
OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000
Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB
OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009c800000..0x000000009c8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9c800000
Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB
OF: reserved mem: initialized node r5f-memory@9c900000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009c900000..0x000000009e6fffff (30720 KiB) nomap non-reusable r5f-memory@9c900000
OF: reserved mem: 0x000000009e780000..0x000000009e7fffff (512 KiB) nomap non-reusable tfa@9e780000
OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000
OF: reserved mem: 0x0000000093500000..0x000000009b4fffff (131072 KiB) nomap non-reusable rtos-framebuffer-memory@93500000
Zone ranges:
DMA [mem 0x0000000080000000-0x00000000ffffffff]
DMA32 empty
Normal empty
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000080000000-0x00000000934fffff]
node 0: [mem 0x0000000093500000-0x000000009e6fffff]
node 0: [mem 0x000000009e700000-0x000000009e77ffff]
node 0: [mem 0x000000009e780000-0x000000009fffffff]
node 0: [mem 0x00000000a0000000-0x00000000ffffffff]
Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
psci: probing for conduit method from DT.
psci: PSCIv1.1 detected in firmware.
psci: Using standard PSCI v0.2 function IDs
psci: Trusted OS migration not required
psci: SMC Calling Convention v1.5
percpu: Embedded 22 pages/cpu s50520 r8192 d31400 u90112
Detected VIPT I-cache on CPU0
CPU features: detected: GIC system register CPU interface
CPU features: detected: ARM erratum 845719
alternatives: applying boot alternatives
Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
Built 1 zonelists, mobility grouping on. Total pages: 524288
mem auto-init: stack:all(zero), heap alloc:off, heap free:off
software IO TLB: SWIOTLB bounce buffer size adjusted to 2MB
software IO TLB: area num 4.
software IO TLB: mapped [mem 0x00000000d9a00000-0x00000000d9c00000] (2MB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
rcu: Preemptible hierarchical RCU implementation.
rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=4.
Trampoline variant of Tasks RCU enabled.
Tracing variant of Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
GICv3: GIC: Using split EOI/Deactivate mode
GICv3: 256 SPIs implemented
GICv3: 0 Extended SPIs implemented
Root IRQ handler: gic_handle_irq
GICv3: GICv3 features: 16 PPIs
GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=1
GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
ITS [mem 0x01820000-0x0182ffff]
ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
ITS: using cache flushing for cmd queue
GICv3: using LPI property table @0x0000000080050000
GIC: using cache flushing for LPI property table
GICv3: CPU0: using allocated LPI pending table @0x0000000080060000
rcu: srcu_init: Setting srcu_struct sizes based on contention.
arch_timer: cp15 timer(s) running at 200.00MHz (phys).
clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
2、I reducing the CMA pool to 128MB , And DDR memory use 2GB the linux kernel start failed , there is DDR 2GB CAM 128MB log
Starting linux and RTOS/Baremetal applications
NOTICE: BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty
NOTICE: BL31: Built : 07:01:36, Jul 1 2025
Booting Linux on physical CPU 0x0000000000 [0x410fd034]
Linux version 6.12.35-ti-00921-g40bdfbf29d8b-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Thu Jul 3 17:10:29 UTC 2025
KASLR disabled due to lack of seed
Machine model: Texas Instruments AM62P5 SK
earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
printk: legacy bootconsole [ns16550a0] enabled
efi: UEFI not found.
Reserved memory: created CMA memory pool at 0x00000000f8000000, size 128 MiB
OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
OF: reserved mem: 0x00000000f8000000..0x00000000ffffffff (131072 KiB) map reusable linux,cma
Reserved memory: created DMA memory pool at 0x000000009b500000, size 3 MiB
OF: reserved mem: initialized node rtos-ipc-memory@9b500000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b500000..0x000000009b7fffff (3072 KiB) nomap non-reusable rtos-ipc-memory@9b500000
Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB
OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000
Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB
OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000
Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB
OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009c800000..0x000000009c8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9c800000
Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB
OF: reserved mem: initialized node r5f-memory@9c900000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009c900000..0x000000009e6fffff (30720 KiB) nomap non-reusable r5f-memory@9c900000
OF: reserved mem: 0x000000009e780000..0x000000009e7fffff (512 KiB) nomap non-reusable tfa@9e780000
OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000
OF: reserved mem: 0x0000000093500000..0x000000009b4fffff (131072 KiB) nomap non-reusable rtos-framebuffer-memory@93500000
Zone ranges:
DMA [mem 0x0000000080000000-0x00000000ffffffff]
DMA32 empty
Normal empty
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000080000000-0x00000000934fffff]
node 0: [mem 0x0000000093500000-0x000000009e6fffff]
node 0: [mem 0x000000009e700000-0x000000009e77ffff]
node 0: [mem 0x000000009e780000-0x000000009fffffff]
node 0: [mem 0x00000000a0000000-0x00000000ffffffff]
Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
psci: probing for conduit method from DT.
psci: PSCIv1.1 detected in firmware.
psci: Using standard PSCI v0.2 function IDs
psci: Trusted OS migration not required
psci: SMC Calling Convention v1.5
percpu: Embedded 22 pages/cpu s50520 r8192 d31400 u90112
Detected VIPT I-cache on CPU0
CPU features: detected: GIC system register CPU interface
CPU features: detected: ARM erratum 845719
alternatives: applying boot alternatives
Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
Built 1 zonelists, mobility grouping on. Total pages: 524288
mem auto-init: stack:all(zero), heap alloc:off, heap free:off
software IO TLB: SWIOTLB bounce buffer size adjusted to 2MB
software IO TLB: area num 4.
software IO TLB: mapped [mem 0x00000000f5a00000-0x00000000f5c00000] (2MB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
rcu: Preemptible hierarchical RCU implementation.
rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=4.
Trampoline variant of Tasks RCU enabled.
Tracing variant of Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
GICv3: GIC: Using split EOI/Deactivate mode
GICv3: 256 SPIs implemented
GICv3: 0 Extended SPIs implemented
Root IRQ handler: gic_handle_irq
GICv3: GICv3 features: 16 PPIs
GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=1
GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
ITS [mem 0x01820000-0x0182ffff]
ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
ITS: using cache flushing for cmd queue
GICv3: using LPI property table @0x0000000080050000
GIC: using cache flushing for LPI property table
GICv3: CPU0: using allocated LPI pending table @0x0000000080060000
rcu: srcu_init: Setting srcu_struct sizes based on contention.
arch_timer: cp15 timer(s) running at 200.00MHz (phys).
clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
3、 I use DDR memory use 8GB accommodate all these reservations the linux kernel start is ok there is the log
Starting linux and RTOS/Baremetal applications
NOTICE: BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty
NOTICE: BL31: Built : 07:01:36, Jul 1 2025
Booting Linux on physical CPU 0x0000000000 [0x410fd034]
Linux version 6.12.35-ti-00921-g40bdfbf29d8b-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Thu Jul 3 17:10:29 UTC 2025
KASLR disabled due to lack of seed
Machine model: Texas Instruments AM62P5 SK
earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
printk: legacy bootconsole [ns16550a0] enabled
efi: UEFI not found.
Reserved memory: created CMA memory pool at 0x00000009dc000000, size 576 MiB
OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
OF: reserved mem: 0x00000009dc000000..0x00000009ffffffff (589824 KiB) map reusable linux,cma
Reserved memory: created DMA memory pool at 0x000000009b500000, size 3 MiB
OF: reserved mem: initialized node rtos-ipc-memory@9b500000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b500000..0x000000009b7fffff (3072 KiB) nomap non-reusable rtos-ipc-memory@9b500000
Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB
OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000
Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB
OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000
Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB
OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009c800000..0x000000009c8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9c800000
Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB
OF: reserved mem: initialized node r5f-memory@9c900000, compatible id shared-dma-pool
OF: reserved mem: 0x000000009c900000..0x000000009e6fffff (30720 KiB) nomap non-reusable r5f-memory@9c900000
OF: reserved mem: 0x000000009e780000..0x000000009e7fffff (512 KiB) nomap non-reusable tfa@9e780000
OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000
OF: reserved mem: 0x0000000093500000..0x000000009b4fffff (131072 KiB) nomap non-reusable rtos-framebuffer-memory@93500000
Zone ranges:
DMA [mem 0x0000000080000000-0x00000000ffffffff]
DMA32 empty
Normal [mem 0x0000000100000000-0x00000009ffffffff]
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000080000000-0x00000000934fffff]
node 0: [mem 0x0000000093500000-0x000000009e6fffff]
node 0: [mem 0x000000009e700000-0x000000009e77ffff]
node 0: [mem 0x000000009e780000-0x000000009fffffff]
node 0: [mem 0x00000000a0000000-0x00000000ffffffff]
node 0: [mem 0x0000000880000000-0x00000009ffffffff]
Initmem setup node 0 [mem 0x0000000080000000-0x00000009ffffffff]
psci: probing for conduit method from DT.
psci: PSCIv1.1 detected in firmware.
psci: Using standard PSCI v0.2 function IDs
psci: Trusted OS migration not required
psci: SMC Calling Convention v1.5
percpu: Embedded 22 pages/cpu s50520 r8192 d31400 u90112
Detected VIPT I-cache on CPU0
CPU features: detected: GIC system register CPU interface
CPU features: detected: ARM erratum 845719
alternatives: applying boot alternatives
Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
Built 1 zonelists, mobility grouping on. Total pages: 2097152
mem auto-init: stack:all(zero), heap alloc:off, heap free:off
software IO TLB: area num 4.
software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
rcu: Preemptible hierarchical RCU implementation.
rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=4.
Trampoline variant of Tasks RCU enabled.
Tracing variant of Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
GICv3: GIC: Using split EOI/Deactivate mode
GICv3: 256 SPIs implemented
GICv3: 0 Extended SPIs implemented
Root IRQ handler: gic_handle_irq
GICv3: GICv3 features: 16 PPIs
GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=1
GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
ITS [mem 0x01820000-0x0182ffff]
ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
ITS@0x0000000001820000: allocated 524288 Devices @880800000 (flat, esz 8, psz 64K, shr 0)
ITS: using cache flushing for cmd queue
GICv3: using LPI property table @0x0000000880050000
GIC: using cache flushing for LPI property table
GICv3: CPU0: using allocated LPI pending table @0x0000000880060000
rcu: srcu_init: Setting srcu_struct sizes based on contention.
arch_timer: cp15 timer(s) running at 200.00MHz (phys).
clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
Console: colour dummy device 80x25
Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
pid_max: default: 32768 minimum: 301
LSM: initializing lsm=capability
Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
rcu: Hierarchical SRCU implementation.
rcu: Max phase no-delay instances is 1000.
Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
EFI services will not be available.
smp: Bringing up secondary CPUs ...
Detected VIPT I-cache on CPU1
GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
GICv3: CPU1: using allocated LPI pending table @0x0000000880070000
CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
Detected VIPT I-cache on CPU2
GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
GICv3: CPU2: using allocated LPI pending table @0x0000000880080000
CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
Detected VIPT I-cache on CPU3
GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
GICv3: CPU3: using allocated LPI pending table @0x0000000880090000
CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
smp: Brought up 1 node, 4 CPUs
SMP: Total of 4 processors activated.
CPU: All CPU(s) started at EL2
CPU features: detected: 32-bit EL0 Support
CPU features: detected: CRC32 instructions
alternatives: applying system-wide alternatives
Memory: 7355352K/8388608K available (10048K kernel code, 1068K rwdata, 2872K rodata, 1920K init, 573K bss, 434508K reserved, 589824K cma-reserved)
devtmpfs: initialized
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
28592 pages in range for non-PLT usage
520112 pages in range for PLT usage
pinctrl core: initialized pinctrl subsystem
DMI not present or invalid.
NET: Registered PF_NETLINK/PF_ROUTE protocol family
DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
audit: initializing netlink subsys (disabled)
audit: type=2000 audit(0.156:1): state=initialized audit_enabled=0 res=1
cpuidle: using governor menu
hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
ASID allocator initialised with 65536 entries
/bus@f0000/interrupt-controller@1800000: Fixed dependency cycle(s) with /bus@f0000/interrupt-controller@1800000
/bus@f0000/i2c@20000000/usb-power-controller@3f/connector: Fixed dependency cycle(s) with /bus@f0000/usb@f900000/usb@31000000
/bus@f0000/i2c@20010000/bridge-hdmi@3b: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
/bus@f0000/usb@f900000/usb@31000000: Fixed dependency cycle(s) with /bus@f0000/i2c@20000000/usb-power-controller@3f/connector
/bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000/oldi-transmitters/oldi@1
/bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000/oldi-transmitters/oldi@0
/bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/bridge-hdmi@3b
/bus@f0000/dss@30200000/oldi-transmitters/oldi@0: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
/bus@f0000/dss@30200000/oldi-transmitters/oldi@1: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
/bus@f0000/i2c@20000000/usb-power-controller@3f/connector: Fixed dependency cycle(s) with /bus@f0000/usb@f900000/usb@31000000
/bus@f0000/i2c@20010000/bridge-hdmi@3b: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
/bus@f0000/usb@f900000/usb@31000000: Fixed dependency cycle(s) with /bus@f0000/i2c@20000000/usb-power-controller@3f/connector
/bus@f0000/i2c@20010000/bridge-hdmi@3b: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
/bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000/oldi-transmitters/oldi@1
/bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000/oldi-transmitters/oldi@0
/bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/bridge-hdmi@3b
/bus@f0000/dss@30200000/oldi-transmitters/oldi@0: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
/bus@f0000/dss@30200000/oldi-transmitters/oldi@1: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
/bus@f0000/i2c@20010000/bridge-hdmi@3b: Fixed dependency cycle(s) with /connector-hdmi
/connector-hdmi: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/bridge-hdmi@3b
/bus@f0000/dss@30200000/oldi-transmitters/oldi@1: Fixed dependency cycle(s) with /display
/bus@f0000/dss@30200000/oldi-transmitters/oldi@0: Fixed dependency cycle(s) with /display
/display: Fixed dependency cycle(s) with /bus@f0000/dss@30200000/oldi-transmitters/oldi@1
/display: Fixed dependency cycle(s) with /bus@f0000/dss@30200000/oldi-transmitters/oldi@0
HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
k3-chipinfo 43000014.chipid: Family:AM62PX rev:SR1.0 JTAGID[0x0bb9d02f] Detected
iommu: Default domain type: Translated
iommu: DMA domain TLB invalidation policy: strict mode
EDAC MC: Ver: 3.0.0
scmi_core: SCMI protocol bus registered
clocksource: Switched to clocksource arch_sys_counter
NET: Registered PF_INET protocol family
IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
TCP bind hash table entries: 65536 (order: 9, 2097152 bytes, linear)
TCP: Hash tables configured (established 65536 bind 65536)
UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
NET: Registered PF_UNIX/PF_LOCAL protocol family
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp-with-tls transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Initialise system trusted keyrings
workingset: timestamp_bits=46 max_order=21 bucket_order=0
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
nfs4filelayout_init: NFSv4 File Layout Driver Registering...
nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
Key type asymmetric registered
Asymmetric key parser 'x509' registered
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
io scheduler mq-deadline registered
io scheduler kyber registered
io scheduler bfq registered
pinctrl-single 4084000.pinctrl: 34 pins, size 136
pinctrl-single f4000.pinctrl: 171 pins, size 684
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
panel-simple display: supply power not found, using dummy regulator
loop: module loaded
i2c_dev: i2c /dev entries driver
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 (0,8000003f) counters available
optee: probing for conduit method.
optee: revision 4.6 (71785645fa6ce42d)
optee: dynamic shared memory is enabled
optee: initialized driver
random: crng init done
NET: Registered PF_PACKET protocol family
Key type dns_resolver registered
Loading compiled-in X.509 certificates
ti-sci 44043000.system-controller: ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)')
/bus@f0000/i2c@20000000/usb-power-controller@3f/connector: Fixed dependency cycle(s) with /bus@f0000/usb@f900000/usb@31000000
omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
pca953x 1-0023: supply vcc not found, using dummy regulator
pca953x 1-0023: using AI
/bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/bridge-hdmi@3b
/bus@f0000/i2c@20010000/bridge-hdmi@3b: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
omap_i2c 20020000.i2c: bus 2 rev0.12 at 400 kHz
ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
ti-sci-inta 4e400000.interrupt-controller: Interrupt Aggregator domain 200 created
ti-udma 485c0100.dma-controller: Number of rings: 82
ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
ti-udma 485c0000.dma-controller: Number of rings: 150
ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
ti-udma 4e230000.dma-controller: Number of rings: 6
ti-udma 4e230000.dma-controller: Channels: 6 (bchan: 0, tchan: 0, rchan: 6)
printk: legacy console [ttyS2] disabled
2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 250, base_baud = 3000000) is a 8250
printk: legacy console [ttyS2] enabled
printk: legacy console [ttyS2] enabled
printk: legacy bootconsole [ns16550a0] disabled
printk: legacy bootconsole [ns16550a0] disabled
[drm] Initialized tidss 1.0.0 for 30200000.dss on minor 0
tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
11 fixed-partitions partitions found on MTD device fc40000.spi.0
Creating 11 MTD partitions on "fc40000.spi.0":
0x000000000000-0x000000080000 : "sbl_ospi_linux_stage1.release.hs_fs.tiimage"
0x000000080000-0x000000a80000 : "wkup-r5_stage2.release.appimage.hs_fs"
0x000000a80000-0x000000ac0000 : "hsm_a.appimage.hs_fs"
0x000000ac0000-0x000000cc0000 : "mcu-r5_a.release.appimage.hs_fs"
0x000000cc0000-0x000001dc0000 : "linux.falcon_a.appimage.hs_fs"
0x000001dc0000-0x000001e00000 : "hsm_b.appimage.hs_fs"
0x000001e00000-0x000002000000 : "mcu-r5_b.release.appimage.hs_fs"
0x000002000000-0x000003100000 : "linux.falcon_b.appimage.hs_fs"
0x000003100000-0x000003140000 : "slot_partition"
0x000003140000-0x000003b40000 : "backup1"
0x000003fc0000-0x000004000000 : "ospi_phy_pattern"
mmc0: CQHCI version 5.10
pca953x 1-0022: supply vcc not found, using dummy regulator
pca953x 1-0022: using AI
sii902x 1-003b: supply iovcc not found, using dummy regulator
sii902x 1-003b: supply cvcc12 not found, using dummy regulator
i2c i2c-1: Added multiplexed i2c bus 3
clk: Disabling unused clocks
PM: genpd: Disabling unused power domains
mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
Waiting for root device /dev/mmcblk0p2...
mmc0: Command Queue Engine enabled
mmc0: new HS200 MMC card at address 0001
mmcblk0: mmc0:0001 G1M15L 29.6 GiB
mmcblk0: p1 p2 p3
mmcblk0boot0: mmc0:0001 G1M15L 31.5 MiB
mmcblk0boot1: mmc0:0001 G1M15L 31.5 MiB
mmcblk0rpmb: mmc0:0001 G1M15L 4.00 MiB, chardev (248:0)
EXT4-fs (mmcblk0p2): mounted filesystem 250c7601-3093-4771-8754-4397d737c0be r/w with ordered data mode. Quota mode: disabled.
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 1920K
Run /sbin/init as init process
INIT: version 3.04 booting
Starting udev
udevd[107]: starting version 3.2.14
udevd[107]: specified group 'tee' unknown
udevd[107]: specified group 'teepriv' unknown
udevd[108]: starting eudev-3.2.14
EXT4-fs (mmcblk0p1): mounted filesystem 250c7601-3093-4771-8754-4397d737c0be r/w with ordered data mode. Quota mode: disabled.
EXT4-fs (mmcblk0p3): mounted filesystem ce530488-b9cf-40bc-a313-28eea26ec700 r/w with ordered data mode. Quota mode: disabled.
EXT4-fs (mmcblk0p2): re-mounted 250c7601-3093-4771-8754-4397d737c0be.
hwclock: can't open '/dev/misc/rtc': No such file or directory
Fri Mar 9 13:46:42 UTC 2018
hwclock: can't open '/dev/misc/rtc': No such file or directory
INIT: Entering runlevel: 5misc/rtc': No such file or directory
Configuring network interfaces... ifup: interface lo already configured
ip: SIOCGIFFLAGS: No such device
done.
Starting OP-TEE Supplicant: tee-supplicant.
Starting syslogd/klogd: done
_____ _____ _ _
| _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
| | _| .'| . | . | | __| _| . | | | -_| _| _|
|__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_|
|___| |___|
Arago Project am62pxx-evm /dev/ttyS2
Arago 2025.01 am62pxx-evm /dev/ttyS2
am62pxx-evm login: vdd_mmc1: disabling
Why I increase the system memory , the linux kernel start failed ?
why I reducing the CMA pool to 128MB , the linux kernel start failed ?
Best Regards
SUI
Hi Pengfei,
This thread also can be referred.
except change in pervious post, CMA need be put in 1GB range.
BR,
Biao
Hi Pengfei,
can you help share the Mem map in your system(2GB/1GB) just like this?
BR,
Biao
Hi Biao
There is my the Mem map in our system
CMA memory pool at 0xb3800000, size 200 MiB
rtos-ipc-memory at 0x9b500000, size 3 MiB
mcu-r5fss-dma-memory-region at 0x9b800000, size 1 MiB
mcu-r5fss-memory-region at 0x9b900000, size 15 MiB
r5f-dma-memory at 0x9c800000, size 1 MiB
r5f-memory at 0x9c900000, size 30 MiB
tfa at 0x9e780000 512 KiB
optee at 0x9e800000 24576 KiB
rtos-framebuffer-memory at 0x93500000 131072 KiB
But the kernel start failed , there is my modify dts
memory@80000000 {
/* 1G RAM */
reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
device_type = "memory";
bootph-pre-ram;
};
reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
linux,cma {
compatible = "shared-dma-pool";
reusable;
/*******200MB***********/
size = <0x00 0xc800000>;
reg = <0x00 0xb3800000 0x00 0xc800000>;
linux,cma-default;
};
there is my kernel start log , you can check
Starting linux and RTOS/Baremetal applications NOTICE: BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty NOTICE: BL31: Built : 07:01:36, Jul 1 2025 Booting Linux on physical CPU 0x0000000000 [0x410fd034] Linux version 6.12.35-ti-00921-g40bdfbf29d8b-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Thu Jul 3 17:10:29 UTC 2025 KASLR disabled due to lack of seed Machine model: Texas Instruments AM62P5 SK earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '') printk: legacy bootconsole [ns16550a0] enabled efi: UEFI not found. Reserved memory: created CMA memory pool at 0x00000000b3800000, size 200 MiB OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool OF: reserved mem: 0x00000000b3800000..0x00000000bfffffff (204800 KiB) map reusable linux,cma Reserved memory: created DMA memory pool at 0x000000009b500000, size 3 MiB OF: reserved mem: initialized node rtos-ipc-memory@9b500000, compatible id shared-dma-pool OF: reserved mem: 0x000000009b500000..0x000000009b7fffff (3072 KiB) nomap non-reusable rtos-ipc-memory@9b500000 Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000 Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000 Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool OF: reserved mem: 0x000000009c800000..0x000000009c8fffff (1024 KiB) nomap non-reusable r5f-dma-memory@9c800000 Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB OF: reserved mem: initialized node r5f-memory@9c900000, compatible id shared-dma-pool OF: reserved mem: 0x000000009c900000..0x000000009e6fffff (30720 KiB) nomap non-reusable r5f-memory@9c900000 OF: reserved mem: 0x000000009e780000..0x000000009e7fffff (512 KiB) nomap non-reusable tfa@9e780000 OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000 OF: reserved mem: 0x0000000093500000..0x000000009b4fffff (131072 KiB) nomap non-reusable rtos-framebuffer-memory@93500000 Zone ranges: DMA [mem 0x0000000080000000-0x00000000bfffffff] DMA32 empty Normal empty Movable zone start for each node Early memory node ranges node 0: [mem 0x0000000080000000-0x00000000934fffff] node 0: [mem 0x0000000093500000-0x000000009e6fffff] node 0: [mem 0x000000009e700000-0x000000009e77ffff] node 0: [mem 0x000000009e780000-0x000000009fffffff] node 0: [mem 0x00000000a0000000-0x00000000bfffffff] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff] psci: probing for conduit method from DT. psci: PSCIv1.1 detected in firmware. psci: Using standard PSCI v0.2 function IDs psci: Trusted OS migration not required psci: SMC Calling Convention v1.5 percpu: Embedded 22 pages/cpu s50520 r8192 d31400 u90112 Detected VIPT I-cache on CPU0 CPU features: detected: GIC system register CPU interface CPU features: detected: ARM erratum 845719 alternatives: applying boot alternatives Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) Built 1 zonelists, mobility grouping on. Total pages: 262144 mem auto-init: stack:all(zero), heap alloc:off, heap free:off software IO TLB: SWIOTLB bounce buffer size adjusted to 1MB software IO TLB: area num 4. software IO TLB: mapped [mem 0x00000000b2480000-0x00000000b2580000] (1MB) SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 rcu: Preemptible hierarchical RCU implementation. rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=4. Trampoline variant of Tasks RCU enabled. Tracing variant of Tasks RCU enabled. rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4. RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4. NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 GICv3: GIC: Using split EOI/Deactivate mode GICv3: 256 SPIs implemented GICv3: 0 Extended SPIs implemented Root IRQ handler: gic_handle_irq GICv3: GICv3 features: 16 PPIs GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=1 GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000 ITS [mem 0x01820000-0x0182ffff] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19 ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0) ITS: using cache flushing for cmd queue GICv3: using LPI property table @0x0000000080050000 GIC: using cache flushing for LPI property table GICv3: CPU0: using allocated LPI pending table @0x0000000080060000 rcu: srcu_init: Setting srcu_struct sizes based on contention. arch_timer: cp15 timer(s) running at 200.00MHz (phys). clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
Best Regards
SUI
Hi Suren,
Can you help check this thread? do you have a try on your EVM?
BR,
Biao
Hi Biao,
I tried to change the exisiting Linux kernel DTS file with the below changes:
diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
index 740c25d92..dbec925eb 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
@@ -52,8 +52,7 @@ framebuffer0: framebuffer@0 {
memory@80000000 {
/* 8G RAM */
- reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
- <0x00000008 0x80000000 0x00000001 0x80000000>;
+ reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
device_type = "memory";
bootph-pre-ram;
};
@@ -66,7 +65,7 @@ reserved_memory: reserved-memory {
linux,cma {
compatible = "shared-dma-pool";
reusable;
- size = <0x00 0x24000000>;
+ size = <0x00 0x10000000>;
linux,cma-default;
};
As you can see I have configured the DDR memory to be 1GB and reduced the CMA memory to 256MB and still able to boot my AM62P EVM.
Attached is the device tree blob if the customer wants to test on our EVM with this.
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/k3_2D00_am62p5_2D00_sk_2D00_256mb.dtb
Best Regards,
Suren
Hi Suren
Yes When I use CMA memory to 256MB , AM62P EVM board boot is ok
But the DDR memory is 8GB , I want use DDR 1GB
you can check

Best Regards
SUI
Hi I changed the DDR memory to be 1GB as you can see in the patch that I shared in my last reply.
Best Regards,
Suren
Hi Suren
I use the the patch that you shared in your last reply, the AM62P EVM board can not boot , the kernel boot failed .
Best Regards
SUI
Have you changed the u-boot as well or just linux kernel?
Best Regards,
Suren
Hi Suren
Now I use SBL boot mode , R5 SPL -> ATF -> OP-TEE -> Linux
So I remove uboot , I only modify linux kernel dts file
Best Regards
SUI
Hi Suren
Now I use falcon boot mode , R5 SPL -> ATF -> OP-TEE -> Linux
So I remove uboot , I only modify linux kernel dts file
Best Regards
SUI
Hi Pengfei,
So what's the observation on when you use Falcon boot mode?
Best Regards
Suren
Hi Suren
R5 SPL -> ATF -> OP-TEE is ok
But When I use 1GB ddr the linux can not boot ,and boot failed , if I use 8GB ddr the linux boot is ok
How to use 1GB ddr at linux and boot is ok ?
How to change linux kernel RAM is 1GB?
Best Regards
SUI
Please share your changes in order to replicate the issue on my end.
Best Regards
Suren
Hi Suren
If you want replicate the issue , you must use falcon boot mode , R5 SPL -> ATF -> OP-TEE -> Linux
there is my modify DTS file
// SPDX-License-Identifier: GPL-2.0-only OR MIT
/*
* Device Tree file for the AM62P5-SK
* Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
*
* Schematics: https://www.ti.com/lit/zip/sprr487
*/
/dts-v1/;
#include <dt-bindings/leds/common.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/net/ti-dp83867.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "k3-am62p5.dtsi"
/ {
compatible = "ti,am62p5-sk", "ti,am62p5";
model = "Texas Instruments AM62P5 SK";
aliases {
serial0 = &wkup_uart0;
serial1 = &mcu_uart0;
serial2 = &main_uart0;
serial3 = &main_uart1;
mmc0 = &sdhci0;
mmc1 = &sdhci1;
mmc2 = &sdhci2;
spi0 = &ospi0;
ethernet0 = &cpsw_port1;
ethernet1 = &cpsw_port2;
usb0 = &usb0;
usb1 = &usb1;
};
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait mem=1G";
stdout-path = &main_uart0;
framebuffer0: framebuffer@0 {
compatible = "simple-framebuffer";
power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 186 6>,
<&dss0_vp1_clk>,
<&k3_clks 186 2>;
display = <&dss0>;
status = "disabled";
};
};
memory@80000000 {
/* 8G RAM */
reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
<0x00000008 0x80000000 0x00000001 0x80000000>;
device_type = "memory";
bootph-pre-ram;
};
reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
linux,cma {
compatible = "shared-dma-pool";
reusable;
/********576 MB**********
size = <0x00 0x24000000>;
************************/
/*******200MB***********/
size = <0x00 0xc800000>;
linux,cma-default;
};
rtos_ipc_memory_region: rtos-ipc-memory@9b500000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9b500000 0x00 0x00300000>;
no-map;
};
mcu_r5fss0_core0_dma_memory_region: mcu-r5fss-dma-memory-region@9b800000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9b800000 0x00 0x100000>;
no-map;
};
mcu_r5fss0_core0_memory_region: mcu-r5fss-memory-region@9b900000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9b900000 0x00 0xf00000>;
no-map;
};
wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9c800000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9c800000 0x00 0x100000>;
no-map;
};
wkup_r5fss0_core0_memory_region: r5f-memory@9c900000 {
compatible = "shared-dma-pool";
reg = <0x00 0x9c900000 0x00 0x1e00000>;
no-map;
};
secure_tfa_ddr: tfa@9e780000 {
reg = <0x00 0x9e780000 0x00 0x80000>;
no-map;
};
secure_ddr: optee@9e800000 {
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
no-map;
};
rtos_framebuffer_memory_region: rtos-framebuffer-memory@93500000 {
reg = <0x00 0x93500000 0x00 0x08000000>;
no-map;
};
};
vmain_pd: regulator-0 {
/* TPS65988 PD CONTROLLER OUTPUT */
compatible = "regulator-fixed";
regulator-name = "vmain_pd";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
bootph-all;
};
vcc_5v0: regulator-1 {
/* Output of TPS630702RNMR */
compatible = "regulator-fixed";
regulator-name = "vcc_5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&vmain_pd>;
regulator-always-on;
regulator-boot-on;
bootph-all;
};
vdd_mmc1: regulator-2 {
/* TPS22918DBVR */
compatible = "regulator-fixed";
regulator-name = "vdd_mmc1";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
enable-active-high;
gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
bootph-all;
};
vddshv_sdio: regulator-3 {
compatible = "regulator-gpio";
regulator-name = "vddshv_sdio";
pinctrl-names = "default";
pinctrl-0 = <&vddshv_sdio_pins_default>;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
states = <1800000 0x0>,
<3300000 0x1>;
bootph-all;
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&usr_led_pins_default>;
led-0 {
label = "am62-sk:green:heartbeat";
gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
function = LED_FUNCTION_HEARTBEAT;
default-state = "off";
};
};
opp-table {
/* Requires VDD_CORE at 0v85 */
opp-1400000000 {
opp-hz = /bits/ 64 <1400000000>;
opp-supported-hw = <0x01 0x0004>;
clock-latency-ns = <6000000>;
};
};
tlv320_mclk: clk-0 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <12288000>;
};
codec_audio: sound {
compatible = "simple-audio-card";
simple-audio-card,name = "AM62x-SKEVM";
simple-audio-card,widgets =
"Headphone", "Headphone Jack",
"Line", "Line In",
"Microphone", "Microphone Jack";
simple-audio-card,routing =
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"LINE1L", "Line In",
"LINE1R", "Line In",
"MIC3R", "Microphone Jack",
"Microphone Jack", "Mic Bias";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&sound_master>;
simple-audio-card,frame-master = <&sound_master>;
simple-audio-card,bitclock-inversion;
simple-audio-card,cpu {
sound-dai = <&mcasp1>;
};
sound_master: simple-audio-card,codec {
sound-dai = <&tlv320aic3106>;
clocks = <&tlv320_mclk>;
};
};
hdmi0: connector-hdmi {
compatible = "hdmi-connector";
label = "hdmi";
type = "a";
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&sii9022_out>;
};
};
};
};
&main_gpio0 {
bootph-all;
};
&main_gpio1 {
bootph-all;
};
&main_pmx0 {
bootph-all;
main_i2c0_pins_default: main-i2c0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B25) I2C0_SCL */
AM62PX_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A24) I2C0_SDA */
>;
};
main_i2c1_pins_default: main-i2c1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (C24) I2C1_SCL */
AM62PX_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (B24) I2C1_SDA */
>;
bootph-all;
};
main_i2c2_pins_default: main-i2c2-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (T22) GPMC0_CSn2.I2C2_SCL */
AM62PX_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (U25) GPMC0_CSn3.I2C2_SDA */
>;
};
main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C22) UART0_RTSn.GPIO1_23 */
>;
};
main_mcasp1_pins_default: main-mcasp1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0090, PIN_INPUT, 2) /* (U24) GPMC0_BE0n_CLE.MCASP1_ACLKX */
AM62PX_IOPAD(0x0098, PIN_INPUT, 2) /* (AA24) GPMC0_WAIT0.MCASP1_AFSX */
AM62PX_IOPAD(0x008c, PIN_OUTPUT, 2) /* (T25) GPMC0_WEn.MCASP1_AXR0 */
AM62PX_IOPAD(0x0084, PIN_INPUT, 2) /* (R25) GPMC0_ADVn_ALE.MCASP1_AXR2 */
>;
};
main_mdio1_pins_default: main-mdio1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0160, PIN_OUTPUT, 0) /* (F17) MDIO0_MDC */
AM62PX_IOPAD(0x015c, PIN_INPUT, 0) /* (F16) MDIO0_MDIO */
>;
bootph-all;
};
main_mmc1_pins_default: main-mmc1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x023c, PIN_INPUT, 0) /* (H20) MMC1_CMD */
AM62PX_IOPAD(0x0234, PIN_OUTPUT, 0) /* (J24) MMC1_CLK */
AM62PX_IOPAD(0x0230, PIN_INPUT, 0) /* (H21) MMC1_DAT0 */
AM62PX_IOPAD(0x022c, PIN_INPUT_PULLUP, 0) /* (H23) MMC1_DAT1 */
AM62PX_IOPAD(0x0228, PIN_INPUT_PULLUP, 0) /* (H22) MMC1_DAT2 */
AM62PX_IOPAD(0x0224, PIN_INPUT_PULLUP, 0) /* (H25) MMC1_DAT3 */
AM62PX_IOPAD(0x0240, PIN_INPUT, 0) /* (D23) MMC1_SDCD */
>;
bootph-all;
};
main_mmc2_pins_default: main-mmc2-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0120, PIN_INPUT, 0) /* (K24) MMC2_CMD */
AM62PX_IOPAD(0x0118, PIN_OUTPUT, 0) /* (K21) MMC2_CLK */
AM62PX_IOPAD(0x011C, PIN_INPUT, 0) /* () MMC2_CLKLB */
AM62PX_IOPAD(0x0114, PIN_INPUT, 0) /* (K23) MMC2_DAT0 */
AM62PX_IOPAD(0x0110, PIN_INPUT_PULLUP, 0) /* (K22) MMC2_DAT1 */
AM62PX_IOPAD(0x010c, PIN_INPUT_PULLUP, 0) /* (L20) MMC2_DAT2 */
AM62PX_IOPAD(0x0108, PIN_INPUT_PULLUP, 0) /* (L21) MMC2_DAT3 */
>;
bootph-all;
};
main_rgmii1_pins_default: main-rgmii1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x014c, PIN_INPUT, 0) /* (B15) RGMII1_RD0 */
AM62PX_IOPAD(0x0150, PIN_INPUT, 0) /* (B16) RGMII1_RD1 */
AM62PX_IOPAD(0x0154, PIN_INPUT, 0) /* (A14) RGMII1_RD2 */
AM62PX_IOPAD(0x0158, PIN_INPUT, 0) /* (B14) RGMII1_RD3 */
AM62PX_IOPAD(0x0148, PIN_INPUT, 0) /* (A16) RGMII1_RXC */
AM62PX_IOPAD(0x0144, PIN_INPUT, 0) /* (A15) RGMII1_RX_CTL */
AM62PX_IOPAD(0x0134, PIN_INPUT, 0) /* (A18) RGMII1_TD0 */
AM62PX_IOPAD(0x0138, PIN_INPUT, 0) /* (C17) RGMII1_TD1 */
AM62PX_IOPAD(0x013c, PIN_INPUT, 0) /* (A17) RGMII1_TD2 */
AM62PX_IOPAD(0x0140, PIN_INPUT, 0) /* (C16) RGMII1_TD3 */
AM62PX_IOPAD(0x0130, PIN_INPUT, 0) /* (B17) RGMII1_TXC */
AM62PX_IOPAD(0x012c, PIN_INPUT, 0) /* (B18) RGMII1_TX_CTL */
>;
bootph-all;
};
main_rgmii2_pins_default: main-rgmii2-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0184, PIN_INPUT, 0) /* (E19) RGMII2_RD0 */
AM62PX_IOPAD(0x0188, PIN_INPUT, 0) /* (E16) RGMII2_RD1 */
AM62PX_IOPAD(0x018c, PIN_INPUT, 0) /* (E17) RGMII2_RD2 */
AM62PX_IOPAD(0x0190, PIN_INPUT, 0) /* (C19) RGMII2_RD3 */
AM62PX_IOPAD(0x0180, PIN_INPUT, 0) /* (D19) RGMII2_RXC */
AM62PX_IOPAD(0x017c, PIN_INPUT, 0) /* (F19) RGMII2_RX_CTL */
AM62PX_IOPAD(0x016c, PIN_INPUT, 0) /* (B19) RGMII2_TD0 */
AM62PX_IOPAD(0x0170, PIN_INPUT, 0) /* (A21) RGMII2_TD1 */
AM62PX_IOPAD(0x0174, PIN_INPUT, 0) /* (D17) RGMII2_TD2 */
AM62PX_IOPAD(0x0178, PIN_INPUT, 0) /* (A19) RGMII2_TD3 */
AM62PX_IOPAD(0x0168, PIN_INPUT, 0) /* (D16) RGMII2_TXC */
AM62PX_IOPAD(0x0164, PIN_INPUT, 0) /* (A20) RGMII2_TX_CTL */
>;
bootph-all;
};
main_uart0_pins_default: main-uart0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x1c8, PIN_INPUT, 0) /* (A22) UART0_RXD */
AM62PX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (B22) UART0_TXD */
>;
bootph-all;
};
main_uart1_pins_default: main-uart1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0194, PIN_INPUT, 2) /* (D25) MCASP0_AXR3.UART1_CTSn */
AM62PX_IOPAD(0x0198, PIN_OUTPUT, 2) /* (E25) MCASP0_AXR2.UART1_RTSn */
AM62PX_IOPAD(0x01ac, PIN_INPUT, 2) /* (G23) MCASP0_AFSR.UART1_RXD */
AM62PX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (G20) MCASP0_ACLKR.UART1_TXD */
>;
bootph-all;
};
main_usb1_pins_default: main-usb1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0258, PIN_INPUT | PIN_DS_PULLUD_ENABLE | PIN_DS_PULL_UP, 0) /* (G21) USB1_DRVVBUS */
>;
};
main_wlirq_pins_default: main-wlirq-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */
>;
};
ospi0_pins_default: ospi0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0000, PIN_OUTPUT, 0) /* (P23) OSPI0_CLK */
AM62PX_IOPAD(0x002c, PIN_OUTPUT, 0) /* (M25) OSPI0_CSn0 */
AM62PX_IOPAD(0x000c, PIN_INPUT, 0) /* (L25) OSPI0_D0 */
AM62PX_IOPAD(0x0010, PIN_INPUT, 0) /* (N24) OSPI0_D1 */
AM62PX_IOPAD(0x0014, PIN_INPUT, 0) /* (N25) OSPI0_D2 */
AM62PX_IOPAD(0x0018, PIN_INPUT, 0) /* (M24) OSPI0_D3 */
AM62PX_IOPAD(0x001c, PIN_INPUT, 0) /* (N21) OSPI0_D4 */
AM62PX_IOPAD(0x0020, PIN_INPUT, 0) /* (N22) OSPI0_D5 */
AM62PX_IOPAD(0x0024, PIN_INPUT, 0) /* (P21) OSPI0_D6 */
AM62PX_IOPAD(0x0028, PIN_INPUT, 0) /* (N20) OSPI0_D7 */
AM62PX_IOPAD(0x0008, PIN_INPUT, 0) /* (P22) OSPI0_DQS */
>;
bootph-all;
};
usr_led_pins_default: usr-led-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0244, PIN_INPUT, 7) /* (D24) MMC1_SDWP.GPIO1_49 */
>;
};
vddshv_sdio_pins_default: vddshvr-sdio-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x007c, PIN_INPUT, 7) /* (Y25) GPMC0_CLK.GPIO0_31 */
>;
bootph-all;
};
wlan_en_pins_default: wlan-en-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0124, PIN_INPUT, 7) /* (J25) MMC2_SDCD.GPIO0_71 */
>;
};
main_dpi_pins_default: main-dpi-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0100, PIN_OUTPUT, 0) /* (W20) VOUT0_VSYNC */
AM62PX_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AC20) VOUT0_HSYNC */
AM62PX_IOPAD(0x0104, PIN_OUTPUT, 0) /* (Y21) VOUT0_PCLK */
AM62PX_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (W21) VOUT0_DE */
AM62PX_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (AE24) VOUT0_DATA0 */
AM62PX_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (W23) VOUT0_DATA1 */
AM62PX_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA2 */
AM62PX_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA3 */
AM62PX_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (AB23) VOUT0_DATA4 */
AM62PX_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (AD23) VOUT0_DATA5 */
AM62PX_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (AC23) VOUT0_DATA6 */
AM62PX_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AE23) VOUT0_DATA7 */
AM62PX_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (AE22) VOUT0_DATA8 */
AM62PX_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (AC22) VOUT0_DATA9 */
AM62PX_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (W22) VOUT0_DATA10 */
AM62PX_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AE21) VOUT0_DATA11 */
AM62PX_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AD21) VOUT0_DATA12 */
AM62PX_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AC21) VOUT0_DATA13 */
AM62PX_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (AA20) VOUT0_DATA14 */
AM62PX_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (Y20) VOUT0_DATA15 */
AM62PX_IOPAD(0x005c, PIN_OUTPUT, 1) /* (AC25) GPMC0_AD8.VOUT0_DATA16 */
AM62PX_IOPAD(0x0060, PIN_OUTPUT, 1) /* (AB25) GPMC0_AD9.VOUT0_DATA17 */
AM62PX_IOPAD(0x0064, PIN_OUTPUT, 1) /* (AA25) GPMC0_AD10.VOUT0_DATA18 */
AM62PX_IOPAD(0x0068, PIN_OUTPUT, 1) /* (W24) GPMC0_AD11.VOUT0_DATA19 */
AM62PX_IOPAD(0x006c, PIN_OUTPUT, 1) /* (Y24) GPMC0_AD12.VOUT0_DATA20 */
AM62PX_IOPAD(0x0070, PIN_OUTPUT, 1) /* (AD25) GPMC0_AD13.VOUT0_DATA21 */
AM62PX_IOPAD(0x0074, PIN_OUTPUT, 1) /* (AB24) GPMC0_AD14.VOUT0_DATA22 */
AM62PX_IOPAD(0x0078, PIN_OUTPUT, 1) /* (AC24) GPMC0_AD15.VOUT0_DATA23 */
AM62PX_IOPAD(0x009c, PIN_OUTPUT, 1) /* (AD24) GPMC0_WAIT1.VOUT0_EXTPCLKIN */
>;
};
main_epwm0_pins_default: main_epwm0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01b4, PIN_OUTPUT, 2) /* (D20) SPI0_CS0.EHRPWM0_A */
AM62PX_IOPAD(0x01b8, PIN_OUTPUT, 2) /* (E20) SPI0_CS1.EHRPWM0_B */
>;
};
main_epwm1_pins_default: main_epwm1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01bc, PIN_OUTPUT, 2) /* (B21) SPI0_CLK.EHRPWM1_A */
AM62PX_IOPAD(0x01c0, PIN_OUTPUT, 2) /* (B20) SPI0_D0.EHRPWM1_B */
>;
};
main_ecap1_pins_default: main_ecap1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x019c, PIN_OUTPUT, 2) /* (E24) MCASP0_AXR1.ECAP1_IN_APWM_OUT */
>;
};
main_ecap2_pins_default: main-ecap2-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x01a4, PIN_OUTPUT, 2) /* (F24) MCASP0_ACLKX.ECAP2_IN_APWM_OUT */
>;
};
};
&main_i2c0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c0_pins_default>;
clock-frequency = <400000>;
typec_pd0: usb-power-controller@3f {
compatible = "ti,tps6598x";
reg = <0x3f>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
self-powered;
data-role = "dual";
power-role = "sink";
port {
usb_con_hs: endpoint {
remote-endpoint = <&usb0_hs_ep>;
};
};
};
};
};
&main_i2c1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c1_pins_default>;
clock-frequency = <100000>;
bootph-all;
tlv320aic3106: audio-codec@1b {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3106";
reg = <0x1b>;
ai3x-micbias-vg = <1>; /* 2.0V */
};
exp1: gpio@22 {
compatible = "ti,tca6424";
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "OLDI_INT#", "x8_NAND_DETECT",
"UART1_FET_SEL", "MMC1_SD_EN",
"VPP_EN", "EXP_PS_3V3_EN",
"UART1_FET_BUF_EN", "EXP_HAT_DETECT",
"DSI_GPIO0", "DSI_GPIO1",
"OLDI_EDID", "BT_UART_WAKE_SOC_3V3",
"USB_TYPEA_OC_INDICATION", "CSI_GPIO0",
"CSI_GPIO1", "WLAN_ALERTn",
"HDMI_INTn", "TEST_GPIO2",
"MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
"MCASP1_FET_SEL", "DSI_EDID",
"PD_I2C_IRQ", "IO_EXP_TEST_LED";
interrupt-parent = <&main_gpio1>;
interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
interrupt-controller;
#interrupt-cells = <2>;
pinctrl-names = "default";
pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
bootph-all;
};
exp2: gpio@23 {
compatible = "ti,tca6424";
reg = <0x23>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "BT_EN_SOC", "EXP_PS_5V0_EN",
"", "",
"", "",
"", "",
"WL_LT_EN", "",
"TP3", "TP6",
"TP4", "TP7",
"TP5", "TP8",
"SoC_I2C2_MCAN_SEL", "GPIO_HDMI_RSTn",
"GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
"GPIO_OLDI_RSTn", "GPIO_AUD_RSTn",
"GPIO_eMMC_RSTn", "SoC_WLAN_SDIO_RST";
};
sii9022: bridge-hdmi@3b {
compatible = "sil,sii9022";
reg = <0x3b>;
interrupt-parent = <&exp1>;
interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
#sound-dai-cells = <0>;
sil,i2s-data-lanes = < 0 >;
hdmi_tx_ports: ports {
#address-cells = <1>;
#size-cells = <0>;
/*
* HDMI can be serviced with 3 potential VPs -
* (DSS0 VP1 / DSS1 VP0 / DSS1 VP1).
* For now, we will service it with DSS0 VP1.
*/
port@0 {
reg = <0>;
sii9022_in: endpoint {
remote-endpoint = <&dss0_dpi1_out>;
};
};
port@1 {
reg = <1>;
sii9022_out: endpoint {
remote-endpoint = <&hdmi_connector_in>;
};
};
};
};
};
&main_i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c2_pins_default>;
clock-frequency = <400000>;
};
&sdhci0 {
status = "okay";
ti,driver-strength-ohm = <50>;
disable-wp;
bootph-all;
};
&sdhci1 {
/* SD/MMC */
status = "disabled";
vmmc-supply = <&vdd_mmc1>;
vqmmc-supply = <&vddshv_sdio>;
pinctrl-names = "default";
pinctrl-0 = <&main_mmc1_pins_default>;
disable-wp;
bootph-all;
};
&cpsw3g {
pinctrl-names = "default";
pinctrl-0 = <&main_rgmii1_pins_default>,
<&main_rgmii2_pins_default>;
status = "okay";
};
&cpsw_port1 {
phy-mode = "rgmii-rxid";
phy-handle = <&cpsw3g_phy0>;
status = "okay";
};
&cpsw_port2 {
phy-mode = "rgmii-rxid";
phy-handle = <&cpsw3g_phy1>;
status = "okay";
};
&cpsw3g_mdio {
pinctrl-names = "default";
pinctrl-0 = <&main_mdio1_pins_default>;
status = "okay";
cpsw3g_phy0: ethernet-phy@0 {
reg = <0>;
bootph-all;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,min-output-impedance;
};
cpsw3g_phy1: ethernet-phy@1 {
reg = <1>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,min-output-impedance;
};
};
&usbss0 {
status = "okay";
ti,vbus-divider;
};
&usbss1 {
status = "okay";
ti,vbus-divider;
};
&usb0 {
usb-role-switch;
port {
usb0_hs_ep: endpoint {
remote-endpoint = <&usb_con_hs>;
};
};
};
&usb1 {
dr_mode = "host";
pinctrl-names = "default";
pinctrl-0 = <&main_usb1_pins_default>;
};
&mcasp1 {
status = "okay";
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp1_pins_default>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
1 0 2 0
0 0 0 0
0 0 0 0
0 0 0 0
>;
};
&fss {
bootph-all;
};
&ospi0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&ospi0_pins_default>;
bootph-all;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0x0>;
spi-tx-bus-width = <8>;
spi-rx-bus-width = <8>;
spi-max-frequency = <25000000>;
cdns,tshsl-ns = <60>;
cdns,tsd2d-ns = <60>;
cdns,tchsh-ns = <60>;
cdns,tslch-ns = <60>;
cdns,read-delay = <4>;
cdns,phy-mode;
bootph-all;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
bootph-all;
partition@0 {
label = "sbl_ospi_linux_stage1.release.hs_fs.tiimage";
reg = <0x00 0x80000>;
};
partition@80000 {
label = "wkup-r5_stage2.release.appimage.hs_fs";
reg = <0x80000 0xa00000>;
};
partition@100000 {
label = "hsm_a.appimage.hs_fs";
reg = <0xa80000 0x40000>;
};
partition@140000 {
label = "mcu-r5_a.release.appimage.hs_fs";
reg = <0xac0000 0x200000>;
};
partition@340000 {
label = "linux.falcon_a.appimage.hs_fs";
reg = <0xcc0000 0x1100000>;
};
partition@1440000 {
label = "hsm_b.appimage.hs_fs";
reg = <0x1dc0000 0x40000>;
};
partition@1480000 {
label = "mcu-r5_b.release.appimage.hs_fs";
reg = <0x1e00000 0x200000>;
};
partition@1680000 {
label = "linux.falcon_b.appimage.hs_fs";
reg = <0x2000000 0x1100000>;
};
partition@2780000 {
label = "slot_partition";
reg = <0x3100000 0x40000>;
};
partition@27c0000 {
label = "backup1";
reg = <0x3140000 0xa00000>;
};
partition@3fc0000 {
label = "ospi_phy_pattern";
reg = <0x3fc0000 0x40000>;
bootph-all;
};
};
};
};
&mailbox0_cluster0 {
status = "okay";
mbox_r5_0: mbox-r5-0 {
ti,mbox-rx = <0 0 0>;
ti,mbox-tx = <1 0 0>;
};
};
&mailbox0_cluster1 {
status = "okay";
mbox_mcu_r5_0: mbox-mcu-r5-0 {
ti,mbox-rx = <0 0 0>;
ti,mbox-tx = <1 0 0>;
};
};
&wkup_r5fss0 {
status = "okay";
};
&wkup_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_r5_0>;
memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
<&wkup_r5fss0_core0_memory_region>;
};
&mcu_r5fss0 {
status = "okay";
};
&mcu_r5fss0_core0 {
mboxes = <&mailbox0_cluster1 &mbox_mcu_r5_0>;
memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
<&mcu_r5fss0_core0_memory_region>;
};
&main_uart0 {
pinctrl-names = "default";
pinctrl-0 = <&main_uart0_pins_default>;
interrupts-extended = <&gic500 GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
<&main_pmx0 0x1c8>; /* (D14) UART0_RXD PADCONFIG114 */
interrupt-names = "irq", "wakeup";
status = "okay";
bootph-all;
};
&main_uart1 {
pinctrl-names = "default";
pinctrl-0 = <&main_uart1_pins_default>;
/* Main UART1 is used by TIFS firmware */
status = "reserved";
bootph-all;
};
&mcu_pmx0 {
bootph-all;
wkup_uart0_pins_default: wkup-uart0-default-pins {
pinctrl-single,pins = <
AM62PX_MCU_IOPAD(0x024, PIN_INPUT, 0) /* (D8) WKUP_UART0_RXD */
AM62PX_MCU_IOPAD(0x028, PIN_OUTPUT, 0) /* (D7) WKUP_UART0_TXD */
>;
bootph-all;
};
};
&wkup_uart0 {
/* WKUP UART0 is used by DM firmware */
pinctrl-names = "default";
pinctrl-0 = <&wkup_uart0_pins_default>;
status = "reserved";
bootph-all;
};
/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
&mcu_gpio0 {
status = "reserved";
};
&mcu_gpio_intr {
status = "reserved";
};
&dss_oldi_io_ctrl {
bootph-all;
};
&dss0 {
ti,dss-shared-mode;
ti,dss-shared-mode-vp = "vp1";
ti,dss-shared-mode-vp-owned = <0>;
ti,dss-shared-mode-common = "common1";
ti,dss-shared-mode-planes = "vid";
ti,dss-shared-mode-plane-zorder = <0>;
interrupt-parent = <&gic500>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
&dss0 {
bootph-all;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_dpi_pins_default>;
};
&dss0_ports {
/* DSS0-VP2: DPI/HDMI Output */
hdmi0_dss: port@1 {
reg = <1>;
dss0_dpi1_out: endpoint {
remote-endpoint = <&sii9022_in>;
};
};
};
&epwm0 {
/* Pin 24/26 of J4 */
pinctrl-names = "default";
pinctrl-0 = <&main_epwm0_pins_default>;
status = "okay";
};
&epwm1 {
/* Pin 23/19 of J4 */
pinctrl-names = "default";
pinctrl-0 = <&main_epwm1_pins_default>;
status = "okay";
};
&ecap1 {
/* ECAP1 in APWM mode */
/* Pin 36 of J4 */
pinctrl-names = "default";
pinctrl-0 = <&main_ecap1_pins_default>;
status = "okay";
};
&ecap2 {
/* ECAP2 in APWM mode */
/* Pin 11 of J4 */
pinctrl-names = "default";
pinctrl-0 = <&main_ecap2_pins_default>;
status = "okay";
};
&{/} {
display {
compatible = "microtips,mf-101hiebcaf0", "panel-simple";
/*
* Note that the OLDI TX 0 transmits the odd set of pixels
* while the OLDI TX 1 transmits the even set. This is a
* fixed configuration in the IP integration and is not
* changeable. The properties, "dual-lvds-odd-pixels" and
* "dual-lvds-even-pixels" have been used to merely
* identify if a Dual Link configuration is required.
* Swapping them will cause an error in the dss oldi driver.
*/
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dual-lvds-odd-pixels;
lcd_in0: endpoint {
remote-endpoint = <&oldi0_dss0_out>;
};
};
port@1 {
reg = <1>;
dual-lvds-even-pixels;
lcd_in1: endpoint {
remote-endpoint = <&oldi1_dss0_out>;
};
};
};
};
};
&dss0 {
status = "okay";
};
&oldi0_dss0 {
status = "okay";
ti,companion-oldi = <&oldi1_dss0>;
};
&oldi1_dss0 {
status = "okay";
ti,secondary-oldi;
};
&oldi0_dss0_ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
oldi0_dss0_in: endpoint {
remote-endpoint = <&dss0_dpi0_out0>;
};
};
port@1 {
reg = <1>;
oldi0_dss0_out: endpoint {
remote-endpoint = <&lcd_in0>;
};
};
};
&oldi1_dss0_ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
oldi1_dss0_in: endpoint {
remote-endpoint = <&dss0_dpi0_out1>;
};
};
port@1 {
reg = <1>;
oldi1_dss0_out: endpoint {
remote-endpoint = <&lcd_in1>;
};
};
};
&dss0_ports {
#address-cells = <1>;
#size-cells = <0>;
/* VP1: Output to OLDI */
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
dss0_dpi0_out0: endpoint@0 {
reg = <0>;
remote-endpoint = <&oldi0_dss0_in>;
};
dss0_dpi0_out1: endpoint@1 {
reg = <1>;
remote-endpoint = <&oldi1_dss0_in>;
};
};
};
&main_i2c0 {
#address-cells = <1>;
#size-cells = <0>;
touchscreen@41 {
compatible = "ilitek,ili251x";
reg = <0x41>;
interrupt-parent = <&exp1>;
interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&exp2 20 GPIO_ACTIVE_LOW>;
};
};
Best Regards
SUI
Hi Pengfei,
Give me couple of days to replicate the setup. If you don't hear back by Monday of next week, please ping again.
Best Regards
Suren