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.

AM6548: How to Boot Linux from eMMC from SD card

Part Number: AM6548

Tool/software:

I would like to copy over a default image of Linux from an SD card into the eMMC. I currently have copied U-Boot over by following this tutorial: 

https://git.ti.com/cgit/processor-sdk/processor-sdk-u-boot/tree/board/ti/am65x/README?h=processor-sdk-u-boot-2019.01#n213

However, the eMMC does not boot Linux. What do I need to do to copy over Linux from an SD card, so that I can run the OS off the eMMC without an SD card in the future?

  • Hi,

    I did provide some references for this in your other thread

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1364718/processor-sdk-am65x-booting-linux-from-emmc-and-uart

    May I know where the confusion is?

    Regards,

    Prashant

  • These tools utilize DFU. I am trying to use the SD card here.

  • Hello,

    In that case, please refer the following guide for AM64x. Since, the concept is same it should work for AM65x as well.

    https://dev.ti.com/tirex/explore/node?node=A__Acd0nQTgfZUAAJJCnbWdKQ__AM64-ACADEMY__WI1KRXP__LATEST

    In short,

    • Partition the eMMC.
    • Format the partition as EXT4.
    • Mount the partition.
    • Untar the Rootfs filesystem into the mounted partition.
    • Unmount the partition.
  • Hi, I tried following the guide and it did not work. Can you please test this on an AM65x and let me know your results.

    Here is the output from U-Boot while booting from MMC 0 (eMMC):

    => boot
    switch to partitions #0, OK
    mmc0(part 0) is current device
    SD/MMC found on device 0
    Failed to load 'boot.scr'
    Can't set block device
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    Failed to load '/boot/Image'
    Failed to load '/boot/dtb/ti/k3-am654-base-board.dtb'
    libfdt fdt_check_header(): FDT_ERR_BADMAGIC
    No FDT memory address configured. Please configure
    the FDT address via "fdt addr <address>" command.
    Aborting!
    Failed to load '/boot/dtb/ti/k3-am654-idk.dtbo'
    Bad Linux ARM64 Image magic!
    switch to partitions #0, OK
    mmc0(part 0) is current device
    Scanning mmc 0:1...
    MMC: no card present
    mmc_init: -123, time 2002
    No EFI system partition
    No EFI system partition
    Failed to persist EFI variables
    BootOrder not defined
    EFI boot manager: Cannot load any image
    MMC: no card present
    mmc_init: -123, time 2002
    starting USB...
    No working controllers found
    USB is stopped. Please issue 'usb start' first.
    starting USB...
    No working controllers found
    k3-navss-ringacc ringacc@2b800000: Ring Accelerator probed rings:286, gp-rings[96,32] sci-dev-id:195
    k3-navss-ringacc ringacc@2b800000: dma-ring-reset-quirk: enabled
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    ethernet@46000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
    am65_cpsw_nuss_port ethernet@46000000port@1: phy_startup failed

  • We can only provide limited support on AM65 products. The device family is now more or less in maintenance mode. If this is a critical project and requires more support, we can recommend a few 3Ps you can consider for the project. We are not going to be able to try this on AM65 EVMs. 

    Regards

    Mukul 

  • Thanks Mukul for setting the expectations here. I will just add a note in case it helps the customer.

    The issue is mostly because U-Boot failed to load Kernel image and DTB meaning the eMMC might not be flashed correctly. So, before booting Linux, it should be checked from U-Boot if the eMMC is partitioned and if the images are present at their locations in the filesystem as shown for AM62x

    => mmc part
    
    Partition Map for MMC device 0  --   Partition Type: DOS
    
    Part    Start Sector    Num Sectors     UUID            Type
      1     2048            262144          a87f6bc5-01     0c Boot
      2     264192          1890192         a87f6bc5-02     83
    => ls mmc 0:2 /boot
    <DIR>       4096 .
    <DIR>       4096 ..
    <DIR>       4096 EFI
    <SYM>         29 Image
            19376640 Image-6.1.80-ti-g2e423244f8c0
    <DIR>       4096 dtb
    <SYM>         32 fitImage
             8408718 fitImage-6.1.80-ti-g2e423244f8c0
    => ls mmc 0:2 /boot/dtb
    <DIR>       4096 .
    <DIR>       4096 ..
    <DIR>       4096 ti
    => ls mmc 0:2 /boot/dtb/ti
    <DIR>       4096 .
    <DIR>       4096 ..
                1990 k3-am625-beagleplay-csi2-ov5640.dtbo
                1990 k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
                2882 k3-am625-beagleplay-lincolntech-lcd185-panel.dtbo
               61115 k3-am625-beagleplay.dtb
                1116 k3-am625-sk-dmtimer-pwm.dtbo
                 872 k3-am625-sk-ecap-capture.dtbo
                1969 k3-am625-sk-lincolntech-lcd185-panel.dtbo
                1116 k3-am625-sk-mcspi-loopback.dtbo
                2462 k3-am625-sk-microtips-mf101hie-panel.dtbo
                1406 k3-am625-sk-microtips-mf103hie-lcd2.dtbo
                1636 k3-am625-sk-pwm.dtbo
                2360 k3-am625-sk-rpi-hdr-ehrpwm.dtbo
               59546 k3-am625-sk.dtb
                1915 k3-am62x-sk-csi2-imx219.dtbo
                1886 k3-am62x-sk-csi2-ov5640.dtbo
                1886 k3-am62x-sk-csi2-tevi-ov5640.dtbo
                2131 k3-am62x-sk-csi2-v3link-fusion.dtbo
                 936 k3-am62x-sk-eqep.dtbo
                1345 k3-am62x-sk-hdmi-audio.dtbo
                 478 k3-am62x-sk-hdmi-disable-fastboot.dtbo
                4232 k3-am62x-sk-lpm-wkup-sources.dtbo
                2192 k3-am62x-sk-mcan.dtbo
    => setenv mmcdev 0
    => setenv bootpart 0:2
    => boot
    switch to partitions #0, OK
    mmc0(part 0) is current device
    SD/MMC found on device 0
    Failed to load 'boot.scr'
    574 bytes read in 14 ms (40 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    19376640 bytes read in 147 ms (125.7 MiB/s)
    59546 bytes read in 16 ms (3.5 MiB/s)
    Working FDT set to 88000000
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
       Loading Device Tree to 000000008feee000, end 000000008fffffff ... O
    K
    Working FDT set to 8feee000
    
    Starting kernel ...