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.

AM5718: DFU on custom board

Part Number: AM5718

Hi All,

We are working on AM5718 custom board and trying to boot using DFU.

We are following below link to get started.

1) processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide
point : "Using USB Device Firmware Upgrade (DFU)"

We have prepared all the application on host which is mendatory for DFU.(like usbboot-stand-alone,dfu-util(version 0.9))

We will upload u-boor-spl.bin on board using following command.
$ sudo usbboot-stand-alone -S spl/u-boot-spl.bin

we got following result on HOST

reading ASIC ID
CHIP: 4a45
rom minor version: 01
IDEN: 0000000000000000000000000000000000000000
MPKH: 0000000000000000000000000000000000000000000000000000000000000000
CRC0: d017dd32
CRC1: 00000000
device is GP
sending 2ndstage to target...

on Device side using minicom we get

U-Boot SPL 2017.01 (Sep 21 2018 - 11:56:54)
DRA722-GP ES2.0

U-Boot SPL 2017.01 (Sep 21 2018 - 11:56:54)
DRA722-GP ES2.0
Trying to boot from DFU
Using default environment

But after this when we try to list devics using command "dfu-util -l OR sudo dfu-util -l"
We are getting following result all the time.

dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to sourceforge.net/.../


and after that we try to load u-boot.img on board using following command on HOST.
$ sudo dfu-util c 1 -i 0 -a 0 -D "u-boot.img" -R

Which gives following output on HOST

dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to sourceforge.net/.../

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
dfu-util: No DFU capable USB device available


We have tried it with rebooting the device after loading the u-boot-spl.bin on board as
per above link but no any log for device in "dfu-util -l"

Please suggest any further steps if require or we are missing.

