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.

DM8148 eval doesn't boot from SPI flash

OK, we gave up on booting directly from a large eMMC device.  Instead we are planning on booting from SPI flash, and running linux from the eMMC.

Following the directions I built a u-boot stage 1 for SPI flash boot.

Following the procedure in the online document "DM8148x AM387x PSP U-Boot" under "Flashing 1st stage to SPI from 2nd stage in SD boot",

I was able to copy the image to SPI flash, and later even read it back from linux.  The "cmp" command indicated that the SPI content matched the u-boot image.

But the machine won't boot from it.  It apparently jumps to the image loaded from SPI flash and dies without writing so much as a character

out the serial port.  I think it jumped to it, because the RBL does not loop around, trying the network or serial ports with the SPI image in place.

If I erase the SPI flash, RBL will once again boots from the network.

What could I be missing?

  • Erwin,

    If you flashed only the 1stage "u-boot.min.spi" image, the uboot will try to autoload the 2nd stage from the spi and will crash if it not found the image after printing the following logs.

    "## Starting application at 0x81000000 ..."

    Please verify the boot pin settings are set correctly for SPI and the spi flash is enabled.

    Boot  Pin settings for SPI

    ---------------------------------

    Switch S1, S1[5:1] ==> 10110 , other pins should be 0 (i.e. OFF). This sets BTM[4:0] in SPI boot mode

    Switch SW2---->SPI ON

    Can you please provide me the following information so that i will be in a better position to help you ?

    1. Are you using the TI8148 EVM or any other custom board ?

    2. The version of the PSP release you are using

    3. Please attach the logs if any.

    4. The boot mode pin settings

    Regards

    Deepu Raj

  • Deepu Raj,

    I did only flash the 1st stage "u-boot.min.spi" image, in 0x0-0x1FFFF, but I was able to read what appeared to be the 2nd stage u-boot.bin image

    at 0x20000.  In any case, doesn't stage 1 boot up, print a banner line, and then give you 3 seconds before it tries to boot stage 2?  I received no

    u-boot initialization messages, nothing at all.  And the RBL is no longer looping around trying the other devices.


    My boot switches are currently  set to 10111, but I have tried 10110, and didn't see any difference.   According to table 4-1 "Boot Mode Order" in

    "TMS320DM814x DaVinci Digital Media Processors", the difference determines whether the CPU tries MMC or SPI first, and since we're no longer

    using eMMC, it should not be a difference at all.  And using 10111 allows us to flip one bit to choose EMAC as the highest priority.

    SW2 SPI is on.

    I am using the TMDXEVM8148 evaluation board, with PSP 04.01.00.06.

    I have no log files from this activity.

    The u-boot stage 1 image I used does not have a GP header in front.  I believe it is not supposed to have a GP header for SPI boot.

    I've tried the stage 1 SPI boot image, and the network boot MLO image (which I know runs), with the same lack-of-results.

    So why does u-boot instantly crash/hang/lock up?

    Regards,

    Erwin Kann

  • I withdraw the question.  I rebuilt both u-boot stages and installed them in SPI.  The machine boots stage 1 fine now.

    I don't know what the problem was, and as long as I don't run across it again, I really don't need to know.

    My remaining issues with the code are ones which I can fix.

    Thank you for your help!