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.

Linux/TDA2EG-17: How to debug Uboot

Part Number: TDA2EG-17
Other Parts Discussed in Thread: PMP, DRA71

Tool/software: Linux

When I make a SD card boot according to the VisionSDK_Linux_UserGuide.pdf,then I  insert the sd card into  my customized bord(not EVM),then serior port prints following error messages:

U-Boot SPL 2016.05-00008-g1fbee98-dirty (Mar 27 2018 - 16:44:12)
DRA722-GP ES2.1
no pinctrl for hs200_1_8v
no pinctrl for ddr_1_8v
i2c_write: pads on bus probably not configured (status=0x10)
tps65903x: could not set LDO1 voltage.
i2c_write: pads on bus probably not configured (status=0x10)
tps65903x: could not set LDO1 voltage.
*** Warning - bad CRC, using default environment

Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured

So  could I konw  whether if  it meets some problems when reading from external  EEPROM? And how to resolve it?

And the last question is that  how to debug Uboot and how to load Uboot into my board except for by SD card when I have modified Uboot?

Thanks!

  • Who can help me to answer the question?
  • Hi,

    Your PMIC isn't configured correctly. When u-boot tries to access PMIC over I2C there is an error. To debug please check the devices connected over I2C0 and ensure PMIC is registered as a device.

    The LD01 voltage error is due to the MMC module in u-boot trying trying to figure out the speed mode to operate in. As a work-around you can remove all the other speed modes in MMC except the default mode in the device-tree in u-boot (arch/arm/dts/dra72-evm-common.dtsi). This should prevent the LD01 voltage error and enable uboot to continue its execution.

    U-boot can be debugged using an external debugger such as lauterbach / XDS-560 and CCS. You can update u-boot binaries using DFU. You can find more information here:

    Regards

    Shravan

  • Hello Shravan:

    Thank you for your advise,I have skip this error by masking   PMU of probing & writing & reading。But now serial port put following errors;

    U-Boot SPL 2016.05-00008-g1fbee98-dirty (May 28 2018 - 16:26:30)
    DRA722-GP ES2.1
    no pinctrl for hs200_1_8v
    no pinctrl for ddr_1_8v
    *** Warning - bad CRC, using default environment

    Trying to boot from MMC1
    reading dra7-ipu2-fw.lzop
    spl_load_file_fat: error reading file dra7-ipu2-fw.lzop, err - -1
    spl: error reading image dra7-ipu2-fw.lzop, err - -1
    Error loading remotecore IPU2!,Continuing with boot ...
    reading dra7-dsp1-fw.lzop
    spl_load_file_fat: error reading file dra7-dsp1-fw.lzop, err - -1
    spl: error reading image dra7-dsp1-fw.lzop, err - -1
    Error loading remotecore DSP1!,Continuing with boot ...
    reading dra7-dsp2-fw.lzop
    spl_load_file_fat: error reading file dra7-dsp2-fw.lzop, err - -1
    spl: error reading image dra7-dsp2-fw.lzop, err - -1
    Error loading remotecore DSP2!,Continuing with boot ...
    reading dra7-ipu1-fw.lzop
    spl_load_file_fat: error reading file dra7-ipu1-fw.lzop, err - -1
    spl: error reading image dra7-ipu1-fw.lzop, err - -1
    Error loading remotecore IPU1!,Continuing with boot ...
    *** Warning - bad CRC, using default environment

    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img


    U-Boot 2016.05-00008-g1fbee98-dirty (May 28 2018 - 16:26:30 +0800)

    CPU : DRA722-GP ES2.1
    Model: TI DRA722
    Board: DRA72x EVM REV
    DRAM: 1 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - bad CRC, using default environment

    Warning: fastboot.cpu: unknown cpu type
    Warning: fastboot.board_rev: unknown board revision
    GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645
    part_get_info_efi: *** ERROR: Invalid GPT ***
    GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645
    part_get_info_efi: *** ERROR: Invalid Backup GPT ***
    ERROR: cannot find partition: 'userdata'

    at arch/arm/cpu/armv7/omap-common/utils.c:195/mmc_get_part_size()
    Warning: fastboot.userdata_size: unable to calc
    SCSI: SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
    flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
    scanning bus for devices...
    Found 0 device(s).
    Net: Could not get PHY for ethernet@48484000: addr 3

    Warning: ethernet@48484000 using MAC address from ROM
    eth0: ethernet@48484000
    Hit any key to stop autoboot: 0
    MMC: no card present
    MMC: no card present
    MMC: no card present
    switch to partitions #0, OK
    mmc1(part 0) is current device
    mmc - MMC sub system

    Thank you!

     Kyle

  • Hi Kyle,

    Please ensure you have made only the below changes to the u-boot device tree.


    Regards

    Shravan

    diff --git a/arch/arm/dts/dra7.dtsi b/arch/arm/dts/dra7.dtsi
    index e9eb8f0..7871d5f 100644
    --- a/arch/arm/dts/dra7.dtsi
    +++ b/arch/arm/dts/dra7.dtsi
    @@ -891,11 +891,6 @@
    dma-names = "tx", "rx";
    status = "disabled";
    pbias-supply = <&pbias_mmc_reg>;
    - sd-uhs-sdr104;
    - sd-uhs-sdr50;
    - sd-uhs-ddr50;
    - sd-uhs-sdr25;
    - sd-uhs-sdr12;
    };


  • Hi Shravan:
    Could tell me which dts EVM board's uboot is using?

    Thanks!
    Kyle
  • Hi Kyle,

    The DTB used is dra71-evm.dtb.


    Regards

    Shravan

  • Hi Shravan:

    The SD I have made according to the VisionSDK_Linux_UserGuide.pdf can run on the EVM board normally,but it cannot run on our customized board.

    And uenv.txt is as following:
    fdtfile=dra71-evm-infoadas.dtb
    args_mmc=part uuid mmc 0:2 uuid; setenv bootargs "console=ttyO0,115200n8 vram=16M root=PARTUUID=${uuid} rw rootwait ip=none mem=1024M"

    When i insert SD into EVM board,serior port outputs:
    CPU : DRA722-GP ES2.1
    Model: TI DRA71 EVM
    Board: DRA71x EVM REV A.4
    DRAM: 2 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    ** First descriptor is NOT a primary desc on 1:1 **
    *** Warning - bad CRC, using default environment

    But insert SD into my board, it outputs:
    CPU : DRA722-GP ES2.1
    Model: TI DRA722
    Board: DRA72x EVM REV
    DRAM: 1 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - bad CRC, using default environment

    Why are they different?

    1. I wonder whether if it will influence the start of uboot when i mask probing & writing & reading of PMU;
    2.Does the external EEPROM can cause the problem?

    Thank you !
    Kyle
  • Hi Kyle,

    Yes the external EEPROM causes the prints observed on your custom board.
    In u-boot, refer to the file board/ti/dra7xx/evm.c, the function do_board_detect reads EEPROM to get the board-info and the revision.
    The EEPROM read is also used to set core voltages (refer functions board_is_dra7** functions). Using this as reference make the necessary changes for your custom board.

    Regards
    Shravan
  • Hi Shravan,

    ok ,but where does the initial data in the EEPROM comes from?Should I burn data into it before?

    Thanks!
    Kyle
  • Yes, please flash data to EEPROM with the information specific to your board.
  • Hi Shravan,
    Could you provide the information to me as as a refference?

    Thanks!
    Kyle
  • Hi Kyle,

    If the boot-loader is specific to your board, I would recommend removing the EEPROM reads, and setting the default values (for voltage etc).
    I had indicated this a couple of posts ago (pasting below again for reference).

    Regards
    Shravan

    In u-boot, refer to the file board/ti/dra7xx/evm.c, the function do_board_detect reads EEPROM to get the board-info and the revision.
    The EEPROM read is also used to set core voltages (refer functions board_is_dra7** functions). Using this as reference make the necessary changes for your custom board.
  • Hi Shravan,

    I got what you have said and I have modified the board's name and revision,but it still does't work normally.
    Could you tell me how i can kow the executing sequence of those functions in the Uboot & spl?

    Thanks
    Kyle
  • Hi Kyle,

    Can you please post the changes that were made? Also where exactly is the program stuck now? Can you provide the logs?

    Regards
    Shravan
  • Hi Shravan,
    The log list as following:

    U-Boot 2016.05-00008-g1fbee98-dirty (Jun 07 2018 - 11:00:43 +0800)

    CPU : DRA722-GP ES2.1
    Model: TI DRA71 EVM
    Board: DRA71x EVM REV A.4
    DRAM: 1 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Warning: fastboot.cpu: unknown cpu type
    GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645
    part_get_info_efi: *** ERROR: Invalid GPT ***
    GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645
    part_get_info_efi: *** ERROR: Invalid Backup GPT ***
    ERROR: cannot find partition: 'userdata'

    at arch/arm/cpu/armv7/omap-common/utils.c:195/mmc_get_part_size()
    Warning: fastboot.userdata_size: unable to calc
    SCSI: SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
    flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
    scanning bus for devices...
    Found 0 device(s).
    Net: Could not get PHY for ethernet@48484000: addr 2
    eth0: ethernet@48484000
    Hit any key to stop autoboot: 0
    switch to partitions #0, OK
    mmc1(part 0) is current device
    mmc - MMC sub system

    Usage:
    mmc info - display info of the current MMC device
    mmc read addr blk# cnt
    mmc write addr blk# cnt
    mmc erase blk# cnt
    mmc rescan
    mmc part - lists available partition on current mmc device
    mmc dev [dev] [part] - show or set current mmc device [partition]
    mmc list - lists available devices
    mmc hwpartition [args...] - does hardware partitioning
    arguments (sizes in 512-byte blocks):
    [user [enh start cnt] [wrrel {on|off}]] - sets user data area attributes
    [gp1|gp2|gp3|gp4 cnt [enh] [wrrel {on|off}]] - general purpose partition
    [check|set|complete] - mode, complete set partitioning completed
    WARNING: Partitioning is a write-once setting once it is set to complete.
    Power cycling is required to initialize partitions after set to complete.
    mmc bootbus dev boot_bus_width reset_boot_bus_width boot_mode
    - Set the BOOT_BUS_WIDTH field of the specified device
    mmc bootpart-resize <dev> <boot part size MB> <RPMB part size MB>
    - Change sizes of boot and RPMB partitions of specified device
    mmc partconf dev boot_ack boot_partition partition_access
    - Change the bits of the PARTITION_CONFIG field of the specified device
    mmc rst-function dev value
    - Change the RST_n_FUNCTION field of the specified device
    WARNING: This is a write-once field and 0 / 1 / 2 are the only valid values.
    mmc setdsr <value> - set DSR register value

    mmc - MMC sub system

    Usage:
    mmc info - display info of the current MMC device
    mmc read addr blk# cnt
    mmc write addr blk# cnt
    mmc erase blk# cnt
    mmc rescan
    mmc part - lists available partition on current mmc device
    mmc dev [dev] [part] - show or set current mmc device [partition]
    mmc list - lists available devices
    mmc hwpartition [args...] - does hardware partitioning
    arguments (sizes in 512-byte blocks):
    [user [enh start cnt] [wrrel {on|off}]] - sets user data area attributes
    [gp1|gp2|gp3|gp4 cnt [enh] [wrrel {on|off}]] - general purpose partition
    [check|set|complete] - mode, complete set partitioning completed
    WARNING: Partitioning is a write-once setting once it is set to complete.
    Power cycling is required to initialize partitions after set to complete.
    mmc bootbus dev boot_bus_width reset_boot_bus_width boot_mode
    - Set the BOOT_BUS_WIDTH field of the specified device
    mmc bootpart-resize <dev> <boot part size MB> <RPMB part size MB>
    - Change sizes of boot and RPMB partitions of specified device
    mmc partconf dev boot_ack boot_partition partition_access
    - Change the bits of the PARTITION_CONFIG field of the specified device
    mmc rst-function dev value
    - Change the RST_n_FUNCTION field of the specified device
    WARNING: This is a write-once field and 0 / 1 / 2 are the only valid values.
    mmc setdsr <value> - set DSR register value

    Booting from eMMC ...
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    =>
  • Former Member
    0 Former Member in reply to Kyle2018
    Hi,
    Can you please provide the changes you made in patch format?

    Regards,
    Somnath
  • Former Member
    0 Former Member in reply to Former Member
    Hi,
    Can you please get back on this issue and let us know if you need any further help?

    Regards,
    Somnath