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.

AM3356: U-Boot & Kernel Change to integrate 1024MB (8Gb)-512Mx16 ISSI SDRAM with AM335x Platform

Part Number: AM3356

Hi,

1. We have an embedded board that uses TI's AM3356 SOC. (Part No: AM3356BZCZD60). We are trying to upgrade to the new 1024MB (8Gb)-512Mx16 ISSI SDRAM (part no: IS43TR16512B-125KBLI). We were using 512MB (4Gb)-256Mx16 ISSI SDRAM (part no: IS43TR16256B-125KBLI). We transferred the uboot-spl.bin file over the X-Modem protocol and uboot-img.bin over the Y-Modem. The DRAM is getting detected and we can get the U-boot prompt.

=> meminfo
DRAM: 1 GiB
=>

=> bdinfo
arch_number = 0x00000E05
boot_params = 0x80000100
DRAM bank = 0x00000000
-> start = 0x80000000
-> size = 0x40000000
baudrate = 115200 bps
TLB addr = 0xBFFF0000
relocaddr = 0xBFF50000
reloc off = 0x3F750000
irq_sp = 0xBBF03A80
sp start = 0xBBF03A70
Early malloc usage: 19c / 400
fdt_blob = bbf03a98
=>

2. Even though the DRAM is up, the kernel is not getting loaded. Is there anything we missed while initializing the DRAM?

=> boot
Boot attempt 0 of 15. Cur bank: bank1
ubi0: attaching mtd1
ubi0: scanning is finished
ubi0: attached mtd1 (name "mtd=7", size 1020 MiB)
ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 253952 bytes
ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 1024
ubi0: VID header offset: 4096 (aligned 4096), data offset: 8192
ubi0: good PEBs: 4082, bad PEBs: 0, corrupted PEBs: 0
ubi0: user volume: 8, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1572782522
ubi0: available PEBs: 0, total reserved PEBs: 4082, PEBs reserved for bad PEB handling: 80
Read 0 bytes from volume BANK1_FIT to 82000000
No size specified -> Using max size (4317184)
ubi0: detaching mtd1
ubi0: mtd1 is detached
## Loading kernel from FIT Image at 82000000 ...
Using 'conf@am335x-evm.dtb' configuration
Trying 'kernel@1' kernel subimage
Description: Linux kernel
Created: 2023-04-03 3:50:06 UTC
Type: Kernel Image
Compression: uncompressed
Data Start: 0x82000114
Data Size: 3273216 Bytes = 3.1 MiB
Architecture: ARM
OS: Linux
Load Address: 0x80008000
Entry Point: 0x80008000
Hash algo: sha1
Hash value: feb6231dad1f3166673ec9e4ab31a82b9a4c29cc
Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 82000000 ...
Using 'conf@am335x-evm.dtb' configuration
Trying 'fdt@am335x-evm.dtb' fdt subimage
Description: Flattened Device Tree blob
Created: 2023-04-03 3:50:06 UTC
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x8231f414
Data Size: 38192 Bytes = 37.3 KiB
Architecture: ARM
Hash algo: sha1
Hash value: 3ee6c7af46135e491c4be254b012b8e9442e8559
Verifying Hash Integrity ... sha1+ OK
Booting using the fdt blob at 0x8231f414
Loading Kernel Image ... OK
Loading Device Tree to bbef5000, end bbf0152f ... OK

Starting kernel ...

3. Kindly advise what changes are required in U-boot & kernel source to integrate the new RAM support for am335x.

4. Below is the Uboot  version taken from a working device (with 512MB/4Gb RAM). We are using the same  u-boot-spL and u-boot.img images in the new proto as well.

U-Boot SPL 2018.01-00444-g96cdbefd5c-dirty (Apr 06 2023 - 11:44:44)

  • Hi Godson,

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

  • Hi Godson,

    The log seems showing Linux is booted from a FIT image on UBIFS?

    If your kernel configuration worked with 512MB DDR it should work with 1GB DDR without any modification.

    Can you please try to boot kernel by specifically loading uImage and kernel dtb without using FIT image? 

  • Hi Bin Liu,

    Yes, The Linux is booted from a FIT image. We tried to boot the kernel by loading the zImage & dtb, but the kernel is still not booting. Please have a look at the log below.

    => tftp 0x82000000 zImage
    link up on port 0, speed 1000, full duplex
    Using ethernet@4a100000 device
    TFTP from server 192.168.0.122; our IP address is 192.168.0.121
    Filename 'zImage'.
    Load address: 0x82000000
    Loading: #################################################################
    #################################################################
    #################################################################
    ############################
    2.6 MiB/s
    done
    Bytes transferred = 3273216 (31f200 hex)
    => tftp 0x88000000 am335x-evm_2022.dtb
    link up on port 0, speed 1000, full duplex
    Using ethernet@4a100000 device
    TFTP from server 192.168.0.122; our IP address is 192.168.0.121
    Filename 'am335x-evm_2022.dtb'.
    Load address: 0x88000000
    Loading: ###
    981.4 KiB/s
    done
    Bytes transferred = 38192 (9530 hex)
    => meminfo
    DRAM: 1 GiB
    => bootz 0x82000000 - 0x88000000
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Device Tree to bbef6000, end bbf0252f ... OK

    Starting kernel ...

  • Hi Bin Liu,

    We managed to boot the Kernel with the new 1GB SDRAM by setting fdt_high=0xfffffff in U-Boot.
    Thanks for your support.

  • Hi Godson,

    I am glad the issue is solved. Thanks for the update.