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.

AM68A: Single chip LPDDR4 configuration

Part Number: AM68A
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello experts,

we have a custom design with a working dual chip LPDDR4 set-up running Linux (SDK 10.01.00.04).

My question is: What is necessary to switch to a single chip set-up using the same LPDDR4 chip?

There seems to be u-boot changes missing when I try to only use a single LPDDR4 chip with a

modified configuration (SysConfig -> device tree).

Thanks in advance,

Frank

  • Your question has been initially assigned to Kevin

  • Hi,

    Can you post the log file illustrating the issue? Can you also post the modifications you made?

    Common problems I have observed in the past (maybe fixed in SDK10.x) when trying to boot with just 1x DDRSS with AM68x:

    1. Bootloader code is still trying to initialize the un-populated DDRSS
    2. Total DDR size not adjusted in u-boot (which gets passed to Linux)

    For the first issue above, can you check the file <UBOOT>/arch/arm/mach-k3/j721s2_init.c for similar code as below? Could you try commenting out the call to 

    uclass_next_device_err and the corresponding if statement?

    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/arch/arm/mach-k3/j721s2_init.c?h=10.01.10#n241 

    void k3_mem_init(void)
    {
    	struct udevice *dev;
    	int ret;
    
    	if (IS_ENABLED(CONFIG_K3_J721E_DDRSS)) {
    		ret = uclass_get_device_by_name(UCLASS_MISC, "msmc", &dev);
    		if (ret)
    			panic("Probe of msmc failed: %d\n", ret);
    
    		ret = uclass_get_device(UCLASS_RAM, 0, &dev);
    		if (ret)
    			panic("DRAM 0 init failed: %d\n", ret);
    
    		ret = uclass_next_device_err(&dev);
    		if (ret && ret != -ENODEV)
    			panic("DRAM 1 init failed: %d\n", ret);
    	}
    	spl_enable_cache();
    }

    For the second issue, can you check the file <UBOOT>/arch/arm/dts/k3-am68-sk-som.dtsi (or your similar custom DTSI file) for the code below? This should be updated from 16GB to the corresponding memory available on your board.

    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/arch/arm/dts/k3-am68-sk-som.dtsi?h=10.01.10#n12

    	memory@80000000 {
    		device_type = "memory";
    		bootph-all;
    		/* 16 GB RAM */
    		reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    		      <0x00000008 0x80000000 0x00000003 0x80000000>;
    	};

    Regards,
    Kevin

  • Hi Kevin,

    the modification #1 you have been suggested seems to be the missing part.

    Thanks a lot!

    With regards,

    Frank