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/AM5718: QSPI Boot fail (SPI probe failed)

Part Number: AM5718
Other Parts Discussed in Thread: AM5728, PMP

Tool/software: Linux

I have a AM5718 custom board. The board has QSPI boot options.
(0b000110 : First device SD / Second device QSPI_1)

we had it working in u-boot 2018 in linux SDK 05.00.00.15

SPI boot is not working properly . we are facing following errors

Below is a QSPI flash boot failure log.

U-Boot SPL 2018.01 (Dec 26 2018 - 15:52:46)
DRA722-GP ES2.0
Trying to boot from SPI
Invalid bus 0 (err=-19)
Failed to initialize SPI flash at 0:0 (error -19)
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

  

 

But, After booting to the SD card, the spi flash will work normally when the sf probe is used.

Below is sf probe log after SD boot.

U-Boot SPL 2018.01 (Dec 26 2018 - 11:16:35)
DRA722-GP ES2.0
Trying to boot from MMC1
no pinctrl state for default mode
no pinctrl state for default mode
*** Warning - bad CRC, using default environment

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


U-Boot 2018.01 (Dec 26 2018 - 11:16:35 +0900)

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

Net:
Warning: ethernet@48484000 using MAC address from ROM
eth0: ethernet@48484000
Hit any key to stop autoboot: 0
HUR-BOOT>
HUR-BOOT> sf probe
SF: Detected s25fl256s_64k with page size 256 Bytes, erase size 64 KiB, total 32 MiB, mapped at 5c000000

 

Q: Why does spi probe fail in spl_spi_load_image function in spl_spi.c?

/*
* Load U-Boot image from SPI flash into RAM
*/
flash = spi_flash_probe(CONFIG_SF_DEFAULT_BUS,
CONFIG_SF_DEFAULT_CS,
CONFIG_SF_DEFAULT_SPEED,
CONFIG_SF_DEFAULT_MODE);
if (!flash) {
printf("SPI probe failed. Bus:%d, CS:%d, Speed:%d, mode:%d\n", CONFIG_SF_DEFAULT_BUS ,CONFIG_SF_DEFAULT_CS, CONFIG_SF_DEFAULT_SPEED, CONFIG_SF_DEFAULT_MODE);
return -ENODEV;
}

Best regards,

