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.

SK-AM62: Booting SK - AM62x EVM board from eMMC memory.

Part Number: SK-AM62
Other Parts Discussed in Thread: AM625

Hello Sir,

I am trying to boot the SK - AM62x EVM board from eMMC memory. 

  1. We are able to boot the board from SD Card.
  2. For the emmc booting: followed these steps in serial prompt after booting in u-boot

=> mmc dev 0 1

=> fatload mmc 1 ${loadaddr} tiboot3.bin

=> mmc write ${loadaddr} 0x0 0x400

=> fatload mmc 1 ${loadaddr} tispl.bin

=> mmc write ${loadaddr} 0x400 0x1000

=> fatload mmc 1 ${loadaddr} u-boot.img

=> mmc write ${loadaddr} 0x1400 0x2000

 

  1. The emmc has a dos bootable partition “emmc0t12” and has the bootable qnx-image.
  2. If I do this in uboot prompt: “fatload mmc 0 80080000 qnx-ifs; go 80080000” , I am able to boot QNX from emmc partition.
  3. But If I boot from emmc, using EVM DIP switch SW2 (0x00), SW1 (0x4B), the board boots up from MMC1 but fails.
  4. When I do mmclist , I see eMMC as “0”, So I was expecting the board should have booted from the eMMC (MMC0), but with the boot switch settings its booting from MMC1. Do you see any issues with the boot switch settings?

=> mmc list

mmc@fa10000: 0 (eMMC)

mmc@fa00000: 1

mmc@fa20000: 2

 

Please guide if anything wrong in the steps I am following.

 

Regards,

Manas

 

Boot Log below

 

 

U-Boot SPL 2021.01-g74fc69c889 (May 30 2022 - 16:40:44 +0000)

SYSFW ABI: 3.1 (firmware rev 0x0008 '8.3.2--v08.03.02 (Jolly Jellyfi')

Trying to boot from MMC1

Loading Environment from MMC... OK

init_env from device 9 not supported!

Starting ATF on ARM64 core...

 

NOTICE:  BL31: v2.6(release):08.03.00.003-dirty

NOTICE:  BL31: Built : 16:35:46, May 30 2022

 

U-Boot SPL 2021.01-g74fc69c889 (May 30 2022 - 16:39:30 +0000)

SYSFW ABI: 3.1 (firmware rev 0x0008 '8.3.2--v08.03.02 (Jolly Jellyfi')

Trying to boot from MMC1

 

 

U-Boot 2021.01-g74fc69c889 (May 30 2022 - 16:39:30 +0000)

 

SoC:   AM62X SR1.0

Model: Texas Instruments AM625 SK

EEPROM not available at 0x50, trying to read at 0x51

Board: AM62-SKEVM rev E3

DRAM:  2 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

Net:   eth0: ethernet@8000000port@1

Hit any key to stop autoboot:  0

MMC: no card present

SD/MMC found on device 1

MMC: no card present

MMC: no card present

MMC: no card present

MMC: no card present

MMC: no card present

libfdt fdt_check_header(): FDT_ERR_BADMAGIC

No FDT memory address configured. Please configure

the FDT address via "fdt addr <address>" command.

Aborting!