Thanks You,
Simit

  • Hi All,

    We are now solved the above problem with following patch.

    e2e.ti.com/.../u_2D00_boot_2D00_enable_2D00_usb1_2D00_device_2D00_mode_2D00_am57x_2D00_ti2017.01.diff.txt

    But Now we stuck in getting U-boot prompt on Device.

    On HOST side :
    $ sudo dfu-util c1 -i0 -a0 -D u-boot.img -R
    dfu-util 0.9

    Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
    Copyright 2010-2016 Tormod Volden and Stefan Schmidt
    This program is Free Software and has ABSOLUTELY NO WARRANTY
    Please report bugs to sourceforge.net/.../

    dfu-util: Invalid DFU suffix signature
    dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
    Opening DFU capable USB device...
    ID 0451:d022
    Run-time device DFU version 0110
    Claiming USB DFU Interface...
    Setting Alternate Setting #0 ...
    Determining device status: state = dfuIDLE, status = 0
    dfuIDLE, continuing
    DFU mode device DFU version 0110
    Device returned transfer size 4096
    Copying data from PC to DFU device
    Download [=========================] 100% 1035196 bytes
    Download done.
    state(7) = dfuMANIFEST, status(0) = No error condition is present
    state(2) = dfuIDLE, status(0) = No error condition is present
    Done!
    Resetting USB to switch back to runtime mode

    On device side :
    ################DOWNLOAD ... OK
    Ctrl+C to exit ...

    After this we are not getting U-boot prompt.And also input from key-board on UART is not working.


    Thanks,
    Simit

  • Simit,

    Simit Ghane said:
    On device side :
    ################DOWNLOAD ... OK
    Ctrl+C to exit ...

    After this we are not getting U-boot prompt.And also input from key-board on UART is not working.

    Please check the video in the link below which explains how to use dfu in details.

  • Hello Bin,

    Thanks for the reply.

    I am following the same video but the problem is in vedio after loading "u-boot.img" from HOST to target. Target device will go through U-boot.
    But in my case It will stuck on above log. And after that i dont able to do anything from HOST as well as from UART or Device.

    Is there anything need to be take care in MLO and U-boot.img generation after that patch ?.

    Because after patch only i am able to transfer "U-boot.img" on board which i have mentioned earlier. But after tat there isn't any progress on Board.

    So is their anything which i am mising for am5718 custom board?

    Thank You,
    Simit
  • Simit,

    Simit Ghane said:
    On device side :
    ################DOWNLOAD ... OK
    Ctrl+C to exit ...

    After this we are not getting U-boot prompt.And also input from key-board on UART is not working.

    I am not sure why your u-boot.img doesn't run. The video @7:09 shows you need enable DFU and disable Hush Sheel, have you done both uboot configurations?

  • Hi Bin,

    Yes i have done that too in uboot configuration but still don't able to run u-boot.img on board.

    Following changes i have done in uboot source code and it is working fine with linux booting from SD card.

    ---
    arch/arm/mach-omap2/hwinit-common.c | 1 +
    board/ti/am57xx/board.c | 21 ++++-----
    board/ti/common/board_detect.c | 87 ++++++++++++++++++++++++-------------
    3 files changed, 69 insertions(+), 40 deletions(-)

    diff --git a/arch/arm/mach-omap2/hwinit-common.c b/arch/arm/mach-omap2/hwinit-common.c
    index f701239..9029d59 100644
    --- a/arch/arm/mach-omap2/hwinit-common.c
    +++ b/arch/arm/mach-omap2/hwinit-common.c
    @@ -204,6 +204,7 @@ void early_system_init(void)
    void board_init_f(ulong dummy)
    {
    early_system_init();
    + preloader_console_init();
    #ifdef CONFIG_BOARD_EARLY_INIT_F
    board_early_init_f();
    #endif
    diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
    index f5f6dff..acc7729 100644
    --- a/board/ti/am57xx/board.c
    +++ b/board/ti/am57xx/board.c
    @@ -97,12 +97,13 @@ static const struct dmm_lisa_map_regs am574x_idk_lisa_regs = {

    void emif_get_dmm_regs(const struct dmm_lisa_map_regs **dmm_lisa_regs)
    {
    - if (board_is_am571x_idk())
    - *dmm_lisa_regs = &am571x_idk_lisa_regs;
    - else if (board_is_am574x_idk())
    - *dmm_lisa_regs = &am574x_idk_lisa_regs;
    - else
    - *dmm_lisa_regs = &beagle_x15_lisa_regs;
    + //~ if (board_is_am571x_idk())
    + //~ *dmm_lisa_regs = &am571x_idk_lisa_regs;
    + //~ else if (board_is_am574x_idk())
    + //~ *dmm_lisa_regs = &am574x_idk_lisa_regs;
    + //~ else
    + //~ *dmm_lisa_regs = &beagle_x15_lisa_regs;
    + *dmm_lisa_regs = &am571x_idk_lisa_regs;
    }

    static const struct emif_regs beagle_x15_emif1_ddr3_532mhz_emif_regs = {
    @@ -717,11 +718,11 @@ int board_late_init(void)
    palmas_i2c_write_u8(TPS65903X_CHIP_P1, TPS65903X_PRIMARY_SECONDARY_PAD2,
    val);

    - am57x_idk_lcd_detect();
    + //am57x_idk_lcd_detect();

    -#if !defined(CONFIG_SPL_BUILD)
    - board_ti_set_ethaddr(2);
    -#endif
    +//~ #if !defined(CONFIG_SPL_BUILD)
    + //~ board_ti_set_ethaddr(2);
    +//~ #endif
    omap_die_id_serial();
    omap_set_fastboot_vars();

    diff --git a/board/ti/common/board_detect.c b/board/ti/common/board_detect.c
    index 6414958..6ead4be 100644
    --- a/board/ti/common/board_detect.c
    +++ b/board/ti/common/board_detect.c
    @@ -180,36 +180,63 @@ int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
    #endif

    /* Initialize with a known bad marker for i2c fails.. */
    - ep->header = TI_DEAD_EEPROM_MAGIC;
    - ep->name[0] = 0x0;
    - ep->version[0] = 0x0;
    - ep->serial[0] = 0x0;
    - ep->config[0] = 0x0;
    -
    - rc = ti_i2c_eeprom_get(bus_addr, dev_addr, TI_EEPROM_HEADER_MAGIC,
    - sizeof(am_ep), (uint8_t *)&am_ep);
    - if (rc)
    - return rc;
    -
    - ep->header = am_ep.header;
    - strlcpy(ep->name, am_ep.name, TI_EEPROM_HDR_NAME_LEN + 1);
    - ti_eeprom_string_cleanup(ep->name);
    -
    - /* BeagleBone Green '1' eeprom, board_rev: 0x1a 0x00 0x00 0x00 */
    - if (am_ep.version[0] == 0x1a && am_ep.version[1] == 0x00 &&
    - am_ep.version[2] == 0x00 && am_ep.version[3] == 0x00)
    - strlcpy(ep->version, "BBG1", TI_EEPROM_HDR_REV_LEN + 1);
    - else
    - strlcpy(ep->version, am_ep.version, TI_EEPROM_HDR_REV_LEN + 1);
    - ti_eeprom_string_cleanup(ep->version);
    - strlcpy(ep->serial, am_ep.serial, TI_EEPROM_HDR_SERIAL_LEN + 1);
    - ti_eeprom_string_cleanup(ep->serial);
    - strlcpy(ep->config, am_ep.config, TI_EEPROM_HDR_CONFIG_LEN + 1);
    - ti_eeprom_string_cleanup(ep->config);
    -
    - memcpy(ep->mac_addr, am_ep.mac_addr,
    - TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);
    -
    + //~ ep->header = TI_DEAD_EEPROM_MAGIC;
    + //~ ep->name[0] = 0x0;
    + //~ ep->version[0] = 0x0;
    + //~ ep->serial[0] = 0x0;
    + //~ ep->config[0] = 0x0;
    + ep->header = TI_EEPROM_HEADER_MAGIC;
    + ep->name[0] = 'A';
    + ep->name[1] = 'M';
    + ep->name[2] = '5';
    + ep->name[3] = '7';
    + ep->name[4] = '1';
    + ep->name[5] = 'I';
    + ep->name[6] = 'D';
    + ep->name[7] = 'K';
    + ep->name[8] = '\0';
    + ep->version[0] = '1';
    + ep->version[1] = '.';
    + ep->version[2] = '3';
    + ep->version[3] = 'A';
    + ep->version[4] = '\0';
    + ep->serial[0] = '0';
    + ep->serial[1] = '1';
    + ep->serial[2] = '1';
    + ep->serial[3] = '8';
    + ep->serial[4] = '4';
    + ep->serial[5] = 'P';
    + ep->serial[6] = '5';
    + ep->serial[7] = '2';
    + ep->serial[8] = '0';
    + ep->serial[9] = '0';
    + ep->serial[10] = '0';
    + ep->serial[11] = '1';
    + ep->serial[12] = '\0';
    + ep->config[0] = 0x01;
    + //~ rc = ti_i2c_eeprom_get(bus_addr, dev_addr, TI_EEPROM_HEADER_MAGIC,
    + //~ sizeof(am_ep), (uint8_t *)&am_ep);
    + //~ if (rc)
    + //~ return rc;
    +//~
    + //~ ep->header = am_ep.header;
    + //~ strlcpy(ep->name, am_ep.name, TI_EEPROM_HDR_NAME_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->name);
    +//~
    + //~ /* BeagleBone Green '1' eeprom, board_rev: 0x1a 0x00 0x00 0x00 */
    + //~ if (am_ep.version[0] == 0x1a && am_ep.version[1] == 0x00 &&
    + //~ am_ep.version[2] == 0x00 && am_ep.version[3] == 0x00)
    + //~ strlcpy(ep->version, "BBG1", TI_EEPROM_HDR_REV_LEN + 1);
    + //~ else
    + //~ strlcpy(ep->version, am_ep.version, TI_EEPROM_HDR_REV_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->version);
    + //~ strlcpy(ep->serial, am_ep.serial, TI_EEPROM_HDR_SERIAL_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->serial);
    + //~ strlcpy(ep->config, am_ep.config, TI_EEPROM_HDR_CONFIG_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->config);
    +//~
    + //~ memcpy(ep->mac_addr, am_ep.mac_addr,
    + //~ TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);
    return 0;
    }

    --
    2.1.4

    Is there anything wrong in my patch or any further modificaton is needed ?

    Thanks,

    Simit

  • Hi Bin,

    This is just gentle reminder.

    Thank You,

    Simit

  • Hi Simit,

    Debugging why u-boot.img doesn't execute is out of my expertise. I have assigned this thread to our U-Boot expert, any response will be directly posted here.
  • Hi All, 

    This is just gentle reminder.

    Thanks,

    Simit

  • I'm investigating possible reasons for the error and will respond back soon as I have a reasonable suggestion.
  • Hi Marcus,

    Thanks for the reply.

    I am waiting for your response.

    Thanks,

    Simit

  • Simit,

    I'm seeking guidance from our software support team. I hope to hear from them within the next 24 hours.

    Marcus
  • Hi Marcus,

    It is better if you do this faster as possible.

    Thanks,

    Simit

  • Hi Marcus,

    This is just gentle reminder.

    Thanks,

    Simit

  • Hi Simit,

    Do you use the same spl/uboot image in SD card boot as that in DFU?

    If so, I cannot think of any reason why you don't get the uboot prompt in DFU, it is more like uboot porting problem, I guess you have to debug it on your own.

    As you can see in thread e2e.ti.com/.../2174321, which has DFU working on AM57x. Of cause I know this thread doesn't help much in your case since it doesn't have much details.
  • Simit,

    What Processor SDK version do you use? I want to check if the uboot in that specific version has issue or not.
  • Hi Bin,

    Do you use the same spl/uboot image in SD card boot as that in DFU?

    -> yes, Same u-boot/spl image will work on SD card boot.

    What Processor SDK version do you use? 

    -> ti-processor-sdk-rtos-am57xx-evm-04.00.00.04-Linux-x86

    I am also trying to port it using u-boot source code from below link.

    -> processors.wiki.ti.com/index.php/Processor_SDK_Linux_U-Boot_Release_Notes

    And apply all necessory patches as mentioned in earlier threads.But still have same problem as i have mentioned.

    I have also tried to debug u-boot code and try to see the problem but as i have enable some prints in debug i have came across function "jump_to_image_no_args" in arch/arm/mach-omap2/boot-common.c.

    Here in this function last thing that gets called is "image_entry((u32 *)boot_params)" after this i am not getting any print on terminal.Before this i am getting all prints. But after this i don't know where to go.

    Will you please help me to solve this issue.

    Thanks,

    Simit

  • Simit Ghane said:

    What Processor SDK version do you use? 

    -> ti-processor-sdk-rtos-am57xx-evm-04.00.00.04-Linux-x86

    Are you sure this is the package you use? The RTOS SDK doesn't have the uboot component.

  • Hi Bin,

    Sorry for the mistake.

    I am using yocto build from below link.

    -> processors.wiki.ti.com/index.php/Processor_SDK_Building_The_SDK#Prerequisites_.28One-time_setup.29

    Best Regards,

    Simit

  • Hi Bin,

    This is gentle reminder.

    Thanks,

    Simit

  • Hello Bin,

    We are in critical stage at our project because of DFU issue. Is it possible for you to provide your personal email so we can try to resolved this issue as soon as possible.

    Thanks,
    Simit.
  • Simit,

    Using email communication will not speed up the process. This e2e forum is the best and efficient channel to provide support.

    My understand is that your uboot spl can be downloaded via DFU and executed to download u-boot.img, the issue is u-boot.img doesn't run to the point to provide U-Boot prompt, so I think the issue is not related to DFU, but U-Boot porting. I understand the same binary (which has DFU enabled) can run successfully on SD card boot.

    Investigating U-Boot porting issues is out of my expertise, I will let our U-Boot expert to provide inputs on your issue.
  • Hi Bin,

    Thanks for the reply.

    Yes i agreed that the problem is in u-boot porting and also i have shared the debug message information and last function that get called in earlier thread.

    Will you please make it as a priority task.

    Best Regards,

    Simit

  • Hi Bin,

    This is gentle reminder.

    Thanks,

    Simit

  • Hi Simit,

    Our U-Boot expert will directly respond on this thread once he has comments.
  • I suspect the problem is on your host side and that the communication channel between the host and target board is not established.
    But to confirm, enable debugging (add #define to <u-boot>/include/common.h>) and retry dfu-util commands to see if any error messages are printed on the target.

    Also be sure the host side setup is correct. What output do you see in the dmesg logs when you make the connect between the host and target?
  • Hi Marcus,

    Thanks for the reply.

    After enble the debug in <u-boot>/include/common.h using "#define DEBUG" i have got lots of prints on target side.Which i have attached as target_debug_log.txt.

    and on host side i am getting following logs on dmesg.

    $ sudo ./usbboot-stand-alone -S spl/u-boot-spl.bin
    reading ASIC ID
    CHIP: 4a45
    rom minor version: 01
    IDEN: 0000000000000000000000000000000000000000
    MPKH: 0000000000000000000000000000000000000000000000000000000000000000
    CRC0: d017dd32
    CRC1: 00000000
    device is GP
    sending 2ndstage to target...

    $ sudo dfu-util c 1 -i 0 -a 0 -D "u-boot.img" -R
    dfu-util 0.9

    Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
    Copyright 2010-2016 Tormod Volden and Stefan Schmidt
    This program is Free Software and has ABSOLUTELY NO WARRANTY
    Please report bugs to sourceforge.net/.../

    dfu-util: Invalid DFU suffix signature
    dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
    Opening DFU capable USB device...
    ID 0451:d022
    Run-time device DFU version 0110
    Claiming USB DFU Interface...
    Setting Alternate Setting #0 ...
    Determining device status: state = dfuIDLE, status = 0
    dfuIDLE, continuing
    DFU mode device DFU version 0110
    Device returned transfer size 4096
    Copying data from PC to DFU device
    Download [=========================] 100% 1082496 bytes
    Download done.
    state(7) = dfuMANIFEST, status(0) = No error condition is present
    state(2) = dfuIDLE, status(0) = No error condition is present
    Done!
    Resetting USB to switch back to runtime mode

    $ dmesg
    [ 6612.460045] usb 1-10: new high-speed USB device number 27 using xhci_hcd
    [ 6612.608834] usb 1-10: New USB device found, idVendor=0451, idProduct=d014
    [ 6612.608841] usb 1-10: New USB device strings: Mfr=33, Product=37, SerialNumber=0
    [ 6612.608844] usb 1-10: Product: VAYU
    [ 6612.608848] usb 1-10: Manufacturer: Texas Instruments
    [ 6623.064905] usb 1-10: USB disconnect, device number 27
    [ 6624.047850] usb 1-10: new high-speed USB device number 28 using xhci_hcd
    [ 6624.521551] usb 1-10: New USB device found, idVendor=0451, idProduct=d022
    [ 6624.521558] usb 1-10: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 6624.521562] usb 1-10: Product: USB download gadget
    [ 6624.521566] usb 1-10: Manufacturer: Texas Instruments
    [ 6661.203708] usb 1-10: USB disconnect, device number 28

    target_debug_log.txt

    Thanks & Best Regards,

    Simit

  • Simit,

    Simit Ghane said:
    $ sudo dfu-util c 1 -i 0 -a 0 -D "u-boot.img" -R
    dfu-util 0.9

    Please double check if here is just a typo in your post above or this is indeed the command you used - here you miss the 'dash' for the first option 'c'.

  • Hi Bin,

    That's a typo mistake and i have verfied it still have same issue.

    Thanks,
    Simit
  • The following error indicates the format of the u-boot image is not correct, yet SPL still attempts to load the u-boot image and execute it.
    Please confirm the u-boot image is being written to address 0x80800000 properly. Also, have you attempted to load u-boot.bin file?

    mkimage signature not found - ih_magic = db339ff7
    Jumping to U-Boot
    loaded - jumping to U-Boot...
    image entry point: 0x80800000
  • Simit,

    Disable clock module - 4a0093f0                                                     
    Legacy image                                                                        
    u_boot_pos = ffffffff                                                               
    mkimage signature not found - ih_magic = db339ff7                                   
    Jumping to U-Boot                                                                   
    loaded - jumping to U-Boot...                                                       
    image entry point: 0x80800000
    

    The last few lines of your log shown above indicates the image is in Legacy format. Have you changed your U-Boot config to switch to legacy format? The U-Boot in SDK v4.2.0.9 should use FIT format by default.

    Here is the similar debug log in my test.

    Disable clock module - 4a0093f0                                                 
    Found FIT                                                                       
    spl_ram_load_read: sector 0, count 6cc, buf 807ff8c0                            
    fit read sector 0, sectors=1740, dst=807ff8c0, count=1740                       
    data_offset=0, data_size=8adf0                                                  
    U-Boot size 8adf0, data 80800000                                                
    Aligned image read: dst=80800000, src_sector=6c0, sectors=8adfc                 
    spl_ram_load_read: sector 6c0, count 8adfc, buf 80800000                        
    image: dst=80800000, data_offset=6cc, size=8adf0                                
    Selecting config 'dra7-evm', fdt 'fdt@1'                                        
    FIT: Selected 'dra7-evm'                                                        
    spl_ram_load_read: sector 8b480, count 16c2d, buf 8088ae00                      
    Aligned fdt read: dst 8088ae00, src_sector = 8b480, sectors 16c2d               
    fdt: dst=8088ae00, data_offset=8b4bc, size=16bf1                                
    Jumping to U-Boot                                                               
    loaded - jumping to U-Boot...                                                   
    image entry point: 0x80800000                                                   
    initcall: 808482b5                                                              
                                                                                    
                                                                                    
    U-Boot 2017.01-00444-g53d7a54cafdf-dirty (Oct 11 2018 - 11:44:32 -0500)         
                                                                                    
    initcall: 80810251                                                              
    U-Boot code: 80800000 -> 8087AA50  BSS: -> 808CBA80                             
    initcall: 80802a6d                                                              
    CPU  : DRA752-GP ES1.1                                                          
    initcall: 808106e5                                                              
    Model: TI DRA742                                                                
    Board: DRA74x EVM REV G.0 
    

    BTY, since you have debug enabled in your U-Boot binary, can you please copy the binaries into a SD card to get the debug log in SD card boot to compare?

  • Hi Bin,

    Thanks for the reply.

    have you attempted to load u-boot.bin file?

    Ans :  yes ,till have same issue.

    i have started debugging and get to know that under function "spl_ram_load_image" in ./common/spl/.

    Function "image_get_magic(header)" will gives 0 value and that is why we are not able to get print of "Found FIT".

    For that i just want to remind you that we have added following patch as per our custom board.I just want to know is it creating the issue?

    ---
    arch/arm/mach-omap2/hwinit-common.c | 1 +
    board/ti/am57xx/board.c | 21 ++++-----
    board/ti/common/board_detect.c | 87 ++++++++++++++++++++++++-------------
    3 files changed, 69 insertions(+), 40 deletions(-)

    diff --git a/arch/arm/mach-omap2/hwinit-common.c b/arch/arm/mach-omap2/hwinit-common.c
    index f701239..9029d59 100644
    --- a/arch/arm/mach-omap2/hwinit-common.c
    +++ b/arch/arm/mach-omap2/hwinit-common.c
    @@ -204,6 +204,7 @@ void early_system_init(void)
    void board_init_f(ulong dummy)
    {
    early_system_init();
    + preloader_console_init();
    #ifdef CONFIG_BOARD_EARLY_INIT_F
    board_early_init_f();
    #endif
    diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
    index f5f6dff..acc7729 100644
    --- a/board/ti/am57xx/board.c
    +++ b/board/ti/am57xx/board.c
    @@ -97,12 +97,13 @@ static const struct dmm_lisa_map_regs am574x_idk_lisa_regs = {

    void emif_get_dmm_regs(const struct dmm_lisa_map_regs **dmm_lisa_regs)
    {
    - if (board_is_am571x_idk())
    - *dmm_lisa_regs = &am571x_idk_lisa_regs;
    - else if (board_is_am574x_idk())
    - *dmm_lisa_regs = &am574x_idk_lisa_regs;
    - else
    - *dmm_lisa_regs = &beagle_x15_lisa_regs;
    + //~ if (board_is_am571x_idk())
    + //~ *dmm_lisa_regs = &am571x_idk_lisa_regs;
    + //~ else if (board_is_am574x_idk())
    + //~ *dmm_lisa_regs = &am574x_idk_lisa_regs;
    + //~ else
    + //~ *dmm_lisa_regs = &beagle_x15_lisa_regs;
    + *dmm_lisa_regs = &am571x_idk_lisa_regs;
    }

    static const struct emif_regs beagle_x15_emif1_ddr3_532mhz_emif_regs = {
    @@ -717,11 +718,11 @@ int board_late_init(void)
    palmas_i2c_write_u8(TPS65903X_CHIP_P1, TPS65903X_PRIMARY_SECONDARY_PAD2,
    val);

    - am57x_idk_lcd_detect();
    + //am57x_idk_lcd_detect();

    -#if !defined(CONFIG_SPL_BUILD)
    - board_ti_set_ethaddr(2);
    -#endif
    +//~ #if !defined(CONFIG_SPL_BUILD)
    + //~ board_ti_set_ethaddr(2);
    +//~ #endif
    omap_die_id_serial();
    omap_set_fastboot_vars();

    diff --git a/board/ti/common/board_detect.c b/board/ti/common/board_detect.c
    index 6414958..6ead4be 100644
    --- a/board/ti/common/board_detect.c
    +++ b/board/ti/common/board_detect.c
    @@ -180,36 +180,63 @@ int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
    #endif

    /* Initialize with a known bad marker for i2c fails.. */
    - ep->header = TI_DEAD_EEPROM_MAGIC;
    - ep->name[0] = 0x0;
    - ep->version[0] = 0x0;
    - ep->serial[0] = 0x0;
    - ep->config[0] = 0x0;
    -
    - rc = ti_i2c_eeprom_get(bus_addr, dev_addr, TI_EEPROM_HEADER_MAGIC,
    - sizeof(am_ep), (uint8_t *)&am_ep);
    - if (rc)
    - return rc;
    -
    - ep->header = am_ep.header;
    - strlcpy(ep->name, am_ep.name, TI_EEPROM_HDR_NAME_LEN + 1);
    - ti_eeprom_string_cleanup(ep->name);
    -
    - /* BeagleBone Green '1' eeprom, board_rev: 0x1a 0x00 0x00 0x00 */
    - if (am_ep.version[0] == 0x1a && am_ep.version[1] == 0x00 &&
    - am_ep.version[2] == 0x00 && am_ep.version[3] == 0x00)
    - strlcpy(ep->version, "BBG1", TI_EEPROM_HDR_REV_LEN + 1);
    - else
    - strlcpy(ep->version, am_ep.version, TI_EEPROM_HDR_REV_LEN + 1);
    - ti_eeprom_string_cleanup(ep->version);
    - strlcpy(ep->serial, am_ep.serial, TI_EEPROM_HDR_SERIAL_LEN + 1);
    - ti_eeprom_string_cleanup(ep->serial);
    - strlcpy(ep->config, am_ep.config, TI_EEPROM_HDR_CONFIG_LEN + 1);
    - ti_eeprom_string_cleanup(ep->config);
    -
    - memcpy(ep->mac_addr, am_ep.mac_addr,
    - TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);
    -
    + //~ ep->header = TI_DEAD_EEPROM_MAGIC;
    + //~ ep->name[0] = 0x0;
    + //~ ep->version[0] = 0x0;
    + //~ ep->serial[0] = 0x0;
    + //~ ep->config[0] = 0x0;
    + ep->header = TI_EEPROM_HEADER_MAGIC;
    + ep->name[0] = 'A';
    + ep->name[1] = 'M';
    + ep->name[2] = '5';
    + ep->name[3] = '7';
    + ep->name[4] = '1';
    + ep->name[5] = 'I';
    + ep->name[6] = 'D';
    + ep->name[7] = 'K';
    + ep->name[8] = '\0';
    + ep->version[0] = '1';
    + ep->version[1] = '.';
    + ep->version[2] = '3';
    + ep->version[3] = 'A';
    + ep->version[4] = '\0';
    + ep->serial[0] = '0';
    + ep->serial[1] = '1';
    + ep->serial[2] = '1';
    + ep->serial[3] = '8';
    + ep->serial[4] = '4';
    + ep->serial[5] = 'P';
    + ep->serial[6] = '5';
    + ep->serial[7] = '2';
    + ep->serial[8] = '0';
    + ep->serial[9] = '0';
    + ep->serial[10] = '0';
    + ep->serial[11] = '1';
    + ep->serial[12] = '\0';
    + ep->config[0] = 0x01;
    + //~ rc = ti_i2c_eeprom_get(bus_addr, dev_addr, TI_EEPROM_HEADER_MAGIC,
    + //~ sizeof(am_ep), (uint8_t *)&am_ep);
    + //~ if (rc)
    + //~ return rc;
    +//~
    + //~ ep->header = am_ep.header;
    + //~ strlcpy(ep->name, am_ep.name, TI_EEPROM_HDR_NAME_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->name);
    +//~
    + //~ /* BeagleBone Green '1' eeprom, board_rev: 0x1a 0x00 0x00 0x00 */
    + //~ if (am_ep.version[0] == 0x1a && am_ep.version[1] == 0x00 &&
    + //~ am_ep.version[2] == 0x00 && am_ep.version[3] == 0x00)
    + //~ strlcpy(ep->version, "BBG1", TI_EEPROM_HDR_REV_LEN + 1);
    + //~ else
    + //~ strlcpy(ep->version, am_ep.version, TI_EEPROM_HDR_REV_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->version);
    + //~ strlcpy(ep->serial, am_ep.serial, TI_EEPROM_HDR_SERIAL_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->serial);
    + //~ strlcpy(ep->config, am_ep.config, TI_EEPROM_HDR_CONFIG_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->config);
    +//~
    + //~ memcpy(ep->mac_addr, am_ep.mac_addr,
    + //~ TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);
    return 0;
    }

    -- 
    2.1.4

    can you please copy the binaries into a SD card to get the debug log in SD card boot to compare?

    -> I have attached file : SD_boot_log.txt with complete log and using SD card and same MLO and u-boot.img i am able to boot successfuly.

    Just for your information i am using u-boot : u-boot-ti-staging-v2017.01.

     Is there still i am missing something?

    SD_boot_log.txt

    Thanks,

    Simit

  • Hi Bin,

    This is just Gentle Reminder.

    Thanks,

    Simit.

  • Hi Bin,

    This is Gentle Reminder.

    Thanks,

    Simit

  • Hi Bin,

    Will you please provide me the total log that you have when you load u-boot.img using DFU on Target board.

    Thanks and Best Regards,
    Simit
  • Simit,

    Here is the log with debug enabled:

    _dra7-dfu.log

  • Hi Bin,

    Thanks for the reply.

    i have started debugging and get to know that under function "spl_ram_load_image" in ./common/spl/.

    Function "image_get_magic(header)" will gives 0 value and that is why we are not able to get print of "Found FIT".

    For that i just want to remind you that we have added following patch as per our custom board.I just want to know is it creating the issue?

    ---
    arch/arm/mach-omap2/hwinit-common.c | 1 +
    board/ti/am57xx/board.c | 21 ++++-----
    board/ti/common/board_detect.c | 87 ++++++++++++++++++++++++-------------
    3 files changed, 69 insertions(+), 40 deletions(-)

    diff --git a/arch/arm/mach-omap2/hwinit-common.c b/arch/arm/mach-omap2/hwinit-common.c
    index f701239..9029d59 100644
    --- a/arch/arm/mach-omap2/hwinit-common.c
    +++ b/arch/arm/mach-omap2/hwinit-common.c
    @@ -204,6 +204,7 @@ void early_system_init(void)
    void board_init_f(ulong dummy)
    {
    early_system_init();
    + preloader_console_init();
    #ifdef CONFIG_BOARD_EARLY_INIT_F
    board_early_init_f();
    #endif
    diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
    index f5f6dff..acc7729 100644
    --- a/board/ti/am57xx/board.c
    +++ b/board/ti/am57xx/board.c
    @@ -97,12 +97,13 @@ static const struct dmm_lisa_map_regs am574x_idk_lisa_regs = {

    void emif_get_dmm_regs(const struct dmm_lisa_map_regs **dmm_lisa_regs)
    {
    - if (board_is_am571x_idk())
    - *dmm_lisa_regs = &am571x_idk_lisa_regs;
    - else if (board_is_am574x_idk())
    - *dmm_lisa_regs = &am574x_idk_lisa_regs;
    - else
    - *dmm_lisa_regs = &beagle_x15_lisa_regs;
    + //~ if (board_is_am571x_idk())
    + //~ *dmm_lisa_regs = &am571x_idk_lisa_regs;
    + //~ else if (board_is_am574x_idk())
    + //~ *dmm_lisa_regs = &am574x_idk_lisa_regs;
    + //~ else
    + //~ *dmm_lisa_regs = &beagle_x15_lisa_regs;
    + *dmm_lisa_regs = &am571x_idk_lisa_regs;
    }

    static const struct emif_regs beagle_x15_emif1_ddr3_532mhz_emif_regs = {
    @@ -717,11 +718,11 @@ int board_late_init(void)
    palmas_i2c_write_u8(TPS65903X_CHIP_P1, TPS65903X_PRIMARY_SECONDARY_PAD2,
    val);

    - am57x_idk_lcd_detect();
    + //am57x_idk_lcd_detect();

    -#if !defined(CONFIG_SPL_BUILD)
    - board_ti_set_ethaddr(2);
    -#endif
    +//~ #if !defined(CONFIG_SPL_BUILD)
    + //~ board_ti_set_ethaddr(2);
    +//~ #endif
    omap_die_id_serial();
    omap_set_fastboot_vars();

    diff --git a/board/ti/common/board_detect.c b/board/ti/common/board_detect.c
    index 6414958..6ead4be 100644
    --- a/board/ti/common/board_detect.c
    +++ b/board/ti/common/board_detect.c
    @@ -180,36 +180,63 @@ int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
    #endif

    /* Initialize with a known bad marker for i2c fails.. */
    - ep->header = TI_DEAD_EEPROM_MAGIC;
    - ep->name[0] = 0x0;
    - ep->version[0] = 0x0;
    - ep->serial[0] = 0x0;
    - ep->config[0] = 0x0;
    -
    - rc = ti_i2c_eeprom_get(bus_addr, dev_addr, TI_EEPROM_HEADER_MAGIC,
    - sizeof(am_ep), (uint8_t *)&am_ep);
    - if (rc)
    - return rc;
    -
    - ep->header = am_ep.header;
    - strlcpy(ep->name, am_ep.name, TI_EEPROM_HDR_NAME_LEN + 1);
    - ti_eeprom_string_cleanup(ep->name);
    -
    - /* BeagleBone Green '1' eeprom, board_rev: 0x1a 0x00 0x00 0x00 */
    - if (am_ep.version[0] == 0x1a && am_ep.version[1] == 0x00 &&
    - am_ep.version[2] == 0x00 && am_ep.version[3] == 0x00)
    - strlcpy(ep->version, "BBG1", TI_EEPROM_HDR_REV_LEN + 1);
    - else
    - strlcpy(ep->version, am_ep.version, TI_EEPROM_HDR_REV_LEN + 1);
    - ti_eeprom_string_cleanup(ep->version);
    - strlcpy(ep->serial, am_ep.serial, TI_EEPROM_HDR_SERIAL_LEN + 1);
    - ti_eeprom_string_cleanup(ep->serial);
    - strlcpy(ep->config, am_ep.config, TI_EEPROM_HDR_CONFIG_LEN + 1);
    - ti_eeprom_string_cleanup(ep->config);
    -
    - memcpy(ep->mac_addr, am_ep.mac_addr,
    - TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);
    -
    + //~ ep->header = TI_DEAD_EEPROM_MAGIC;
    + //~ ep->name[0] = 0x0;
    + //~ ep->version[0] = 0x0;
    + //~ ep->serial[0] = 0x0;
    + //~ ep->config[0] = 0x0;
    + ep->header = TI_EEPROM_HEADER_MAGIC;
    + ep->name[0] = 'A';
    + ep->name[1] = 'M';
    + ep->name[2] = '5';
    + ep->name[3] = '7';
    + ep->name[4] = '1';
    + ep->name[5] = 'I';
    + ep->name[6] = 'D';
    + ep->name[7] = 'K';
    + ep->name[8] = '\0';
    + ep->version[0] = '1';
    + ep->version[1] = '.';
    + ep->version[2] = '3';
    + ep->version[3] = 'A';
    + ep->version[4] = '\0';
    + ep->serial[0] = '0';
    + ep->serial[1] = '1';
    + ep->serial[2] = '1';
    + ep->serial[3] = '8';
    + ep->serial[4] = '4';
    + ep->serial[5] = 'P';
    + ep->serial[6] = '5';
    + ep->serial[7] = '2';
    + ep->serial[8] = '0';
    + ep->serial[9] = '0';
    + ep->serial[10] = '0';
    + ep->serial[11] = '1';
    + ep->serial[12] = '\0';
    + ep->config[0] = 0x01;
    + //~ rc = ti_i2c_eeprom_get(bus_addr, dev_addr, TI_EEPROM_HEADER_MAGIC,
    + //~ sizeof(am_ep), (uint8_t *)&am_ep);
    + //~ if (rc)
    + //~ return rc;
    +//~
    + //~ ep->header = am_ep.header;
    + //~ strlcpy(ep->name, am_ep.name, TI_EEPROM_HDR_NAME_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->name);
    +//~
    + //~ /* BeagleBone Green '1' eeprom, board_rev: 0x1a 0x00 0x00 0x00 */
    + //~ if (am_ep.version[0] == 0x1a && am_ep.version[1] == 0x00 &&
    + //~ am_ep.version[2] == 0x00 && am_ep.version[3] == 0x00)
    + //~ strlcpy(ep->version, "BBG1", TI_EEPROM_HDR_REV_LEN + 1);
    + //~ else
    + //~ strlcpy(ep->version, am_ep.version, TI_EEPROM_HDR_REV_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->version);
    + //~ strlcpy(ep->serial, am_ep.serial, TI_EEPROM_HDR_SERIAL_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->serial);
    + //~ strlcpy(ep->config, am_ep.config, TI_EEPROM_HDR_CONFIG_LEN + 1);
    + //~ ti_eeprom_string_cleanup(ep->config);
    +//~
    + //~ memcpy(ep->mac_addr, am_ep.mac_addr,
    + //~ TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);
    return 0;
    }

    -- 
    2.1.4

    Same patch will work with SD card boot mode.So is there still need something in DFU mode?

    Thanks,

    Simit

  • Most certainly this could be the cause for why FIT format is not found. Have you attempted to verify without your changes; similar to verify DFU boot is successful. Similar to what Bin provide using SDK images without modifications.
  • Hi Marcus,

    Thanks for the reply.

    Yes I have tried without my changes but due hardware changes with respect to AM5718_IDK it isn't possible to load MLO on target Board.

    So that i have made that changes and successfully loaded MLO and u-boot.img using SD card.

    But in the case of DFU same thing isn't working so will you please help us to solve this problem.

    Thanks,

    Simit

  • Hi Marcus,

    This is Gentle Reminder.

    Thanks,

    Simit

  • The test Bin performed to verify DFU working was based on the DRA7 SoC Platform and not AM57x. Both devices are similar in architecture but differ in EVM design and subtle software differences. One of the subtle software difference is the TI_EEPROM_HEADER format and evaluation. Officially DFU is not supported in AM57 SDK, but since DRA7 supports DFU then there shouldn't be a technical limitation of AM57x. I'm investigating a workaround where you call call dra7 base board detect functions or bypass certain evaluations of AM57 Headers and formatting and force the successful location of FIT image.

    Please compare board/ti/dra7xx/evm.c:ti_i2c_eeprom_dra7_get with board/ti/am57xx/board.c:ti_i2c_eeprom_am_get

    TIP: Compare the FIT image loading for working case (mmc) which not work (dfu).
    Specifically, compare spl_mmc.c :mmc_load_image_raw_sector with spl_ram.c:spl_ram_load_image.
    In function spl_ram_load_image() you should force successful FDT_MAGIC evaluation
  • Hi Marcus,

    Thanks for the reply.

    I will update you on this soon.

    Thanks,

    Simit

  • Hi Marcus,

    I have checked as per your suggestion and i have applied below changes in ti_i2c_eeprom_am_get function as below.

     

    int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
    {
    int rc;
    struct ti_am_eeprom am_ep;
    struct ti_common_eeprom *ep;

    ep = TI_EEPROM_DATA;
    #ifndef CONFIG_SPL_BUILD
    if (ep->header == TI_EEPROM_HEADER_MAGIC)
    return 0; /* EEPROM has already been read */
    #endif

    /* Initialize with a known bad marker for i2c fails.. */
    ep->header = TI_EEPROM_HEADER_MAGIC;
    ep->name[0] = 'A';
    ep->name[1] = 'M';
    ep->name[2] = '5';
    ep->name[3] = '7';
    ep->name[4] = '1';
    ep->name[5] = 'I';
    ep->name[6] = 'D';
    ep->name[7] = 'K';
    ep->name[8] = '\0';
    ep->version[0] = '1';
    ep->version[1] = '.';
    ep->version[2] = '3';
    ep->version[3] = 'A';
    ep->version[4] = '\0';
    ep->serial[0] = '0';
    ep->serial[1] = '1';
    ep->serial[2] = '1';
    ep->serial[3] = '8';
    ep->serial[4] = '4';
    ep->serial[5] = 'P';
    ep->serial[6] = '5';
    ep->serial[7] = '2';
    ep->serial[8] = '0';
    ep->serial[9] = '0';
    ep->serial[10] = '0';
    ep->serial[11] = '1';
    ep->serial[12] = '\0';
    ep->config[0] = 0x01;

    return 0;
    }

    will you please review this and give your input.This thing is work for me when i am booting the board through SD card.

    But in DFU i am not getting any clue. Will you please suggest me to what changes i need to follow to work with DFU. and load u-boot.img successfully?

    Thanks & Best Regards,

    Simit.

  • Hi Marcus,

    This is Gentle Reminder.

    Thanks,

    Simit

  • Hi Marcus,

    This is gentle reminder.

    Thanks,

    Simit

  • Simit,

    Would you please let us know your boot order as selected by the bootmode pins on the device? Does it change when you do the SD Card boot vs. DFU?

    Thanks.
  • Hi RonB,

    We have Set SYSBOOT[15:8] = 1000 0001

    My boot order for SD card is as follow.

    1) SD 

    2) eMMC

    3) USB

    For this SYSBOOT[7:0] = 0001 0000.

    And For USB boot order is as below.

    1) USB

    2) SD

    3) eMMC

    For this SYSBOOT[7:0] = 0011 0000.

    Does it change when you do the SD Card boot vs. DFU?

    -> Yes, ofcaurse it change when i will decide to boot from USB and SD card as well.

    Thanks,

    Simit.

  • Thanks Simit,

    I'm sorry if this was mentioned elsewhere in the thread, but what def config are you using to build U-Boot?

  • Simit,

    Sorry for the delay, I am having my am572x idk evm to be modified so that I can validate dfu on its usb1 port, which is close to your design. After I can validate it, I will apply your changes to see if I can reproduce your problem and debug it. I will keep you posted.
  • Hi Bin & RonB,

    Thanks for the reply. I am waiting for your response as quick as possible.

    what def config are you using to build U-Boot?

    -> i am using am57xx_evm_defconfig that i have attached here.

    am57xx_evm_defconfig.txt
    CONFIG_ARM=y
    CONFIG_OMAP54XX=y
    CONFIG_SYS_MALLOC_F_LEN=0x2000
    # CONFIG_SPL_NAND_SUPPORT is not set
    CONFIG_TARGET_AM57XX_EVM=y
    CONFIG_SPL_SPI_FLASH_SUPPORT=y
    CONFIG_SPL_SPI_SUPPORT=y
    CONFIG_ARMV7_LPAE=y
    CONFIG_SPL_STACK_R_ADDR=0x82000000
    CONFIG_DEFAULT_DEVICE_TREE="am572x-idk"
    CONFIG_FIT=y
    CONFIG_OF_BOARD_SETUP=y
    CONFIG_DRA7_DSPEVE_OPP_HIGH=y
    CONFIG_DRA7_IVA_OPP_HIGH=y
    CONFIG_DRA7_GPU_OPP_HIGH=y
    CONFIG_SPL_LOAD_FIT=y
    CONFIG_USE_BOOTARGS=y
    CONFIG_BOOTARGS="androidboot.serialno=${serial#} console=ttyS2,115200 androidboot.console=ttyS2 androidboot.hardware=am57xevmboard"
    CONFIG_SYS_CONSOLE_INFO_QUIET=y
    CONFIG_VERSION_VARIABLE=y
    CONFIG_SPL=y
    CONFIG_SPL_SYS_MALLOC_SIMPLE=y
    CONFIG_SPL_STACK_R=y
    CONFIG_SPL_SEPARATE_BSS=y
    CONFIG_SPL_DMA_SUPPORT=y
    CONFIG_SPL_OS_BOOT=y
    CONFIG_HUSH_PARSER=y
    CONFIG_FASTBOOT=y
    CONFIG_USB_FUNCTION_FASTBOOT=y
    CONFIG_CMD_FASTBOOT=y
    CONFIG_ANDROID_BOOT_IMAGE=y
    CONFIG_FASTBOOT_BUF_ADDR=0x82000000
    CONFIG_FASTBOOT_BUF_SIZE=0x2f000000
    CONFIG_FASTBOOT_USB_DEV=1
    CONFIG_FASTBOOT_FLASH=y
    CONFIG_FASTBOOT_FLASH_MMC_DEV=1
    CONFIG_CMD_BOOTZ=y
    # CONFIG_CMD_IMLS is not set
    CONFIG_CMD_ASKENV=y
    # CONFIG_CMD_FLASH is not set
    CONFIG_CMD_MMC=y
    CONFIG_CMD_SF=y
    CONFIG_CMD_SPI=y
    CONFIG_CMD_I2C=y
    CONFIG_CMD_USB=y
    CONFIG_CMD_DFU=y
    CONFIG_CMD_GPIO=y
    # CONFIG_CMD_SETEXPR is not set
    CONFIG_CMD_DHCP=y
    CONFIG_CMD_MII=y
    CONFIG_CMD_PING=y
    CONFIG_CMD_REGULATOR=y
    CONFIG_CMD_EXT2=y
    CONFIG_CMD_EXT4=y
    CONFIG_CMD_EXT4_WRITE=y
    CONFIG_CMD_FAT=y
    CONFIG_CMD_FS_GENERIC=y
    CONFIG_OF_CONTROL=y
    CONFIG_SPL_OF_CONTROL=y
    CONFIG_SPL_OF_TRANSLATE=y
    CONFIG_SPL_DM_SEQ_ALIAS=y
    CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am57xx-evm-reva3 am572x-idk am571x-idk am574x-idk"
    CONFIG_DM=y
    CONFIG_SPL_DM=y
    CONFIG_REGMAP=y
    CONFIG_SPL_REGMAP=y
    CONFIG_SYSCON=y
    CONFIG_SPL_SYSCON=y
    # CONFIG_BLK is not set
    CONFIG_DFU_MMC=y
    CONFIG_DFU_RAM=y
    CONFIG_DM_GPIO=y
    CONFIG_DM_I2C=y
    CONFIG_DM_MMC=y
    # CONFIG_DM_MMC_OPS is not set
    CONFIG_DM_SPI_FLASH=y
    CONFIG_SPI_FLASH=y
    CONFIG_SPI_FLASH_BAR=y
    CONFIG_SPI_FLASH_SPANSION=y
    CONFIG_DM_PMIC=y
    CONFIG_PMIC_PALMAS=y
    CONFIG_DM_REGULATOR=y
    CONFIG_SPL_DM_REGULATOR=y
    CONFIG_DM_REGULATOR_PALMAS=y
    CONFIG_DM_SERIAL=y
    CONFIG_SYS_NS16550=y
    CONFIG_DM_SPI=y
    CONFIG_TI_QSPI=y
    CONFIG_USB=y
    CONFIG_USB_XHCI_HCD=y
    CONFIG_USB_XHCI_DWC3=y
    CONFIG_USB_DWC3=y
    CONFIG_USB_DWC3_GADGET=y
    CONFIG_USB_DWC3_OMAP=y
    CONFIG_USB_DWC3_PHY_OMAP=y
    CONFIG_USB_STORAGE=y
    CONFIG_USB_GADGET=y
    CONFIG_USB_GADGET_DOWNLOAD=y
    CONFIG_G_DNL_MANUFACTURER="Texas Instruments"
    CONFIG_G_DNL_VENDOR_NUM=0x0451
    CONFIG_G_DNL_PRODUCT_NUM=0xd022
    

    If any other input will be needed please let me know.

    Thanks & Best Regards,

    Simit

  • Simit,

    I use am57x_evm_defconfig in the SDK release. I see the following difference from your defconfig.

    --- ./configs/am57xx_evm_defconfig      2017-06-28 18:15:49.000000000 -0500
    +++ /home/lb/tmp/am57xx_evm_defconfig.txt       2018-11-14 07:55:24.496799417 -0600
    @@ -14,6 +14,8 @@
     CONFIG_DRA7_IVA_OPP_HIGH=y
     CONFIG_DRA7_GPU_OPP_HIGH=y
     CONFIG_SPL_LOAD_FIT=y
    +CONFIG_USE_BOOTARGS=y
    +CONFIG_BOOTARGS="androidboot.serialno=${serial#} console=ttyS2,115200 androidboot.console=ttyS2 androidboot.hardware=am57xevmboard"
     CONFIG_SYS_CONSOLE_INFO_QUIET=y
     CONFIG_VERSION_VARIABLE=y
     CONFIG_SPL=y
    @@ -57,7 +59,7 @@
     CONFIG_SPL_OF_CONTROL=y
     CONFIG_SPL_OF_TRANSLATE=y
     CONFIG_SPL_DM_SEQ_ALIAS=y
    -CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-evm-reva3 am572x-idk am571x-idk"
    +CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am57xx-evm-reva3 am572x-idk am571x-idk am574x-idk"
     CONFIG_DM=y
     CONFIG_SPL_DM=y
     CONFIG_REGMAP=y
    

    My board mod will be ready soon. Can you please attach your patch which modifies hwinit-common.c and board/ti/am57xx/board.c for your board, so that I can directly apply the changes?