John Kim.

  • Thank you for your reply.

    Does it mean QSPI boot is not supported?

    I used a QSPI boot in AM 5728. It worked normally.
    Why does the current version of U-Boot do not support QSPI boot?

  • “I used a QSPI boot in AM 5728. It worked normally.”
    I want to know witch version of AM5728 SDK, you use QSPI boot normally.
  • The version of u-boot on which QSPI boot worked normally is the u-boot-2016.05 version.

    U-BOOT: u-boot-2016.05+gitAUTOINC+2f757e5b2c-g2f757e5b2c

    PDK: ti-processor-sdk-linux-rt-am57xx-evm-03.01.00.06

  • Which Processor SDK Linux did you use?

    Best Regards,
    Yordan
  • I used the following version of the SDK for Linux.

    PDK: ti-processor-sdk-linux-rt-am57xx-evm-03.01.00.06
    U-BOOT: u-boot-2016.05+gitAUTOINC+2f757e5b2c-g2f757e5b2c
    LINUX: linux-rt-4.4.19+gitAUTOINC+f572d285f0-gf572d285f0
  • I recommend connecting with JTAG and comparing the QSPI pin-mux registers in the working case compared to the failing case. Also, have you tried slowing down the bus? Try slowing it way down (like 1-10 MHz) to see if that "fixes" the issue. That would be a good clue to help us narrow down the problem.
  • I tried slowly from 1 to 10 MHz, but the problem was not solved.

    According to the link below, does AM57xx not support QSPI boot?
    e2e.ti.com/.../743093
  • Hi Yohan,

    The error message Invalid bus 0 (err=-19) is caused by unsuccessful initialization of SPI device (searching for SPI device fails). For further debug see uclass_get_device_by_seq function in ../u-boot/drivers/core/uclass.c file.

    You can debug SPI initialization to search for some errors in ../u-boot/common/spi/spi.c file. Please enable DEBUG logs so that we can gain more insight into why the failure occurs.

    Also, looking into u-boot user guide, seems that QSPI boot is not supported by default to AM571x IDK board. You can check how QSPI boot is implemented in DRA7x EVM (check u-boot source, dra7xx_evm_defconfig) and compare with AM571x u-boot. See also below user guide:

    processors.wiki.ti.com/index.php/Processor_SDK_Linux_Automotive_Software_Developers_Guide#Using_QSPI_Boot

    Regards,
    Pavel
  • Hi Pavel,

    Below is the contents of the log with DEBUG enabled.

    U-Boot SPL 2018.01 (Jan 02 2019 - 10:46:46)
    DRA722-GP ES2.0
    omap24_i2c_findpsc: speed [kHz]: 100 psc: 0x17 sscl: 0xd ssch: 0xf
    Trying to boot from SPI
    malloc_simple: size=e, ptr=36, limit=100000: 81f00028
    uclass_find_device_by_seq: 0 0
    - -1 -1 'qspi@4b300000'
    - not found
    uclass_find_device_by_seq: 1 0
    - -1 -1 'qspi@4b300000'
    - not found
    Invalid bus 0 (err=-19)
    SPI probe failed. Bus:0, CS:0, Speed:76800000, mode:0
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

    Regards,

    John

  • Yohan Kim said:
    I tried slowly from 1 to 10 MHz, but the problem was not solved.

    Was there activity observed on the bus?  Was it at the expected frequency?  What could you see happening, i.e. is there any data transfer in either direction?  if we see what is happening on the interface that would likely give us a big hint as to the underlying issue.

    Yohan Kim said:
    According to the link below, does AM57xx not support QSPI boot?
    e2e.ti.com/.../743093

    That means it isn't an officially supported feature of our Processor SDK Linux distribution.  However, I've seen other customers get it working, so I know it is feasible.  It's just a matter of figuring out what is happening in your system.

    The pin-mux registers would be a good start before we look much deeper.  And I would keep the frequency slow (10 MHz) until we get things working.  You can speed it up later once things are functional.

  • This issue also occurs in the AM5718 IDK.
    Please let me know the possible solutions.
  • I am waiting for your answer.
  • Yohan,

    Let me summarize what we have so far:
    - You are trying to boot from QSPI in QSPI_1 mode. You are able to load SPL, but the flow hangs at loading u-boot stage
    - You are working with PSDK 5.00. When you use PSDK 3.01 you are able to boot fine from QSPI_1
    - You are working with AM571x IDK and custom board, both fail to boot from QSPI in PSDK 5.00

    I would suggest you to check the below things:

    1. QSPI pinmux - make sure you have the correct QSPI pinmux in u-boot/board/ti/am57xx/mux_data.h file, structure core_padconf_array_essential_am571x_idk[]. You can compare your QSPI pinmux between PSDK 5.00 and PSDK 3.01

    2. make sure you have the below configs in your defconfig file:

    CONFIG_SPL_SPI_FLASH_SUPPORT=y
    CONFIG_SPL_SPI_SUPPORT=y
    CONFIG_DM_SPI_FLASH=y
    CONFIG_SPI_FLASH=y
    CONFIG_SPI_FLASH_BAR=y
    CONFIG_SPI_FLASH_SPANSION=y
    CONFIG_DM_SPI=y
    CONFIG_TI_QSPI=y

    You can compare your defconfig file (i.e. am57xx_evm_defconfig) between PSDK 5.00 and PSD 3.01

    3. make sure QSPI1 module is enabled in am57xx-idk-common.dtsi file. You can compare this file between PSDK 5.00 and PSDK 3.01

    4. make QSPI register dump in SPL stage and compare the registers settings between PSDK 5.00 and PSDK 3.01

    Regards,
    Pavel
  • Yohan,

    Do you have JTAG debug capability with CCS? If so, there are some debug scripts that can help us identify the issue:

    git.ti.com/.../master

    First, please view the README for general directions of how the scripts are used. Please zip up the output files and attach them from these 3 cases:

    1. After a bad boot run am57xx-boot.dss.
    2. After a bad boot run am57xx-pinmux.dss.
    3. After a good boot, pause at u-boot (i.e. press a key to halt the boot), and run am57xx-pinmux.dss.

    For the two pinmux-related files, please indicate which one corresponds to which case.

    Best regards,
    Brad
  • Thank you for your reply.

    1. After a bad boot run am57xx-boot.dss

    am57xx-boot_2019-01-10_094525.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    CTRL_CORE_BOOTSTRAP = 0x00008106
    * sysboot15 = 1, internal pulldown enabled at boot (recommended for GPMC NOR boot)
    * XIP/NAND BOOTDEVICESIZE = 8-bit
    * XIP/NAND MUXCS0DEVICE = Non-muxed
    * XIP/NAND BOOTWAITEN, wait pin not monitored
    * SPEEDSELECT = 20 MHz
    * QSPI offset = 64KB
    * SD -> QSPI_1
    Current tracing vector, word 1 = 0x0010009f
    * Bit 0: [Boot] Passed the public reset vector
    * Bit 1: [Boot] Entered main function
    * Bit 2: [Boot] Running after the cold reset
    * Bit 3: [Boot] Main booting routine entered
    * Bit 4: [Memory boot] Memory booting started
    * Bit 7: [Boot] GP header found
    * Bit 20: [Boot] Configuration header found
    Current tracing vector, word 2 = 0x40001000
    * Bit 12: [Memory boot] Memory booting trial (first block)
    * Bit 30: [Boot] Jumping to Initial Software
    Current tracing vector, word 3 = 0x00000420
    * Bit 5: [Memory boot] Memory booting device SD
    * Bit 10: [Memory boot] Memory booting device QSPI_1
    Current tracing vector, word 4 = 0x01000000
    * Bit 24: [MMC/SD] SD card detected PBIAS configuration is 1.8V
    Cold reset tracing vector, word 1 = 0x00000000
    Cold reset tracing vector, word 2 = 0x00000000
    Cold reset tracing vector, word 3 = 0x00000000
    Cold reset tracing vector, word 4 = 0x00000000
    Current copy of the PRM_RSTST register (reset reasons) = 0x00000001
    * Bit 0 : GLOBAL_COLD_RST
    PRM_RSTST = 0x00000001
    * Bit 0 : GLOBAL_COLD_RST
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    2 ~3 : am57xx-pinmux.dss. File not found. Can I replace it with am57xx-padconf.dss?

    2: After a bad boot run am57xx-padconf.dss

    am57xx-padconf_2019-01-10_101900.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    PadConf AM571x_SR2.0_SR1.0
    0x4a003400 0x0005000f
    0x4a003404 0x0005000f
    0x4a003408 0x0005000f
    0x4a00340c 0x0005000f
    0x4a003410 0x0005000f
    0x4a003414 0x0005000f
    0x4a003418 0x0005000f
    0x4a00341c 0x0005000f
    0x4a003420 0x0005000f
    0x4a003424 0x0005000f
    0x4a003428 0x0005000f
    0x4a00342c 0x0005000f
    0x4a003430 0x0005000f
    0x4a003434 0x0005000f
    0x4a003438 0x0005000f
    0x4a00343c 0x0005000f
    0x4a003440 0x0005000f
    0x4a003444 0x0005000f
    0x4a003448 0x0005000f
    0x4a00344c 0x0005000f
    0x4a003450 0x0005000f
    0x4a003454 0x0005000f
    0x4a003458 0x0005000f
    0x4a00345c 0x00050106
    0x4a003460 0x00050106
    0x4a003464 0x00050106
    0x4a003468 0x0005000f
    0x4a00346c 0x0005000f
    0x4a003470 0x0005000f
    0x4a003474 0x00050101
    0x4a003478 0x00060101
    0x4a00347c 0x00060101
    0x4a003480 0x00060101
    0x4a003484 0x00060101
    0x4a003488 0x00010101
    0x4a00348c 0x00060001
    0x4a003490 0x00060001
    0x4a003494 0x00060001
    0x4a003498 0x00060001
    0x4a00349c 0x00060001
    0x4a0034a0 0x00060001
    0x4a0034a4 0x00060001
    0x4a0034a8 0x00060001
    0x4a0034ac 0x00060001
    0x4a0034b0 0x00060001
    0x4a0034b4 0x0001000e
    0x4a0034b8 0x00010101
    0x4a0034bc 0x00010101
    0x4a0034c0 0x0005000e
    0x4a0034c4 0x0001000e
    0x4a0034c8 0x0001000e
    0x4a0034cc 0x0001000e
    0x4a0034d0 0x0001000e
    0x4a0034d4 0x0001000e
    0x4a0034d8 0x0009000e
    0x4a003554 0x0005000f
    0x4a003558 0x0006000e
    0x4a00355c 0x0006000e
    0x4a003560 0x0006000e
    0x4a003564 0x0001000e
    0x4a003568 0x0004000f
    0x4a00356c 0x0004000f
    0x4a003570 0x0005000f
    0x4a003574 0x0004000f
    0x4a003578 0x0004000f
    0x4a00357c 0x0004000f
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    3.  After a good boot run am57xx-padconf.dss

    am57xx-padconf_2019-01-10_102249.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    PadConf AM571x_SR2.0_SR1.0
    0x4a003400 0x0005000f
    0x4a003404 0x0005000f
    0x4a003408 0x0005000f
    0x4a00340c 0x0005000f
    0x4a003410 0x0005000f
    0x4a003414 0x0005000f
    0x4a003418 0x0005000f
    0x4a00341c 0x0005000f
    0x4a003420 0x0005000f
    0x4a003424 0x0005000f
    0x4a003428 0x0005000f
    0x4a00342c 0x0005000f
    0x4a003430 0x0005000f
    0x4a003434 0x0005000f
    0x4a003438 0x0005000f
    0x4a00343c 0x0005000f
    0x4a003440 0x0005000f
    0x4a003444 0x0005000f
    0x4a003448 0x0005000f
    0x4a00344c 0x0005000f
    0x4a003450 0x0005000f
    0x4a003454 0x0005000f
    0x4a003458 0x0005000f
    0x4a00345c 0x00050106
    0x4a003460 0x00050106
    0x4a003464 0x00050106
    0x4a003468 0x0005000f
    0x4a00346c 0x0005000f
    0x4a003470 0x0005000f
    0x4a003474 0x00050101
    0x4a003478 0x00060101
    0x4a00347c 0x00060101
    0x4a003480 0x00060101
    0x4a003484 0x00060101
    0x4a003488 0x00010101
    0x4a00348c 0x00060001
    0x4a003490 0x00060001
    0x4a003494 0x00060001
    0x4a003498 0x00060001
    0x4a00349c 0x00060001
    0x4a0034a0 0x00060001
    0x4a0034a4 0x00060001
    0x4a0034a8 0x00060001
    0x4a0034ac 0x00060001
    0x4a0034b0 0x00060001
    0x4a0034b4 0x0001000e
    0x4a0034b8 0x00010101
    0x4a0034bc 0x00010101
    0x4a0034c0 0x0005000e
    0x4a0034c4 0x0001000e
    0x4a0034c8 0x0001000e
    0x4a0034cc 0x0001000e
    0x4a0034d0 0x0001000e
    0x4a0034d4 0x0001000e
    0x4a0034d8 0x0009000e
    0x4a003554 0x0005000f
    0x4a003558 0x0006000e
    0x4a00355c 0x0006000e
    0x4a003560 0x0006000e
    0x4a003564 0x0001000e
    0x4a003568 0x0004000f
    0x4a00356c 0x0004000f
    0x4a003570 0x0005000f
    0x4a003574 0x0004000f
    0x4a003578 0x0004000f
    0x4a00357c 0x0004000f
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Regards,

    John

  • Hi Pavel,

    I compared 1 to 3, but it was all the same.

    Regards,
    John
  • John,

    Sorry for any confusion on the script naming.  Yes, the am57xx-padconf.dss script was the correct one to run.  That is a brand new script to help with diagnosing issues, and between the time I posted and the time you ran it, there were some minor updates to the naming and directory structure!

    I diff'd the good/bad rd1 files and they were identical.  So whatever it is that's different does not appear to be pin-mux related.  I should note however that at the moment the script does not look at the Manual I/O configurations.  It probably should.  Can you post your mux_data.h file so I can have a look at the structures?

    Are you able to put a scope on the board to look at the QSPI interface in the good and bad scenario?  I'm wondering if there's any difference in frequency, signal integrity, etc.

    Brad

  • Hi Brad,

    below is my pimux code.

    // QSPI Pinmux M1 is QSPI

    {GPMC_A18, (M1 | PIN_OUTPUT | MANUAL_MODE)}, /* gpmc_a18.qspi1_sclk */

    {GPMC_A13, (M1 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_a13.qspi1_rtclk */

    {GPMC_CS2, (M1 | PIN_OUTPUT | MANUAL_MODE)}, /* gpmc_cs2.qspi1_cs0 */

    {GPMC_A16, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* gpmc_a16.qspi1_d0 */

    {GPMC_A17, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* gpmc_a17.qspi1_d1 */

    {GPMC_A14, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* gpmc_a14.qspi1_d3 */

    {GPMC_A15, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* gpmc_a15.qspi1_d2 */

    I will check QSPI's CS, Data line with the scope.

  • There should be another structure with the manual mode timings too. Can you please provide that? Or perhaps the lack of that structure is the issue.
  • I checked QSPI's CS, Data line with the scope.
    Changes are detected in the CS and Data lines of QSPI.

    Also, there is no difference, in case of bad boot and good boot.
  • Attach my pinmux file.

    3757.mux_data.h

  • I see a number of iodelay_cfg_entry structures. Can you confirm in your software that the iodelay_cfg_array_am571x_idk[] structure is being used at run-time to configure the I/O modes? Also, can you confirm on a scope that your QSPI is operating in Mode 0 after MLO is loaded? Can you post a picture taken with your scope showing the QSPI communication (after u-boot MLO is running, not of boot ROM)?
  • How to confirm in your software that the iodelay_cfg_array_am571x_idk[] structure is being used at run-time to configure the I/O modes?
    I can check the u-boot.map file as follows.
    ./u-boot.map: .rodata.iodelay_cfg_array_am571x_idk_4port
    ./u-boot.map: .rodata.iodelay_cfg_array_am571x_idk
    ./u-boot.map: 0x000000008083af36 iodelay_cfg_array_am571x_idk
    ./u-boot.sym:8083af36 g O .rodata 0000010e iodelay_cfg_array_am571x_idk
  • If you're not sure, I recommend stepping through the code or adding some prints.
  • I cheked the recalibrate_iodelay funtion in board.c
    I certainly use iodelay_cfg_array_am571x_idk.

    pconf = core_padconf_array_essential_am571x_idk;
    pconf_sz = ARRAY_SIZE(core_padconf_array_essential_am571x_idk);
    iod = iodelay_cfg_array_am571x_idk;
    iod_sz = ARRAY_SIZE(iodelay_cfg_array_am571x_idk);
  • I have question

    If the am57xx series does not support QSPI boot, is this issue an H / W issue? Or is this a S / W issue?

    Many people want to boot QSPI.
    But there is no obvious solution.

  • QSPI boot as a silicon feature works fine. I don't think QSPI boot is "supported" in terms of being an advertised and tested capability of Processor SDK Linux. The fact that the bootloader can load MLO indicates there's no issue with QSPI boot. At this point, it's likely a software issue in u-boot-spl.

    On a related note, the boot ROM configures the SPI in Mode 3. That appears to be working ok since MLO is getting loaded. Your code however is attempting to use Mode 0. Perhaps you should change your configuration to Mode 3 to see if that works better. Mode 3 on AM571x QSPI does not use a Virtual Mode, so you'll need to update your structures accordingly. You would need to update the QSPI configuration in the device tree in order to use mode 3 by adding in lines for spi-cpol and spi-cpha. I recommend slowing the clock down as well.

    So in summary, my suggested next steps are:
    1. Change pin muxing and SPI configuration to Mode 3.
    2. Check on scope to verify frequency is at the expected speed and polarities are correct for Mode 3. Please post a screenshot for confirmation.
    3. Re-run my tool that checks your pinmux so we can verify that the mux modes are correct for Mode 3 (i.e. no manual mode).
  • I changed spi mode 3 in u-boot.

    am57xx_evm.h -> #define CONFIG_SF_DEFAULT_MODE                 SPI_MODE_3

    spi_flash.h -> # define CONFIG_SF_DEFAULT_MODE SPI_MODE_3

      

    -----------------------------boot log-------------------------

    U-Boot SPL 2018.01 (Jan 16 2019 - 13:46:44)

    DRA722-GP ES2.0

    Trying to boot from SPI

    Invalid bus 0 (err=-19)

    SPI probe failed. Bus:0, CS:0, Speed:76800000, mode:3

    SPL: failed to boot from all boot devices

    ### ERROR ### Please RESET the board ###

     

      

    below is QSPI scope screenshot.

    C1(yellow) : QSPI clock

    C2(pink) : QSPI CS0

    C3(blue): QSPI D0

    C4(green): QSPI D1

  • I have an idea of what the issue might be. I don't see anything wrong with your waveform, so I went back and was thinking about your original symptom some more. I thought it was interesting that u-boot works fine, but SPL does not. Please try adding this to the u-boot device tree:

    &qspi {
    u-boot,dm-spl;
    }

    You need that in order to get u-boot to use the "driver model" (dm) driver inside SPL. I think that's why it works for u-boot, but not SPL.
  • I have changed as follows.


    in am57xx-idk-common.dtsi

    &qspi {

    u-boot,dm-spl;
    status = "okay";

    spi-max-frequency = <76800000>;
    m25p80@0 {
    compatible = "s25fl256s","spi-flash";
    spi-max-frequency = <76800000>;
    reg = <0>;
    spi-tx-bus-width = <1>;
    spi-rx-bus-width = <4>;
    #address-cells = <1>;
    #size-cells = <1>;

    ...
    ...
    ...


    the problem was not solved.

     

  • Please add this to include/configs/am57xx_evm.h (or corresponding header file for your board):

    #defined DEBUG

    You should get a much more verbose output from u-boot and perhaps that will give some clues as to what sort of issue you're having.

  • I already posted that in the previous replies.

    ---------------------------------------------------------------------------------------------------------
    Jan 1, 2019 1:50 PM
    In reply to Pavel Botev:

    Hi Pavel,

    Below is the contents of the log with DEBUG enabled.

    U-Boot SPL 2018.01 (Jan 02 2019 - 10:46:46)
    DRA722-GP ES2.0
    omap24_i2c_findpsc: speed [kHz]: 100 psc: 0x17 sscl: 0xd ssch: 0xf
    Trying to boot from SPI
    malloc_simple: size=e, ptr=36, limit=100000: 81f00028
    uclass_find_device_by_seq: 0 0
    - -1 -1 'qspi@4b300000'
    - not found
    uclass_find_device_by_seq: 1 0
    - -1 -1 'qspi@4b300000'
    - not found
    Invalid bus 0 (err=-19)
    SPI probe failed. Bus:0, CS:0, Speed:76800000, mode:0
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###
    ---------------------------------------------------------------------------------------------------------

      

    Below is the contents of the log with "u-boot,dm-spl;" added.

    U-Boot SPL 2018.01-svn56 (Jan 21 2019 - 09:12:36)
    DRA722-GP ES2.0
    omap24_i2c_findpsc: speed [kHz]: 100 psc: 0x17 sscl: 0xd ssch: 0xf
    Trying to boot from SPI
    malloc_simple: size=e, ptr=36, limit=100000: 81f00028
    uclass_find_device_by_seq: 0 0
    - -1 -1 'qspi@4b300000'
    - not found
    uclass_find_device_by_seq: 1 0
    - -1 -1 'qspi@4b300000'
    - not found
    Invalid bus 0 (err=-19)
    SPI probe failed. Bus:0, CS:0, Speed:76800000, mode:3
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

  • Please quickly answer.
    I am still waiting for an answer.
  • I’m traveling this week. Maybe Pavel or someone else has some ideas.
  • I’m going to face the same problem when I get back to my desk in the morning, I.e. getting the AM5718 IDK to load u boot from QSPI, it would be great if a solution could be identified. I think a lot of folks will want this to work, we certainly do as I’m trying to replicate what we do on our custom hardware on the IDK.
  • Yohan,

    I can see in your mux_data.h file that you are using qspi1_cs1 pin:

    // sootoo23 - 180904: HUR AM5718 IDK Config
    const struct pad_conf_entry core_padconf_array_essential_am571x_idk[] = {

    // QSPI (FPGA)
    {GPMC_CS3, (M1 | PIN_OUTPUT | MANUAL_MODE)}, /* gpmc_cs3.qspi1_cs1 */

    I suspect that might be the issue here. Can you try to remove this line and try again? If still no success, please provide us the below files/logs:

    1. the latest u-boot boot log with debug enabled
    2. your u-boot .config file
    3. You latest version of DTS and mux_data.h files
    4. How exactly you flash MLO/u-boot.img in QSPI flash? Please provide the log during flashing.


    Regards,
    Pavel
  • Hi Pavel,

    I tried remove and trying the below,

    The problem was not solved.

    // QSPI (FPGA)

    //PMC_CS3, (M1 | PIN_OUTPUT | MANUAL_MODE)}, /* gpmc_cs3.qspi1_cs1 */

     

    1. the latest u-boot boot log with debug enabled

    U-Boot SPL 2018.01-svn56 (Jan 24 2019 - 09:38:17)

    DRA722-GP ES2.0

    omap24_i2c_findpsc: speed [kHz]: 100 psc: 0x17 sscl: 0xd ssch: 0xf

    Trying to boot from SPI

    malloc_simple: size=e, ptr=36, limit=100000: 81f00028

    uclass_find_device_by_seq: 0 0

      - -1 -1 'qspi@4b300000'

      - not found

    uclass_find_device_by_seq: 1 0

      - -1 -1 'qspi@4b300000'

      - not found

    Invalid bus 0 (err=-19)

    SPI probe failed. Bus:0, CS:0, Speed:76800000, mode:3

    SPL: failed to boot from all boot devices

    ### ERROR ### Please RESET the board ###

     

    2. your u-boot .config file

    4428..config.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #
    # Automatically generated file; DO NOT EDIT.
    # U-Boot 2018.01 Configuration
    #
    CONFIG_CREATE_ARCH_SYMLINK=y
    # CONFIG_ARC is not set
    CONFIG_ARM=y
    # CONFIG_M68K is not set
    # CONFIG_MICROBLAZE is not set
    # CONFIG_MIPS is not set
    # CONFIG_NDS32 is not set
    # CONFIG_NIOS2 is not set
    # CONFIG_PPC is not set
    # CONFIG_SANDBOX is not set
    # CONFIG_SH is not set
    # CONFIG_X86 is not set
    # CONFIG_XTENSA is not set
    CONFIG_SYS_ARCH="arm"
    CONFIG_SYS_CPU="armv7"
    CONFIG_SYS_SOC="omap5"
    CONFIG_SYS_VENDOR="ti"
    CONFIG_SYS_BOARD="am57xx"
    CONFIG_SYS_CONFIG_NAME="am57xx_evm"
    #
    # ARM architecture
    #
    CONFIG_HAS_VBAR=y
    CONFIG_HAS_THUMB2=y
    CONFIG_ARM_ASM_UNIFIED=y
    CONFIG_ARM_ERRATA_798870=y
    CONFIG_CPU_V7=y
    CONFIG_SYS_ARM_ARCH=7
    CONFIG_SYS_CACHE_SHIFT_6=y
    CONFIG_SYS_CACHELINE_SIZE=64
    # CONFIG_ARM_SMCCC is not set
    # CONFIG_SEMIHOSTING is not set
    CONFIG_SYS_THUMB_BUILD=y
    CONFIG_SPL_SYS_THUMB_BUILD=y
    # CONFIG_SYS_L2CACHE_OFF is not set
    # CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set
    # CONFIG_ARM_CORTEX_CPU_IS_UP is not set
    CONFIG_USE_ARCH_MEMCPY=y
    CONFIG_SPL_USE_ARCH_MEMCPY=y
    CONFIG_USE_ARCH_MEMSET=y
    CONFIG_SPL_USE_ARCH_MEMSET=y
    # CONFIG_ARM64_SUPPORT_AARCH32 is not set
    # CONFIG_ARCH_AT91 is not set
    # CONFIG_TARGET_EDB93XX is not set
    # CONFIG_TARGET_ASPENITE is not set
    # CONFIG_TARGET_GPLUGD is not set
    # CONFIG_ARCH_DAVINCI is not set
    # CONFIG_KIRKWOOD is not set
    # CONFIG_ARCH_MVEBU is not set
    # CONFIG_TARGET_DEVKIT3250 is not set
    # CONFIG_TARGET_WORK_92105 is not set
    # CONFIG_TARGET_APF27 is not set
    # CONFIG_TARGET_APX4DEVKIT is not set
    # CONFIG_TARGET_XFI3 is not set
    # CONFIG_TARGET_M28EVK is not set
    # CONFIG_TARGET_MX23EVK is not set
    # CONFIG_TARGET_MX28EVK is not set
    # CONFIG_TARGET_MX23_OLINUXINO is not set
    # CONFIG_TARGET_BG0900 is not set
    # CONFIG_TARGET_SANSA_FUZE_PLUS is not set
    # CONFIG_TARGET_SC_SPS_1 is not set
    # CONFIG_ORION5X is not set
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     

    3. You latest version of DTS and mux_data.h files

    am57xx-idk-common.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    /*
    * Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License version 2 as
    * published by the Free Software Foundation.
    */
    #include "am57xx-industrial-grade.dtsi"
    / {
    aliases {
    rtc0 = &tps659038_rtc;
    rtc1 = &rtc;
    };
    chosen {
    stdout-path = &uart2; /* sootoo23 - uart change origin: &uart3; */
    };
    vmain: fixedregulator-vmain {
    compatible = "regulator-fixed";
    regulator-name = "VMAIN";
    regulator-min-microvolt = <5000000>;
    regulator-max-microvolt = <5000000>;
    regulator-always-on;
    regulator-boot-on;
    };
    v3_3d: fixedregulator-v3_3d {
    compatible = "regulator-fixed";
    regulator-name = "V3_3D";
    vin-supply = <&smps9_reg>;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-always-on;
    regulator-boot-on;
    };
    vtt_fixed: fixedregulator-vtt {
    /* TPS51200 */
    compatible = "regulator-fixed";
    regulator-name = "vtt_fixed";
    vin-supply = <&v3_3d>;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-always-on;
    regulator-boot-on;
    };
    leds-iio {
    status = "disabled";
    compatible = "gpio-leds";
    led-out0 {
    label = "out0";
    gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>;
    default-state = "off";
    };
    led-out1 {
    label = "out1";
    gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>;
    default-state = "off";
    };
    led-out2 {
    label = "out2";
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    2703.am571x-idk.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    /*
    * Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License version 2 as
    * published by the Free Software Foundation.
    */
    /dts-v1/;
    #include "dra72x.dtsi"
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include "am57xx-idk-common.dtsi"
    #include "dra72x-mmc-iodelay.dtsi"
    / {
    model = "TI AM5718 IDK";
    compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7";
    memory@80000000 {
    device_type = "memory";
    reg = <0x0 0x80000000 0x0 0x40000000>;
    };
    leds {
    compatible = "gpio-leds";
    cpu0-led {
    label = "status0:red:cpu0";
    gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
    default-state = "off";
    linux,default-trigger = "cpu0";
    };
    usr0-led {
    label = "status0:green:usr";
    gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
    default-state = "off";
    };
    heartbeat-led {
    label = "status0:blue:heartbeat";
    gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
    default-state = "off";
    linux,default-trigger = "heartbeat";
    };
    #if 0
    usr1-led {
    label = "status1:red:usr";
    gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
    default-state = "off";
    };
    usr2-led {
    label = "status1:green:usr";
    gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
    default-state = "off";
    };
    #endif
    mmc0-led {
    label = "status1:blue:mmc0";
    gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
    default-state = "off";
    linux,default-trigger = "mmc0";
    };
    };
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    7573.mux_data.h

     

    4. How exactly you flash MLO/u-boot.img in QSPI flash? Please provide the log during flashing.


    1. sf probe 
    SF: Detected s25fl256s_64k with page size 256 Bytes, erase size 64 KiB, total 32 MiB, mapped at 5c000000

     

    2. MLO Write log

    Filename 'MLO'.
    Load address: 0x82000000
    Loading: #######################
    2.8 MiB/s
    done
    Bytes transferred = 114886 (1c0c6 hex)

     

    SF: 262144 bytes @ 0x0 Erased: OK
    device 0 offset 0x0, size 0x1c0c6
    SF: 114886 bytes @ 0x0 Written: OK

     

    3. u-boot Write log

    Filename 'u-boot.img'.
    Load address: 0x82000000
    Loading: #################################################################
    #################################################################
    ############################################################
    2.9 MiB/s
    done
    Bytes transferred = 968400 (ec6d0 hex)

      

    SF: 1048576 bytes @ 0x40000 Erased: OK
    device 0 offset 0x40000, size 0xec6d0
    SF: 968400 bytes @ 0x40000 Written: OK

  • Yohan,

    In your .config file, I see you are using MMC/SD card for saving u-boot environments. Can you try using SPI instead of MMC for u-boot environments? Please comment if you have any improvement.

    CONFIG_ENV_IS_IN_MMC=y
    # CONFIG_ENV_IS_IN_SPI_FLASH is not set

    Regarding QSPI mode, have you tried with QSPI-1 mode? See below e2e thread for details regarding QSPI mode booting:

    e2e.ti.com/.../2352675

    Regards,
    Pavel
  • Pavel,

    failed to boot QSPI in mode 1
    I tried it in mode 3 as brad's opinion.
    But the problem was not solved.

    I changed the SPI instead of MMC for u-boot environments.
    The problem was not solved.

    Regards,
    John
  • Yohan,

    1. mux_data.h

    I see you put QSPI pinmux in early_padconf[] struct. I am not sure if that is correct. By default AM571x IDK QSPI pinmux is done in core_padconf_array_essential_am571x_idk[].
    Can you move the QSPI pinmux from early_padconf[] to core_padconf_array_essential_am571x_idk[] and try again, any improvement?

    From what I understand you are booting from SD card, then flash the MLO/u-boot.img to QSPI at the u-boot stage of the SD card boot, is that correct? And you are flashing the same MLO/u-boot.img that are used for SD card boot, is that correct?
    At the SD card boot u-boot prompt, please check with the md command the QSPI pinmux registers values and verify values are correct.

    CTRL_CORE_PAD_GPMC_A13
    CTRL_CORE_PAD_GPMC_A14
    CTRL_CORE_PAD_GPMC_A15
    CTRL_CORE_PAD_GPMC_A16
    CTRL_CORE_PAD_GPMC_A17
    CTRL_CORE_PAD_GPMC_A18
    CTRL_CORE_PAD_GPMC_CS2

    2. am57xx-idk-common.dtsi

    Please update the below line:

    - compatible = "s25fl256s","spi-flash";
    + compatible = "s25fl256s1", "jedec,spi-nor";

    I would suggest you also to use the default AM571x IDK layout, as I see you have some differences that might cause the issue. Please use:

    partition@0 {
    label = "QSPI.SPL";
    reg = <0x00000000 0x000040000>;
    };
    partition@1 {
    label = "QSPI.u-boot";
    reg = <0x00040000 0x00100000>;
    };
    partition@2 {
    label = "QSPI.kernel-dtb";
    reg = <0x00140000 0x00080000>;
    };
    partition@3 {
    label = "QSPI.u-boot-env";
    reg = <0x001c0000 0x00010000>;
    };
    partition@4 {
    label = "QSPI.u-boot-env.backup1";
    reg = <0x001d0000 0x0010000>;
    };
    partition@5 {
    label = "QSPI.kernel";
    reg = <0x001e0000 0x0800000>;
    };
    partition@6 {
    label = "QSPI.file-system";
    reg = <0x009e0000 0x01620000>;
    };

    Regards,
    Pavel
  • Pavel,

    1. mux_data.h
    I tried move QSPI Pinmux in core_padconf_array_essential_am 571 x _ idk [], but the problem was not solved.

    2. am57xx-idk-common.dtsi
    I tried the following changes, but the problem was not resolved.
    - compatible = "s25fl256s","spi-flash";
    + compatible = "s25fl256s1", "jedec,spi-nor";

    Opened this problem, one month has passed,
    I do not know the exact solution.

    This problem also occurs in IDK in the same way,
    The problem is the same even if SDK 5.2 is built and operated as it is.

    I want to find the problem in the SDK's base code.
  • Here's what I've found so far... Using the AM570x/DRA71x EVM, I am able to boot from QSPI using the dra7xx_evm_defconfig u-boot configuration. When I boot the IDK using the default configuration, I see the same error as mentioned here. So either something in the config or the device tree is different, though at least we now have one configuration that is known to be working. We'll need to do further comparisons and testing to determine precisely what we're missing.
  • I found a patch specifically related to enabling QSPI boot configuration in the dra7xx_evm_defconfig:

    lists.denx.de/.../287920.html

    I'm wrapping up for today, but wanted to share that finding in case anyone else on this thread has a chance to try those configuration options within the context of the AM57xx defconfig.
  • I tried the following changes, but the problem was not resolved.


    #
    # Generic Driver Options
    #
    CONFIG_DM=y
    CONFIG_SPL_DM=y
    CONFIG_DM_WARN=y
    # CONFIG_DM_DEBUG is not set
    CONFIG_DM_DEVICE_REMOVE=y
    CONFIG_DM_STDIO=y
    CONFIG_DM_SEQ_ALIAS=y
    CONFIG_SPL_DM_SEQ_ALIAS=y
    CONFIG_REGMAP=y
    CONFIG_SPL_REGMAP=y
    CONFIG_SYSCON=y
    CONFIG_SPL_SYSCON=y
    # CONFIG_DEVRES is not set
    CONFIG_SIMPLE_BUS=y
    CONFIG_SPL_SIMPLE_BUS=y
    CONFIG_OF_TRANSLATE=y
    # CONFIG_SPL_OF_TRANSLATE is not set

  • I just tried tried this:

    diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig
    index ea94f7c6d7..954a58e9c9 100644
    --- a/configs/am57xx_evm_defconfig
    +++ b/configs/am57xx_evm_defconfig
    @@ -42,6 +42,11 @@ CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc
    CONFIG_ENV_IS_IN_MMC=y
    CONFIG_DM=y
    CONFIG_SPL_DM=y
    +CONFIG_SPL_DM_SEQ_ALIAS=y
    +CONFIG_REGMAP=y
    +CONFIG_SPL_REGMAP=y
    +CONFIG_SYSCON=y
    +CONFIG_SPL_SYSCON=y
    CONFIG_SCSI_AHCI=y
    # CONFIG_BLK is not set
    CONFIG_DFU_MMC=y
    diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
    index cf5cacd2f6..17387edd33 100644
    --- a/include/configs/am57xx_evm.h
    +++ b/include/configs/am57xx_evm.h
    @@ -15,6 +15,7 @@
    #include <environment/ti/dfu.h>
    #include <linux/sizes.h>

    +#define DEBUG 1
    #define CONFIG_IODELAY_RECALIBRATION

    #define CONFIG_NR_DRAM_BANKS 2

    My AM572x IDK no longer has the issue you showed.  It doesn't boot all the way up, but it runs through all of MLO.  I get pages and pages of output, though here is the end of what I see:

    Jumping to U-Boot
    loaded - jumping to U-Boot...
    image entry point: 0x80800000

    So it seems like I'm pretty close at this point.  I think those configuration options are a step in the correct direction.

  • The contents of config file of PDK 03.01 in which QSPI startup is working normally are as follows.

    PDK: ti-processor-sdk-linux-rt-am 57 x x - evm - 03.01.00.06

    U-Boot: u-boot-2016.05


    #
    # Generic Driver Options
    #
    CONFIG_DM=y
    CONFIG_DM_WARN=y
    CONFIG_DM_DEVICE_REMOVE=y
    CONFIG_DM_STDIO=y
    CONFIG_DM_SEQ_ALIAS=y
    # CONFIG_SPL_DM_SEQ_ALIAS is not set
    # CONFIG_REGMAP is not set
    # CONFIG_SPL_REGMAP is not set
    # CONFIG_DEVRES is not set
    CONFIG_SIMPLE_BUS=y
    CONFIG_OF_TRANSLATE=y

    Perhaps the Generic Driver Options SPL setting may not be relevant.

  • I just tested using Linux SDK 5.01.  Here was the exact patch I applied to u-boot:

    diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig
    index ea94f7c6d7..4483c7de87 100644
    --- a/configs/am57xx_evm_defconfig
    +++ b/configs/am57xx_evm_defconfig
    @@ -42,6 +42,12 @@ CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc
    CONFIG_ENV_IS_IN_MMC=y
    CONFIG_DM=y
    CONFIG_SPL_DM=y
    +CONFIG_SPL_DM_SEQ_ALIAS=y
    +CONFIG_REGMAP=y
    +CONFIG_SPL_REGMAP=y
    +CONFIG_SYSCON=y
    +CONFIG_SPL_SYSCON=y
    +CONFIG_SPL_OF_TRANSLATE=y
    CONFIG_SCSI_AHCI=y
    # CONFIG_BLK is not set
    CONFIG_DFU_MMC=y

    After rebuilding MLO and u-boot.img, I booted from an SD card using the default binaries.  My MLO and u-boot.img were in a directory called /mnt/scratch/qspi.  I flashed them to the QSPI like this:

    root@am57xx-evm:~# flash_erase /dev/mtd0 0 0
    Erasing 64 Kibyte @ 6400030000 -- -1 % complete
    root@am57xx-evm:~# flash_erase /dev/mtd1 0 0
    Erasing 64 Kibyte @ 64000f0000 -- -1 % complete
    root@am57xx-evm:~# dd if=/mnt/scratch/qspi/MLO of=/dev/mtd0
    232+1 records in
    232+1 records out
    root@am57xx-evm:~# dd if=/mnt/scratch/qspi/u-boot.img of=/dev/mtd1
    1950+1 records in
    1950+1 records out

    I then powered down the board, removed the SD card, and powered back up.  I can get to u-boot prompt:

    U-Boot SPL 2018.01-00446-g12bf022392 (Jan 30 2019 - 20:45:10)
    DRA752-GP ES2.0
    Trying to boot from SPI
    no pinctrl state for default mode
    no pinctrl state for default mode
    *** Warning - bad CRC, using default environment

    U-Boot 2018.01-00446-g12bf022392 (Jan 30 2019 - 20:45:10 -0600)

    CPU : DRA752-GP ES2.0
    Model: TI AM5728 IDK
    Board: AM572x IDK REV 1.3B
    DRAM: 2 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - bad CRC, using default environment

    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 ***
    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:
    Warning: ethernet@48484000 using MAC address from ROM
    eth0: ethernet@48484000
    Hit any key to stop autoboot: 0
    =>

  • Thank you for your reply.

    I confirmed that QSPI boot works normally.
    I hope this solution is included in the next PDK version.

    Thank you Brad.