This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM623: Memory can't be configured to 4GB from device-tree

Part Number: AM623
Other Parts Discussed in Thread: AM625, TMP100

Hello,

We have a design with 4GB, I configure the memory in the device tree as followed:

memory@80000000 {
device_type = "memory";
/* 4G RAM */
reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
<0x00000008 0x80000000 0x00000000 0x80000000>;
};

But the memory is limited to 2GB:

root@am62xx-evm:~# cat /proc/meminfo
MemTotal: 1982868 kB
MemFree: 1688468 kB
MemAvailable: 1775140 kB

Could you help me to make the 4GB of memory available in Linux.

Regards,

Alexis.

  • Hi Alexis,

    Have you verified that all DDR-related modifications have been made into the relevant dts/dtsi files? Please see our Linux porting guide and let us know.


    Best regards,
    François.

  • Hi Francois,

    I done the modification of the memory in the device tree file k3-am62x-sk-common.dtsi in the kernel tree.

    So I didn't try in u-boot, because the Linux device tree is loaded from u-boot in memory before starting Linux kernel, so the u-boot device tree is overwritten by the Linux device tree.

    does it make sens, or do I also modify the u-boot device tree ?

    Regards,

    Alexis.

  • Hi Alexis,

    Indeed that may not be mandatory, however this could have allowed you to check the amount of DDR that's recognized at U-Boot level. You may want to give it a try while I reassign this thread to an SDK expert.


    Best regards,
    François.

  • Hi Alexis,

    DDR is initialized in U-Boot (R5 SPL), so without proper modification in U-Boot, kernel is unable to recognize the DDR size.

    I am routing your query to our U-Boot expert for comments.

  • Thank you, Bin.

    : Our Linux porting guide should help you there in identifying the proper files.


    Best regards,
    François.

  • Hi,

    You would have to modify the memory node in k3-am62x-sk-common.dtsi, where U-boot is configuring memory space for Linux kernel. Not the k3-am62x-r5-sk-common.dtsi.

    ~ Judith

  • Hi Judith,

    I added the following memory device node in the u-boot device tree k3-am62x-sk-common.dtsi :

    memory@80000000 {
    device_type = "memory";
    #address-cells = <2>;
    #size-cells = <2>;
    /* 4G RAM */
    reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    <0x00000001 0x00000000 0x00000000 0x80000000>;
    };

    I have done the same modification in the Linux kernel device tree.

    Here is the output of bdinfo under the u-boot console:

    => bdinfo
    boot_params = 0x0000000000000000
    DRAM bank   = 0x0000000000000000
    -> start    = 0x0000000080000000
    -> size     = 0x0000000080000000
    DRAM bank   = 0x0000000000000001
    -> start    = 0x0000000100000000
    -> size     = 0x0000000080000000
    flashstart  = 0x0000000000000000
    flashsize   = 0x0000000000000000
    flashoffset = 0x0000000000000000
    baudrate    = 115200 bps
    relocaddr   = 0x00000000fff1c000
    reloc off   = 0x000000007f71c000
    Build       = 64-bit
    current eth = ethernet@8000000port@1
    ethaddr     = 34:08:e1:87:76:ad
    IP addr     = 10.0.0.5
    fdt_blob    = 0x00000000f7ef2960
    new_fdt     = 0x00000000f7ef2960
    fdt_size    = 0x0000000000009480
    multi_dtb_fit= 0x0000000000000000
    lmb_dump_all:
        memory.cnt             = 0x1
        memory.size            = 0x0
        memory.reg[0x0].base   = 0x80000000
                       .size   = 0x100000000

        reserved.cnt           = 0x3
        reserved.size          = 0x0
        reserved.reg[0x0].base = 0x9db00000
                         .size = 0xc00000
        reserved.reg[0x1].base = 0x9e780000
                         .size = 0x1880000
        reserved.reg[0x2].base = 0xf7ef1560
                         .size = 0x810eaa0
    arch_number = 0x0000000000000000
    TLB addr    = 0x00000000ffff0000
    irq_sp      = 0x00000000f7ef2950
    sp start    = 0x00000000f7ef2950
    Early malloc usage: 2f30 / 8000

    I try to write and read value in the memory at the end of the 4G of RAM, and it is successful using mm and md commands.

    But the kernel failed to start due to an exception in EL3 :

    Starting kernel ...

    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.140-g5e63ae91b2 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (ar3
    [    0.000000] Machine model: Texas Instruments AM625 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
    [    0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 13 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009d900000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9d900000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 13 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@9da00000, compatible id shared-dma-pool
    Unhandled Exception in EL3.
    x30            = 0x000000009e780f88
    x0             = 0x000000017ffff003
    x1             = 0xffff80003fffffff
    x2             = 0xffff800010a7ffff
    x3             = 0x0000000000000037
    x4             = 0x000fffffdfffe437
    x5             = 0xffff800011171000
    x6             = 0x000000000000003f
    x7             = 0x0000000000000000
    x8             = 0xfffffdfffe43a000
    x9             = 0x0000000000000000
    x10            = 0x000000009e780000
    x11            = 0x00000000ffffffff
    x12            = 0x0000000000000010
    x13            = 0xffff800011061eb0
    x14            = 0x0000000000000010
    x15            = 0xffff800011061eb0
    x16            = 0x0000000000001c00
    x17            = 0x0000000000001400
    x18            = 0x0000000000000010
    x19            = 0xffff800040000000
    x20            = 0xffff800010e97178
    x21            = 0x0000000082000000
    x22            = 0x0000000000a80000
    x23            = 0x0000000000000040
    x24            = 0xffff800010000000
    x25            = 0xfffffdfffe437000
    x26            = 0xfffffdfffe436800
    x27            = 0xffff800010000000
    x28            = 0xffff800010000000
    x29            = 0xffff800011053d30
    scr_el3        = 0x000000000000073d
    sctlr_el3      = 0x0000000030cd183f
    cptr_el3       = 0x0000000000000000
    tcr_el3        = 0x0000000080803520
    daif           = 0x00000000000002c0
    mair_el3       = 0x00000000004404ff
    spsr_el3       = 0x0000000080000085
    elr_el3        = 0xffff8000100368b0
    ttbr0_el3      = 0x000000009e7910c0
    esr_el3        = 0x0000000092000010
    far_el3        = 0xfffffdfffe437000
    spsr_el1       = 0x0000000000000000
    elr_el1        = 0x0000000000000000
    spsr_abt       = 0x0000000000000000
    spsr_und       = 0x0000000000000000
    spsr_irq       = 0x0000000000000000
    spsr_fiq       = 0x0000000000000000
    sctlr_el1      = 0x0000000034d4d91d
    actlr_el1      = 0x0000000000000000
    cpacr_el1      = 0x0000000000300000
    csselr_el1     = 0x0000000000000000
    sp_el1         = 0xffff800011053d30
    esr_el1        = 0x0000000000000000
    ttbr0_el1      = 0x0000000082e8b000
    ttbr1_el1      = 0x00000000831da000
    mair_el1       = 0x000c0400bb44ffff
    amair_el1      = 0x0000000000000000
    tcr_el1        = 0x00000032b5d03590
    tpidr_el1      = 0x0000000000000000
    tpidr_el0      = 0x0000000000000000
    tpidrro_el0    = 0x0000000000000000
    par_el1        = 0x0000000000000000
    mpidr_el1      = 0x0000000080000000
    afsr0_el1      = 0x0000000000000000
    afsr1_el1      = 0x0000000000000000
    contextidr_el1 = 0x0000000000000000
    vbar_el1       = 0xffff800010010800
    cntp_ctl_el0   = 0x0000000000000000
    cntp_cval_el0  = 0x0000000000000000
    cntv_ctl_el0   = 0x0000000000000000
    cntv_cval_el0  = 0x0000000000000000
    cntkctl_el1    = 0x0000000000000000
    sp_el0         = 0xffff800011061980
    isr_el1        = 0x0000000000000000
    dacr32_el2     = 0x0000000000000000
    ifsr32_el2     = 0x0000000000000000
    cpuectlr_el1   = 0x0000000000000040
    cpumerrsr_el1  = 0x0000000009100465
    l2merrsr_el1   = 0x00000000110088a0
    cpuactlr_el1   = 0x00001000090ca000

    Could tell me what is this error ?

    How could I fix it ?

    Regards,

    Alexis.

  • Hi Alexis,

    One thought: you may have the configure the A53 cores MMU to accept 4GB or DDR space.It is configured in U-Boot, possibly in arch/arm/mach-k3/arm64-mmu.c if that's the same file structure as for the Jacinto 7 SDK.


    Best regards,
    François.

  • Hi,

    As describe in the TRM it seems that the memory is split in 2 area.

    0x80000000 - 0x9FFFFFFF

    0x880000000 - 0x900000000

    I modified the device tree but Linunx still not boot.

    memory@80000000 {
    device_type = "memory";
    #address-cells = <2>;
    #size-cells = <2>;
    /* 4G RAM */
    reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    <0x00000008 0x80000000 0x00000000 0x80000000>;
    };

    I have no idea of the probleme.

    Could you confirm the device tree configuration.

    Regards,

    Alexis.

  • Hi,

    Can you please use:

    reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    <0x00000008 0x80000000 0x00000000 0x80000000>;

    This second 2GB of memory space should be at address 88 zillion. Based on the comment above, you are currently accessing address 1 zillion and there is something in that memory space, that is why your read/writes are generating an exception level 3 error.

    ~ Judith

  • Hi Judith,

    I configure the devices tree of u-boot and Linux with the line below:

    reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    <0x00000008 0x80000000 0x00000000 0x80000000>;

    u-boot : am62xx_evm-linux/u-boot-ti-staging/1_2021.01+gitAUTOINC+2dd2e1d366-r33/git/arch/arm/dts/k3-am62x-sk-common.dts

    kernel : am62xx-evm/kernel-source/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi

    In u-boot:

    => bdinfo

    lmb_dump_all:
        memory.cnt             = 0x2
        memory.size            = 0x0
        memory.reg[0x0].base   = 0x80000000
                       .size   = 0x80000000
        memory.reg[0x1].base   = 0x880000000
                       .size   = 0x80000000

    The kernel stop in the init process and memory is only 2G :

    [   11.455259] Freeing unused kernel memory: 1792K
    [   11.455259] Freeing unused kernel memory: 1792K
    [   11.480117] Run /sbin/init as init process
    [   11.480117] Run /sbin/init as init process

    The kernel device tree is as follow:

    memory@80000000 {                                                                                                                                                          
             device_type = "memory";                                                                               
             #address-cells = <2>;                                                                                 
             #size-cells = <2>;                                                                                    
             /* 4G RAM */                                                                                          
             reg = <0x00000000 0x80000000 0x00000000 0x80000000>,                                                  
                 <0x00000008 0x80000000 0x00000000 0x80000000>;                                                    
    };                                                                                                                                                                         

    Could you clarify why the device tree modification is not took in account by the kernel ?

    Should help to fix the issue.

    Regards,

    Alexis.

  • Hi Judith,

    I done 2 tests with two size 512 MB and 1G for the high memory space 0x880000000 :

    I have 2 kernel traces.

    For 512MB (0x20000000) :

    Starting kernel ...

    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.140-g5e63ae91b2 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU To3
    [    0.000000] Machine model: Texas Instruments AM625 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
    [    0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 13 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009d900000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9d900000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 13 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@9da00000, compatible id shared-dma-pool
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   [mem 0x0000000100000000-0x000000089fffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x000000009c7fffff]
    [    0.000000]   node   0: [mem 0x000000009c800000-0x000000009e6fffff]
    [    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
    [    0.000000]   node   0: [mem 0x000000009e780000-0x000000009fffffff]
    [    0.000000]   node   0: [mem 0x00000000a0000000-0x00000000ffffffff]
    [    0.000000]   node   0: [mem 0x0000000880000000-0x000000089fffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000089fffffff]
    [    0.000000] cma: Reserved 512 MiB at 0x00000000e000000

    For 1 GB (0x40000000):

    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.140-g5e63ae91b2 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU To3
    [    0.000000] Machine model: Texas Instruments AM625 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
    [    0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 13 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009d900000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9d900000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 13 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@9da00000, compatible id shared-dma-pool
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   [mem 0x0000000100000000-0x00000008bfffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x000000009c7fffff]
    [    0.000000]   node   0: [mem 0x000000009c800000-0x000000009e6fffff]
    [    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
    [    0.000000]   node   0: [mem 0x000000009e780000-0x000000009fffffff]
    [    0.000000]   node   0: [mem 0x00000000a0000000-0x00000000ffffffff]
    [    0.000000]   node   0: [mem 0x0000000880000000-0x00000008bfffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008bfffffff]
    [    0.000000] cma: Reserved 512 MiB at 0x00000000e0000000
    [    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.2
    [    0.000000] percpu: Embedded 22 pages/cpu s50072 r8192 d31848 u90112
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 774144
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dek
    [    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] software IO TLB: mapped [mem 0x00000000dc000000-0x00000000e0000000] (64MB)
    [    0.000000] Memory: 2417940K/3145728K available (10688K kernel code, 1146K rwdata, 4124K rodata, 179)
    [    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=256 to nr_cpu_ids=4.
    [    0.000000]  Trampoline 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] 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] GICv3: Distributor has no Range Selector support
    [    0.000000] GICv3: 16 PPIs implemented
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
    [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @880800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x0000000880040000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000880050000
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idles
    [    0.000004] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008516] Console: colour dummy device 80x25
    [    0.013614] printk: console [tty0] enabled
    [    0.017852] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMI)
    [    0.028544] pid_max: default: 32768 minimum: 301
    [    0.033358] LSM: Security Framework initializing
    [    0.038167] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.045772] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.055516] rcu: Hierarchical SRCU implementation.
    [    0.060717] Platform MSI: msi-controller@1820000 domain created
    [    0.067008] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.076255] EFI services will not be available.
    [    0.081172] smp: Bringing up secondary CPUs ...
    [    0.086465] Detected VIPT I-cache on CPU1
    [    0.086502] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [    0.086517] GICv3: CPU1: using allocated LPI pending table @0x0000000880060000
    [    0.086578] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.087246] Detected VIPT I-cache on CPU2
    [    0.087272] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
    [    0.087285] GICv3: CPU2: using allocated LPI pending table @0x0000000880070000
    [    0.087322] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [    0.087943] Detected VIPT I-cache on CPU3
    [    0.087965] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
    [    0.087977] GICv3: CPU3: using allocated LPI pending table @0x0000000880080000
    [    0.088011] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [    0.088082] smp: Brought up 1 node, 4 CPUs
    [    0.167898] SMP: Total of 4 processors activated.
    [    0.172716] CPU features: detected: 32-bit EL0 Support
    [    0.177994] CPU features: detected: CRC32 instructions
    [    0.190521] CPU: All CPU(s) started at EL2
    [    0.194737] alternatives: patching kernel code
    [    0.200441] devtmpfs: initialized
    [    0.210040] KASLR disabled due to lack of seed
    [    0.214823] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 764504178510s
    [    0.224810] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.247205] pinctrl core: initialized pinctrl subsystem
    [    0.253268] DMI not present or invalid.
    [    0.257897] NET: Registered protocol family 16
    [    0.263812] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
    [    0.271154] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.279278] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.287933] thermal_sys: Registered thermal governor 'step_wise'
    [    0.287938] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.294679] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.308409] ASID allocator initialised with 65536 entries
    [    0.334829] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.341737] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.348609] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.355468] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.363457] cryptd: max_cpu_qlen set to 1000
    [    0.370296] fbcon: Taking over console
    [    0.374685] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected
    [    0.383703] vcc_5v0: supplied by vmain_pd
    [    0.388168] vcc_3v3_sys: supplied by vmain_pd
    [    0.393035] vcc_1v8: supplied by vcc_3v3_sys
    [    0.398198] iommu: Default domain type: Translated
    [    0.403574] SCSI subsystem initialized
    [    0.407861] mc: Linux media interface: v0.10
    [    0.412261] videodev: Linux video capture interface: v2.00
    [    0.417942] pps_core: LinuxPPS API ver. 1 registered
    [    0.423024] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.432384] PTP clock support registered
    [    0.436428] EDAC MC: Ver: 3.0.0
    [    0.440295] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100
    [    0.447410] FPGA manager framework
    [    0.451901] clocksource: Switched to clocksource arch_sys_counter
    [    0.458375] VFS: Disk quotas dquot_6.6.0
    [    0.462453] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.475261] NET: Registered protocol family 2
    [    0.480163] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.489528] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
    [    0.498349] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.506660] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
    [    0.514665] TCP: Hash tables configured (established 32768 bind 32768)
    [    0.521646] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.528584] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.536117] NET: Registered protocol family 1
    [    0.541081] RPC: Registered named UNIX socket transport module.
    [    0.547173] RPC: Registered udp transport module.
    [    0.552017] RPC: Registered tcp transport module.
    [    0.556836] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.563437] PCI: CLS 0 bytes, default 64
    [    0.568373] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.580504] Initialise system trusted keyrings
    [    0.585302] workingset: timestamp_bits=46 max_order=20 bucket_order=0
    [    0.595940] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.602492] NFS: Registering the id_resolver key type
    [    0.607709] Key type id_resolver registered
    [    0.611992] Key type id_legacy registered
    [    0.616159] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.623021] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.630793] 9p: Installing v9fs 9p2000 file system support
    [    0.671568] Key type asymmetric registered
    [    0.675773] Asymmetric key parser 'x509' registered
    [    0.680804] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
    [    0.688377] io scheduler mq-deadline registered
    [    0.693013] io scheduler kyber registered
    [    0.698971] pinctrl-single 4084000.pinctrl: 34 pins, size 136
    [    0.705305] pinctrl-single f4000.pinctrl: 171 pins, size 684
    [    0.713854] uvesafb: failed to execute /sbin/v86d
    [    0.718703] uvesafb: make sure that the v86d helper is installed and executable
    [    0.726188] uvesafb: Getting VBE info block failed (eax=0x4f00, err=-2)
    [    0.732957] uvesafb: vbe_init() failed with -22
    [    0.737609] uvesafb: probe of uvesafb.0 failed with error -22
    [    0.748429] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.768072] brd: module loaded
    [    0.778365] loop: module loaded
    [    0.782457] megasas: 07.714.04.00-rc1
    [    0.789601] tun: Universal TUN/TAP device driver, 1.6
    [    0.795303] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.801738] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.807851] sky2: driver version 1.30
    [    0.812457] VFIO - User Level meta-driver version: 0.3
    [    0.818708] i2c /dev entries driver
    [    0.823850] sdhci: Secure Digital Host Controller Interface driver
    [    0.830209] sdhci: Copyright(c) Pierre Ossman
    [    0.834951] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.841630] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.848142] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.855779] optee: probing for conduit method.
    [    0.860374] optee: revision 3.18 (8e155bae)
    [    0.860668] optee: dynamic shared memory is enabled
    [    0.870192] optee: initialized driver
    [    0.874807] NET: Registered protocol family 17
    [    0.879550] 9pnet: Installing 9P2000 support
    [    0.884002] Key type dns_resolver registered
    [    0.888608] Loading compiled-in X.509 certificates
    [    0.902413] ti-sci 44043000.system-controller: ti,ctx-memory-region is required for suspend but not .
    [    0.912615] ti-sci 44043000.system-controller: ti_sci_init_suspend failed, mem suspend will be non-f.
    [    0.922866] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Joll)
    [    0.961922] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
    [    0.969224] lm75 1-0048: supply vs not found, using dummy regulator
    [    1.000901] hwmon hwmon0: temp1_input not attached to any thermal zone
    [    1.007600] lm75 1-0048: hwmon0: sensor 'tmp100'
    [    1.012597] lm75 1-0049: supply vs not found, using dummy regulator
    [    1.020102] hwmon hwmon1: temp1_input not attached to any thermal zone
    [    1.026794] lm75 1-0049: hwmon1: sensor 'tmp100'
    [    1.031569] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
    [    1.038443] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz
    [    1.044549] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
    [    1.052896] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
    [    1.062148] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
    [    1.071179] ti-bcdma 485c0100.dma-controller: Number of rings: 82
    [    1.079403] ti-bcdma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
    [    1.090672] ti-pktdma 485c0000.dma-controller: Number of rings: 150
    [    1.100998] ti-pktdma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
    [    1.111389] printk: console [ttyS2] disabled
    [    1.115853] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 19, base_baud = 3000000) is a 8250
    [    2.455870] printk: console [ttyS2] enabled
    [    2.455870] printk: console [ttyS2] enabled
    [    2.467795] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
    [    2.467795] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
    [    2.483205] tidss 30200000.dss: [drm] Cannot find any crtc or sizes
    [    2.483205] tidss 30200000.dss: [drm] Cannot find any crtc or sizes
    [    2.502053] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    2.502053] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    2.551903] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    2.551903] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    2.569202] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    2.569202] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    2.585581] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver unknown
    [    2.585581] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver unknown
    [    2.601520] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw ve2
    [    2.601520] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw ve2
    [    2.627424] am65-cpsw-nuss 8000000.ethernet: Use random MAC address
    [    2.627424] am65-cpsw-nuss 8000000.ethernet: Use random MAC address
    [    2.640095] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
    [    2.640095] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
    [    2.654512] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [    2.654512] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [    2.667252] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
    [    2.667252] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
    [    2.688868] rtc-ti-k3 2b1f0000.rtc: registered as rtc0
    [    2.688868] rtc-ti-k3 2b1f0000.rtc: registered as rtc0
    [    2.803740] mmc1: CQHCI version 5.10
    [    2.803740] mmc1: CQHCI version 5.10
    [    2.803775] mmc0: CQHCI version 5.10
    [    2.803775] mmc0: CQHCI version 5.10
    [    2.811422] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [    2.811422] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [    2.859459] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    2.859459] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    2.933819] mmc0: new HS200 MMC card at address 0001
    [    2.933819] mmc0: new HS200 MMC card at address 0001
    [    2.944560] mmcblk0: mmc0:0001 Q2J54A 3.59 GiB
    [    2.944560] mmcblk0: mmc0:0001 Q2J54A 3.59 GiB
    [    2.954010] mmcblk0boot0: mmc0:0001 Q2J54A partition 1 16.0 MiB
    [    2.954010] mmcblk0boot0: mmc0:0001 Q2J54A partition 1 16.0 MiB
    [    2.966241] mmcblk0boot1: mmc0:0001 Q2J54A partition 2 16.0 MiB
    [    2.966241] mmcblk0boot1: mmc0:0001 Q2J54A partition 2 16.0 MiB
    [    2.978382] mmcblk0rpmb: mmc0:0001 Q2J54A partition 3 512 KiB, chardev (237:0)
    [    2.978382] mmcblk0rpmb: mmc0:0001 Q2J54A partition 3 512 KiB, chardev (237:0)
    [    4.327502] sdhci-am654 fa00000.mmc: Power on failed
    [    4.327502] sdhci-am654 fa00000.mmc: Power on failed
    [    4.368221] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
    [    4.368221] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
    [    4.384193] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0
    [    4.384193] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0
    [    4.400063] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
    [    4.400063] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
    [    4.420235] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POL)
    [    4.420235] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POL)
    [    4.439081] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
    [    4.439081] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
    [    4.458718] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0
    [    4.458718] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0
    [    4.474715] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:01] driver [Generic PHY] (irq=PO)
    [    4.474715] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:01] driver [Generic PHY] (irq=PO)
    [    4.493723] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
    [    4.493723] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
    [    4.512070] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
    [    4.512070] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
    [    4.531901] Sending DHCP requests ..
    [    4.531901] Sending DHCP requests ..
    [    8.536665] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
    [    8.536665] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
    [   12.443894] ., OK
    [   12.443894] ., OK
    [   12.463800] IP-Config: Got DHCP answer from 10.0.0.1, my address is 10.0.0.112
    [   12.463800] IP-Config: Got DHCP answer from 10.0.0.1, my address is 10.0.0.112
    [   12.478400] IP-Config: Complete:
    [   12.478400] IP-Config: Complete:
    [   12.484918]      device=eth0, hwaddr=34:08:e1:87:76:ad, ipaddr=10.0.0.112, mask=255.0.0.0, gw=255.255
    [   12.484918]      device=eth0, hwaddr=34:08:e1:87:76:ad, ipaddr=10.0.0.112, mask=255.0.0.0, gw=255.255
    [   12.504949]      host=10.0.0.112, domain=, nis-domain=(none)
    [   12.504949]      host=10.0.0.112, domain=, nis-domain=(none)
    [   12.516380]      bootserver=10.0.0.1, rootserver=10.0.0.28, rootpath=
    [   12.516380]      bootserver=10.0.0.1, rootserver=10.0.0.28, rootpath=
    [   12.516383]      nameserver0=10.0.0.1
    [   12.516383]      nameserver0=10.0.0.1
    [   12.538640] am65-cpsw-nuss 8000000.ethernet eth1: Link is Down
    [   12.538640] am65-cpsw-nuss 8000000.ethernet eth1: Link is Down
    [   12.561753] VFS: Mounted root (nfs filesystem) readonly on device 0:21.
    [   12.561753] VFS: Mounted root (nfs filesystem) readonly on device 0:21.
    [   12.575489] devtmpfs: mounted
    [   12.575489] devtmpfs: mounted
    [   12.582704] Freeing unused kernel memory: 1792K
    [   12.582704] Freeing unused kernel memory: 1792K
    [   12.604000] Run /sbin/init as init process
    [   12.604000] Run /sbin/init as init process
    [   12.679603] ------------[ cut here ]------------
    [   12.679603] ------------[ cut here ]------------
    [   12.679900] ------------[ cut here ]------------
    [   12.679900] ------------[ cut here ]------------
    [   12.679902] ------------[ cut here ]------------
    [   12.679902] ------------[ cut here ]------------
    [   12.679909] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   12.679909] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   12.679914] ------------[ cut here ]------------
    [   12.679914] ------------[ cut here ]------------
    [   12.679916] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   12.679916] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   12.688963] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   12.688963] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   12.698276] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   12.698276] kernel BUG at arch/arm64/kernel/traps.c:407!

    Could you explain why I got this Kernel BUG error ?

    Regards,

    Alexis.

  • Hi,

    Could you show all contents of bdinfo command?

    ~ Judith

  • Also, can you show the log when you use:

    reg = <0x00000000 0x80000000 0x00000000 0x80000000>,                                                  
              <0x00000008 0x80000000 0x00000000 0x80000000>;       

  • Hi Alex,

    As mentioned before,
    Did you follow the following instructions before modifying U-boot:

    • Follow the steps outlined in the DDR Board Design and Layout Guidelines. This application report also includes useful DDR bringup information.

    • To facilitate software configuration of the DDRSS, use the DDR Subsystem Configuration Tool in SysConfig to generate DDR configuration device tree files. For example,

      • u-boot/arch/arm/dts/k3-am62x-sk-ddr4-1600MTs.dtsi: AM62x SK DDR4 configuration

    • When the DDR timings and parameters are setup correctly, U-Boot will automatically detect, verify, and configure the size of DDR during runtime in the architectural files by using get_ram_size().

    ~ Judith

  • Hi Judith,

    I apply the configuration in device tree for u-boot and kernel :

    reg = <0x00000000 0x80000000 0x00000000 0x80000000>,                                                  
              <0x00000008 0x80000000 0x00000000 0x80000000>;    

    The bdinfo output  and the kernel log are below  :

    U-Boot 2021.01-g2dd2e1d366 (Jun 16 2023 - 08:12:37 +0000)

    SoC:   AM62X SR1.0 GP
    Model: Texas Instruments AM625 SK
    i2c_write: error waiting for data ACK (status=0x116)
    EEPROM not available at 0x50, trying to read at 0x51
    i2c_write: error waiting for data ACK (status=0x116)
    Reading on-board EEPROM at 0x51 failed -121
    DRAM:  4 GiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    i2c_write: error waiting for data ACK (status=0x116)
    EEPROM not available at 0x50, trying to read at 0x51
    i2c_write: error waiting for data ACK (status=0x116)
    Reading on-board EEPROM at 0x51 failed -121
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0
    => bdinfo
    boot_params = 0x0000000000000000
    DRAM bank   = 0x0000000000000000
    -> start    = 0x0000000080000000
    -> size     = 0x0000000080000000
    DRAM bank   = 0x0000000000000001
    -> start    = 0x0000000880000000
    -> size     = 0x0000000080000000
    flashstart  = 0x0000000000000000
    flashsize   = 0x0000000000000000
    flashoffset = 0x0000000000000000
    baudrate    = 115200 bps
    relocaddr   = 0x00000000fff1c000
    reloc off   = 0x000000007f71c000
    Build       = 64-bit
    current eth = ethernet@8000000port@1
    ethaddr     = 34:08:e1:87:76:aa
    IP addr     = 10.0.0.106
    fdt_blob    = 0x00000000f7ef2920
    new_fdt     = 0x00000000f7ef2920
    fdt_size    = 0x00000000000094c0
    multi_dtb_fit= 0x0000000000000000
    lmb_dump_all:
        memory.cnt             = 0x2
        memory.size            = 0x0
        memory.reg[0x0].base   = 0x80000000
                       .size   = 0x80000000
        memory.reg[0x1].base   = 0x880000000
                       .size   = 0x80000000


        reserved.cnt           = 0x3
        reserved.size          = 0x0
        reserved.reg[0x0].base = 0x9db00000
                         .size = 0xc00000
        reserved.reg[0x1].base = 0x9e780000
                         .size = 0x1880000
        reserved.reg[0x2].base = 0xf7ef1520
                         .size = 0x810eae0
    arch_number = 0x0000000000000000
    TLB addr    = 0x00000000ffff0000
    irq_sp      = 0x00000000f7ef2910
    sp start    = 0x00000000f7ef2910
    Early malloc usage: 2f30 / 8000
    => boot
    link up on port 1, speed 1000, full duplex
    Using ethernet@8000000port@1 device
    TFTP from server 10.0.0.1; our IP address is 10.0.0.106
    Filename 'k3-am625-sk.dtb'.
    Load address: 0x88000000
    Loading: ####
             6.2 MiB/s
    done
    Bytes transferred = 45632 (b240 hex)
    link up on port 1, speed 1000, full duplex
    Using ethernet@8000000port@1 device
    TFTP from server 10.0.0.1; our IP address is 10.0.0.106
    Filename 'Image'.
    Load address: 0x82000000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             ###########
             12.7 MiB/s
    done
    Bytes transferred = 18278912 (116ea00 hex)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 000000008fff1000, end 000000008ffff23f ... OK

    Starting kernel ...

    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.140-g5e63ae91b2 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (ar3
    [    0.000000] Machine model: Texas Instruments AM625 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
    [    0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 13 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009d900000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9d900000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 13 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@9da00000, compatible id shared-dma-pool
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   [mem 0x0000000100000000-0x00000008ffffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x000000009c7fffff]
    [    0.000000]   node   0: [mem 0x000000009c800000-0x000000009e6fffff]
    [    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
    [    0.000000]   node   0: [mem 0x000000009e780000-0x000000009fffffff]
    [    0.000000]   node   0: [mem 0x00000000a0000000-0x00000000ffffffff]
    [    0.000000]   node   0: [mem 0x0000000880000000-0x00000008ffffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ffffffff]
    [    0.000000] cma: Reserved 512 MiB at 0x00000000e0000000
    [    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.2
    [    0.000000] percpu: Embedded 22 pages/cpu s50072 r8192 d31848 u90112
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1032192
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/nfs rootfstype=nfs ip=dhcp nfsroot=10.0.0.28:/media/0
    [    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] software IO TLB: mapped [mem 0x00000000dc000000-0x00000000e0000000] (64MB)
    [    0.000000] Memory: 3448080K/4194304K available (10688K kernel code, 1146K rwdata, 4124K rodata, 1792K init, 427K bss, 221936K reserved, 524288K cma-reser)
    [    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=256 to nr_cpu_ids=4.
    [    0.000000]  Trampoline 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] 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] GICv3: Distributor has no Range Selector support
    [    0.000000] GICv3: 16 PPIs implemented
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
    [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @880800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x0000000880040000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000880050000
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000004] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008509] Console: colour dummy device 80x25
    [    0.013102] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023784] pid_max: default: 32768 minimum: 301
    [    0.028593] LSM: Security Framework initializing
    [    0.033397] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.040993] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.050736] rcu: Hierarchical SRCU implementation.
    [    0.055927] Platform MSI: msi-controller@1820000 domain created
    [    0.062208] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.071441] EFI services will not be available.
    [    0.076346] smp: Bringing up secondary CPUs ...
    [    0.081631] Detected VIPT I-cache on CPU1
    [    0.081668] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [    0.081683] GICv3: CPU1: using allocated LPI pending table @0x0000000880060000
    [    0.081748] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.082418] Detected VIPT I-cache on CPU2
    [    0.082443] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
    [    0.082454] GICv3: CPU2: using allocated LPI pending table @0x0000000880070000
    [    0.082490] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [    0.083111] Detected VIPT I-cache on CPU3
    [    0.083130] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
    [    0.083142] GICv3: CPU3: using allocated LPI pending table @0x0000000880080000
    [    0.083177] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [    0.083248] smp: Brought up 1 node, 4 CPUs
    [    0.162978] SMP: Total of 4 processors activated.
    [    0.167791] CPU features: detected: 32-bit EL0 Support
    [    0.173064] CPU features: detected: CRC32 instructions
    [    0.185601] CPU: All CPU(s) started at EL2
    [    0.189809] alternatives: patching kernel code
    [    0.195505] devtmpfs: initialized
    [    0.205027] KASLR disabled due to lack of seed
    [    0.209794] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.219770] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.242094] pinctrl core: initialized pinctrl subsystem
    [    0.248135] DMI not present or invalid.
    [    0.252757] NET: Registered protocol family 16
    [    0.258652] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
    [    0.265979] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.274095] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.282741] thermal_sys: Registered thermal governor 'step_wise'
    [    0.282746] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.289466] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.303182] ASID allocator initialised with 65536 entries
    [    0.329614] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.336501] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.343373] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.350226] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.358194] cryptd: max_cpu_qlen set to 1000
    [    0.365339] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected
    [    0.374439] vcc_5v0: supplied by vmain_pd
    [    0.378915] vcc_3v3_sys: supplied by vmain_pd
    [    0.383787] vcc_1v8: supplied by vcc_3v3_sys
    [    0.388968] iommu: Default domain type: Translated
    [    0.394334] SCSI subsystem initialized
    [    0.398619] mc: Linux media interface: v0.10
    [    0.403013] videodev: Linux video capture interface: v2.00
    [    0.408693] pps_core: LinuxPPS API ver. 1 registered
    [    0.413769] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.423120] PTP clock support registered
    [    0.427160] EDAC MC: Ver: 3.0.0
    [    0.431015] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100
    [    0.438116] FPGA manager framework
    [    0.442594] clocksource: Switched to clocksource arch_sys_counter
    [    0.449051] VFS: Disk quotas dquot_6.6.0
    [    0.453123] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.465945] NET: Registered protocol family 2
    [    0.470833] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.480187] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
    [    0.488988] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.497290] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
    [    0.505280] TCP: Hash tables configured (established 32768 bind 32768)
    [    0.512256] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.519189] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.526733] NET: Registered protocol family 1
    [    0.531734] RPC: Registered named UNIX socket transport module.
    [    0.537809] RPC: Registered udp transport module.
    [    0.542618] RPC: Registered tcp transport module.
    [    0.547426] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.554021] PCI: CLS 0 bytes, default 64
    [    0.558957] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.571037] Initialise system trusted keyrings
    [    0.575798] workingset: timestamp_bits=46 max_order=20 bucket_order=0
    [    0.586370] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.592928] NFS: Registering the id_resolver key type
    [    0.598142] Key type id_resolver registered
    [    0.602419] Key type id_legacy registered
    [    0.606596] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.613452] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.621214] 9p: Installing v9fs 9p2000 file system support
    [    0.662148] Key type asymmetric registered
    [    0.666345] Asymmetric key parser 'x509' registered
    [    0.671369] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
    [    0.678935] io scheduler mq-deadline registered
    [    0.683571] io scheduler kyber registered
    [    0.689527] pinctrl-single 4084000.pinctrl: 34 pins, size 136
    [    0.695852] pinctrl-single f4000.pinctrl: 171 pins, size 684
    [    0.704420] uvesafb: failed to execute /sbin/v86d
    [    0.709250] uvesafb: make sure that the v86d helper is installed and executable
    [    0.716726] uvesafb: Getting VBE info block failed (eax=0x4f00, err=-2)
    [    0.723489] uvesafb: vbe_init() failed with -22
    [    0.728134] uvesafb: probe of uvesafb.0 failed with error -22
    [    0.738897] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.758439] brd: module loaded
    [    0.768718] loop: module loaded
    [    0.772789] megasas: 07.714.04.00-rc1
    [    0.779985] tun: Universal TUN/TAP device driver, 1.6
    [    0.785661] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.792090] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.798194] sky2: driver version 1.30
    [    0.802809] VFIO - User Level meta-driver version: 0.3
    [    0.809023] i2c /dev entries driver
    [    0.814182] sdhci: Secure Digital Host Controller Interface driver
    [    0.820530] sdhci: Copyright(c) Pierre Ossman
    [    0.825262] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.831914] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.838406] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.846043] optee: probing for conduit method.
    [    0.850634] optee: revision 3.18 (8e155bae)
    [    0.850903] optee: dynamic shared memory is enabled
    [    0.860411] optee: initialized driver
    [    0.865039] NET: Registered protocol family 17
    [    0.869778] 9pnet: Installing 9P2000 support
    [    0.874225] Key type dns_resolver registered
    [    0.878810] Loading compiled-in X.509 certificates
    [    0.892540] ti-sci 44043000.system-controller: ti,ctx-memory-region is required for suspend but not provided.
    [    0.902726] ti-sci 44043000.system-controller: ti_sci_init_suspend failed, mem suspend will be non-functional.
    [    0.912968] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi')
    [    0.952051] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
    [    0.959351] lm75 1-0048: supply vs not found, using dummy regulator
    [    0.987684] hwmon hwmon0: temp1_input not attached to any thermal zone
    [    0.994376] lm75 1-0048: hwmon0: sensor 'tmp100'
    [    0.999386] lm75 1-0049: supply vs not found, using dummy regulator
    [    1.006933] hwmon hwmon1: temp1_input not attached to any thermal zone
    [    1.013626] lm75 1-0049: hwmon1: sensor 'tmp100'
    [    1.018393] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
    [    1.025235] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz
    [    1.031322] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
    [    1.039659] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
    [    1.048905] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
    [    1.057925] ti-bcdma 485c0100.dma-controller: Number of rings: 82
    [    1.066152] ti-bcdma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
    [    1.077414] ti-pktdma 485c0000.dma-controller: Number of rings: 150
    [    1.087716] ti-pktdma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
    [    1.098118] printk: console [ttyS2] disabled
    [    1.102569] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 19, base_baud = 3000000) is a 8250
    [    1.111352] printk: console [ttyS2] enabled
    [    1.111352] printk: console [ttyS2] enabled
    [    1.119805] printk: bootconsole [ns16550a0] disabled
    [    1.119805] printk: bootconsole [ns16550a0] disabled
    [    1.133107] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
    [    1.155595] fbcon: Deferring console take-over
    [    1.160060] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
    [    1.172846] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    1.218595] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.228127] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    1.236228] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver unknown
    [    1.244155] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000002
    [    1.257071] am65-cpsw-nuss 8000000.ethernet: Use random MAC address
    [    1.263337] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
    [    1.270461] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [    1.277167] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
    [    1.289674] rtc-ti-k3 2b1f0000.rtc: registered as rtc0
    [    1.399125] mmc1: CQHCI version 5.10
    [    1.399166] mmc0: CQHCI version 5.10
    [    1.406951] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [    1.445279] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    1.512054] mmc0: new HS200 MMC card at address 0001
    [    1.517702] mmcblk0: mmc0:0001 Q2J54A 3.59 GiB
    [    1.522513] mmcblk0boot0: mmc0:0001 Q2J54A partition 1 16.0 MiB
    [    1.528710] mmcblk0boot1: mmc0:0001 Q2J54A partition 2 16.0 MiB
    [    1.534798] mmcblk0rpmb: mmc0:0001 Q2J54A partition 3 512 KiB, chardev (237:0)
    [    2.918690] sdhci-am654 fa00000.mmc: Power on failed
    [    2.954329] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
    [    2.962623] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0
    [    2.971879] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
    [    2.985545] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL)
    [    2.994862] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
    [    3.006057] am65-cpsw-nuss 8000000.ethernet: down msc_sl e0000000 tmo 0
    [    3.015070] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:01] driver [Generic PHY] (irq=POLL)
    [    3.024459] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
    [    3.034336] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
    [    3.054591] Sending DHCP requests ..
    [    7.095368] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
    [    9.998584] ., OK
    [   11.016532] IP-Config: Got DHCP answer from 10.0.0.28, my address is 10.0.0.106
    [   11.023838] IP-Config: Complete:
    [   11.027066]      device=eth0, hwaddr=34:08:e1:87:76:aa, ipaddr=10.0.0.106, mask=255.0.0.0, gw=255.255.255.255
    [   11.036963]      host=10.0.0.106, domain=, nis-domain=(none)
    [   11.042614]      bootserver=10.0.0.1, rootserver=10.0.0.28, rootpath=
    [   11.042618]      nameserver0=10.0.0.28
    [   11.054641] am65-cpsw-nuss 8000000.ethernet eth1: Link is Down
    [   11.076330] VFS: Mounted root (nfs filesystem) readonly on device 0:21.
    [   11.083289] devtmpfs: mounted
    [   11.087472] Freeing unused kernel memory: 1792K
    [   11.102661] Run /sbin/init as init process
    [   11.127795] ------------[ cut here ]------------
    [   11.130601] ------------[ cut here ]------------
    [   11.130604] ------------[ cut here ]------------
    [   11.130606] ------------[ cut here ]------------
    [   11.130611] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   11.130614] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   11.130616] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
    [   11.130621] Modules linked in:
    [   11.130634] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 5.10.140-g5e63ae91b2 #1
    [   11.130636] Hardware name: Texas Instruments AM625 SK (DT)
    [   11.130642] pstate: 00000085 (nzcv daIf -PAN -UAO -TCO BTYPE=--)
    [   11.130660] pc : do_undefinstr+0x2f4/0x318
    [   11.130664] lr : do_undefinstr+0x1e8/0x318
    [   11.130666] sp : ffff800011203da0
    [   11.130668] x29: ffff800011203da0 x28: ffff00080011c600
    [   11.130674] x27: 0000000000000000 x26: ffff800011204000
    [   11.130679] x25: ffff800011200000 x24: 00000000000000e0
    [   11.130684] x23: 0000000040000085 x22: ffff800010010000
    [   11.130689] x21: ffff800011203f80 x20: ffff00080011c600
    [   11.130694] x19: ffff800011203e30 x18: 0000000000000014
    [   11.130699] x17: 00000000e84e28d9 x16: 00000000741d1078
    [   11.130704] x15: ffff800010010000 x14: 00000000000001c1
    [   11.130709] x13: 0000000000000000 x12: fffffffffffffc0d
    [   11.130714] x11: 000000000000008f x10: 0000000000000004
    [   11.130719] x9 : 0000000000000000 x8 : 000000028e387800
    [   11.130723] x7 : ffff00080011c600 x6 : ffff800011203df8
    [   11.130728] x5 : 00000000d5300000 x4 : ffff800011063dc0
    [   11.130733] x3 : 0000000000000000 x2 : 0000000000000000
    [   11.130738] x1 : ffff00080011c600 x0 : 0000000040000085
    [   11.130744] Call trace:
    [   11.130751]  do_undefinstr+0x2f4/0x318
    [   11.130759]  el1_undef+0x30/0x50
    [   11.130763]  el1_sync_handler+0x8c/0xc8
    [   11.130767]  el1_sync+0x88/0x140
    [   11.130771]  efi_header_end+0x0/0x268
    [   11.130777]  __handle_domain_irq+0x68/0xc0
    [   11.130784]  gic_handle_irq+0x58/0x128
    [   11.130788]  el1_irq+0xcc/0x180
    [   11.130792]  arch_cpu_idle+0x18/0x28
    [   11.130798]  default_idle_call+0x20/0x68
    [   11.130803]  do_idle+0xc0/0x128
    [   11.130806]  cpu_startup_entry+0x28/0x60
    [   11.130813]  secondary_start_kernel+0x14c/0x178
    [   11.130820] Code: f9401bf7 17ffff7b a9025bf5 f9001bf7 (d4210000)
    [   11.130834] ---[ end trace 530a990d84fd47ae ]---
    [   11.130838] Internal error: Oops - BUG: 0 [#2] PREEMPT SMP
    [   11.130840] Kernel panic - not syncing: Attempted to kill the idle task!
    [   11.130842] Modules linked in:
    [   11.130844] SMP: stopping secondary CPUs
    [   11.130844]
    [   11.130850] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G      D           5.10.140-g5e63ae91b2 #1
    [   11.130852] Hardware name: Texas Instruments AM625 SK (DT)
    [   11.130856] pstate: 00000085 (nzcv daIf -PAN -UAO -TCO BTYPE=--)
    [   11.130861] pc : do_undefinstr+0x2f4/0x318
    [   11.130865] lr : do_undefinstr+0x1e8/0x318
    [   11.130867] sp : ffff8000111fbda0
    [   11.130870] x29: ffff8000111fbda0 x28: ffff00080011b800
    [   11.130875] x27: 0000000000000000 x26: ffff8000111fc000
    [   11.130880] x25: ffff8000111f8000 x24: 00000000000000e0
    [   11.130885] x23: 0000000040000085 x22: ffff800010010000
    [   11.130889] x21: ffff8000111fbf80 x20: ffff00080011b800
    [   11.130894] x19: ffff8000111fbe30 x18: 0000000000000002
    [   11.130899] x17: 0000000000000010 x16: 0000000000000000
    [   11.130904] x15: ffff800010010000 x14: 0000000000000192
    [   11.130909] x13: 0000000000000000 x12: fffffffffffffc0d
    [   11.130914] x11: 0000000000000140 x10: 0000000000000004
    [   11.130918] x9 : 0000000000000000 x8 : 000000028e387800
    [   11.130923] x7 : ffff00080011b800 x6 : ffff8000111fbdf8
    [   11.130928] x5 : 00000000d5300000 x4 : ffff800011063dc0
    [   11.130933] x3 : 0000000000000000 x2 : 0000000000000000
    [   11.130937] x1 : ffff00080011b800 x0 : 0000000040000085
    [   11.130942] Call trace:
    [   11.130947]  do_undefinstr+0x2f4/0x318
    [   11.130951]  el1_undef+0x30/0x50
    [   11.130954]  el1_sync_handler+0x8c/0xc8
    [   11.130957]  el1_sync+0x88/0x140
    [   11.130960]  efi_header_end+0x0/0x268
    [   11.130964]  __handle_domain_irq+0x68/0xc0
    [   11.130967]  gic_handle_irq+0x58/0x128
    [   11.130971]  el1_irq+0xcc/0x180
    [   11.130974]  arch_cpu_idle+0x18/0x28
    [   11.130978]  default_idle_call+0x20/0x68
    [   11.130981]  do_idle+0xc0/0x128
    [   11.130984]  cpu_startup_entry+0x28/0x60
    [   11.130988]  secondary_start_kernel+0x14c/0x178
    [   11.130994] Code: f9401bf7 17ffff7b a9025bf5 f9001bf7 (d4210000)
    [   11.130997] ---[ end trace 530a990d84fd47af ]---
    [   11.132426] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   11.137027] kernel BUG at arch/arm64/kernel/traps.c:407!
    [   11.141627] Internal error: Oops - BUG: 0 [#3] PREEMPT SMP
    [   11.543459] Modules linked in:
    [   11.546505] CPU: 0 PID: 1 Comm: init Tainted: G      D           5.10.140-g5e63ae91b2 #1
    [   11.554573] Hardware name: Texas Instruments AM625 SK (DT)
    [   11.560043] pstate: 00000085 (nzcv daIf -PAN -UAO -TCO BTYPE=--)
    [   11.566035] pc : do_undefinstr+0x2f4/0x318
    [   11.570119] lr : do_undefinstr+0x1e8/0x318
    [   11.574201] sp : ffff8000111ebd10
    [   11.577503] x29: ffff8000111ebd10 x28: ffff0008000f8000
    [   11.582801] x27: ffff000800751438 x26: ffff8000111ec000
    [   11.588100] x25: ffff8000111e8000 x24: ffff0008010bb600
    [   11.593398] x23: 0000000040000085 x22: ffff800010010200
    [   11.598698] x21: ffff8000111ebef0 x20: ffff0008000f8000
    [   11.603996] x19: ffff8000111ebda0 x18: 0000000000000002
    [   11.609295] x17: 0000000000000000 x16: 0000000000000000
    [   11.614594] x15: ffff800010010200 x14: 000000000000008c
    [   11.619893] x13: 0000000000000001 x12: 0000000000000001
    [   11.625191] x11: 0000000000000000 x10: 0000000000000002
    [   11.630490] x9 : 0000000000000112 x8 : ffff00087f795180
    [   11.635788] x7 : ffff0008001180c0 x6 : ffff8000111ebd68
    [   11.641088] x5 : 00000000d5300000 x4 : ffff800011063dc0
    [   11.646387] x3 : 0000000000000000 x2 : 0000000000000000
    [   11.651687] x1 : ffff0008000f8000 x0 : 0000000040000085
    [   11.656986] Call trace:
    [   11.659423]  do_undefinstr+0x2f4/0x318
    [   11.663160]  el1_undef+0x30/0x50
    [   11.666376]  el1_sync_handler+0x8c/0xc8
    [   11.670199]  el1_sync+0x88/0x140
    [   11.673415]  efi_header_end+0x200/0x268
    [   11.677239]  irq_exit+0xc0/0xe0
    [   11.680369]  __handle_domain_irq+0x68/0xc0
    [   11.684452]  gic_handle_irq+0x58/0x128
    [   11.688188]  el1_irq+0xcc/0x180
    [   11.691321]  __clean_dcache_area_pou+0x3c/0x40
    [   11.695751]  __sync_icache_dcache+0x60/0x98
    [   11.699925]  alloc_set_pte+0x280/0x650
    [   11.703667]  filemap_map_pages+0x3c0/0x3e0
    [   11.707750]  handle_mm_fault+0xc70/0xf78
    [   11.711662]  do_page_fault+0x130/0x3a8
    [   11.715398]  do_translation_fault+0x58/0x68
    [   11.719569]  do_mem_abort+0x40/0xa0
    [   11.723045]  el0_da+0x28/0x38
    [   11.726002]  el0_sync_handler+0x88/0xb8
    [   11.729823]  el0_sync+0x180/0x1c0
    [   11.733128] Code: f9401bf7 17ffff7b a9025bf5 f9001bf7 (d4210000)
    [   11.739204] ---[ end trace 530a990d84fd47b0 ]---
    [   11.743807] Internal error: Oops - BUG: 0 [#4] PREEMPT SMP
    [   11.743809] note: init[1] exited with preempt_count 2
    [   11.754310] Modules linked in:
    [   11.757356] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D           5.10.140-g5e63ae91b2 #1
    [   11.765857] Hardware name: Texas Instruments AM625 SK (DT)
    [   11.771327] pstate: 00000085 (nzcv daIf -PAN -UAO -TCO BTYPE=--)
    [   11.777318] pc : do_undefinstr+0x2f4/0x318
    [   11.781401] lr : do_undefinstr+0x1e8/0x318
    [   11.785482] sp : ffff8000111f3da0
    [   11.788785] x29: ffff8000111f3da0 x28: ffff00080011aa00
    [   11.794083] x27: 0000000000000000 x26: ffff8000111f4000
    [   11.799383] x25: ffff8000111f0000 x24: 00000000000000e0
    [   11.804681] x23: 0000000040000085 x22: ffff800010010000
    [   11.809980] x21: ffff8000111f3f80 x20: ffff00080011aa00
    [   11.815279] x19: ffff8000111f3e30 x18: 0000000000000001
    [   11.820578] x17: 0000000000000000 x16: 0000000000000000
    [   11.825879] x15: ffff800010010000 x14: 0000000000000000
    [   11.831177] x13: 003d090000000000 x12: fffffffffffffc0d
    [   11.836477] x11: 0000000000000103 x10: 0000000000000004
    [   11.841777] x9 : 0000000000000000 x8 : 000000028e387800
    [   11.847075] x7 : 7fffffffffffffff x6 : ffff8000111f3df8
    [   11.852373] x5 : 00000000d5300000 x4 : ffff800011063dc0
    [   11.857672] x3 : 0000000000000000 x2 : 0000000000000000
    [   11.862972] x1 : ffff00080011aa00 x0 : 0000000040000085
    [   11.868270] Call trace:
    [   11.870708]  do_undefinstr+0x2f4/0x318
    [   11.874444]  el1_undef+0x30/0x50
    [   11.877660]  el1_sync_handler+0x8c/0xc8
    [   11.881482]  el1_sync+0x88/0x140
    [   11.884699]  efi_header_end+0x0/0x268
    [   11.888348]  __handle_domain_irq+0x68/0xc0
    [   11.892431]  gic_handle_irq+0x58/0x128
    [   11.896168]  el1_irq+0xcc/0x180
    [   11.899298]  arch_cpu_idle+0x18/0x28
    [   11.902861]  default_idle_call+0x20/0x68
    [   11.906770]  do_idle+0xc0/0x128
    [   11.909899]  cpu_startup_entry+0x24/0x60
    [   11.913810]  secondary_start_kernel+0x14c/0x178
    [   11.918328] Code: f9401bf7 17ffff7b a9025bf5 f9001bf7 (d4210000)
    [   11.924405] ---[ end trace 530a990d84fd47b1 ]---
    [   11.929011] Kernel Offset: disabled
    [   11.932488] CPU features: 0x0040002,2000200c
    [   11.936744] Memory Limit: none

    [ 11.939794] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---

    Regards,

    Alexis.

  • Hi Alexis,

    Discovered there is a bug on AM64x where

    /* AM64x supports only up to 2 GB SDRAM */

    I will verify if this carries over to AM62x as well.

    ~ Judith

  • Hi Judith,

    Is this an AM64x erratum? I could not find any such thing in its errata list. Or is it an AM64x SDK issue?


    Best regards,
    François.

  • Hi Francois,

    This is in the U-boot driver, so AM64x SDK issue. I have not verified it applies to AM62x.

    Also, as per the email thread, one of our engineers is also working on validating support for 4GB LPDDR4 on AM62x SVB.

    ~ Judith

  • Hi Francois,

    Verified it is a bug in U-boot driver that is limiting 4GB support on AM62x as well.

    ~ Judith

  • Hi Judith,

    Thank you. I hope that we will quickly get the U-Boot fix.


    Best regards,
    François.

  • Hi Franscois,

    Could customer try again with the following patch:

    diff --git a/drivers/ram/k3-ddrss/k3-ddrss.c b/drivers/ram/k3-ddrss/k3-ddrss.c
    index 0a4bf0c3078..e0cf28b9023 100644
    --- a/drivers/ram/k3-ddrss/k3-ddrss.c
    +++ b/drivers/ram/k3-ddrss/k3-ddrss.c
    @@ -736,11 +736,6 @@ static int k3_ddrss_probe(struct udevice *dev)
            if (ret)
                    return ret;
     
    -#ifdef CONFIG_K3_AM64_DDRSS
    -       writel(0x000001EF, AM64_DDRSS_SS_BASE + 0x020); //VBUSM2AXI Control Register sdram_idx, region_idx 0x11 --> 0x0F = log2(connected SDRAM size) - 16
    -       writel(0x0, AM64_DDRSS_SS_BASE + 0x120); //ECC Control Register 0x120 ecc_en = 0, rmw_en = 0, wr_alloc = 0, ecc_ck=0
    -#endif
    -
            ddrss->driverdt = lpddr4_getinstance();
     
            k3_lpddr4_probe(ddrss);


    ~ Judith

  • Hi Judith,

    Thank you.

    : could you please try this patch and let us know the outcome?


    Best regards,
    François.

  • Alexis, i have replicated the 4GB configuration on one of our internal development boards.  Here is the full set of patches from the SDK8.06 which allowed successful boot into the kernel and access to full 4GB of memory.  Some of this was already covered in the thread above, but wanted to include the full set of patches below.  I've also added some annotation to explain each change.  Please give these a try 

    ==========================================================

    U-boot:  This change is to include the specific dual rank DDR configuration from the DDR register configuration tool

    diff --git a/arch/arm/dts/k3-am62x-r5-lp-sk.dts b/arch/arm/dts/k3-am62x-r5-lp-sk.dts
    index 0ac3186b43..5d2c1fed07 100644
    --- a/arch/arm/dts/k3-am62x-r5-lp-sk.dts
    +++ b/arch/arm/dts/k3-am62x-r5-lp-sk.dts
    @@ -5,7 +5,7 @@
    */

    #include "k3-am62x-lp-sk.dts"
    -#include "k3-am62x-ddr-lp4-50-800-800.dtsi"
    +#include "AM62x-LP4-50-800_dualrank_SVB.dtsi"
    #include "k3-am62-ddr.dtsi"

    #include "k3-am62x-lp-sk-u-boot.dtsi"

    ==========================================================

    U-boot: This change is to increase the memory definition to 4GB for u-boot which runs on the r5

    diff --git a/arch/arm/dts/k3-am62x-r5-sk-common.dtsi b/arch/arm/dts/k3-am62x-r5-sk-common.dtsi
    index b4a5e3cfa1..833231074e 100644
    --- a/arch/arm/dts/k3-am62x-r5-sk-common.dtsi
    +++ b/arch/arm/dts/k3-am62x-r5-sk-common.dtsi
    @@ -19,8 +19,9 @@

    memory@80000000 {
    device_type = "memory";
    - /* 2G RAM */
    - reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
    + /* 4G RAM */
    + reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    + <0x00000008 0x80000000 0x00000000 0x80000000>;

    u-boot,dm-spl;
    };

    ============================================

    U-boot: This change is to increase the memory definition to 4GB for u-boot which runs on the a53

    diff --git a/arch/arm/dts/k3-am62x-sk-common.dtsi b/arch/arm/dts/k3-am62x-sk-common.dtsi
    index 72ebb1400f..1682cabe14 100644
    --- a/arch/arm/dts/k3-am62x-sk-common.dtsi
    +++ b/arch/arm/dts/k3-am62x-sk-common.dtsi
    @@ -31,8 +31,9 @@

    memory@80000000 {
    device_type = "memory";
    - /* 2G RAM */
    - reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
    + /* 4G RAM */
    + reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    + <0x00000008 0x80000000 0x00000000 0x80000000>;

    };

    =========================================================

    U-boot:  This change fixes the DDRSS driver to properly set the address region in the DDR wrapper for 4GBytes


    diff --git a/drivers/ram/k3-ddrss/k3-ddrss.c b/drivers/ram/k3-ddrss/k3-ddrss.c
    index 0a4bf0c307..49590f0bd1 100644
    --- a/drivers/ram/k3-ddrss/k3-ddrss.c
    +++ b/drivers/ram/k3-ddrss/k3-ddrss.c
    @@ -737,7 +737,7 @@ static int k3_ddrss_probe(struct udevice *dev)
    return ret;

    #ifdef CONFIG_K3_AM64_DDRSS
    - writel(0x000001EF, AM64_DDRSS_SS_BASE + 0x020); //VBUSM2AXI Control Register sdram_idx, region_idx 0x11 --> 0x0F = log2(connected SDRAM size) - 16
    + writel(0x00000210, AM64_DDRSS_SS_BASE + 0x020); //VBUSM2AXI Control Register sdram_idx, region_idx 0x11 --> 0x0F = log2(connected SDRAM size) - 16
    writel(0x0, AM64_DDRSS_SS_BASE + 0x120); //ECC Control Register 0x120 ecc_en = 0, rmw_en = 0, wr_alloc = 0, ecc_ck=0
    #endif

    =========================================================

    Kernel:  This change is to increase the memory definition to 4GB for the kernel which runs on the a53

    diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    index 3e7204440f..ecbd12b430 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    @@ -25,8 +25,9 @@

    memory@80000000 {
    device_type = "memory";
    - /* 2G RAM */
    - reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
    + /* 4G RAM */
    + reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    + <0x00000008 0x80000000 0x00000000 0x80000000>;

    };

    ======================================================================

    Kernel:  this is an optional change just for testing.  It allows you to perform devmem2 in the kernel to access the upper 2GB without permission failures.  You can also perform memtester on upper 2GB using the following command:  memtester -p 0x880000000 4M

    @@ -81,6 +82,12 @@
    alignment = <0x1000>;
    no-map;
    };
    +
    + upper_2gb: upper-2gb@880000000 {
    + reg = <0x08 0x80000000 0x00 0x80000000>;
    + alignment = <0x1000>;
    + no-map;
    + };
    };

    vmain_pd: regulator-0 {

    Regards,

    James

  • Hello Alexis,

    Could you please update us on this issue? We hope that you have succeeded in enabling 4GB.


    Best regards,
    François.

  • Hello François,

    I will try thoses patches as soon as possible. I'm currently working on Touchscreen integration.

    I will keep you update.

    Regards,

    Alexis.