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.

[FAQ] AM623: SDDDR start address 0x0080000000 or 0x0880000000 ?

Part Number: AM623

Hi,

Please give more clarity on the start add of  DDR16SS0_SDRAM.

In am62x TRM  in some places I found like 0x0080000000 and in another place 0x0880000000.

in u-boot source code

include/configs/am62x_evm.h

/* DDR Configuration */
#define CONFIG_SYS_SDRAM_BASE1          0x880000000

but in but in dts we given like

        memory@80000000 {
                device_type = "memory";
                /* 2G RAM */
                reg = <0x00000000 0x80000000 0x00000000 0x80000000>;

        };

please give more details on this.

for custom board if we use the ddr of size 1GB then dts change like

  memory@80000000 {
                device_type = "memory";
                /* 1G RAM */
                reg = <0x00000000 0x80000000 0x00000000 0x40000000>;

        };

is sufficient ? or we need to do any other modification ?

Thanks,

Gireesh Hiremath

  • Gireesh, the max address reach of AM62x is 8GB with DDR4 and 4GB with LPDDR4.  The addressing is not contiguous:

    2GB: 0x80000000-0xFFFFFFFF

    6GB: 0x880000000 - 0x9FFFFFFFF 

    So if you have less memory on your board, the addressing will change accordingly.  As you stated, with 1GB memory, your addressing will be 0x80000000-0xc0000000.  If you don't have the memory regions set properly in the DDR wrapper (see V2A_CTL_REG in the TRM), you may experience aliasing at the upper addresses (for example, 0x880000000 will contain the same value as 0x80000000).  

    Towards the bottom of this link:  https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1235702/am623-memory-can-t-be-configured-to-4gb-from-device-tree

    i had a set of patches to enable 4GB memory.  This will give you an example of where the addressing would need to change in the DTS (both in u-boot and kernel) for your custom board 

    Regards,

    James

  • Hi James,

    Thanks for info.

    Form patch I felt, if LPDDR is less then 2GB  then no need to change in "drivers/ram/k3-ddrss/k3-ddrss.c"  ?

    as below

    #ifdef CONFIG_K3_AM64_DDRSS
            /* AM64x supports only up to 2 GB SDRAM */
            writel(0x000001EF, ddrss->ddrss_ss_cfg + DDRSS_V2A_CTL_REG);
            writel(0x0, ddrss->ddrss_ss_cfg + DDRSS_ECC_CTRL_REG);
    #endif

    and below dts changes in both kernel and u-boot are sufficient?

    memory@80000000 {
                    device_type = "memory";
                    /* 1G RAM */
                    reg = <0x00000000 0x80000000 0x00000000 0x40000000>;

    };

  • Yes, this should be correct

    Regards,

    James