Bad Linux ARM64 Image magic!

  • Hello,
    For u-boot/Linux eMMC booting on TI AM62x-SK board, eMMC layout is listed here
    software-dl.ti.com/.../UG-Memory.html
    Under <eMMC layout:>:
    - boot0 partition: raw partition for all u-boot binary
    - user partition: for ext4 rootfs where Linux kernel, DTB, rootfs...

    1. What is QNX.ifs boot sequence?
    r5 SPL => A53 SPL => A53 u-boot => QNX.ifs?
    2. Which partition and format (raw vs fs) for QNX.ifs?
    I believe QNX.ifs is FS so most likely from user partition?

    Best,
    -Hong

  • Hello Hong,

    I followed the same steps as mentioned per eMMC layout. I am able to boot from eMMC if I program it manually. But I want to boot from eMMC from power-up. But no success.

    Is it possible to have a meeting and discuss, as we are blocked on this?

    Regards,

    Manas

  • Hello Manas,
    Have you downloaded AM62x QNX addon package?
    software-dl.ti.com/.../ti-processor-sdk-qnx_am62xx_08_04_00_01.tar.gz
    Some pointers on booting QNX once you installed the QNX addon package.
    - docs/build_steps_am62x.html#boot
    where it lists the options to boot QNX either <SPL + U-boot> or <SBL...>:
    For <SPL + U-boot> option, refer to the file "${PSDK_QNX_PATH}/qnx/scripts/u-boot/uEnv_am62x.txt" on how to load/launch qnx-ifs @u-boot as listed below.

    dorprocboot=1
    bootcmd=run boot_rprocs; fatload mmc 1 80080000 qnx-ifs; go 0x80080000
    uenvcmd=boot

    Best,
    -Hong

  • I can access the above files. I will try and let you know.

  • Hello Hong,

    I looked at the build_steps_am62x.html file Section 3.2.2. Booting from boot media

    I am confused where it says 

    • Insert the SD card containing the built libraries and QNX image

    • Set bootmode to the desired boot mode as shown below : Ex: Boot from eMMC

    My question is: Do I need to have the SD card plugged in to the board, while I want to boot from eMMC?

    Regards,

    Manas

  • Hello Manas,
    For the standard u-boot/Linux boot, it is possible to boot either from SD or eMMC or even mixed boot media...
    The same "should" work also on the hybrid boot flow in your case, SPL/u-boot => QNX...
    - SPL/u-boot boot from either SD or eMMC
    - u-boot on A53 load/run QNX from SD or eMMC as listed in the sample script below
    "bootcmd=run boot_rprocs; fatload mmc 1 80080000 qnx-ifs; go 0x80080000"
    The MMC dev number "1" listed above needs to be adjusted based on SD/eMMC dev enumeration on your board.
    Best,
    -Hong

  • Hello Hong,

    Since I was getting stuck and i tried DFU Utils to boot from eMMC as per

    e2e.ti.com/.../faq-sk-am62-how-to-flash-emmc-using-usb-dfu-on-am62x-sk-e2

    The step where it loads the rootfs : I loaded qnx-ifs
    sudo dfu-util -a rootfs -D qnx-ifs

    All files got programmed properly and after that I am able to boot from eMMC, but QNX does not boot up. Getting this error. My guess is some small step is missing. Please guide.

    • setenv mmcdev 0
    • setenv bootpart 0

    => boot
    switch to partitions #0, OK
    mmc0(part 0) is current device
    SD/MMC found on device 0
    ** Unrecognized filesystem type **
    ** Unrecognized filesystem type **
    ** Unrecognized filesystem type **
    ** Unrecognized filesystem type **
    libfdt fdt_check_header(): FDT_ERR_BADMAGIC
    No FDT memory address configured. Please configure
    the FDT address via "fdt addr <address>" command.
    Aborting!
    Bad Linux ARM64 Image magic!

  • Hello Manas,
    Before trying boot SPL/u-boot/QNX from eMMC, can we first try booting from SD?
    As pre-step, have you tried booting the u-boot/Linux with Linux SDK on your board?
    a/ If not, follow the instructions below to create SD card with Linux SDK.
    software-dl.ti.com/.../Processor_SDK_Linux_create_SD_card.html
    b/ If yes, copy QNX.ifs to either boot or root partition of your SD card
    BTW, what is the size of QNX.ifs file?
    Best,
    -Hong

  • Hello Hong,

    I am able to boot Linux & QNX from SD card. The next step is to try booting from eMMC. 

    The qnx ifs size is 11MB. I saw a note on eMMC size limitation of 2MB. Does this impact?

    regards,

    Manas

  • Hello Manas,
    Have you flashed QNX.ifs to eMMC on your board?
    Given the size of QNX.ifs, one of options is flashing QNX.ifs to the user partition of eMMC on your board.
    Some links for full Linux eMMC flashing with USB-DFU on AM62x-SK board for your reference:
    - FAQ
    e2e.ti.com/.../faq-sk-am62-how-to-flash-emmc-using-usb-dfu-on-am62x-sk-e2
    - The e2e post with log files
    e2e.ti.com/.../4124594

    I'm attaching a sample log on how to check eMMC user partition @u-boot from eMMC boot once full Linux is flashed to eMMC on AM62x-SK board.

    Best,
    -Hong

    4213.am62_8.3_emmc_boot_check.txt
    U-Boot SPL 2021.01-g74fc69c889 (May 30 2022 - 16:40:44 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.3.2--v08.03.02 (Jolly Jellyfi')
    Trying to boot from MMC1
    Loading Environment from MMC... *** Warning - bad CRC, using default environment
    
    init_env from device 9 not supported!
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.6(release):08.03.00.003-dirty
    NOTICE:  BL31: Built : 16:35:46, May 30 2022
    
    U-Boot SPL 2021.01-g74fc69c889 (May 30 2022 - 16:39:30 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.3.2--v08.03.02 (Jolly Jellyfi')
    Trying to boot from MMC1
    
    
    U-Boot 2021.01-g74fc69c889 (May 30 2022 - 16:39:30 +0000)
    
    SoC:   AM62X SR1.0
    Model: Texas Instruments AM625 SK
    EEPROM not available at 0x50, trying to read at 0x51
    Board: AM62-SKEVM rev E2
    DRAM:  2 GiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
    Loading Environment from MMC... *** Warning - bad CRC, using default environment
    
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  2  0 
    => mmc list
    mmc@fa10000: 0 (eMMC)
    mmc@fa00000: 1
    mmc@fa20000: 2
    => mmc dev 0
    switch to partitions #0, OK
    mmc0(part 0) is current device
    => mmc info
    Device: mmc@fa10000
    Manufacturer ID: 13
    OEM: 14e
    Name: S0J56 
    Bus Speed: 200000000
    Mode: HS200 (200MHz)
    Rd Block Len: 512
    MMC version 5.1
    High Capacity: Yes
    Capacity: 14.8 GiB
    Bus Width: 8-bit
    Erase Group Size: 512 KiB
    HC WP Group Size: 8 MiB
    User Capacity: 14.8 GiB WRREL
    Boot Capacity: 31.5 MiB ENH
    RPMB Capacity: 4 MiB ENH
    Boot area 0 is not write protected
    Boot area 1 is not write protected
    => mmc part
    
    Partition Map for MMC device 0  --   Partition Type: EFI
    
    Part	Start LBA	End LBA		Name
    	Attributes
    	Type GUID
    	Partition GUID
      1	0x00000022	0x01da3fde	"rootfs"
    	attrs:	0x0000000000000000
    	type:	ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    	guid:	324d6ebf-ccc2-4d67-b291-805f3849d626
    => ls mmc 0
    <DIR>       1024 .
    <DIR>       1024 ..
    <DIR>      12288 lost+found
    <DIR>       3072 bin
    <DIR>       1024 boot
    <DIR>       1024 dev
    <DIR>       3072 etc
    <DIR>       1024 home
    <SYM>         20 init
    <DIR>       4096 lib
    <SYM>         19 linuxrc
    <DIR>       1024 media
    <DIR>       1024 mnt
    <DIR>       1024 proc
    <DIR>       1024 run
    <DIR>       3072 sbin
    <DIR>       1024 sys
    <DIR>       1024 tmp
    <DIR>       1024 usr
    <DIR>       1024 var
    => ls mmc 0 boot
    <DIR>       1024 .
    <DIR>       1024 ..
    <SYM>         26 Image
            18448896 Image-5.10.109-g9e58028f94
                2033 k3-am625-sk-csi2-ov5640.dtbo
               34271 k3-am625-sk-lpmdemo.dtb
               44485 k3-am625-sk.dtb
               31582 k3-am625-skeleton.dtb
    <SYM>         31 vmlinux.gz
             9071718 vmlinux.gz-5.10.109-g9e58028f94
    => 

  • Hello Hong,

    I am exactly using the same link for using DFU util as shared by you.

    Yes , I am writing qnx-ifs like this:

    sudo dfu-util -a rootfs -D qnx-ifs

    But still after this i see the issue:

    => boot
    switch to partitions #0, OK
    mmc0(part 0) is current device
    SD/MMC found on device 0
    ** Unrecognized filesystem type **
    ** Unrecognized filesystem type **
    ** Unrecognized filesystem type **
    ** Unrecognized filesystem type **
    libfdt fdt_check_header(): FDT_ERR_BADMAGIC
    No FDT memory address configured. Please configure
    the FDT address via "fdt addr <address>" command.
    Aborting!
    Bad Linux ARM64 Image magic!

    Regards,

    Manas

  • Hello Manas,
    I downloaded AM62x QNX SDK 8.4 package, and from the SDK documentation
    >>>>
    2.4. PSDK QNX Boot Modes
    The PSDK QNX addon package supports 2 different boot modes
    • SPL+Uboot (SD Boot)
    • SBL+CombinedBootImage (OSPI Boot, eMMC Boot, UART)
    3.2.1. Step 2a: Boot Instructions Using SPL + U-boot
    3.2.2. Step 2b. Build SBL and associated IPC Echo Test Firmware Images
    Due to eMMC size limitation of 2MB, the default QNX appimage of ~8MB cannot be flashed to eMMC through SBL. This support will be made available in the subsequent MCU-PLUS SDK release.
    <<<<
    It looks to me that "SPL/u-boot + QNX" boot from eMMC support is NOT listed in SDK 8.4.
    I'm checking internally, and will keep you posted.
    Best,
    -Hong