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: EMMC to Barmetal Code

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

Hello Sir ,

1. I have  use for sk-am62x board. I want to use emmc boot mode so i use for Linux and M4F bare metal code also same time for run emmc boot mode is possible or not. I use for Linux in emmc boot mode not working bare metal code. I upload uart uni flash mode using. 

2. emmc mode without SD card working or not. I checked emmc boot mode without sd card is not working. solve my problem.

Regards,

VJ.Pandi

  • Hi Hong,

           I did not understand your reply. My Question is at a time run Linux and bare metal code in emmc boot it's possible or not. Already tried this method, but at a time Linux boot is running properly but not running bare metal. I load uart uni flash in bare metal led blink code upload but code is not working mean led not blink. I so many time tried but not working. So any other solutions.

    I have used for emmc flash file name below:

    /home/bpt/ti/mcu_plus_sdk_am62x_09_00_00_19/tools/boot/sbl_prebuilt/am62x-sk/default_sbl_emmc_linux.cfg

    flashing method is uart uniflash link below:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62X/08_06_00_18/exports/docs/api_guide_am62x/GETTING_STARTED_FLASH.html

    Emmc I tried commend below:

    => 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

    => mmc partconf 0 1 1 1
    => mmc bootbus 0 2 0 0

    => setenv mmcdev 0
    => setenv bootpart 0
    => boot

    I select boot mode is emmc image below:

    Regards

    VJ.Pandi.

  • Hi veerapandiyan,

    Could you please share your default_sbl_emmc_linux.cfg? Additionally, if you could share any logs showing the issue, it will be helpful.

    Regards,

    Prashant

  • Hi Prashant,

    Ok. Below file:

    7317.default_sbl_emmc_linux.cfg

    Regards,

    VJ.Pandi.

  • Hi Veerapandiyan,

    I see you are using GP appimages meaning GP device type & MCU+ SDK v9. If so, please note we are discontinuing support for GP devices from MCU+ SDK v9 onwards. We highly recommend switching to the HSFS device type to be able to leverage the newer SDKs.

    For the time being, please use the MCU+ SDK v8.6 & see if the issue still comes.

    Regards,

    Prashant

  • Hi Prashant,


    I Have used for SoC: AM62X SR1.0 HS-FS Model: Texas Instruments AM625 SK board. I tried emmc mode without sd card not boot linux, with sdcard emmc mode working fine.

    Regards,
    Veerapandiyan V.

  • Hi Veerapandiyan,

    Your previous responses suggested that the LED blink example is not working however the last response concerns about the Linux not booting. If you could please clarify the issues one at a time or better if you could share any logs showing the issue, it will be very helpful.

    Regards,

    Prashant

  • Hi Prashant,

    Please my questions two questions raised, your answering question no 1. question no 2 not answering you please check my question 

    Hello Sir ,

    1. I have  use for sk-am62x board. I want to use emmc boot mode so i use for Linux and M4A bare metal code also same time for run emmc boot mode is possible or not. I use for Linux in emmc boot mode not working bare metal code. I upload uart uni flash mode using. 

    2. emmc mode without SD card working or not. I checked emmc boot mode without sd card is not working. solve my problem.

    Regards,

    VJ.Pandi

    Regards,

    Veerapandiyan V.

  • Hi Veerapandiyan,

    Understood. I assume the first issue has been resolved. For the second question, I would request you to please create a new thread describing the issue of Linux not booting & also attaching the logs showing the same.

    Regards,

    Prashant

  • Hi Prashant,

       Ok. I will check and update.

    Regards,

    Veerapandiyan V.

  • Hi Veerapandiyan,

    Please let me know if there are any further questions related to this thread. If not, I will then close the thread.

    Thanks!

  • Hi Prashant,

    EMMC  boot mode working for with SD card, But without sd card not working emmc boot mode how to solve the error.

    Regards,

    Veerapandiyan V.

  • Hi Veeranpandiyan,

    You have to flash the Linux into eMMC UDA partition. Please have a look at the following guide

    Flash Linux to eMMC (ti.com)

    After flashing, following commands should boot Linux from eMMC

    => setenv mmcdev 0
    => setenv bootpart 0
    => boot

    Regards,

    Prashant

  • Hi Prashant,

    Question 1:

    Do we need to put these three commands each time when we are doing eMMC booting?

    => setenv mmcdev 0
    => setenv bootpart 0
    => boot

    Question 2:

    Hi Veerapandiyan,

    I see you are using GP appimages meaning GP device type & MCU+ SDK v9. If so, please note we are discontinuing support for GP devices from MCU+ SDK v9 onwards. We highly recommend switching to the HSFS device type to be able to leverage the newer SDKs.

    For the time being, please use the MCU+ SDK v8.6 & see if the issue still comes.

    Regards,

    Prashant

    We tried MCU+SDK V8.6 bare metal code but again same error is coming. I am attaching the screenshots, boot mode settings and UART uniflash eMMC files also.

    (I) Board Version

    (II) Kernel version

    (III) Boot mode switches

      

    (IV) Error message

    Tell me what to do to rectify my issues.

    Regards,

    Veerapandiyan.

  • Hello Veerapandiyan

    Several of the team members that are supporting you are highlighting that you are not following our guidance and recommended steps or not going through them carefully. 

    We are unable to provide the level of support you are looking for - and if needed you may want to hire a dedicated 3P for project development and goals. 

    We will need to limit the support to you , if we do not see improvement. 

    We do not support bare metal emmc development - so if the current SDK and scope of what Prashant has provided you guidance on is not sufficient - we may not be able to assist further 

  • Hi Mukul,

    I tried for baremetal code in emmc boot mode in MCU+SDK 08.06.00.18. Then coming some error or stuck how to find the problem so help me. I attached the screenshot below:,

    I attached the default_sbl_emmc_linux.cfg file in below please check and update my problem.

    #-----------------------------------------------------------------------------#
    #                                                                             #
    #      DEFAULT CONFIGURATION FILE TO BE USED WITH THE FLASHWRITER SCRIPT      #
    #                                                                             #
    #-----------------------------------------------------------------------------#
    #
    # By default this config file,
    # - points to pre-built flash writer, bootloader for this EVM
    # - The application image points to relative path of the ipc rpmsg linux application image for this EVM
    #   - Make sure this application is built before running this script
    # - You can customized this config file to point to your own bootloader and/or application images
    # - You can use --operation=flashverify-emmc if you just want to verify the flash contents and not flash the file.
    #
    
    
    # First point to sbl_uart_uniflash_stage1 binary, which initialises DDR and receives sbl_uart_uniflash_stage2 binary
    --flash-writer=sbl_prebuilt/am62x-sk/sbl_uart_uniflash_stage1.release.tiimage
    
    # When sending sbl_uart_uniflash_stage2 binary make sure to flash at SOC memory offset 0x0.
    # Points to sbl_uart_uniflash_stage2 binary, which function's as a server to flash one or more files to eMMC
    --file=/home/bpt/workspace_v8.06/sbl_uart_uniflash_stage2_am62x-sk_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_uart_uniflash_stage2_am62x-sk_r5fss0-0_nortos_ti-arm-clang.appimage --operation=flash --flash-offset=0x0
    
    # Now send one or more files to flash or flashverify as needed. The order of sending files does not matter
    
    # When sending bootloader make sure to flash at offset 0x0. ROM expects bootloader at offset 0x0 of eMMC
    --file=sbl_prebuilt/am62x-sk/sbl_emmc_linux_stage1.release.tiimage --operation=flash-emmc --flash-offset=0x0
    
    # 2nd stage bootloader is flashed at 0x80000 or to whatever offset your bootloader is configured for
    --file=/home/bpt/workspace_v8.06/sbl_emmc_linux_stage2_am62x-sk_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_emmc_linux_stage2_am62x-sk_r5fss0-0_nortos_ti-arm-clang.appimage --operation=flash-emmc --flash-offset=0x80000
    
    # When sending application image, make sure to flash at offset 0x100000 (default) or to whatever offset your bootloader is configured for
    --file=/home/bpt/workspace_v8.06/gpio_led_blink_am62x-sk_m4fss0-0_freertos_ti-arm-clang/Debug/gpio_led_blink_am62x-sk_m4fss0-0_freertos_ti-arm-clang.appimage --operation=flash-emmc --flash-offset=0x100000
    
    # HSM image is flashed at 0x800000 or to whatever offset your bootloader is configured for
    --file=/home/bpt/ti/mcu_plus_sdk_am62x_09_00_00_19/tools/boot/HSMAppimageGen/board/am62x-sk/hsm.appimage --operation=flash-emmc --flash-offset=0x800000
    
    # DM image is flashed at 0xa00000 or to whatever offset your bootloader is configured for
    --file=/home/bpt/workspace_v8.06/ipc_rpmsg_echo_linux_am62x-sk_r5fss0-0_freertos_ti-arm-clang/Debug/ipc_rpmsg_echo_linux_am62x-sk_r5fss0-0_freertos_ti-arm-clang.appimage --operation=flash-emmc --flash-offset=0xA00000
    
    # Linux image is flashed at 0xC00000 or to whatever offset your bootloader is configured for
    --file=/home/bpt/ti/mcu_plus_sdk_am62x_09_00_00_19/tools/boot/linuxAppimageGen/board/am62x-sk/linux.appimage --operation=flash-emmc --flash-offset=0xC00000
    

    Regards,

    Veerapandiyan V.

  • Hi Veerapandiyan,

    I see that you are flashing and using the CCS compiled R5F example. The issue you are facing is actually expected in this case because there is an issue in the MCU+ SDK v8.6 where the CCS compiled R5F examples do not work.

    However, you can use the SDK makefiles instead to build the R5F examples which functions properly.

    ~/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang 08.06.00.18
    ❯ make -s all
    Generating SysConfig files ...
    Running script...
    Validating...
    Generating Code (example.syscfg)...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_dpl_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_dpl_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_drivers_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_drivers_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_drivers_open_close.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_drivers_open_close.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_pinmux_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_power_clock_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_board_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_board_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_board_open_close.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/generated/ti_board_open_close.h...
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: ../../../ipc_rpmsg_echo.c
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: ../main.c
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_drivers_config.c
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_drivers_open_close.c
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_board_config.c
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_board_open_close.c
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_dpl_config.c
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_pinmux_config.c
    Compiling: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_power_clock_config.c
    .
    Linking: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out ...
    Linking: am62x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out Done !!!
    .
    Boot image: am62x:r5fss0-0:freertos:ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage ...
    Generating certificate for ipc_rpmsg_echo_linux.release.appimage ...
    Boot image: am62x:r5fss0-0:freertos:ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage Done !!!
    .
    Boot image: am62x:r5fss0-0:freertos:ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage.hs_fs Done !!!
    .
    
    ~/ti/mcu_plus_sdk/am62x/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang 08.06.00.18*
    ❯ ls -l ipc_rpmsg_echo_linux.release.appimage
    -rw-r--r-- 1 p-shivhare p-shivhare 142526 Feb  1 23:15 ipc_rpmsg_echo_linux.release.appimage
    

    Regards,

    Prashant

  • Hi Prashant,

    Thank you for your response. 8.6 eMMC boot mode baremetal code working fine. I tried for HS_FS board version  9.0. Any error mean i will ask.

    Thanks Regards,

    Veerapandiyan V.

  • Hi Prashant,

          I have use AM62B-P1 (HS_FS) board loading for baremetal code for emmc is comming some error how to fix.

    I used for MCU+SDK 09.00.00.03 version. I attached screenshot and default_sbl_emmc_linux_hs_fs.cfg  file also:

    i).Board Version

    ii).Kernal Version

    iii). Uart uniflash

    iv).Error file

    v).cfg file

    #-----------------------------------------------------------------------------#
    #                                                                             #
    #      DEFAULT CONFIGURATION FILE TO BE USED WITH THE FLASHWRITER SCRIPT      #
    #                                                                             #
    #-----------------------------------------------------------------------------#
    #
    # By default this config file,
    # - points to pre-built flash writer, bootloader for this EVM
    # - The application image points to relative path of the ipc rpmsg linux application image for this EVM
    #   - Make sure this application is built before running this script
    # - You can customized this config file to point to your own bootloader and/or application images
    # - You can use --operation=flashverify-emmc if you just want to verify the flash contents and not flash the file.
    #
    
    
    # First point to sbl_uart_uniflash_stage1 binary, which initialises DDR and receives sbl_uart_uniflash_stage2 binary
    --flash-writer=sbl_prebuilt/am62x-sk/sbl_uart_uniflash_stage1.release.hs_fs.tiimage
    
    # When sending sbl_uart_uniflash_stage2 binary make sure to flash at SOC memory offset 0x0.
    # Points to sbl_uart_uniflash_stage2 binary, which function's as a server to flash one or more files to eMMC
    --file=/home/bpt/ti/mcu_plus_sdk_am62x_09_00_00_19/examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage2.release.appimage.hs_fs --operation=flash --flash-offset=0x0
    
    # Now send one or more files to flash or flashverify as needed. The order of sending files does not matter
    
    # When sending bootloader make sure to flash at offset 0x0. ROM expects bootloader at offset 0x0 of eMMC
    --file=sbl_prebuilt/am62x-sk/sbl_emmc_linux_stage1.release.hs_fs.tiimage --operation=flash-emmc --flash-offset=0x0
    
    # 2nd stage bootloader is flashed at 0x80000 or to whatever offset your bootloader is configured for
    --file=/home/bpt/ti/mcu_plus_sdk_am62x_09_00_00_19/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_emmc_linux_stage2.release.appimage.hs_fs --operation=flash-emmc --flash-offset=0x80000
    
    # When sending application image, make sure to flash at offset 0x100000 (default) or to whatever offset your bootloader is configured for
    --file=/home/bpt/workspace_v12/gpio_led_blink_am62x-sk_m4fss0-0_nortos_ti-arm-clang/Debug/gpio_led_blink_am62x-sk_m4fss0-0_nortos_ti-arm-clang.appimage.hs_fs --operation=flash-emmc --flash-offset=0x100000
    
    # HSM image is flashed at 0x800000 or to whatever offset your bootloader is configured for
    --file=/home/bpt/ti/mcu_plus_sdk_am62x_09_00_00_19/tools/boot/HSMAppimageGen/board/am62x-sk/hsm.appimage.hs_fs --operation=flash-emmc --flash-offset=0x800000
    
    # DM image is flashed at 0xa00000 or to whatever offset your bootloader is configured for
    --file=/home/bpt/ti/mcu_plus_sdk_am62x_09_00_00_19/examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage.hs_fs --operation=flash-emmc --flash-offset=0xA00000
    
    # Linux image is flashed at 0xC00000 or to whatever offset your bootloader is configured for
    --file=/home/bpt/ti/mcu_plus_sdk_am62x_09_00_00_19/tools/boot/linuxAppimageGen/board/am62x-sk/linux.appimage.hs_fs --operation=flash-emmc --flash-offset=0xC00000
    
    

    how to solve the problem.

    Regards,

    Veerapandiyan V.

  • Hi Veeranpandiyan,

    I am not sure from which MCU+ SDK version you have imported the GPIO_LED_BLINK example for M4 core in CCS. In case this example is from MCU+ SDK v8.6 then it will explain the reason of failure.

    Please make sure all the examples are from the MCU+ SDK v9.0 then the issue should not come.

    Regards,

    Prashant

  • Hi Prashant,

    Ok.I will try and Update.

    Regards,

    Veerapandiyan V.

  • Hi Prashant,

    Coming other error i attached screenshot;

    DMSC Firmware Version 9.0.5--v09.00.05 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : eMMC 
    [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
    [BOOTLOADER_PROFILE] Boot Image Size  : 128 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    m4f0-0
    r5f0-0
    [BOOTLOADER PROFILE] System_init                      :       6565us 
    [BOOTLOADER PROFILE] Drivers_open                     :     125998us 
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us 
    [BOOTLOADER PROFILE] Sciclient Get Version            :       9928us 
    [BOOTLOADER PROFILE] App_loadImages                   :      22001us 
    [BOOTLOADER PROFILE] App_loadSelfcoreImage            :      24956us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :     189449us 
    
    Image loading done, switching to application ...
    Starting MCU-m4f and 2nd stage bootloader
    
    DMSC Firmware Version 9.0.5--v09.00.05 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : eMMC 
    [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
    [BOOTLOADER_PROFILE] Boot Image Size  : 1014 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    hsm-m4f0-0
    r5f0-0
    a530-0
    [BOOTLOADER PROFILE] System_init                      :       2660us 
    [BOOTLOADER PROFILE] Drivers_open                     :      19542us 
    [BOOTLOADER PROFILE] Board_driversOpen                :          1us 
    [BOOTLOADER PROFILE] Sciclient Get Version            :       9962us 
    [BOOTLOADER PROFILE] App_loadImages                   :      21377us 
    [BOOTLOADER PROFILE] App_loadSelfcoreImage            :      26262us 
    [BOOTLOADER PROFILE] App_loadLinuxImages              :      53228us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :     133034us 
    
    Image loading done, switching to application ...
    Starting linux and RTOS/Baremetal applications
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 00:42:57, Jan 13 2023
    
    U-Boot SPL 2023.04-g24098ea90d (Jul 06 2023 - 12:59:40 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    SPL initial stack usage: 1856 bytes
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:1
    Error: could not access storage.
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2023.04-00001-gf5b119738d-dirty (Feb 01 2024 - 12:07:33 +0530)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 80, trying to read at 81
    Board: AM62B-SKEVM-P1 rev A
    DRAM:  2 GiB
    Core:  71 devices, 31 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial
    Out:   serial
    Err:   serial
    Unidentified board claims AM62B-SKEVM-P1 in eeprom header
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0 
    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
    20593152 bytes read in 141 ms (139.3 MiB/s)
    57500 bytes read in 17 ms (3.2 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
    ERROR: reserving fdt memory region failed (addr=ff700000 size=8ca000 flags=4)
       Loading Device Tree to 000000008feee000, end 000000008fffffff ... OK
    Working FDT set to 8feee000
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.1.33-g40c32565ca (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Thu Jul  6 14:17:24 UTC 2023
    [    0.000000] Machine model: Texas Instruments AM625 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created CMA memory pool at 0x00000000f7600000, size 128 MiB
    [    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
    [    0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 14 MiB
    [    0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9da00000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009db00000, size 12 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@9db00000, compatible id shared-dma-pool
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   empty
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x000000009c7fffff]
    [    0.000000]   node   0: [mem 0x000000009c800000-0x000000009e6fffff]
    [    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
    [    0.000000]   node   0: [mem 0x000000009e780000-0x000000009fffffff]
    [    0.000000]   node   0: [mem 0x00000000a0000000-0x00000000ff6fffff]
    [    0.000000]   node   0: [mem 0x00000000ff700000-0x00000000fffc9fff]
    [    0.000000]   node   0: [mem 0x00000000fffca000-0x00000000ffffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: Trusted OS migration not required
    [    0.000000] psci: SMC Calling Convention v1.2
    [    0.000000] percpu: Embedded 19 pages/cpu s38376 r8192 d31256 u77824
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=spi-nand0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),98048k@32m(ospi.rootfs),256k@130816k(ospi.phypattern);omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system) root=PARTUUID=78f84df1-60c4-4d04-9ec1-8b948dc71642 rw rootfstype=ext4 rootwait
    [    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] Memory: 1838092K/2097152K available (12480K kernel code, 1294K rwdata, 4040K rodata, 2176K init, 498K bss, 127988K reserved, 131072K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu: 	RCU event tracing is enabled.
    [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
    [    0.000000] 	Trampoline variant of Tasks RCU enabled.
    [    0.000000] 	Tracing variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [    0.000000] GICv3: 256 SPIs implemented
    [    0.000000] GICv3: 0 Extended SPIs implemented
    [    0.000000] Root IRQ handler: gic_handle_irq
    [    0.000000] GICv3: GICv3 features: 16 PPIs
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
    [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x0000000080040000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080050000
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008539] Console: colour dummy device 80x25
    [    0.013135] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023817] pid_max: default: 32768 minimum: 301
    [    0.028592] LSM: Security Framework initializing
    [    0.033448] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.041032] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.050877] cblist_init_generic: Setting adjustable number of callback queues.
    [    0.058342] cblist_init_generic: Setting shift to 2 and lim to 1.
    [    0.064643] cblist_init_generic: Setting shift to 2 and lim to 1.
    [    0.071044] rcu: Hierarchical SRCU implementation.
    [    0.075951] rcu: 	Max phase no-delay instances is 1000.
    [    0.081562] Platform MSI: msi-controller@1820000 domain created
    [    0.087885] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.097735] EFI services will not be available.
    [    0.102674] smp: Bringing up secondary CPUs ...
    [    0.107990] Detected VIPT I-cache on CPU1
    [    0.108108] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [    0.108127] GICv3: CPU1: using allocated LPI pending table @0x0000000080060000
    [    0.108185] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.108903] Detected VIPT I-cache on CPU2
    [    0.108988] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
    [    0.109003] GICv3: CPU2: using allocated LPI pending table @0x0000000080070000
    [    0.109038] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [    0.109689] Detected VIPT I-cache on CPU3
    [    0.109772] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
    [    0.109785] GICv3: CPU3: using allocated LPI pending table @0x0000000080080000
    [    0.109817] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [    0.109887] smp: Brought up 1 node, 4 CPUs
    [    0.189618] SMP: Total of 4 processors activated.
    [    0.194432] CPU features: detected: 32-bit EL0 Support
    [    0.199705] CPU features: detected: CRC32 instructions
    [    0.205027] CPU: All CPU(s) started at EL2
    [    0.209225] alternatives: applying system-wide alternatives
    [    0.216810] devtmpfs: initialized
    [    0.228393] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.238395] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.249992] pinctrl core: initialized pinctrl subsystem
    [    0.255983] DMI not present or invalid.
    [    0.260558] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.267827] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
    [    0.275388] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.283499] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.291690] audit: initializing netlink subsys (disabled)
    [    0.297398] audit: type=2000 audit(0.192:1): state=initialized audit_enabled=0 res=1
    [    0.297888] thermal_sys: Registered thermal governor 'step_wise'
    [    0.305331] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.311519] cpuidle: using governor menu
    [    0.322391] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.329424] ASID allocator initialised with 65536 entries
    [    0.345817] platform 30200000.dss: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/sii9022@3b
    [    0.357059] platform connector: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/sii9022@3b
    [    0.368000] KASLR disabled due to lack of seed
    [    0.379779] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.386753] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.393163] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.400103] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.406511] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.413450] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.419857] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.426796] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.435020] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected
    [    0.445119] iommu: Default domain type: Translated 
    [    0.450180] iommu: DMA domain TLB invalidation policy: strict mode 
    [    0.456884] SCSI subsystem initialized
    [    0.461093] usbcore: registered new interface driver usbfs
    [    0.466747] usbcore: registered new interface driver hub
    [    0.472238] usbcore: registered new device driver usb
    [    0.477965] pps_core: LinuxPPS API ver. 1 registered
    [    0.483046] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.492397] PTP clock support registered
    [    0.496526] EDAC MC: Ver: 3.0.0
    [    0.500679] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100
    [    0.507816] FPGA manager framework
    [    0.511397] Advanced Linux Sound Architecture Driver Initialized.
    [    0.518645] clocksource: Switched to clocksource arch_sys_counter
    [    0.525147] VFS: Disk quotas dquot_6.6.0
    [    0.529203] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.542206] NET: Registered PF_INET protocol family
    [    0.547516] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.556777] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
    [    0.565588] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.573529] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.581732] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)
    [    0.589722] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.596642] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
    [    0.603568] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
    [    0.611126] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.617399] RPC: Registered named UNIX socket transport module.
    [    0.623476] RPC: Registered udp transport module.
    [    0.628286] RPC: Registered tcp transport module.
    [    0.633094] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.639687] NET: Registered PF_XDP protocol family
    [    0.644600] PCI: CLS 0 bytes, default 64
    [    0.649430] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.659516] Initialise system trusted keyrings
    [    0.664344] workingset: timestamp_bits=46 max_order=19 bucket_order=0
    [    0.676792] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.683501] NFS: Registering the id_resolver key type
    [    0.688733] Key type id_resolver registered
    [    0.693010] Key type id_legacy registered
    [    0.697177] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.704034] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.711804] 9p: Installing v9fs 9p2000 file system support
    [    0.751616] Key type asymmetric registered
    [    0.755807] Asymmetric key parser 'x509' registered
    [    0.760850] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [    0.768586] io scheduler mq-deadline registered
    [    0.773227] io scheduler kyber registered
    [    0.780643] pinctrl-single 4084000.pinctrl: 34 pins, size 136
    [    0.787189] pinctrl-single f4000.pinctrl: 171 pins, size 684
    [    0.794090] pinctrl-single a40000.pinctrl: 512 pins, size 2048
    [    0.807886] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [    0.822949] loop: module loaded
    [    0.827538] megasas: 07.719.03.00-rc1
    [    0.835492] tun: Universal TUN/TAP device driver, 1.6
    [    0.841398] thunder_xcv, ver 1.0
    [    0.844755] thunder_bgx, ver 1.0
    [    0.848084] nicpf, ver 1.0
    [    0.851260] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
    [    0.858649] hns3: Copyright (c) 2017 Huawei Corporation.
    [    0.864168] hclge is initializing
    [    0.867581] e1000: Intel(R) PRO/1000 Network Driver
    [    0.872567] e1000: Copyright (c) 1999-2006 Intel Corporation.
    [    0.878476] e1000e: Intel(R) PRO/1000 Network Driver
    [    0.883551] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
    [    0.889632] igb: Intel(R) Gigabit Ethernet Network Driver
    [    0.895151] igb: Copyright (c) 2007-2014 Intel Corporation.
    [    0.900874] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.907282] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.913469] sky2: driver version 1.30
    [    0.917938] VFIO - User Level meta-driver version: 0.3
    [    0.923976] usbcore: registered new interface driver usb-storage
    [    0.930912] i2c_dev: i2c /dev entries driver
    [    0.937463] sdhci: Secure Digital Host Controller Interface driver
    [    0.943827] sdhci: Copyright(c) Pierre Ossman
    [    0.948800] Synopsys Designware Multimedia Card Interface Driver
    [    0.955406] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.962244] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.968602] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.975573] usbcore: registered new interface driver usbhid
    [    0.981279] usbhid: USB HID core driver
    [    0.986502] optee: probing for conduit method.
    [    0.991109] optee: revision 3.20 (8e74d476)
    [    0.991435] optee: dynamic shared memory is enabled
    [    1.000967] optee: initialized driver
    [    1.006551] Initializing XFRM netlink socket
    [    1.010982] NET: Registered PF_PACKET protocol family
    [    1.016289] 9pnet: Installing 9P2000 support
    [    1.020730] Key type dns_resolver registered
    [    1.025534] registered taskstats version 1
    [    1.029764] Loading compiled-in X.509 certificates
    [    1.043483] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    [    1.106779] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
    [    1.114293] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
    [    1.121402] omap_i2c 20020000.i2c: bus 2 rev0.12 at 400 kHz
    [    1.127394] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
    [    1.135742] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
    [    1.144979] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
    [    1.154948] ti-udma 485c0100.dma-controller: Number of rings: 82
    [    1.163171] ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
    [    1.174259] ti-udma 485c0000.dma-controller: Number of rings: 150
    [    1.184364] ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
    [    1.194625] printk: console [ttyS2] disabled
    [    1.199118] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 239, base_baud = 3000000) is a 8250
    [    1.208017] printk: console [ttyS2] enabled
    [    1.208017] printk: console [ttyS2] enabled
    [    1.216475] printk: bootconsole [ns16550a0] disabled
    [    1.216475] printk: bootconsole [ns16550a0] disabled
    [    1.229540] spi-nor spi0.0: s28hs512t (65536 Kbytes)
    [    1.234657] 7 fixed-partitions partitions found on MTD device fc40000.spi.0
    [    1.241615] Creating 7 MTD partitions on "fc40000.spi.0":
    [    1.247008] 0x000000000000-0x000000080000 : "ospi.tiboot3"
    [    1.253811] 0x000000080000-0x000000280000 : "ospi.tispl"
    [    1.260237] 0x000000280000-0x000000680000 : "ospi.u-boot"
    [    1.266767] 0x000000680000-0x0000006c0000 : "ospi.env"
    [    1.272953] 0x0000006c0000-0x000000700000 : "ospi.env.backup"
    [    1.279774] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
    [    1.286360] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
    [    1.294804] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    1.338670] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.348491] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    1.356603] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver TI DP83867
    [    1.364729] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
    [    1.377593] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
    [    1.384720] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [    1.391206] pps pps0: new PPS source ptp0
    [    1.395531] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
    [    1.406001] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
    [    1.417479] mmc0: CQHCI version 5.10
    [    1.423760] pca953x 1-0022: supply vcc not found, using dummy regulator
    [    1.430536] pca953x 1-0022: using AI
    [    1.462548] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    1.471644] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [    1.472390] mmc2: CQHCI version 5.10
    [    1.472449] mmc1: CQHCI version 5.10
    [    1.492129] ALSA device list:
    [    1.495132]   No soundcards found.
    [    1.527518] mmc2: SDHCI controller on fa20000.mmc [fa20000.mmc] using ADMA 64-bit
    [    1.550706] mmc0: Command Queue Engine enabled
    [    1.555185] mmc0: new HS200 MMC card at address 0001
    [    1.561048] mmcblk0: mmc0:0001 S0J56X 14.8 GiB 
    [    1.569337]  mmcblk0: p1
    [    1.572594] mmcblk0boot0: mmc0:0001 S0J56X 31.5 MiB 
    [    1.588601] mmcblk0boot1: mmc0:0001 S0J56X 31.5 MiB 
    [    1.594835] mmcblk0rpmb: mmc0:0001 S0J56X 4.00 MiB, chardev (240:0)
    [    2.990314] sdhci-am654 fa00000.mmc: Power on failed
    [    3.026514] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
    [    3.243676] mmc0: running CQE recovery
    [    3.277550] mmc0: running CQE recovery
    [    3.303881] mmc0: running CQE recovery
    [    3.316376] I/O error, dev mmcblk0, sector 41754 op 0x1:(WRITE) flags 0x4800 phys_seg 128 prio class 2
    [    3.325783] Buffer I/O error on dev mmcblk0p1, logical block 5215, lost async page write
    [    3.333973] Buffer I/O error on dev mmcblk0p1, logical block 5216, lost async page write
    [    3.342158] Buffer I/O error on dev mmcblk0p1, logical block 5217, lost async page write
    [    3.350340] Buffer I/O error on dev mmcblk0p1, logical block 5218, lost async page write
    [    3.358509] Buffer I/O error on dev mmcblk0p1, logical block 5219, lost async page write
    [    3.366678] Buffer I/O error on dev mmcblk0p1, logical block 5220, lost async page write
    [    3.374823] Buffer I/O error on dev mmcblk0p1, logical block 5221, lost async page write
    [    3.382957] Buffer I/O error on dev mmcblk0p1, logical block 5222, lost async page write
    [    3.391089] Buffer I/O error on dev mmcblk0p1, logical block 5223, lost async page write
    [    3.399212] Buffer I/O error on dev mmcblk0p1, logical block 5224, lost async page write
    [    3.424541] mmc0: running CQE recovery
    [    3.451116] mmc0: running CQE recovery
    [    3.478153] mmc0: running CQE recovery
    [    3.490381] I/O error, dev mmcblk0, sector 42778 op 0x1:(WRITE) flags 0x4800 phys_seg 128 prio class 2
    [    3.515672] mmc0: running CQE recovery
    [    3.558950] mmc0: running CQE recovery
    [    3.619727] mmc0: running CQE recovery
    [    3.638741] I/O error, dev mmcblk0, sector 43802 op 0x1:(WRITE) flags 0x4800 phys_seg 128 prio class 2
    [    3.679955] mmc0: running CQE recovery
    [    3.715067] mmc0: running CQE recovery
    [    3.747444] mmc0: running CQE recovery
    [    3.752766] I/O error, dev mmcblk0, sector 44826 op 0x1:(WRITE) flags 0x800 phys_seg 73 prio class 2
    [    3.763041] I/O error, dev mmcblk0, sector 73002 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 2
    [    3.772165] I/O error, dev mmcblk0, sector 111770 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 2
    [    3.781357] I/O error, dev mmcblk0, sector 258066 op 0x1:(WRITE) flags 0x800 phys_seg 2 prio class 2
    [    3.790561] I/O error, dev mmcblk0, sector 259690 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 2
    [    3.891720] JBD2: recovery failed
    [    3.895156] EXT4-fs (mmcblk0p1): error loading journal
    [    3.916786] VFS: Cannot open root device "PARTUUID=78f84df1-60c4-4d04-9ec1-8b948dc71642" or unknown-block(179,1): error -5
    [    3.927991] Please append a correct "root=" boot option; here are the available partitions:
    [    3.936409] 1f00             512 mtdblock0 
    [    3.936430]  (driver?)
    [    3.943013] 1f01            2048 mtdblock1 
    [    3.943029]  (driver?)
    [    3.949595] 1f02            4096 mtdblock2 
    [    3.949606]  (driver?)
    [    3.956156] 1f03             256 mtdblock3 
    [    3.956166]  (driver?)
    [    3.962721] 1f04             256 mtdblock4 
    [    3.962732]  (driver?)
    [    3.969279] 1f05           57088 mtdblock5 
    [    3.969287]  (driver?)
    [    3.975828] 1f06             256 mtdblock6 
    [    3.975835]  (driver?)
    [    3.982366] b300        15540224 mmcblk0 
    [    3.982374]  driver: mmcblk
    [    3.989175]   b301        15540190 mmcblk0p1 78f84df1-60c4-4d04-9ec1-8b948dc71642
    [    3.989184] 
    [    3.998184] b320           32256 mmcblk0boot0 
    [    3.998190]  (driver?)
    [    4.004991] b340           32256 mmcblk0boot1 
    [    4.004996]  (driver?)
    [    4.011842] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
    [    4.020263] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 6.1.33-g40c32565ca #1
    [    4.027209] Hardware name: Texas Instruments AM625 SK (DT)
    [    4.032682] Call trace:
    [    4.035119]  dump_backtrace.part.0+0xdc/0xf0
    [    4.039396]  show_stack+0x18/0x30
    [    4.042706]  dump_stack_lvl+0x68/0x84
    [    4.046367]  dump_stack+0x18/0x34
    [    4.049675]  panic+0x184/0x344
    [    4.052724]  mount_block_root+0x184/0x234
    [    4.056726]  mount_root+0x204/0x240
    [    4.060204]  prepare_namespace+0x130/0x170
    [    4.064289]  kernel_init_freeable+0x258/0x284
    [    4.068634]  kernel_init+0x24/0x130
    [    4.072115]  ret_from_fork+0x10/0x20
    [    4.075685] SMP: stopping secondary CPUs
    [    4.079601] Kernel Offset: disabled
    [    4.083077] CPU features: 0x00000,00800084,0000420b
    [    4.087943] Memory Limit: none
    [    4.090992] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1) ]---
    
    
    

    how to fix this problem.

    Regards,

    Veerapandiyan V.

  • Hi Veerapandiyan,

    I see that you are booting Linux from eMMC. In this case, this is a known issue where Linux Kernel crashes when using the SBL_EMMC_LINUX from MCU+ SDK v9.0 but works fine when using PSDK boot flow.

    To resolve the issue, you can update the source file (examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62x-sk/r5fss0-0_nortos/main.c) with the following

    /*
     *  Copyright (C) 2018-2021 Texas Instruments Incorporated
     *
     *  Redistribution and use in source and binary forms, with or without
     *  modification, are permitted provided that the following conditions
     *  are met:
     *
     *    Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     *    Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the
     *    distribution.
     *
     *    Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    #include <stdlib.h>
    #include <string.h>
    #include "ti_drivers_config.h"
    #include "ti_drivers_open_close.h"
    #include "ti_board_open_close.h"
    #include <drivers/device_manager/sciclient.h>
    #include <drivers/bootloader.h>
    #include <kernel/dpl/CacheP.h>
    
    
    /* This start address and length depends upon the linker memory for second stage SBL.
       It is necessary to change the below start address and length if in case the linker
       memory region for second stage SBL is changed.
    */
    
    #define BOOTLOADER_SECOND_STAGE_RESERVED_MEMORY_START       0xA0340000
    #define BOOTLOADER_SECOND_STAGE_RESERVED_MEMORY_LENGTH      0x200000
    
    CacheP_Config gCacheConfig = {};
    
    /* This buffer needs to be defined for eMMC boot in case of HS device for
       image authentication
       The size of the buffer should be large enough to accomodate the appimage */
    uint8_t gAppimage[0x800000] __attribute__ ((section (".app"), aligned (4096)));
    
    /*  In this sample bootloader, we load appimages for RTOS/Baremetal and Linux at different offset
        i.e the appimage for Linux (for A53) and RTOS/Baremetal (for R5, M4) is flashed at different offset in eMMC
    
        Here at one eMMC offset, there is a multi-core .appimage that holds RPRC for M4 and R5
        and another .appimage that holds the linux binaries(ATF, OPTEE, A53-SPL) at another offset.
    
        When flashing make sure to flash images to below offset using the flash tool.
    
        RTOS/Baremetal appimage (for R5, M4 cores) flash at offset 0x800000 of eMMC
        Linux appimage (for A53) flash at offset 0xA00000 of eMMC
    */
    
    /* call this API to stop the booting process and spin, do that you can connect
     * debugger, load symbols and then make the 'loop' variable as 0 to continue execution
     * with debugger connected.
     */
    
    
    void loop_forever()
    {
        volatile uint32_t loop = 1;
        while(loop)
            ;
    }
    
    int32_t App_loadImages(Bootloader_Handle bootHandle, Bootloader_BootImageInfo *bootImageInfo)
    {
    	int32_t status = SystemP_FAILURE;
    
        if(bootHandle != NULL)
        {
            status = Bootloader_parseMultiCoreAppImage(bootHandle, bootImageInfo);
    
            /* Load CPUs */
            if(status == SystemP_SUCCESS)
            {
                bootImageInfo->cpuInfo[CSL_CORE_ID_HSM_M4FSS0_0].clkHz = Bootloader_socCpuGetClkDefault(CSL_CORE_ID_HSM_M4FSS0_0);
                Bootloader_profileAddCore(CSL_CORE_ID_HSM_M4FSS0_0);
                status = Bootloader_loadCpu(bootHandle, &(bootImageInfo->cpuInfo[CSL_CORE_ID_HSM_M4FSS0_0]));
            }
        }
    
        return status;
    }
    
    int32_t App_loadSelfcoreImage(Bootloader_Handle bootHandle, Bootloader_BootImageInfo *bootImageInfo)
    {
    	int32_t status = SystemP_FAILURE;
    
        if(bootHandle != NULL)
        {
            status = Bootloader_parseMultiCoreAppImage(bootHandle, bootImageInfo);
    
            if(status == SystemP_SUCCESS)
            {
                bootImageInfo->cpuInfo[CSL_CORE_ID_R5FSS0_0].clkHz = Bootloader_socCpuGetClkDefault(CSL_CORE_ID_R5FSS0_0);
                Bootloader_profileAddCore(CSL_CORE_ID_R5FSS0_0);
                status = Bootloader_loadSelfCpu(bootHandle, &(bootImageInfo->cpuInfo[CSL_CORE_ID_R5FSS0_0]));
            }
        }
    
        return status;
    }
    
    int32_t App_loadLinuxImages(Bootloader_Handle bootHandle, Bootloader_BootImageInfo *bootImageInfo)
    {
    	int32_t status = SystemP_FAILURE;
    
        if(bootHandle != NULL)
        {
    		status = Bootloader_parseAndLoadLinuxAppImage(bootHandle, bootImageInfo);
    
    		if(status == SystemP_SUCCESS)
    		{
    			bootImageInfo->cpuInfo[CSL_CORE_ID_A53SS0_0].clkHz = Bootloader_socCpuGetClkDefault(CSL_CORE_ID_A53SS0_0);
                Bootloader_profileAddCore(CSL_CORE_ID_A53SS0_0);
    			status = Bootloader_loadCpu(bootHandle, &(bootImageInfo->cpuInfo[CSL_CORE_ID_A53SS0_0]));
    		}
    	}
    
    	return status;
    }
    
    int32_t App_runCpus(Bootloader_Handle bootHandle, Bootloader_BootImageInfo *bootImageInfo)
    {
    	int32_t status = SystemP_FAILURE;
    
    	status = Bootloader_runCpu(bootHandle, &(bootImageInfo->cpuInfo[CSL_CORE_ID_HSM_M4FSS0_0]));
    
    	return status;
    }
    
    int32_t App_runLinuxCpu(Bootloader_Handle bootHandle, Bootloader_BootImageInfo *bootImageInfo)
    {
    	int32_t status = SystemP_FAILURE;
    
        /* Unlock all the control MMRs. Linux/U-boot expects all the MMRs to be unlocked */
        SOC_unlockAllMMR();
    
    	status = Bootloader_runCpu(bootHandle, &(bootImageInfo->cpuInfo[CSL_CORE_ID_A53SS0_0]));
    
    	return status;
    }
    
    int main()
    {
        int32_t status;
    
        Bootloader_profileReset();
    
        System_init();
        Bootloader_profileAddProfilePoint("System_init");
    
        Drivers_open();
        Bootloader_profileAddProfilePoint("Drivers_open");
    
        status = Board_driversOpen();
        DebugP_assert(status == SystemP_SUCCESS);
        Bootloader_profileAddProfilePoint("Board_driversOpen");
    
        status = Sciclient_getVersionCheck(1);
        Bootloader_profileAddProfilePoint("Sciclient Get Version");
    
        if(SystemP_SUCCESS == status)
        {
            Bootloader_BootImageInfo bootImageInfo;
    		Bootloader_Params bootParams;
            Bootloader_Handle bootHandle;
    
            Bootloader_BootImageInfo bootImageInfoDM;
    		Bootloader_Params bootParamsDM;
            Bootloader_Handle bootHandleDM;
    
    		Bootloader_BootImageInfo bootImageInfoLinux;
    		Bootloader_Params bootParamsLinux;
            Bootloader_Handle bootHandleLinux;
    
            Bootloader_Params_init(&bootParams);
            Bootloader_Params_init(&bootParamsDM);
    		Bootloader_Params_init(&bootParamsLinux);
    
    		Bootloader_BootImageInfo_init(&bootImageInfo);
            Bootloader_BootImageInfo_init(&bootImageInfoDM);
    		Bootloader_BootImageInfo_init(&bootImageInfoLinux);
    
            bootHandle = Bootloader_open(CONFIG_BOOTLOADER_EMMC_HSM, &bootParams);
            bootHandleDM = Bootloader_open(CONFIG_BOOTLOADER_EMMC_DM, &bootParamsDM);
    		bootHandleLinux = Bootloader_open(CONFIG_BOOTLOADER_EMMC_LINUX, &bootParamsLinux);
    
            Bootloader_ReservedMemInit(BOOTLOADER_SECOND_STAGE_RESERVED_MEMORY_START, \
                                        BOOTLOADER_SECOND_STAGE_RESERVED_MEMORY_LENGTH);
    
            if(bootHandle != NULL)
            {
               ((Bootloader_Config *)bootHandle)->scratchMemPtr = gAppimage;
    
    			status = App_loadImages(bootHandle, &bootImageInfo);
                Bootloader_profileAddProfilePoint("App_loadImages");
            }
    
            if(SystemP_SUCCESS == status)
    		{
                if(bootHandleDM != NULL)
                {
                    ((Bootloader_Config *)bootHandleDM)->scratchMemPtr = gAppimage;
    
                    status = App_loadSelfcoreImage(bootHandleDM, &bootImageInfoDM);
                    Bootloader_profileAddProfilePoint("App_loadSelfcoreImage");
                }
            }
    
    		if(SystemP_SUCCESS == status)
    		{
    			if(bootHandleLinux != NULL)
    			{
                    ((Bootloader_Config *)bootHandleLinux)->scratchMemPtr = gAppimage;
    
    				status = App_loadLinuxImages(bootHandleLinux, &bootImageInfoLinux);
                    Bootloader_profileAddProfilePoint("App_loadLinuxImages");
    			}
            }
    
            Bootloader_profileUpdateAppimageSize(Bootloader_getMulticoreImageSize(bootHandleDM) + \
                                                Bootloader_getMulticoreImageSize(bootHandle) + \
                                                Bootloader_getMulticoreImageSize(bootHandleLinux));
            Bootloader_profileUpdateMediaAndClk(BOOTLOADER_MEDIA_EMMC, MMCSD_getInputClk(gMmcsdHandle[CONFIG_MMCSD0]));
    
    		if(SystemP_SUCCESS == status)
    		{
    			/* Print SBL log as Linux prints log to the same UART port */
    			Bootloader_profilePrintProfileLog();
    			DebugP_log("Image loading done, switching to application ...\r\n");
    			DebugP_log("Starting linux and RTOS/Baremetal applications\r\n");
    			UART_flushTxFifo(gUartHandle[CONFIG_UART0]);
    		}
    
            Drivers_mmcsdClose();
            status = SOC_moduleClockEnable(TISCI_DEV_MMCSD0, 0);
    
    		if(SystemP_SUCCESS == status)
    		{
    			status = App_runLinuxCpu(bootHandleLinux, &bootImageInfoLinux);
    		}
    
            Bootloader_close(bootHandleLinux);
    
            if(SystemP_SUCCESS == status)
    		{
    			status = App_runCpus(bootHandle, &bootImageInfo);
    		}
    
            Bootloader_close(bootHandle);
        }
    
        if(status != SystemP_SUCCESS )
        {
            DebugP_log("Some tests have failed!!\r\n");
        }
    
        /* Call DPL deinit to close the tick timer and disable interrupts before jumping to DM*/
        Dpl_deinit();
        MMCSD_deinit();
    
        Bootloader_JumpSelfCpu();
    
        Drivers_close();
        System_deinit();
    
        return 0;
    }
    

    I would recommend to simply move to MCU+ SDK v9.1 in which this issue has been resolved. So, the boot flow should work out of the box.

    https://www.ti.com/tool/download/MCU-PLUS-SDK-AM62X/09.01.00.39

    Regads,

    Prashant

  • Hi Prashant,

        I edit this file examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62x-sk/r5fss0-0_nortos/main.c is working fine. Thank you for your response.

    Regards,

    Veerapandiyan V.