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.

Should i modify source code when using different QSPI flash

Other Parts Discussed in Thread: J6EVM5777, DRA742

Hi, I am using Jacinto 6, GLSDK 7.04.03.

If we replace eMMC to "N25Q064A13E12H0F" on DRA742-EVM 577G-02-21-00 board, should i modify any code?

As i see in dra7-evm.dts file, there are description about QSPI like below

&qspi {           

status = "okay";

 spi-max-frequency = <64000000>;
 m25p80@0 {
  compatible = "s25fl256s1";
  spi-max-frequency = <64000000>;

the value of compatible is the original QSPI flash, so i think i should modify here, am i right?

besides, is there any place should i modify too?

  • Hi Shawn,

    Do you work with DRA75x TI EVM or custom board? How exactly you are planning to replace eMMC with N25Q064A13E12H0F?

    On DRA75x TI EVM (J6EVM5777) have four different Flash memories (QSPI, eMMC, NAND and NOR). eMMC flash is connected to DRA75x MMC2 module, QSPI flash is connected to QSPI module, NOR and NAND flashes are connected to GPMC module.

    N25Q064A13E12H0F is serial NOR flash, which should be connected to QSPI module, you can not connect it to MMC module.

    Regards,
    Pavel
  • Hi Pavel,

    I work on custom board with DRA74X. Now i try to replace QSPI flash(N25Q064A13E12H0F), and it will connect to QSPI module.
    So, should i modify code? or QSPI module will automatically recognize it?
  • Shawn,

    On DRA75x TI EVM, QSPI NOR flashed used is S25FL256SAGMFV001, attached to QSPI1 module. Do you want to replace S25FL256SAGMFV001 with N25Q064A13E12H0F on your custom board? Do you attach N25Q064A13E12H0F to QSPI1 module?

    And how eMMC is involved here? What exactly you need to know regarding eMMC?

    Regards,
    Pavel
  • Shawn,

    Let me know also if you are planning to boot from this QSPI NOR flash. The default u-boot layout might not suit your 64Mbit/8MByte flash, see the below wiki pages for more info:

    processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide
    processors.wiki.ti.com/.../DRA7xx_GLSDK_Software_Developers_Guide

    You might use the "QSPI Development Boot Mode" where only MLO and u-boot.img are stored in QSPI flash.

    Regards,
    Pavel
  • Hi Pavel,

    yes, i want to replace S25FL256SAGMFV001 with N25Q064A13E12H0F on our custom board, and still connect to QSPI1 module.
    I just want to know, should i modify code for this change.
    Besides, on our board, eMMC also gonna change, but i already ask at the other post.

    So, if i need too boot from QSPI with this flash, i only can use development boot mode, and only boot to u-boot without kernel, right?

  • Shawn,

    Let we first focus on u-boot.

    I assume you will use the same QSPI1 pins as in TI EVM, right?

    Then you should update the below file only:

    u-boot/arch/arm/dts/dra7-evm.dts

    &qspi {

    status = "okay";

    pinctrl-names = "default";

    pinctrl-0 = <&qspi1_pins>;

    spi-max-frequency = <64000000>;

    m25p80@0 {

    compatible = "s25fl256s1","spi-flash";

    spi-max-frequency = <76800000>;

    reg = <0>;

    spi-tx-bus-width = <1>;

    spi-rx-bus-width = <4>;

    #address-cells = <1>;

    #size-cells = <1>;

    /* MTD partition table.

    * The ROM checks the first four physical blocks

    * for a valid file to boot and the flash here is

    * 64KiB block size.

    */

    partition@0 {

    label = "QSPI.SPL";

    reg = <0x00000000 0x000010000>;

    };

    partition@1 {

    label = "QSPI.SPL.backup1";

    reg = <0x00010000 0x00010000>;

    };

    partition@2 {

    label = "QSPI.SPL.backup2";

    reg = <0x00020000 0x00010000>;

    };

    partition@3 {

    label = "QSPI.SPL.backup3";

    reg = <0x00030000 0x00010000>;

    };

    partition@4 {

    label = "QSPI.u-boot";

    reg = <0x00040000 0x00100000>;

    };

    partition@5 {

    label = "QSPI.u-boot-spl-os";

    reg = <0x00140000 0x00080000>;

    };

    partition@6 {

    label = "QSPI.u-boot-env";

    reg = <0x001c0000 0x00010000>;

    };

    partition@7 {

    label = "QSPI.u-boot-env.backup1";

    reg = <0x001d0000 0x0010000>;

    };

    partition@8 {

    label = "QSPI.kernel";

    reg = <0x001e0000 0x0800000>;

    };

    partition@9 {

    label = "QSPI.file-system";

    reg = <0x009e0000 0x01620000>;

    };

    };

    };

     

    You should replace the "s25fl256s1" string with n25q64a, see the below file for more info:

    u-boot/drivers/mtd/spi/sf_params.c

    shawn lin said:
    So, if i need too boot from QSPI with this flash, i only can use development boot mode, and only boot to u-boot without kernel, right?

    This depends on the size of the files (MLO, u-boot.img, DTB blob, u-boot env, uImage) and the QSPI layout. You can adjust the QSPI layout according to your specific needs in dra7-evm.dts file

    Regards,
    Pavel

     

  • Hi Pavel,

    Thanks for your recommendation, i already can recognize qspi flash(N25Q128) in our custom board.
    Right now, i try to flash MLO & u-boot.img on it, but fail. I follow the steps from processors.wiki.ti.com/.../DRA7xx_GLSDK_Software_Developers_Guide
    , after i flash MLO.qspi, i read from qspi flash and compare with MLO.qspi file, it seems the data didn't write success.
    Do you have any idea why this happend?

    P.S. I can flash MLO & u-boot.img to qspi flash(S25FL256SAGMFV001) successfully, but i fail on "N25Q128".

    Regards,
    Shawn
  • Shawn,

    Have you made changes only in u-boot/arch/arm/dts/dra7-evm.dts file?

    Are you trying to flash MLO and u-boot.img at u-boot or user space level? Can you provide me full console log with successful flash and failing flash?

    Regards,
    Pavel
  • Hi Pavel,

     

    I modify below files,

    1. J6_SDK/board-support/u-boot/boards.cfg   => use "QSPI_BOOT" to replace "ENV_IS_IN_MMC" in our config

    2. J6_SDK/board-support/u-boot/include/configs/xxx.h =>add " #define CONFIG_SPI_FLASH_STMICRO" to replace " #define CONFIG_SPI_FLASH_SPANSION". xxx is our project name

     

    I flash MLO & u-boot.img at u-boot level

     

    The successful flash log=>

    2425.qspi_flash(S25FL256SAGMFI003).log
    U-Boot# 
    U-Boot# mmc dev 0
    switch to partitions #0, OK
    mmc0 is current device
    
    U-Boot# sf probe 0
    SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB, mapped at 5c000000
    
    U-Boot# fatload mmc 0 0x82000000 MLO.qspi
    reading MLO.qspi
    84356 bytes read in 10 ms (8 MiB/s)
    
    U-Boot# sf erase 0 +${filesize}
    SF: 131072 bytes @ 0x0 Erased: OK
    
    U-Boot# sf write 0x82000000 0x0 ${filesize}
    SF: 84356 bytes @ 0x0 Written: OK
    
    U-Boot# sf read 0x82000000 0x0 0x100
    SF: 256 bytes @ 0x0 Read: OK
    
    U-Boot# md 0x82000000 0x100
    82000000: 00000040 0000000c 00000000 00000000    @...............
    82000010: 00000000 45534843 4e495454 00005347    ....CHSETTINGS..
    82000020: ffffffff ffffffff ffffffff ffffffff    ................
    82000030: ffffffff ffffffff ffffffff ffffffff    ................
    82000040: c0c0c0c1 00000100 00000000 00000000    ................
    82000050: 00000000 00000000 00000000 00000000    ................
    82000060: 00000000 00000000 00000000 00000000    ................
    82000070: 00000000 00000000 00000000 00000000    ................
    82000080: 00000000 00000000 00000000 00000000    ................
    82000090: 00000000 00000000 00000000 00000000    ................
    820000a0: 00000000 00000000 00000000 00000000    ................
    820000b0: 00000000 00000000 00000000 00000000    ................
    820000c0: 00000000 00000000 00000000 00000000    ................
    820000d0: 00000000 00000000 00000000 00000000    ................
    820000e0: 00000000 00000000 00000000 00000000    ................
    820000f0: 00000000 00000000 00000000 00000000    ................
    82000100: 00000000 00000000 00000000 00000000    ................
    82000110: 00000000 00000000 00000000 00000000    ................
    82000120: 00000000 00000000 00000000 00000000    ................
    82000130: 00000000 00000000 00000000 00000000    ................
    82000140: 00000000 00000000 00000000 00000000    ................
    82000150: 00000000 00000000 00000000 00000000    ................
    82000160: 00000000 00000000 00000000 00000000    ................
    82000170: 00000000 00000000 00000000 00000000    ................
    82000180: 00000000 00000000 00000000 00000000    ................
    82000190: 00000000 00000000 00000000 00000000    ................
    820001a0: 00000000 00000000 00000000 00000000    ................
    820001b0: 00000000 00000000 00000000 00000000    ................
    820001c0: 00000000 00000000 00000000 00000000    ................
    820001d0: 00000000 00000000 00000000 00000000    ................
    820001e0: 00000000 00000000 00000000 00000000    ................
    820001f0: 00000000 00000000 00000000 00000000    ................
    82000200: 0001477c 40300000 eb000092 e10f0000    |G....0@........
    82000210: e200101f e331001a 13c0001f 13800013    ......1.........
    82000220: e38000c0 e129f000 e24f0028 e59f10b8    ......).(.O.....
    82000230: e1500001 0a00000d e28f202c e5922000    ..P....., ... ..
    82000240: e59f50a8 e0820000 e0821001 e4103004    .P...........0..
    82000250: e4013004 e2522004 aafffffb ee070fd5    .0... R.........
    82000260: f57ff04f f57ff06f e12fff15 00014778    O...o...../.xG..
    82000270: ee110f10 e3c00a02 ee010f10 e59f0070    ............p...
    82000280: ee0c0f10 eb000008 eb000016 eb000019    ................
    82000290: ee070f15 ee070f9a ee070f95 e59f0050    ............P...
    820002a0: ee0c0f10 e12fff1e e12fff1e e3a00000    ....../.../.....
    820002b0: ee080f17 ee070f15 ee070fd5 ee070f9a    ................
    820002c0: ee070f95 ee110f10 e3c00a02 e3c00007    ................
    820002d0: e3800002 e3800b02 e3800a01 ee010f10    ................
    820002e0: ea0008a9 e1a0f00e ea000052 40300000    ........R.....0@
    820002f0: 40300068 00000000 e3a0d482 e3cdd007    h.0@............
    82000300: e24ddf76 e3cdd007 e1a0900d e3a00000    v.M.............
    82000310: eb000865 e92d4008 e1a05000 e59f3014    e....@-..P...0..
    82000320: e593400c eb0000d8 e3a00000 e3e01000    .@..............
    82000330: e1a02005 e12fff34 80a00004 e24dd008    . ..4./.......M.
    82000340: e3a03000 ea000002 e1a00000 e59d3004    .0...........0..
    82000350: e2833001 e58d3004 e59d3004 e3530063    .0...0...0..c.S.
    82000360: dafffff8 e28dd008 e12fff1e e59931c0    ........../..1..
    82000370: e1811a00 e3811b03 e7831100 e12fff1e    ............../.
    82000380: e92d4010 ebffffec ee114f10 ebffffea    .@-......O......
    82000390: e3c43a01 ee013f10 e8bd8010 e92d4010    .:...?.......@-.
    820003a0: ee114f10 e2144001 1a000013 eb00009b    .O...@..........
    820003b0: e1a00004 e3a01012 e2844001 ebffffea    .........@......
    820003c0: e3540a01 1afffff9 e3a00000 eb0007a3    ..T.............
    820003d0: e3a00001 eb0007a1 e59931c0 ee023f10    .........1...?..
    820003e0: e3e03000 ee033f10 eb0007b2 ee114f10    .0...?.......O..
    820003f0: ebffffd1 e3844001 ee014f10 ebffffce    .....@...O......
    U-Boot# 

    The fail flash log=>

    3581.qspi_flash(N25Q128).log
    U-Boot# 
    U-Boot# M mmc dev 0
    switch to partitions #0, OK
    mmc0 is current device
    
    U-Boot# sf probe 0
    SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB, mapped at 5c000000
    
    U-Boot# fatload mmc 0 0x82000000 MLO.Q qspi
    reading MLO.qspi
    83332 bytes read in 9 ms (8.8 MiB/s)
    
    U-Boot# sf erase 0 +${filesize}
    SF: 131072 bytes @ 0x0 Erased: OK
    
    U-Boot# sf write 0x82000000 0x0 ${filesize}
    SF: 83332 bytes @ 0x0 Written: OK
    
    U-Boot# sf read 0x82000000 0x0 0x100
    SF: 256 bytes @ 0x0 Read: OK
    
    U-Boot# md 0x82000000 0x100
    82000000: cccccccc ddcccccc dddddddd dddddddd    ................
    82000010: dddddddd dddddddd dddddddd dddddddd    ................
    82000020: dddddddd dddddddd dddddddd dddddddd    ................
    82000030: dddddddd dddddddd dddddddd dddddddd    ................
    82000040: dddddddd dddddddd dddddddd dddddddd    ................
    82000050: dddddddd dddddddd dddddddd dddddddd    ................
    82000060: dddddddd dddddddd dddddddd dddddddd    ................
    82000070: dddddddd dddddddd dddddddd dddddddd    ................
    82000080: cccccccc ddcccccc dddddddd dddddddd    ................
    82000090: dddddddd dddddddd dddddddd dddddddd    ................
    820000a0: dddddddd dddddddd dddddddd dddddddd    ................
    820000b0: dddddddd dddddddd dddddddd dddddddd    ................
    820000c0: dddddddd dddddddd dddddddd dddddddd    ................
    820000d0: dddddddd dddddddd dddddddd dddddddd    ................
    820000e0: dddddddd dddddddd dddddddd dddddddd    ................
    820000f0: dddddddd dddddddd dddddddd dddddddd    ................
    82000100: 00000000 00000000 00000000 00000000    ................
    82000110: 00000000 00000000 00000000 00000000    ................
    82000120: 00000000 00000000 00000000 00000000    ................
    82000130: 00000000 00000000 00000000 00000000    ................
    82000140: 00000000 00000000 00000000 00000000    ................
    82000150: 00000000 00000000 00000000 00000000    ................
    82000160: 00000000 00000000 00000000 00000000    ................
    82000170: 00000000 00000000 00000000 00000000    ................
    82000180: 00000000 00000000 00000000 00000000    ................
    82000190: 00000000 00000000 00000000 00000000    ................
    820001a0: 00000000 00000000 00000000 00000000    ................
    820001b0: 00000000 00000000 00000000 00000000    ................
    820001c0: 00000000 00000000 00000000 00000000    ................
    820001d0: 00000000 00000000 00000000 00000000    ................
    820001e0: 00000000 00000000 00000000 00000000    ................
    820001f0: 00000000 00000000 00000000 00000000    ................
    82000200: 0001437c 40300000 eb000092 e10f0000    |C....0@........
    82000210: e200101f e331001a 13c0001f 13800013    ......1.........
    82000220: e38000c0 e129f000 e24f0028 e59f10b8    ......).(.O.....
    82000230: e1500001 0a00000d e28f202c e5922000    ..P....., ... ..
    82000240: e59f50a8 e0820000 e0821001 e4103004    .P...........0..
    82000250: e4013004 e2522004 aafffffb ee070fd5    .0... R.........
    82000260: f57ff04f f57ff06f e12fff15 00014378    O...o...../.xC..
    82000270: ee110f10 e3c00a02 ee010f10 e59f0070    ............p...
    82000280: ee0c0f10 eb000008 eb000016 eb000019    ................
    82000290: ee070f15 ee070f9a ee070f95 e59f0050    ............P...
    820002a0: ee0c0f10 e12fff1e e12fff1e e3a00000    ....../.../.....
    820002b0: ee080f17 ee070f15 ee070fd5 ee070f9a    ................
    820002c0: ee070f95 ee110f10 e3c00a02 e3c00007    ................
    820002d0: e3800002 e3800b02 e3800a01 ee010f10    ................
    820002e0: ea0008a9 e1a0f00e ea000052 40300000    ........R.....0@
    820002f0: 40300068 00000000 e3a0d482 e3cdd007    h.0@............
    82000300: e24ddf76 e3cdd007 e1a0900d e3a00000    v.M.............
    82000310: eb000865 e92d4008 e1a05000 e59f3014    e....@-..P...0..
    82000320: e593400c eb0000d8 e3a00000 e3e01000    .@..............
    82000330: e1a02005 e12fff34 80a00004 e24dd008    . ..4./.......M.
    82000340: e3a03000 ea000002 e1a00000 e59d3004    .0...........0..
    82000350: e2833001 e58d3004 e59d3004 e3530063    .0...0...0..c.S.
    82000360: dafffff8 e28dd008 e12fff1e e59931c0    ........../..1..
    82000370: e1811a00 e3811b03 e7831100 e12fff1e    ............../.
    82000380: e92d4010 ebffffec ee114f10 ebffffea    .@-......O......
    82000390: e3c43a01 ee013f10 e8bd8010 e92d4010    .:...?.......@-.
    820003a0: ee114f10 e2144001 1a000013 eb00009b    .O...@..........
    820003b0: e1a00004 e3a01012 e2844001 ebffffea    .........@......
    820003c0: e3540a01 1afffff9 e3a00000 eb0007a3    ..T.............
    820003d0: e3a00001 eb0007a1 e59931c0 ee023f10    .........1...?..
    820003e0: e3e03000 ee033f10 eb0007b2 ee114f10    .0...?.......O..
    820003f0: ebffffd1 e3844001 ee014f10 ebffffce    .....@...O......
    U-Boot# 

    The MLO.qspi file is=>MLO.txt

    I flash MLO.qspi into flash and read 256bytes back to compare with MLO.qspi file. The result in successful one is the same, but is different in N25Q128.

     

    Regards,

    Shawn

  • Shawn,

    shawn lin said:

    I modify below files,

    1. J6_SDK/board-support/u-boot/boards.cfg   => use "QSPI_BOOT" to replace "ENV_IS_IN_MMC" in our config

    2. J6_SDK/board-support/u-boot/include/configs/xxx.h =>add " #define CONFIG_SPI_FLASH_STMICRO" to replace " #define CONFIG_SPI_FLASH_SPANSION". xxx is our project name

    Do you modify u-boot/arch/arm/dts/dra7-evm.dts file?

    shawn lin said:
    The fail flash log=>(Please visit the site to view this file)

    You are using the below wiki:

    Can you try with the exact commands:

    uboot# mmc dev 0 (not U-Boot# M mmc dev 0)

    uboot# fatload mmc 0 0x82000000 MLO.qspi (not U-Boot# fatload mmc 0 0x82000000 MLO.Q qspi)

    Can you also try with the below set of commands, will be there any difference?

    http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User's_Guide#Writing_to_QSPI_from_U-Boot

    shawn lin said:
    I flash MLO.qspi into flash and read 256bytes back to compare with MLO.qspi file. The result in successful one is the same, but is different in N25Q128.

    So you have different DDR3 dump every time for N25Q128. Have you verify your DDR3 memory is correct? That might be DDR3 memory issue, not QSPI.

    Regards,
    Pavel

  • Hi Pavel,

    1.I can't find dra7-evm.dts at u-boot/arch/arm/dts/ directory, maybe you mean board-support/linux/arch/arm/boot/dts/ directory, because i can find dra7-evm.dts here.

    In our project, we add another dts, so i modify our_project.dts for this qspi flash just like below,

    &qspi {

    status = "okay";

    spi-max-frequency = <32000000>;

    m25p80@0 {

     compatible = "N25Q128";

     spi-max-frequency = <32000000>;

     reg = <0>;

     spi-tx-bus-width = <1>;

     spi-rx-bus-width = <4>;

     #address-cells = <1>;

     #size-cells = <1>;

     /* MTD partition table.

      * The ROM checks the first four physical blocks

      * for a valid file to boot and the flash here is

      * 64KiB block size.

      */

     partition@0 {

      label = "QSPI.SPL";

      reg = <0x00000000 0x000010000>;

     };

     partition@1 {

      label = "QSPI.SPL.backup1";

      reg = <0x00010000 0x00010000>;

     };

     partition@2 {

      label = "QSPI.SPL.backup2";

      reg = <0x00020000 0x00010000>;

     };

     partition@3 {

      label = "QSPI.SPL.backup3";

      reg = <0x00030000 0x00010000>;

     };

     partition@4 {

      label = "QSPI.u-boot";

      reg = <0x00040000 0x00100000>;

     };

     partition@5 {

      label = "QSPI.u-boot-spl-os";

      reg = <0x00140000 0x00080000>;

     };

     partition@6 {

      label = "QSPI.u-boot-env";

      reg = <0x001c0000 0x00010000>;

     };

     partition@7 {

      label = "QSPI.u-boot-env.backup1";

      reg = <0x001d0000 0x0010000>;

     };

     partition@8 {

      label = "QSPI.kernel";

      reg = <0x001e0000 0x0800000>;

     };

     partition@9 {

      label = "QSPI.file-system";

      reg = <0x009e0000 0x01620000>;

     };

    };

    };

    2. About try with the exact commands:...i'm sorry about the log to let you misunderstanding. I use teraterm to log message, but i don't know why the command became like that. Acturally, my commands are exactly like you post=>(uboot# mmc dev 0)(uboot# fatload mmc 0 0x82000000 MLO.qspi)

    3. I try the command post at http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User's_Guide#Writing_to_QSPI_from_U-Boot, got the same result.

    4. I think DDR3 setting should be ok, because when i use "fatload" command to load MLO.qspi at memory address 0x82000000 then use "md" to show the data, it's the same, but after i write to QSPI flash and read it back to 0x82000000 address, it's different.

    P.S. After i check the SPEC. of N25Q128(n25q_128mb_3v_65nm.pdf), it has write protect. Could it be the reason that i can't write to flash successfully?

  • shawn lin said:
    1.I can't find dra7-evm.dts at u-boot/arch/arm/dts/ directory, maybe you mean board-support/linux/arch/arm/boot/dts/ directory, because i can find dra7-evm.dts here.

    I referred to PSDK 3.x, where DTS files are used for DRA7x. In GLSDK 7.04, we do not have DTS support (for DRA7x) in u-boot, we use the below files:

    u-boot/configs/dra7xx_evm.h

    board/ti/dra7xx/evm.c

    u-boot/board/ti/dra7xx/mux_data.h

    shawn lin said:
    In our project, we add another dts, so i modify our_project.dts for this qspi flash just like below

    Where you have added your custom DTS file, in u-boot or kernel?

    shawn lin said:
    4. I think DDR3 setting should be ok, because when i use "fatload" command to load MLO.qspi at memory address 0x82000000 then use "md" to show the data, it's the same, but after i write to QSPI flash and read it back to 0x82000000 address, it's different.

    We have test regarding QSPI module, please have a try with it:

    u-boot/doc/SPI/README.ti_qspi_dra_test

    See also below file:

    u-boot/doc/SPI/README.ti_qspi_flash

    What silicon revision is your DRA7x device? See silicon errata i855 QSPI Mode0/1/2 Not Functional and Mode3 Limited to 48MHz


    shawn lin said:
    P.S. After i check the SPEC. of N25Q128((Please visit the site to view this file)), it has write protect. Could it be the reason that i can't write to flash successfully?

    Yes, it can. So the only difference between S25FL256 and N25Q128 is size (32MByte and 16MByte) and write protect feature?

    Regards,
    Pavel

  • Please check also QSPI pinmux settings, compare between TI EVM and your custom board. Check at u-boot level.
  • Hi Pavel,

    1. I add our custom dts file at board-support/linux/arch/arm/boot/dts/ , and we also modify evm.c & mux_data.h for our custom board
    2. I saw the "u-boot/doc/SPI/README.ti_qspi_dra_test" & "u-boot/doc/SPI/README.ti_qspi_flash", the commands inside i already try, but fail.
    3. We are using DRA742. Currently, i set CONFIG_SF_DEFAULT_SPEED as 32Mhz.
    4. S25FL256 also has write protect, but i can write it successfully. Currently only size is different as i saw.
    5. I use the same setting as EVM, because we also use QSPI-1 to connect to N25Q128 flash

    I also use method descripted from here =>
    git.digitalstrom.org/.../562f8df18da62ae02c4ace1e530451fe82c3312d

    But still fail. The system will return "ok" after i run "sf write" command, but when i read bak from flash, the data are different with the file i wrote.
  • shawn lin said:
    I add our custom dts file at board-support/linux/arch/arm/boot/dts/ , and we also modify evm.c & mux_data.h for our custom board

    evm.c and mux_data.h from u-boot or kernel?

    shawn lin said:
    3. We are using DRA742. Currently, i set CONFIG_SF_DEFAULT_SPEED as 32Mhz.

    This macro seems to be SPI related (not QSPI). Why you change that macro from 64MHz to 32MHz?

    Can you enable debug prints in QSPI u-boot driver (u-boot/drivers/spi/ti_qspi.c) and compare the log during boot up and during flashing between TI EVM and you custom board? Is there any difference (expect S25FL256/N25Q128 and 32MByte/16MByte prints)?

    Regards,
    Pavel

  • Hi Pavel,

    Thanks for your reply.

    I try to read qspi flash data inside the program(sf_probe.c), the data is what i wrote to the flash.

    I don't know why it look different while i use "sf read" and "md" command? But right now, the image seems already write success.

    After i wrote MLO & u-boot.img into qspi flash, then i use qspi boot mode, try to enter u-boot prompt, but it fail.

    The system meeesage =>

    qspi_boot_log.txt
    U-Boot SPL 2014.07 (May 18 2017 - 17:58:39)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1cs*** Warning - bad CRC, using default environment

    I use the same image on another custom board(DDR size is the same as DRA-evm), it can boot up successfully.

    The board with different DDR size(256MB) can't boot up successfully. Is it possible the fail is because different DDR size? If it is, what should i do to fix it?

  • shawn lin said:

    I try to read qspi flash data inside the program(sf_probe.c), the data is what i wrote to the flash.

    I don't know why it look different while i use "sf read" and "md" command? But right now, the image seems already write success.

    Do you mean you read QSPI flash from within u-boot/drivers/mtd/spi/sf_probe.c file? Do you use spi_flash_std_read() function?

    I found one internal thread (for N25Q256A), where we have:

    Writing & erase looks working, but reading is not working rightly. sf read can read only size 0x80. Area over 0x80 is filled with 0xcc.

    For quad mode to work for this specific micron chip, need to enable quad mode in flash register. For now, can you check disable CONFIG_TI_EDMA in u-boot, and check read is working.

    After removing CONFIG_TI_EDMA, read is working.

     

    Note that we have some limitations described in QSPI wiki:

    http://processors.wiki.ti.com/index.php/Linux_Core_QSPI_User's_Guide

     

    Memory mapped read support

    TI QSPI controller provides memory map port to read data from SPI flashes. Memory map port is enabled in QSPI_SPI_SWITCH_REG register. Control module register may also need to be accessed for DRA7xx. The QSPI_SPI_SETUP_REGx needs to be populated with flash specific information like read opcode, read mode(quad, dual, normal), address width and dummy bytes. Once, controller is in memory map mode, the whole flash memory is available as a memory region at SoC specific address. This region can be accessed using normal memcpy() (or mem-to-mem dma copy). The ti-qspi controller hardware will internally communicate with SPI flash over SPI bus and get the requested data.

    QSPI IP is designed in such a way that after 4096 word transfer, chip select automatically gets de asserted. As a result of which, the entire flash cannot be read in a single chip select using (Single/Dual/Quad) bit read mode feature. While the serial flash linux framework and flash specification expects the entire read to happen with a single read command in a single chip select. This limitation is not applicable when QSPI is used in memory mapped mode for reads. The QSPI driver by default uses memory mapped reads.

  • shawn lin said:

    After i wrote MLO & u-boot.img into qspi flash, then i use qspi boot mode, try to enter u-boot prompt, but it fail.

    The system meeesage =>(Please visit the site to view this file)

    I use the same image on another custom board(DDR size is the same as DRA-evm), it can boot up successfully.

    The board with different DDR size(256MB) can't boot up successfully. Is it possible the fail is because different DDR size? If it is, what should i do to fix it?

    Do you have the same DMM_LISA_MAP_i registers settings in 256MB custom board and in 4GB TI EVM board? If yes, please check these settings to match 256MB design.

    Regards,
    Pavel

  • Hi Pavel,

    1.Yes, i read QSPI flash from within u-boot/drivers/mtd/spi/sf_probe.c file. I use spi_flash_read_common() function which inside the sf_ops.c.

    2.I already disable "CONFIG_TI_EDMA" at board-support/u-boot/include/configs/, but fail. Still can't read correct data from flash through "sf read". Log =>

    qspi_N25Q128(no_CONFIG_TI_EDMA).txt
    U-Boot# mmc dev 0
    switch to partitions #0, OK
    mmc0 is current device
    
    U-Boot# sf probe 0
    SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB, mapped at 5c000000
    
    U-Boot# fatload mmc 0 0x82000000 MLO.qspi
    reading MLO.qspi
    80460 bytes read in 8 ms (9.6 MiB/s)
    
    U-Boot# sf erase 0 +${filesize}
    SF: 131072 bytes @ 0x0 Erased: OK
    
    U-Boot# sf write 0x82000000 0x0 ${filesize}
    SF: 80460 bytes @ 0x0 Written: OK
    
    U-Boot# sf read 0x82000000 0x0 0x100
    SF: 256 bytes @ 0x0 Read: OK
    
    U-Boot# md 0x82000000 0x100
    82000000: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000010: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000020: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000030: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000040: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000050: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000060: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000070: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000080: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000090: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    820000a0: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    820000b0: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    820000c0: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    820000d0: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    820000e0: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    820000f0: cdcccccc cdcccccc cdcccccc cdcccccc    ................
    82000100: 00000000 00000000 00000000 00000000    ................
    82000110: 00000000 00000000 00000000 00000000    ................
    82000120: 00000000 00000000 00000000 00000000    ................
    82000130: 00000000 00000000 00000000 00000000    ................
    82000140: 00000000 00000000 00000000 00000000    ................
    82000150: 00000000 00000000 00000000 00000000    ................
    82000160: 00000000 00000000 00000000 00000000    ................
    82000170: 00000000 00000000 00000000 00000000    ................
    82000180: 00000000 00000000 00000000 00000000    ................
    82000190: 00000000 00000000 00000000 00000000    ................
    820001a0: 00000000 00000000 00000000 00000000    ................
    820001b0: 00000000 00000000 00000000 00000000    ................
    820001c0: 00000000 00000000 00000000 00000000    ................
    820001d0: 00000000 00000000 00000000 00000000    ................
    820001e0: 00000000 00000000 00000000 00000000    ................
    820001f0: 00000000 00000000 00000000 00000000    ................
    82000200: 00013844 40300000 eb000092 e10f0000    D8....0@........
    82000210: e200101f e331001a 13c0001f 13800013    ......1.........
    82000220: e38000c0 e129f000 e24f0028 e59f10b8    ......).(.O.....
    82000230: e1500001 0a00000d e28f202c e5922000    ..P....., ... ..
    82000240: e59f50a8 e0820000 e0821001 e4103004    .P...........0..
    82000250: e4013004 e2522004 aafffffb ee070fd5    .0... R.........
    82000260: f57ff04f f57ff06f e12fff15 00013840    O...o...../.@8..
    82000270: ee110f10 e3c00a02 ee010f10 e59f0070    ............p...
    82000280: ee0c0f10 eb000008 eb000016 eb000019    ................
    82000290: ee070f15 ee070f9a ee070f95 e59f0050    ............P...
    820002a0: ee0c0f10 e12fff1e e12fff1e e3a00000    ....../.../.....
    820002b0: ee080f17 ee070f15 ee070fd5 ee070f9a    ................
    820002c0: ee070f95 ee110f10 e3c00a02 e3c00007    ................
    820002d0: e3800002 e3800b02 e3800a01 ee010f10    ................
    820002e0: ea00086a e1a0f00e ea000052 40300000    j.......R.....0@
    820002f0: 40300068 00000000 e3a0d482 e3cdd007    h.0@............
    82000300: e24ddf76 e3cdd007 e1a0900d e3a00000    v.M.............
    82000310: eb000835 e92d4008 e1a05000 e59f3014    5....@-..P...0..
    82000320: e593400c eb0000a8 e3a00000 e3e01000    .@..............
    82000330: e1a02005 e12fff34 80a00004 e24dd008    . ..4./.......M.
    82000340: e3a03000 ea000002 e1a00000 e59d3004    .0...........0..
    82000350: e2833001 e58d3004 e59d3004 e3530063    .0...0...0..c.S.
    82000360: dafffff8 e28dd008 e12fff1e e59931c0    ........../..1..
    82000370: e1811a00 e3811b03 e7831100 e12fff1e    ............../.
    82000380: e92d4010 ebffffec ee114f10 ebffffea    .@-......O......
    82000390: e3c43a01 ee013f10 e8bd8010 e92d4010    .:...?.......@-.
    820003a0: ee114f10 e2144001 1a000013 eb00007b    .O...@......{...
    820003b0: e1a00004 e3a01012 e2844001 ebffffea    .........@......
    820003c0: e3540a01 1afffff9 e3a00000 eb000773    ..T.........s...
    820003d0: e3a00001 eb000771 e59931c0 ee023f10    ....q....1...?..
    820003e0: e3e03000 ee033f10 eb000782 ee114f10    .0...?.......O..
    820003f0: ebffffd1 e3844001 ee014f10 ebffffce    .....@...O......
    U-Boot#
     

    3.For this 256MB custom board, we already modify DMM_LISA_MAP_i registers, and can build SD image which can boot into kernel successfully. But fail to boot from QSPI.

    Right now, there has something wrong with "sf read", so is it possible the fail is because system can't read MLO or u-boot.img from flash?

    But it makes me confuse, because there is nothing wrong at the other custom board(use same QSPI flash as DRA7xx EVM used, S25FL256), it can boot from QSPI flash successfully.

    Regards,

    Shawn

  • Hi Pavel,

    Update the latest situation.
    I try to disable memory map through cancel "CONFIG_TI_SPI_MMAP" at board-support/u-boot/include/configs.
    Now, i can read flash data through "sf read" command. Thanks a lot.

    But QSPI boot still fail.

    Regards,
    Shawn
  • Shawn,

    Do you have custom board with N25Q128 flash that is able to boot fine from QSPI or every custom board fail to boot from QSPI? Can you provide me the latest boot up log? Can you confirm that the same MLO/SPL is booting fine from SD card?

    Check also DRA74x Silicon Errata, there are some advisories regarding QSPI



    Do you use QSPI_1 or QSPI_4 mode? What is your sysboot[5:0] configuration?

    Make sure you are aligned with DRA74x TRM, section:

    32.2.4.5 Boot Peripheral Pin Multiplexing

    32.3.7.5 SPI/QSPI Flash Devices

  • Hi Pavel,

    Currently, no custom board with N25Q128 can boot up success through QSPI.

    The same MLO & u-boot.img can boot up success through SD card.

    The latest log=>

    8053.qspi_boot_log.txt
    U-Boot SPL 2014.07 (May 24 2017 - 10:55:54)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1cs
     

    I use QSPI_1 mode. And my sysboot[5:0] is 110110

    p.s. the flash at our custom board should be "MT25QL128ABA8E12-0AAT", but it have the same EDID, so the system recognize it as N25Q128 

  • shawn lin said:
    Currently, no custom board with N25Q128 can boot up success through QSPI.

    It might be also HW issue than. You can double check your HW design.

    shawn lin said:
    The same MLO & u-boot.img can boot up success through SD card.

    How do you build MLO/u-boot.img for SD card boot? How do you build MLO/u-boot.img for DRA7x TI EVM QSPI boot? Do you use dra7xx_evm_qspiboot_config or dra7xx_evm_defconfig or dra7xx_evm_config or else?

    shawn lin said:
    I use QSPI_1 mode. And my sysboot[5:0] is 110110

    Do you also use QSPI_1 mode with sysboot[5:0] = 110110 for DRA7x TI EVM QSPI boot?

    shawn lin said:
    The latest log=>(Please visit the site to view this file) 

    From this log it seems to me that MLO is loaded. Can you provide me the log with SD card boot and with DRA7x TI EVM QSPI boot?

    Regards,
    Pavel

  • Hi Pavel,

    If i try to make QSPI boot image(MLO, u-boot.img), i will modify our board-support/u-boot/boards.cfg, and change config parameter from "ENV_IS_IN_MMC" to "QSPI_BOOT".

    No, i didn't try sysboot[5:0] = 110110 for DRA7xx TI EVM QSPI boot. But after i try, it fail ,too. The log is provide below. But i try QSPI boot at our custom board with the same QSPI flash as EVM, it works.

    The way i build the MLO & u-boot.img for TI EVM is that i modify configs/dra7xx file setting, i change DEFAULT_UBOOT_CONFIG from "dra7xx_evm_usbboot_config" to "dra7xx_evm_qspiboot_config"

    Log for SD boot at custom board=> 

    custom_board_SD.log
    U-Boot SPL 2014.07 (May 23 2017 - 15:02:39)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1csspl_mmc_load_image
    reading u-boot.img
    reading u-boot.img
    ti_i2c_eeprom_init failed 1
    
    
    U-Boot 2014.07 (May 23 2017 - 15:02:39)
    
    CPU  : DRA752-GP ES2.0
    Board: DRA74x EVM REV <NULL>
    I2C:   ready
    DRAM:  256 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Card did not respond to voltage select!
    MMC init failed
    Using default environment
    
    serial# not set, setting...
    Target spinup took 0 ms.
    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...
      Device 0: (0:0) Vendor: ATA Prod.: suf rod vecise.. Rev: nain
                Type: Hard Disk
                Capacity: not available
    Found 1 device(s).
    SCSI:  Net:   <ethaddr> not set. Validating first E-fuse MAC
    cpsw
    Hit any key to stop autoboot:  0  0
    @ADAPTER@
    U-Boot# 
    U-Boot# 
    U-Boot# 
    U-Boot# 
    U-Boot# 
    U-Boot# 
    U-Boot# 
    U-Boot# 
    U-Boot# 
      

    Log for DRA7xx TI EVM QSPI boot=>

    TI_EVM_board_QSPI.log
    U-Boot SPL 2014.07 (May 25 2017 - 18:54:17)
    DRA752-GP ES1.1
    
     

  • shawn lin said:
    If i try to make QSPI boot image(MLO, u-boot.img), i will modify our board-support/u-boot/boards.cfg, and change config parameter from "ENV_IS_IN_MMC" to "QSPI_BOOT".

    Why you are doing this? From where you get instructions that you should modify board.cfg file? If you build your MLO/u-boot for QSPI (not for SD), the environment would be set up in QSPI flash (not in SD card) (dra7xx_evm_qspiboot_config)

    shawn lin said:
    No, i didn't try sysboot[5:0] = 110110 for DRA7xx TI EVM QSPI boot. But after i try, it fail ,too. The log is provide below. But i try QSPI boot at our custom board with the same QSPI flash as EVM, it works.

    So you can not boot DRA7x TI EVM from QSPI also. You can only boot your custom board with S25FL256 flash successful, is that correct? How do you build MLO/u-boot.img for custom board with S25FL256 flash for QSPI boot? Do you use dra7xx_evm_qspiboot_config or dra7xx_evm_defconfig or dra7xx_evm_config or else?

    Do you also use QSPI_1 mode with sysboot[5:0] = 110110 for custom S25FL256 board QSPI boot? Can you provide me the log with QSPI boot for the custom S25FL256 board?

    Regards,
    Pavel

  • Hi Pavel,

    I already can boot from QSPI at DRA7x TI EVM. I modify DEFAULT_UBOOT_CONFIG as "dra7xx_evm_qspiboot_config" to build MLO & u-boot.img. Besides, i modify flash parameter according QSPI memory layout descripted in DRA7xx_GLSDK_Software_Developers_Guide.

    The guide says i should use command "sf write 0x83000000 0x40000 0x60000" to flash u-boot.img. But according memory layout, the space of u-boot.img is 0x100000, so if i replace size 0x60000 with 0x100000, then i can boot from QSPI at EVM. Is there something wrong with this command?

    As you say, i should use "dra7xx_evm_qspiboot_config" to create MLO & u-boot.img for our custom board?

    I already try it, but still fail to boot up, the log is=>

    qspi_boot_log (custom_board-B).txt
    U-Boot SPL 2014.07 (Jun 06 2017 - 17:37:30)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    SDRAM: identified size not same as expected size identified: 0 expected: 40000000
      

    Because our custom board-B use 256MB memory size, could it be the reason for boot fail? or is because we use different QSPI flash(STMicro MT25QL128)

    And yes, i use QSPI_1 mode with sysboot[5:0] = 110110 for custom S25FL256 board QSPI boot. The log is =>

    qspi_boot_log(custom_board-A).txt
    U-Boot SPL 2014.07 (May 31 2017 - 16:38:00)
    DRA752-GP ES1.1
    ti_i2c_eeprom_init failed 1
    
    ===lisa_map_dra7_1536MB===
    ===EMIF-(1) Interface Setting===
    ===Ram Size = 0x0 ===
     Use emif1_ddr3_532_mhz_1cs
    ===EMIF-(2) Interface Setting===
    ===Ram Size = 0x0 === spl_mmc_load_image
    reading u-boot.img
    reading u-boot.img
    ti_i2c_eeprom_init failed 1
    
    
    U-Boot 2014.07 (May 31 2017 - 16:38:00)
    
    CPU  : DRA752-GP ES1.1
    Board: DRA74x EVM REV <NULL>
    I2C:   ready
    DRAM:  1 GiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Using default environment
    
    serial# not set, setting...
    omap_pipe3_wait_lock: DPLL failed to lock
    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).
    SCSI:  Net:   <ethaddr> not set. Validating first E-fuse MAC
    Phy not found
    cpsw
    Hit any key to stop autoboot:  0
    @CARRIER@
    U-Boot#
    U-Boot#
    U-Boot#
      

    In board.cfg, we create new config for our custom board. Most of parameter just like dra7xx_evm. Because there is no config could build image for QSPI boot, so i use the way i told before(modify parameter from "ENV_IS_IN_MMC" to "QSPI_BOOT" in board.cfg) to build MLO & u-boot.img for QSPI boot. With this way, i can boot from QSPI in out custom board-A(with 1GB memory size).

    So, currently, i only can boot from qspi in our custom board-A(with 1GB memory, S25FL256 QSPI flash), but fail in custom board-B(with 256MB memory, STMicro MT25QL128)

    Regards,

    Shawn

  • Hi Pavel,

    Do you have any suggestion?

    Regards,

    Shawn

  • Hi Pavel,

    Is "dra7xx_evm_qspiboot" a file? If it is, can you tell me where is it? Because i can find other config in /board_support/u-boot/include/configs/, such as dra7xx_evm.h or dra7xx_evm_android.h, but i can't find dra7xx_evm_qspiboot.h.

    And i can't use dra7xx_evm_qspiboot to build MLO & u-boot.img, because memory setting in our custom board is different than TI EVM board.

    Regards,

    Shawn

  • Shawn,

    shawn lin said:

    I already try it, but still fail to boot up, the log is=>(Please visit the site to view this file)  

    Because our custom board-B use 256MB memory size, could it be the reason for boot fail? or is because we use different QSPI flash(STMicro MT25QL128)

    shawn lin said:
    So, currently, i only can boot from qspi in our custom board-A(with 1GB memory, S25FL256 QSPI flash), but fail in custom board-B(with 256MB memory, STMicro MT25QL128)

    From the log you sent, it seems to me that issue is in 256MB DDR3, not in QSPI flash. Are you able to boot this 256MB board from SD card (or any other boot source)? What changes you have applied in u-boot source code to apply this 256MB DDR3?

    Regards,
    Pavel

  • shawn lin said:
    The guide says i should use command "sf write 0x83000000 0x40000 0x60000" to flash u-boot.img. But according memory layout, the space of u-boot.img is 0x100000, so if i replace size 0x60000 with 0x100000, then i can boot from QSPI at EVM. Is there something wrong with this command?

    No, the command is correct, but it is for GLSDK pre-built u-boot.img, which size is around 0.37MB. The default layout is 0x040000 to 0x140000, which means u-boot.img start from 0x40000 and max size can be 1MByte (0x100000). 0x60000 match the size of the pre-built u-boot.img, if you have bigger size of your own u-boot.img you should update this 0x60000 parameter.

    # sf write <memory address> <offset> <len>
     where,
       memory-address - source data to read from
       offset - qspi offset location to write
       len    - length of the data to be written

  • shawn lin said:
    As you say, i should use "dra7xx_evm_qspiboot_config" to create MLO & u-boot.img for our custom board?

    shawn lin said:
    And yes, i use QSPI_1 mode with sysboot[5:0] = 110110 for custom S25FL256 board QSPI boot.

    So you can successfully boot your S25FL256 1GB  custom board with QSPI_1 mode, sysboot[5:0] = 110110, and dra7xx_evm_config?

    Seems like dra7xx_evm_qspiboot_config is used for QSPI_4 mode only.

    http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User's_Guide#DRA7xx_support

    Regards,
    Pavel

  • Hi Pavel,

    Pavel Botev said:
    From the log you sent, it seems to me that issue is in 256MB DDR3, not in QSPI flash. Are you able to boot this 256MB board from SD card (or any other boot source)? What changes you have applied in u-boot source code to apply this 256MB DDR3?

    We modify board-support/u-boot/board/ti/xxx/evm.c file(which xxx is our project name) in order to fit 256MB memory size, and we can boot this 256MB board from SD card.

    Pavel Botev said:
    So you can successfully boot your S25FL256 1GB  custom board with QSPI_1 mode, sysboot[5:0] = 110110, and dra7xx_evm_config?

    Yes, currently, i can boot S25FL256 1GB  custom board with QSPI_1 mode, sysboot[5:0] = 110110. But not use dra7xx_evm_config. We add a new config for our custom board. Because HW layout are different between our custom board and evm board, so we can't use evm config directly.

    Pavel Botev said:
    Seems like dra7xx_evm_qspiboot_config is used for QSPI_4 mode only.?

    But when i try dra7xx_evm_qspiboot_config, i still use QSPI_1 boot mode(sysboot[5:0] = 110110) in evm board, and it work. So, if this config only used for QSPI_4 mode, why i still can boot up from QSPI_1 boot mode?

    Besides, Can you tell me how to find the content of this configs?(such as, "dra7xx_evm_qspiboot_config" or "dra7xx_evm_config")

    Regards,

    Shawn

  • shawn lin said:

    But when i try dra7xx_evm_qspiboot_config, i still use QSPI_1 boot mode(sysboot[5:0] = 110110) in evm board, and it work. So, if this config only used for QSPI_4 mode, why i still can boot up from QSPI_1 boot mode?

    Besides, Can you tell me how to find the content of this configs?(such as, "dra7xx_evm_qspiboot_config" or "dra7xx_evm_config")

    Have a look in u-boot/boards.cfg file, the difference between "dra7xx_evm_qspiboot" and "dra7xx_evm" is:

    dra7xx_evm -> ENV_IS_IN_MMC

    dra7xx_evm_qspiboot  -> QSPI_BOOT

    When we use dra7xx_evm_qspiboot, we are configuring the u-boot environments to be stored in QSPI Flash (0x1C0000 - 0x1D0000 : QSPI.u-boot-env), and also disable MMC support and set SPL max size for 64KB

    u-boot/include/configs/dra7xx_evm.h

    #if defined(CONFIG_QSPI_BOOT)
    /* In SPL, use the environment and discard MMC support for space. */
    #ifdef CONFIG_SPL_BUILD
    #undef CONFIG_SPL_MMC_SUPPORT
    #undef CONFIG_SPL_MAX_SIZE
    #define CONFIG_SPL_MAX_SIZE             (128 << 10) /* 64 KiB */
    #endif
    #define CONFIG_SPL_ENV_SUPPORT
    #define CONFIG_ENV_IS_IN_SPI_FLASH
    #define CONFIG_SYS_REDUNDAND_ENVIRONMENT
    #define CONFIG_ENV_SPI_MAX_HZ           CONFIG_SF_DEFAULT_SPEED
    #define CONFIG_ENV_SIZE            (64 << 10)
    #define CONFIG_ENV_SECT_SIZE        (64 << 10) /* 64 KB sectors */
    #define CONFIG_ENV_OFFSET        0x1C0000
    #define CONFIG_ENV_OFFSET_REDUND    0x1D0000
    #endif

    When we use dra7xx_evm, we are configuring the u-boot environments to be stored in MMC

    u-boot/include/configs/dra7xx_evm.h

    /* MMC ENV related defines */
    #ifdef CONFIG_ENV_IS_IN_MMC
    #define CONFIG_SYS_MMC_ENV_DEV        1    /* SLOT2: eMMC(1) */
    #define CONFIG_ENV_SIZE            (128 << 10)
    #define CONFIG_ENV_OFFSET        0xE0000
    #define CONFIG_ENV_OFFSET_REDUND    (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
    #define CONFIG_SYS_REDUNDAND_ENVIRONMENT
    #endif

    ENV_IS_IN_MMC is also used in u-boot/board/ti/dra7xx/evm.c

    Regards,
    Pavel

  • shawn lin said:
    and we can boot this 256MB board from SD card.

    Can you provide me the boot log for the 256MB board from SD card?

    What is the size of MLO/u-boot files for SD boot and for QSPI boot?

    Put only MLO in SD card and in QSPI (not u-boot), try to boot only MLO and compare the results. Provide me the logs, I want to see if your boot flow stuck in MLO or in u-boot.


    Regards,
    Pavel

  • Pavel Botev said:
    Can you provide me the boot log for the 256MB board from SD card?

    The log is=>

    qspi_bootlog(256MB).log
    U-Boot SPL 2014.07 (Jun 13 2017 - 19:18:06)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1csspl_mmc_load_image
    reading u-boot.img
    reading u-boot.img
    ti_i2c_eeprom_init failed 1
    
    
    U-Boot 2014.07 (Jun 13 2017 - 19:18:06)
    
    CPU  : DRA752-GP ES2.0
    Board: DRA74x EVM REV <NULL>
    I2C:   ready
    DRAM:  256 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Card did not respond to voltage select!
    MMC init failed
    Using default environment
    
    serial# not set, setting...
    Target spinup took 0 ms.
    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...
      Device 0: (0:0) Vendor: ATA Prod.: suf rod vecise.. Rev: nain
                Type: Hard Disk
                Capacity: not available
    Found 1 device(s).
    SCSI:  Net:   <ethaddr> not set. Validating first E-fuse MAC
    cpsw
    Hit any key to stop autoboot:  0 
    @ADAPTER@
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading uEnv.txt
    221 bytes read in 3 ms (71.3 KiB/s)
    Loaded environment from uEnv.txt
    Importing environment from mmc0 ...
    3875104 bytes read in 208 ms (17.8 MiB/s)
    109113 bytes read in 14 ms (7.4 MiB/s)
    Booting from mmc0 ...
    Kernel image @ 0x82000000 [ 0x000000 - 0x3b2120 ]
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8e6fc000, end 8e719a38 ... OK
    
    Starting kernel ...
    
    Booting Linux on physical CPU 0x0
    Linux version 3.14.63 (hsuyz@hsuyz-VirtualBox) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #1 SMP PREEMPT Tue Jun 13 19:17:17 CST 2017
    CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=10c5387d
    CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
    Machine model: TI DRA742
    cma: CMA: reserved 64 MiB at 8a400000
    Memory policy: Data cache writealloc
    DRA752 ES2.0
    PERCPU: Embedded 8 pages/cpu @cfc98000 s8384 r8192 d16192 u32768
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64768
    Kernel command line: console=ttyO0,115200n8 elevator=noop root=PARTUUID=1b7a5b80-02 rw rootwait earlyprintk fixrtc omapdrm.num_crtc=2 consoleblank=0 cma=64M rootfstype=ext4 snd.slots_reserved=1,1
    PID hash table entries: 1024 (order: 0, 4096 bytes)
    Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    Memory: 184796K/261120K available (5207K kernel code, 354K rwdata, 1932K rodata, 272K init, 240K bss, 76324K reserved, 0K highmem)
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
        vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
        lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
        pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
        modules : 0xbf000000 - 0xbfe00000   (  14 MB)
          .text : 0xc0008000 - 0xc0700fb4   (7140 kB)
          .init : 0xc0701000 - 0xc07450c0   ( 273 kB)
          .data : 0xc0746000 - 0xc079ea70   ( 355 kB)
           .bss : 0xc079ea7c - 0xc07dacd4   ( 241 kB)
    Preemptible hierarchical RCU implementation.
    NR_IRQS:16 nr_irqs:16 16
    @@@set sys_clkin1 as abe_dpll_mux's parent
    OMAP clockevent source: timer1 at 32786 Hz
    sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 65536000000000ns
    OMAP clocksource: 32k_counter at 32768 Hz
    Architected cp15 timer(s) running at 6.14MHz (virt).
    sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 2794592043008ns
    Switching to timer-based delay loop
    Console: colour dummy device 80x30
    Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
    pid_max: default: 32768 minimum: 301
    Security Framework initialized
    Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    CPU: Testing write buffer coherency: ok
    /cpus/cpu@0 missing clock-frequency property
    /cpus/cpu@1 missing clock-frequency property
    CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    Setting up static identity map for 0x8051bce8 - 0x8051bd40
    CPU1: Booted secondary processor
    CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    Brought up 2 CPUs
    SMP: Total of 2 processors activated (24.59 BogoMIPS).
    CPU: All CPU(s) started in SVC mode.
    devtmpfs: initialized
    VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
    omap_hwmod: l3_main_2 using broken dt data from ocp
    omap_hwmod: tptc0 using broken dt data from edma-controller
    omap_hwmod: tptc1 using broken dt data from edma-controller
    omap_hwmod: dcan1: _wait_target_disable failed
    pinctrl core: initialized pinctrl subsystem
    regulator-dummy: no parameters
    NET: Registered protocol family 16
    DMA: preallocated 256 KiB pool for atomic coherent allocations
    cpuidle: using governor ladder
    cpuidle: using governor menu
    syscon 4a002000.tisysconcore: regmap [mem 0x4a002000-0x4a0026cf] registered
    syscon 4a002e00.tisyscon: regmap [mem 0x4a002e00-0x4a002e7b] registered
    OMAP GPIO hardware version 0.1
    irq: no irq domain found for /ocp/pinmux@4a003400 !
    omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/pinmux@4a003400/nand_flash_x16, deferring probe
    platform 50000000.gpmc: Driver omap-gpmc requests probe deferral
    No ATAGs?
    hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
    hw-breakpoint: maximum watchpoint size is 8 bytes.
    OMAP DMA hardware revision 0.0
    bio: create slab <bio-0> at 0
    edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
    omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver
    evm_3v3_sd: 3300 mV 
    reg-fixed-voltage fixedregulator-sd: Failed to find supply vin
    reg-fixed-voltage fixedregulator-sd: Failed to register regulator: -517
    platform fixedregulator-sd: Driver reg-fixed-voltage requests probe deferral
    evm_3v3_sw: 3300 mV 
    reg-fixed-voltage fixedregulator-evm_3v3_sw: Failed to find supply vin
    reg-fixed-voltage fixedregulator-evm_3v3_sw: Failed to register regulator: -517
    platform fixedregulator-evm_3v3_sw: Driver reg-fixed-voltage requests probe deferral
    aic_dvdd: 1800 mV 
    reg-fixed-voltage fixedregulator-aic_dvdd: Failed to find supply vin
    reg-fixed-voltage fixedregulator-aic_dvdd: Failed to register regulator: -517
    platform fixedregulator-aic_dvdd: Driver reg-fixed-voltage requests probe deferral
    vmmcwl_fixed: 1800 mV 
    vtt_fixed: 1350 mV 
    reg-fixed-voltage fixedregulator-vtt: Failed to find supply vin
    reg-fixed-voltage fixedregulator-vtt: Failed to register regulator: -517
    platform fixedregulator-vtt: Driver reg-fixed-voltage requests probe deferral
    i2c-core: driver [palmas] using legacy suspend method
    i2c-core: driver [palmas] using legacy resume method
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    palmas 0-0058: IRQ missing: skipping irq request
    palmas 0-0058: Muxing GPIO a, PWM 0, LED 0
    prom_parse: Bad cell count for /ocp/i2c@48070000/tps659038@58
    SMPS12: at 1070 mV 
    SMPS3: at 1350 mV 
    smps45: 850 <--> 1500 mV at 990 mV 
    smps6: 850 <--> 1500 mV at 1080 mV 
    smps7: 850 <--> 1500 mV at 1080 mV 
    smps8: 850 <--> 1500 mV at 1010 mV 
    smps9: 1800 mV 
    ldo1: 1800 <--> 3300 mV at 3300 mV 
    ldo2: 3300 mV 
    ldo3: 1800 mV 
    LDO4: no parameters
    LDO5: no parameters
    LDO6: no parameters
    LDO7: no parameters
    LDO8: no parameters
    ldo9: 1050 mV 
    ldoln: 1800 mV 
    ldousb: 3300 mV 
    REGEN1: no parameters
    regen2: no parameters
    sysen1: no parameters
    sysen2: no parameters
    pcf857x: probe of 0-0020 failed with error -121
    pcf857x: probe of 0-0027 failed with error -121
    pcf857x: probe of 0-0021 failed with error -121
    omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
    pcf857x: probe of 1-0026 failed with error -121
    omap_i2c 48072000.i2c: bus 1 rev0.12 at 400 kHz
    omap_i2c 48060000.i2c: bus 2 rev0.12 at 400 kHz
    pcf857x: probe of 3-0021 failed with error -121
    omap_i2c 4807a000.i2c: bus 3 rev0.12 at 400 kHz
    omap_i2c 4807c000.i2c: bus 4 rev0.12 at 400 kHz
    Linux video capture interface: v2.00
    Advanced Linux Sound Architecture Driver Initialized.
    Switched to clocksource arch_sys_counter
    NET: Registered protocol family 2
    TCP established hash table entries: 2048 (order: 1, 8192 bytes)
    TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
    TCP: Hash tables configured (established 2048 bind 2048)
    TCP: reno registered
    UDP hash table entries: 256 (order: 1, 8192 bytes)
    UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
    NET: Registered protocol family 1
    RPC: Registered named UNIX socket transport module.
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    hw perfevents: enabled with ARMv7 Cortex-A15 PMU driver, 7 counters available
    futex hash table entries: 512 (order: 3, 32768 bytes)
    VFS: Disk quotas dquot_6.5.2
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    NFS: Registering the id_resolver key type
    Key type id_resolver registered
    Key type id_legacy registered
    jffs2: version 2.2. (NAND) (SUMMARY)  c 2001-2006 Red Hat, Inc.
    msgmni has been set to 488
    alg: No test for stdrng (krng)
    NET: Registered protocol family 38
    io scheduler noop registered (default)
    io scheduler deadline registered
    io scheduler cfq registered
    pinctrl-single 4a003400.pinmux: 281 pins at pa fc003400 size 1124
    pbias_mmc_omap5: 1800 <--> 3000 mV at 3000 mV 
    abb_mpu: 1100 <--> 1210 mV 
    abb_ivahd: 1060 <--> 1250 mV 
    abb_dspeve: 1060 <--> 1250 mV 
    abb_gpu: 1060 <--> 1280 mV 
    Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    4806a000.serial: ttyO0 at MMIO 0x4806a000 (irq = 299, base_baud = 3000000) is a OMAP UART0
    console [ttyO0] enabled
    omap_uart 4806c000.serial: no wakeirq for uart0
    4806c000.serial: ttyO1 at MMIO 0x4806c000 (irq = 300, base_baud = 3000000) is a OMAP UART1
    omap_uart 48020000.serial: no wakeirq for uart0
    48020000.serial: ttyO2 at MMIO 0x48020000 (irq = 301, base_baud = 3000000) is a OMAP UART2
    omap_uart 4806e000.serial: no wakeirq for uart0
    4806e000.serial: ttyO3 at MMIO 0x4806e000 (irq = 302, base_baud = 3000000) is a OMAP UART3
    omap_uart 48422000.serial: no wakeirq for uart0
    48422000.serial: ttyO7 at MMIO 0x48422000 (irq = 303, base_baud = 3000000) is a OMAP UART7
    omap_uart 48424000.serial: no wakeirq for uart0
    48424000.serial: ttyO8 at MMIO 0x48424000 (irq = 304, base_baud = 3000000) is a OMAP UART8
    omap_rng 48090000.rng: OMAP Random Number Generator ver. 20
    brd: module loaded
    loop: module loaded
    (stk) :sysfs entries created
    (stk) : debugfs entries created 
    (hci_tty): inside hci_tty_init
    (hci_tty): allocated 251, 0
    mtdoops: mtd device (mtddev=name/number) must be supplied
    usbcore: registered new interface driver asix
    usbcore: registered new interface driver ax88179_178a
    usbcore: registered new interface driver cdc_ether
    usbcore: registered new interface driver smsc95xx
    usbcore: registered new interface driver net1080
    usbcore: registered new interface driver cdc_subset
    usbcore: registered new interface driver zaurus
    usbcore: registered new interface driver cdc_ncm
    ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    ehci-omap: OMAP-EHCI Host Controller driver
    usbcore: registered new interface driver cdc_wdm
    usbcore: registered new interface driver usb-storage
    mousedev: PS/2 mouse device common for all mice
    omap_rtc 48838000.rtcss: rtc core: registered 48838000.rtcss as rtc0
    i2c /dev entries driver
    Driver for 1-wire Dallas network protocol.
    coproc iva_coproc: probe
    Adding alias for supply vdd,iva_coproc -> vdd,4a0025cc.voltdm
    Adding alias for supply vbb,iva_coproc -> vbb,4a0025cc.voltdm
    coproc iva_coproc: coproc_probe result=0
    coproc dsp_coproc: probe
    Adding alias for supply vdd,dsp_coproc -> vdd,4a0025e0.voltdm
    Adding alias for supply vbb,dsp_coproc -> vbb,4a0025e0.voltdm
    coproc dsp_coproc: coproc_probe result=0
    omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    omap_hsmmc 4809c000.mmc: unable to get vmmc regulator -517
    platform 4809c000.mmc: Driver omap_hsmmc requests probe deferral
    omap_hsmmc 480b4000.mmc: unable to get vmmc regulator -517
    platform 480b4000.mmc: Driver omap_hsmmc requests probe deferral
    omap-aes 4b500000.aes: OMAP AES hw accel rev: 3.3
    omap-aes 4b700000.aes: OMAP AES hw accel rev: 3.3
    omap-des 480a5000.des: OMAP DES hw accel rev: 2.2
    alg: skcipher: setkey failed on test 5 for ecb-des-omap: flags=100
    alg: skcipher-ddst: setkey failed on test 5 for ecb-des-omap: flags=100
    alg: skcipher-ddst: setkey failed on test 5 for ecb-des-omap: flags=100
    omap-sham 4b101000.sham: hw accel on OMAP rev 4.3
    omap-sham 4b101000.sham: initialization failed.
    omap-sham: probe of 4b101000.sham failed with error -22
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    
    [mcaspdrv_init]
    mcaspdrv_init called
    
    ============[davinci_mcasp_probe]==============
    ====>pm_runtime_forbid
    davinci-mcasp 48464000.mcasp: DAI is shared
    =========> [davinci_mcasp_probe] mem->start  =	[48464000] <==
    =========> [davinci_mcasp_probe] mcasp->base =  [D091C000] <==
    
    ============[davinci_mcasp_probe]==============
    ====>pm_runtime_forbid
    davinci-mcasp 48468000.mcasp: DAI is shared
    =========> [davinci_mcasp_probe] mem->start  =	[48468000] <==
    =========> [davinci_mcasp_probe] mcasp->base =  [D0934000] <==
    =====[McASP3]====
    =====[mcasp][CFBEBC10]=====
    =====[mcasp->base][D0934000]=====
    
    ============[davinci_mcasp_probe]==============
    ====>pm_runtime_forbid
    davinci-mcasp 48474000.mcasp: DAI is shared
    =========> [davinci_mcasp_probe] mem->start  =	[48474000] <==
    =========> [davinci_mcasp_probe] mcasp->base =  [D0938000] <==
    
    ============[davinci_mcasp_probe]==============
    ====>pm_runtime_forbid
    davinci-mcasp 48460000.mcasp: DAI is shared
    =========> [davinci_mcasp_probe] mem->start  =	[48460000] <==
    =========> [davinci_mcasp_probe] mcasp->base =  [D093C000] <==
    =====[McASP1]====
    =====[mcasp][CFBEB810]=====
    =====[mcasp->base][D093C000]=====
    oprofile: using timer interrupt.
    TCP: cubic registered
    Initializing XFRM netlink socket
    NET: Registered protocol family 17
    NET: Registered protocol family 15
    Key type dns_resolver registered
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    Power Management for TI OMAP4+ devices.
    ThumbEE CPU extension supported.
    Registering SWP/SWPB emulation handler
    REGEN1: disabling
    vmmcwl_fixed: disabling
    regulator-dummy: disabling
    omap-gpmc 50000000.gpmc: GPMC revision 6.0
    gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    nand: No NAND device found
    nand device scan failed, may be bus-width mismatch
    evm_3v3_sd: 3300 mV 
    evm_3v3_sd: supplied by sysen1
    evm_3v3_sw: 3300 mV 
    evm_3v3_sw: supplied by sysen1
    aic_dvdd: 1800 mV 
    aic_dvdd: supplied by evm_3v3_sw
    vtt_fixed: 1350 mV 
    vtt_fixed: supplied by sysen2
    pbias_mmc_omap5: unsupportable voltage range: 3300000-3000000uV
    pbias_mmc_omap5: unsupportable voltage range: 3300000-3000000uV
    pbias_mmc_omap5: unsupportable voltage range: 3300000-3000000uV
    pbias_mmc_omap5: unsupportable voltage range: 3300000-3000000uV
    pbias_mmc_omap5: unsupportable voltage range: 3300000-3000000uV
    pbias_mmc_omap5: unsupportable voltage range: 3300000-3000000uV
    mmc0: host does not support reading read-only switch. assuming write-enable.
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    mmc0: new high speed SDHC card at address b368
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    mmcblk0: mmc0:b368 SDC   3.74 GiB 
     mmcblk0: p1 p2
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    davinci_mdio 48485000.mdio: davinci mdio revision 1.6
    davinci_mdio 48485000.mdio: detected phy mask fffffffa
    libphy: 48485000.mdio: probed
    davinci_mdio 48485000.mdio: phy[0]: device 48485000.mdio:00, driver unknown
    davinci_mdio 48485000.mdio: phy[2]: device 48485000.mdio:02, driver unknown
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpsw 48484000.ethernet: Detected MACID = 60:64:05:82:51:70
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    cpsw 48484000.ethernet: cpsw: Detected MACID = 60:64:05:82:51:71
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    omap_rtc 48838000.rtcss: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    cpu cpu0: cpu0 clock notifier not ready, retry
    ALSA device list:
      No soundcards found.
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    VFS: Mounted root (ext4 filesystem) on device 179:2.
    devtmpfs: mounted
    Freeing unused kernel memory: 272K (c0701000 - c0745000)
    INIT: version 2.88 booting
    Starting udev
    udevd[1006]: starting version 182
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    CAN device driver interface
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    c_can_platform 4ae3c000.can: c_can_platform device registered (regs=fce3c000, irq=347)
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    udevd[1251]: failed to execute '/etc/udev/scripts/mount.sh' '/etc/udev/scripts/mount.sh': No sucomap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    h file or directory
    
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    omapdrm_pvr: Unknown symbol omap_drm_unregister_mapper (err 0)
    m25p80 spi32766.0: found n25q128a13, expected n25q064
    m25p80 spi32766.0: n25q128a13 (16384 Kbytes)
    omapdrm_pvr: Unknown symbol omap_gem_set_sync_object (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_priv (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_file_priv (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_put_paddr (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_handle_delete (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_op_async (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_object_lookup (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_tiled_stride (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_new_ext (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_object_free (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_vm_close (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_register_plugin (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_handle_create (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_register_mapper (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_get_paddr (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_tiled_size (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_unregister_plugin (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_get_pages (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_put_pages (err 0)
    omapdrm_pvr: Unknown symbol drm_mmap (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_op_update (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_set_priv (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_file_set_priv (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_flags (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_mmap_offset (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_unregister_mapper (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_set_sync_object (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_priv (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_file_priv (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_put_paddr (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_handle_delete (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_op_async (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_object_lookup (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_tiled_stride (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_new_ext (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_object_free (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_vm_close (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_register_plugin (err 0)
    omapdrm_pvr: Unknown symbol drm_gem_handle_create (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_register_mapper (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_get_paddr (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_tiled_size (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_unregister_plugin (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_get_pages (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_put_pages (err 0)
    omapdrm_pvr: Unknown symbol drm_mmap (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_op_update (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_set_priv (err 0)
    omapdrm_pvr: Unknown symbol omap_drm_file_set_priv (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_flags (err 0)
    omapdrm_pvr: Unknown symbol omap_gem_mmap_offset (err 0)
    10 ofpart partitions found on MTD device spi32766.0
    Creating 10 MTD partitions on "spi32766.0":
    0x000000000000-0x000000010000 : "QSPI.SPL"
    0x000000010000-0x000000020000 : "QSPI.SPL.backup1"
    0x000000020000-0x000000030000 : "QSPI.SPL.backup2"
    0x000000030000-0x000000040000 : "QSPI.SPL.backup3"
    0x000000040000-0x000000140000 : "QSPI.u-boot"
    udevd[1265]: failed to execute '/etc/udev/scripts/mount.sh' '/et0x000000140000-0x0000001c0000 : "QSPI.u-boot-spl-os"
    c/udev/scripts/mount.sh': No such file or directory
    
    0x0000001c0000-0x0000001d0000 : "QSPI.u-boot-env"
    0x0000001d0000-0x0000001e0000 : "QSPI.u-boot-env.backup1"
    0x0000001e0000-0x0000009e0000 : "QSPI.kernel"
    0x0000009e0000-0x000002000000 : "QSPI.file-system"
    mtd: partition "QSPI.file-system" extends beyond the end of device "spi32766.0" -- size truncated to 0x620000
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
    xhci-hcd xhci-hcd.0.auto: irq 423, io mem 0x48890000
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: xHCI Host Controller
    usb usb1: Manufacturer: Linux 3.14.63 xhci-hcd
    usb usb1: SerialNumber: xhci-hcd.0.auto
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
    usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
    usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb2: Product: xHCI Host Controller
    usb usb2: Manufacturer: Linux 3.14.63 xhci-hcd
    usb usb2: SerialNumber: xhci-hcd.0.auto
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 1 port detected
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    xhci-hcd xhci-hcd.1.auto: irq 424, io mem 0x488d0000
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb3: Product: xHCI Host Controller
    usb usb3: Manufacturer: Linux 3.14.63 xhci-hcd
    usb usb3: SerialNumber: xhci-hcd.1.auto
    hub 3-0:1.0: USB hub found
    hub 3-0:1.0: 1 port detected
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
    usb usb4: New USB device found, idVendor=1d6b, idProduct=0003
    usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb4: Product: xHCI Host Controller
    usb usb4: Manufacturer: Linux 3.14.63 xhci-hcd
    usb usb4: SerialNumber: xhci-hcd.1.auto
    hub 4-0:1.0: USB hub found
    hub 4-0:1.0: 1 port detected
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    usb 3-1: new high-speed USB device number 2 using xhci-hcd
    usb 3-1: New USB device found, idVendor=0bda, idProduct=8153
    usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6
    usb 3-1: Product: USB 10/100/1000 LAN
    usb 3-1: Manufacturer: Realtek
    usb 3-1: SerialNumber: 000000000000
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    random: nonblocking pool is initialized
    EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    usbcore: registered new interface driver r8152
    Starting Bootlog daemon: bootlogd: cannot allocate pseudo tty: No such file or directory
    bootlogd.
    usb 3-1: reset high-speed USB device number 2 using xhci-hcd
    xhci-hcd xhci-hcd.1.auto: Setup ERROR: setup context command for slot 1.
    usb 3-1: reset high-speed USB device number 2 using xhci-hcd
    xhci-hcd xhci-hcd.1.auto: Setup ERROR: setup context command for slot 1.
    usb 3-1: reset high-speed USB device number 2 using xhci-hcd
    xhci-hcd xhci-hcd.1.auto: xHCI xhci_drop_endpoint called with disabled ep c85518c0
    xhci-hcd xhci-hcd.1.auto: xHCI xhci_drop_endpoint called with disabled ep c85518ec
    xhci-hcd xhci-hcd.1.auto: xHCI xhci_drop_endpoint called with disabled ep c8551918
    r8152 3-1:1.0 (unregistered net_device): Invalid ether addr 00:00:00:00:00:00
    r8152 3-1:1.0 (unregistered net_device): Random ether addr a2:2a:cc:23:39:e3
    r8152 3-1:1.0 eth2: v2.08.0 (2016/12/09)
    r8152 3-1:1.0 eth2: This product is covered by one or more of the following patents:
    		US6,570,884, US6,115,776, and US6,327,625.
    
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    ALSA: Restoring mixer settings...
    /usr/sbin/alsactl: load_state:1729: No soundcards found...
    Thu Mar 24 18:36:00 UTC 2016
    
    
    [INFO] VERSION: R0.2.0.0003
    [INFO] memory test PASS
    [SYS ] paring option: token=3, option=(null)
    [INFO] R3 init, iface=/dev/ttyO1
    [INFO] R2 init
    [INFO] watchdog init
    [INFO] CLIENT ready
    hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
     Removing any system startup links for run-postinsts ...
      /etc/rcS.d/S99run-postinsts
    INIT: Entering runlevel: 5
    Configuring network interfaces... net eth0: initializing cpsw version 1.15 (0)
    Adding alias for supply vdd,cpu0 -> vdd,4a003b20.voltdm
    Adding alias for supply vbb,cpu0 -> vbb,4a003b20.voltdm
    omap_voltdm 4a003b20.voltdm: Unable to get vdd regulator:-517
    cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
    cpu cpu0: cpu0 clock notifier not ready, retry
    platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
    net eth0: phy found : id is : 0x221560
    udhcpc (v1.22.1) started
    Sending discover...
    hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    Sending discover...
    libphy: 48485000.mdio:00 - Link is Up - 100/Full
    Sending discover...
    hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    No lease, forking to background
    done.
    Starting system message bus: dbus.
    UIM SYSFS Node Found at /sys/./devices/kim/install
    Starting uim-sysfs daemon.
    Starting telnet daemonuim:@ main
    uim:install = /sys/./devices/kim/install
    uim:dev_name = /sys/./devices/kim/dev_name
    uim:baud_rate = /sys/./devices/kim/baud_rate
    uim:flow_cntrl = /sys/./devices/kim/flow_cntrl
    uim:begin polling...
    .
    Starting tiipclad daemon
    GateMP support enabled on host
    
    Opened log file: lad.txt
    
    numProcessors = 5 id = 0 baseId = 0
    
    Spawned daemon: /usr/bin/lad_dra7xx
    
    .
    Starting rpcbind daemon...rpcbind: cannot create socket for udp6
    rpcbind: cannot create socket for tcp6
    done.
    creating NFS state directory: done
    starting statd: done
    NFS daemon support not enabled in kernel
    Starting syslogd/klogd: done
    Starting thttpd.
    Enabling thermal zones...
    Stopping Bootlog daemon: bootlogd.
    
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project http://arago-project.org dra7xx-evm ttyO0
    
    Arago 2013.10 dra7xx-evm ttyO0
    
    dra7xx-evm login: root (automatic login)
    root@dra7xx-evm:~# hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    
      

    Pavel Botev said:
    What is the size of MLO/u-boot files for SD boot and for QSPI boot?

    for SD boot, MLO:97.2kB, u-boot.img:447.5kB

    for QSPI boot, MLO:84.4kB, u-boot.img:447.3kB

    Pavel Botev said:
    Put only MLO in SD card and in QSPI (not u-boot), try to boot only MLO and compare the results. Provide me the logs

    MLO in SD card log=>

    qspi_bootlog(MLO_SD).log
    U-Boot SPL 2014.07 (Jun 13 2017 - 19:18:06)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1csspl_mmc_load_image
    reading u-boot.img
    spl_load_image_fat: error reading image u-boot.img, err - -1
    ### ERROR ### Please RESET the board ###
    
      

    MLO in QSPI log=>

    qspi_bootlog(MLO_QSPI).log
    U-Boot SPL 2014.07 (Jun 13 2017 - 19:31:30)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1cs
      

    Regards,

    Shawn

  • Shawn,

    From the logs you have sent, it seems to me your 256MB board is able to boot from QSPI, but stuck at some point in the bootloader process (in MLO most probably).

    When you boot from SD card with both MLO and u-boot available you have:

    U-Boot SPL 2014.07 (Jun 13 2017 - 19:18:06)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
     
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1csspl_mmc_load_image
    reading u-boot.img
    reading u-boot.img
    ti_i2c_eeprom_init failed 1
     
     
    U-Boot 2014.07 (Jun 13 2017 - 19:18:06)   ------> at this point u-boot.img start


    When you boot from QSPI with MLO only, you have:

    U-Boot SPL 2014.07 (Jun 13 2017 - 19:31:30)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
     
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1cs

     

    When you boot from QSPI with MLO and u-boot.img, you have:

    U-Boot SPL 2014.07 (Jun 06 2017 - 17:37:30)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    SDRAM: identified size not same as expected size identified: 0 expected: 40000000

    I am not sure why you have such difference between QSPI MLO only and QSPI MLO/u-boot case. Can you check again you have this exactly?

    Regards,
    Pavel

     

  • Hi Pavel,

    Let me figure out one thing first, how should i build MLO & u-boot.img for QSPI boot?

    Should i use "dra7xx_evm_qspiboot_config" to build?

    Regards,

    Shawn

  • Shawn,

    You should be able to boot MLO and u-boot.img from QSPI with both dra7xx_evm_qspiboot_config and dra7xx_evm_config. The difference is that with dra7xx_evm_config, the environment variables should be stored in MMC instead of QSPI.

    For more info regarding u-boot environment variables refer to the below wiki pages:

    http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User's_Guide#U-Boot_Environment



    Regards,
    Pavel

  • Hi Pavel,

    Because our custom board has different memory setting than evm board(our custome only has 256MB), so if i use dra7xx_evm_qspiboot_config to build MLO & u-boot, after qspi boot up, the system will show SDRAM error message, i think is because currently use evm memory setting, but is not suitable for our custom board.
    So with different memory size, can i still use dra7xx_evm_qspiboot_config to build my MLO & u-boot.img?

    Regards,
    Shawn
  • Shawn,

    I am not sure I understand your question, but I will try to provide you an answer.

    I do not find any relation between dra7xx_evm_qspiboot_config and DDR3 memory size. If you apply these 256MB DDR3 changes in your custom board, dra7xx_evm_qspiboot_config should work fine.

    Regards,
    Pavel
  • Hi Pavel,

    Because there exist HW layout different, so we create new config for our custom board. The log i gave to you with SD boot, the image is build from our new config, the new config also include new setting for DDR.

    So if i use dra7xx_evm_config to build my MLO & u-boot.img and put them into SD card, then i can't boot from SD, the log =>

    SD_boot(with dra7xx_evm).txt
    U-Boot SPL 2014.07 (Jun 13 2017 - 21:10:13)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    SDRAM: identified size not same as expected size identified: 0 expected: 40000000
       

    Our new config is like the original dra7xx config =>

    our_board_cfg.txt
    Active  arm         armv7          omap5       ti              dra7xx              dra7xx_evm                            
    dra7xx_evm:CONS_INDEX=1,ENV_IS_IN_MMC
    Active  arm         armv7          omap5       ti              dra7xx              dra7xx_hs_evm                         
    dra7xx_evm:CONS_INDEX=1,ENV_IS_IN_MMC,OMAP_SECURE 
    
    Active  arm         armv7          omap5       ti              TEST_PROJECT        TEST_PROJECT                         
    TEST_PROJECT:CONS_INDEX=1,SPL_YMODEM_SUPPORT,ENV_IS_IN_MMC,TEST_PROJECT
    
       The TEST_PROJECT is our new config.

    Regards,

    Shawn

  • shawn lin said:
    Because there exist HW layout different, so we create new config for our custom board. The log i gave to you with SD boot, the image is build from our new config, the new config also include new setting for DDR.

    That looks correct.

    You should do the same for QSPI boot, as you did for SD boot (new config file). In that new config file replace ENV_IS_IN_MMC with QSPI_BOOT

    Regards,
    Pavel

  • Hi Pavel,

    I modify the config in order to build MLO & u-boot.img for QSPI boot.

    The config =>

    7522.our_board_cfg.txt
    Active  arm         armv7          omap5       ti              dra7xx              dra7xx_evm                            
    dra7xx_evm:CONS_INDEX=1,ENV_IS_IN_MMC
    Active  arm         armv7          omap5       ti              dra7xx              dra7xx_hs_evm                         
    dra7xx_evm:CONS_INDEX=1,ENV_IS_IN_MMC,OMAP_SECURE 
    
    Active  arm         armv7          omap5       ti              TEST_PROJECT        TEST_PROJECT                         
    TEST_PROJECT:CONS_INDEX=1,SPL_YMODEM_SUPPORT,QSPI_BOOT,TEST_PROJECT
    
     

    I replace "ENV_IS_IN_MMC" with "QSPI_BOOT", is this modification correct?

    Regards,

    Shawn

  • shawn lin said:
    I replace "ENV_IS_IN_MMC" with "QSPI_BOOT", is this modification correct?

    Yes, looks correct.

    You can also remove SPL_YMODEM_SUPPORT as it is used for UART boot, not for QSPI (or MMC/SD) boot.

    Regards,
    Pavel

  • Hi Pavel,

    I already try it, but fail. The log is =>

    QSPI_BOOT.txt
    U-Boot SPL 2014.07 (Jun 13 2017 - 22:04:58)
    DRA752-GP ES2.0
    ti_i2c_eeprom_init failed 1
    
    ===EMIF-(1) Interface Setting===
     Use emif1_ddr3_532_mhz_1cs

    I still don't know why it stuck.

    Regards,

    Shawn  

  • shawn lin said:

    I already try it, but fail. The log is =>(Please visit the site to view this file)

    I still don't know why it stuck.

    Can you try to replace QSPI_BOOT with ENV_IS_IN_MMC, will you have any difference in the boot log?

    From the log you have attached I see that MLO is booting, but stuck at DDR3 setup.

    Please enable debug() messages in u-boot to get more prints and see how your flow goes:

    It seems to me that your flow stuck at the sdram_init() function from the below sequence:

    u-boot/arch/arm/cpu/armv7/start.S

    u-boot/arch/arm/cpu/armv7/lowlevel_init.S

     u-boot/arch/arm/cpu/armv7/omap-common/hwinit-common.c

    void s_init(void)
    {
        /*
         * Save the boot parameters passed from romcode.
         * We cannot delay the saving further than this,
         * to prevent overwrites.
         */
    #ifdef CONFIG_SPL_BUILD
        save_omap_boot_params();
    #endif
        init_omap_revision();
        hw_data_init();

    ......

    preloader_console_init();  -> this function prints "U-Boot SPL 2014.07" and "DRA752-GP ES2.0"

    .....

    do_board_detect();  -> this function prints "ti_i2c_eeprom_init failed 1"

    .....

    sdram_init();  -> I suspect your flow stuck here
    #endif
    }

    Please check if your flow stuck in sdram_init(). If yes, check where exactly inside sdram_init() it stuck. sdram_init() is located at u-boot/arch/arm/cpu/armv7/omap-common/emif-common.c

    Regards,
    Pavel

  • Hi Pavel,

    Pavel Botev said:
    Can you try to replace QSPI_BOOT with ENV_IS_IN_MMC, will you have any difference in the boot log?

    If i do this, then the image i build is for SD boot. So it can boot successfully.

    Pavel Botev said:
    Please check if your flow stuck in sdram_init().

    I add debug message in sdram_init(). But it seems work fine with no stuck. Do you know what else system will do after s_init() finish?

    Regards,

    Shawn

  • shawn lin said:
    If i do this, then the image i build is for SD boot. So it can boot successfully.

    Place the image in QSPI flash, configure sysboot pins for QSPI boot, remove the MMC/SD card from the board, and have a try.

    shawn lin said:
    I add debug message in sdram_init(). But it seems work fine with no stuck. Do you know what else system will do after s_init() finish?

    Please provide me the log with debug enabled.

    Regards,
    Pavel

  • shawn lin said:
    I add debug message in sdram_init(). But it seems work fine with no stuck. Do you know what else system will do after s_init() finish?

    It goes to lowlevel_init, then cpu_init_crit, then _main

    u-boot/arch/arm/cpu/armv7/lowlevel_init.S

    ENTRY(lowlevel_init)

    .....

    bl    s_init
        pop    {ip, pc}
    ENDPROC(lowlevel_init)

     

    u-boot/arch/arm/cpu/armv7/start.S

    ENTRY(cpu_init_crit)
        /*
         * Jump to board specific initialization...
         * The Mask ROM will have already initialized
         * basic memory. Go here to bump up clock rate and handle
         * wake up conditions.
         */
        b    lowlevel_init        @ go setup pll,mux,memory
    ENDPROC(cpu_init_crit)

    #ifndef CONFIG_SKIP_LOWLEVEL_INIT
        bl    cpu_init_cp15
        bl    cpu_init_crit
    #endif

        bl    _main

    u-boot/arch/arm/lib/crt0.S

    ENTRY(_main)

    Then board_init_f() is called (from u-boot/arch/arm/cpu/armv7/omap-common/boot-common.c), then board_init_r() is called.

    Please put one printf in board_init_f, to make sure you reach that point, and enable debug to check where exactly in board_init_r your flow hang.

    Regards,
    Pavel

  • Hi Pavel,

    Pavel Botev said:
    Place the image in QSPI flash, configure sysboot pins for QSPI boot, remove the MMC/SD card from the board, and have a try.

    I already try it, but fail too.

    Pavel Botev said:
    Please provide me the log with debug enabled

    The log =>QSPI_BOOT(with debug msg).txt

    It seems system reach the point board_init_f(), but after that, keep doing below things,

    rx cmd 00390fff dc 00000000
    rx done, status 0cbf0002, read 00

    Only some parameter are different. The debug messages still output message after boot up 15 mins, so i stop logging.

    Regards,

    Shawn