I've got a OMAP-L137 EVM that I have been trying to get to boot MontaVista Linux. I have been told that the board should be able to boot into the SD card supplied with the EVM out of the box, with no configuration required. However, when I try to boot the device, this happens in my terminal:
U-Boot 1.3.3 (Apr 23 2009 - 17:32:00)
DRAM: 64 MB
*** Warning - bad CRC, using default environment
ARM Clock : 300000000 Hz
More than one PHY detected.
Hit any key to stop autoboot: 3...2...1...0
The boot sequence then drops to a U-boot prompt ( U-Boot > )
If I attempt to boot using the bootm command, I get an error about not being able to find the kernel image. At this point I assumed something must have been wrong in the initial flash of the device, so I attempted to follow the instructions to reflash the EVM (http://processors.wiki.ti.com/index.php/Omapl137/DA830_linux_bootup). I get as far as running the spiflash_writer.out program on the device, and I get this error:
SF: Got idcode ef 40 16SF: Unsupported Winbond ID 4016Serial Flash not detected
At first I thought this was maybe a defective board, so I got a second one. The second board behaves exactly the same way in every case. However, I can run the spi flash writer utility on a third l137 EVM that someone else has set up which boots Linux fine.
So long story short, this device, which should be able to boot with the out of the box configuration, not only won't boot, but also won't let me reflash it. Any help as to what I'm doing wrong?
Sorry if this is posted in the wrong section.
EDIT: I should mention that the owner of the board that boots said that he just followed the procedure on that link to flash his board and everything worked for him. He was able to boot from the included SD card into MontaVista linux with no problems.
you may try to run the FlashAndBootUtilities
I am experiencing exactly the same problem with my L137 EVM. When I tried to boot the device, the same below message showed in the terminal. Same as you, I also tried to reflash / restore the spi flash via CCS, but still got the same thing at booting. Could you share your approach for solving the problem?
U-Boot 1.3.3 (Apr 23 2009 - 17:32:00)I2C: readyDRAM: 64 MB*** Warning - bad CRC, using default environmentIn: serialOut: serialErr: serialARM Clock : 300000000 HzMore than one PHY detected.Hit any key to stop autoboot: 0U-Boot > bootmWrong Image Format for bootm commandERROR: can't get kernel image!U-Boot >
The SPI ID for the EVM (at least the newer ones I suppose) is 0x4016. The ones supported by the default SPI writer and the images are 0x3015, 0x3016 and 0x3017. First, grab the SPI writer from this page:
This will let you write to the 0x4016 ID SPI.
The next problem you'll have is the default U-Boot configuration also doesn't support the 0x4016 ID... If you poke around in the U-Boot source code (from the default packages), you can find SPI config files. I don't remember the filenames but if you search winbond in the u-boot directory you will find the configuration file. You will need to create a configuration for the 0x4016 chip. Turns out the 0x4016 can use the same configuration as the 0x3016, because all of the needed config parameters match. So if you copy the 0x3016 configuration and change the name to 0x4016, everything should work. At that point you just need to recompile U-Boot, write it to SPI, and setup your boot environment (follow the Getting Start with L137 wiki page for all this, http://processors.wiki.ti.com/index.php/Getting_Started_Guide_for_OMAP-L137 ).
Hope this helps!
for the problem of CRC, the saveenv u-boot command then reboot should remove the CRC message (if not, you may have an issue with your flash support in U-Boot)
Vincent, I was able to remove the CRC error by using saveenv command. But when I tried to use bootm command, I got the following error. I guess something is still not right.
Wrong Image Format for bootm command
ERROR: can't get kernel image!
Below is the complete message when I boot the EVM. Somehow I remember it should be longer, right? Any suggestions about what I can do to solve the bootm problem? Thanks.
DRAM: 64 MB
ARM Clock : 300000000 Hz
Hit any key to stop autoboot: 0
U-Boot > bootm
Rob, thank you for your response. I grabbed the spi writer from Spectrum Digital and found out my spi flash ID is 0x3016, different from yours. So I used this writer and re-downloaded the old dspais, armubl, and u-boot files to EVM, but still got the same message at booting.
Later on I saw the response from Vincent, and was able to remove the CRC by using saveenv command.
Now my problem is, I still cannot bootm command in EVM. When I boot it, it seems like something is still not right. Below is the message at terminal:
U-Boot 1.3.3 (Apr 23 2009 - 17:32:00)I2C: readyDRAM: 64 MBIn: serialOut: serialErr: serialARM Clock : 300000000 HzMore than one PHY detected.Hit any key to stop autoboot: 0U-Boot > bootmWrong Image Format for bootm commandERROR: can't get kernel image!U-Boot >
Any idea about what I can do to solve the issue? Thanks.
If you can use saveenv then your problem is not related to mine at all. Probably something has been set incorrectly in the boot environment, try using the "printenv" command from the U-Boot prompt and compare it to the setup specified in the getting started guide i linked above.
Is it possible you can post your printenv output? This is my printenv output. Thanks.
U-Boot > printenvbootargs=mem=32M console=ttyS2,115200n8 root=/dev/mtdblock/2 rw noinitrd ip=dhcpbootcmd=bootdelay=3baudrate=115200bootfile="uImage"ethaddr=00:0e:99:02:ff:57stdin=serialstdout=serialstderr=serialver=U-Boot 1.3.3 (Apr 23 2009 - 17:32:00)Environment size: 245/16380 bytesU-Boot >
as your printenv output highlights it, your bootm environment variable is not set...
First and if it is not already done, you will have to program your Kernel Image (uImage) into Flash. To do so use the u-boot command:
¤ sf probe 0
¤ sf erase 0x80000 0x200000 (understands erase your flash @ 0x80000 for 0x200000 bytes)
Then load your Kernel into Ram (TFTP is recommanded bu you can also use serial command from u-boot)
¤ loadb 0xc0700000 (then with teraterm consider Files>Send Files using kermit protocol to send uImage)
Once the transfert complete, you still have to programm the Kernel from Ram to Flash
¤ sf write 0xc0700000 0x80000 0x200000 (understands copy the kernel located in RAM (0xc0700000) to Flash @ 0x80000).
Then, now you can set your bootm environment variable accordingly:
¤ setenv bootm 'sf probe 0;sf read 0xc0700000 0x80000 0x200000;bootm 0xc0700000'
For sure you can modify the default location or size, to make short bootm environment variable is used to describe where the kernel is located in flash and copy into RAM.
bootargs variable is the kernel options (for example console=ttyS2 means that Kernel will consider UART2 of your board as default console)
I just read once again your first message because I thought you use custom board but if you consider EV board, by default you should have a kernel image stored into Flash so you can bypass Kernel programmation step and directly set bootm command (as mentioned above)
note: just check once again that for EV default location of Kernel in Flash is well 0x80000
I have some doubt also with your bootargs variable and especially 'root=/dev/mtdblock/2' (strange name for a device...) if it does not work consider this one instead :
bootargs=console=ttyS2,115200n8 root=/dev/mmcblk0p1 noinitrd rw ip=none mem=32M
(setenv bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p1 noinitrd rw ip=none mem=32M')
I followed the steps and it seems like the problem is still there. Please see below the capture of the terminal message:
U-Boot 1.3.3 (Apr 23 2009 - 17:32:00)I2C: readyDRAM: 64 MBIn: serialOut: serialErr: serialARM Clock : 300000000 HzMore than one PHY detected.Hit any key to stop autoboot: 0U-Boot > bootmWrong Image Format for bootm commandERROR: can't get kernel image!U-Boot > printenvbootcmd=bootdelay=3baudrate=115200bootfile="uImage"ethaddr=00:0e:99:02:ff:57bootm=sf probe 0;sf read 0xc0700000 0x80000 0x200000;bootm 0xc0700000bootargs=console=ttyS2,115200n8 root=/dev/mmcblk0p1 noinitrd rw ip=none mem=32M (later on I tried root=/dev/mtblock/2, same error with bootm)stdin=serialstdout=serialstderr=serialver=U-Boot 1.3.3 (Apr 23 2009 - 17:32:00)Environment size: 314/16380 bytesU-Boot >
One more issue is that now I also cannot start CCS at emulation mode (SW2 = 11110).
Maybe I shall completely erase the flash, and then re-download the dspais, armubl, uboot, and kernel image to the flash. Do you feel it's feasible? If it's Okay, could you confirm the flash start address and size (for sf erase command)? My board is L137 EVM REV G. Thanks.
You should really make your own thread for this. Because this thread already has a verified answer (it shows on the thread list with a green check mark), people looking to help others won't check in this thread. It really just looks like you have not set something in your boot environment up correctly, and the link I posted above should have instructions to see you through that. But that's just my two cents.
No problem, I will start with a new post from now on, unless I need to respond to previous threads that were already posted here.
You are so good!
I re-downloaded the dspais, armubl, and uboot files. Then I repeated your instructions. Now I am able to boot the kernel.
But one more issue is that if I power down the EVM and then power it up, the same bootm message appears again:
Wrong Image Format for bootm commandERROR: can't get kernel image!
I have to repeat your instructions in order to boot up the kernel. It seems like somehow the kernel was not saved correctly to the spi flash. I checked printenv, it is Okay. Any idea why?
Thank you very much!
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.