Boot from serial

Hi,

We're designing our custom OMAP3 board using a different RAM than that
of the BeagleBoard (we're planning to use POP RAM with NOR flash);
does anyone know if I need to modify the X-loader code to recognize
the RAM we're using or it can pretty much detect the RAM and initially
correctly? Also, the wiki page mentioned (besides boot from MMC and
USB) the built-in ROM bootloader can boot from serial; yet, there
seems to be little or none support for it. I'm planning to use the
serial method (seems like the best way to bring up a custom board
initially without depending on many other hardware to work) to load
the x-loader and u-boot. Is there any available serial utility to do
this? I have TI's Mistral OMAP3EVM development and its software tool
includes a serial utility but I can't get it to work with the
BeagleBoard. Our hardware engineer (he has probably posted on this
board the last couple weeks) is currently trying to use the ASSET
Boundary Scan software to access the BeagleBoard NAND flash and see if
he can read/erase/write/etc to it. When we get our new board, we
either have to use the serial boot method to get the x-loader/u-boot
working or the ASSET Boundary Scan software to flash x-loader/u-boot
on there; is getting one of the cheap available JTAG programmers
(http://elinux.org/BeagleBoardJTAG) an easier method to initially
bring up a board? Thanks.

Regards,
Andy

I'm in a similar situation, and was trying to do exactly the same thing today. I have been successful in getting both the Beagleboard and our new board to boot via usb download, but I have not succeeded via serial. The serial download app looks like it is working, but it ends up in the existing uboot menu on the beagle, with some gibberish characters visible. I suspect it isn't dropping into serial download mode properly because uboot is already available and/or I'm doing something wrong.

Nishanth has kindly made source and handy pre-compiled binaries available here:
http://code.google.com/p/omap-u-boot-utils/downloads/list
I used Ubuntu 8.10 and the pusb app (make sure to run as root or sudo) worked fine to download assorted ubootV2 variants. The serial app reportedly works also, so I am probably doing something wrong.
One important note- the OMAP only has 64K of on-board RAM, and you can't use all of it (the bootloader needs some for interrupt tables and other stuff). I have successfully sent uboot versions up to about 40K, and I'm trying out some larger ones now.

If you have success in downloading somehting that has flashing capabilites and still fits within the 60K or less size constraint, I'd be interested in hearing about it. And I'll post about it here if I get something going.

Brett

[mailto:beagleboard@googlegroups.com] On Behalf Of Andy Ngo

Hi,

We're designing our custom OMAP3 board using a different RAM than
that
of the BeagleBoard (we're planning to use POP RAM with NOR flash);
does anyone know if I need to modify the X-loader code to recognize
the RAM we're using or it can pretty much detect the RAM and
initially
correctly?

The RAM memory timings need to be configured.

Also, the wiki page mentioned (besides boot from MMC and
USB) the built-in ROM bootloader can boot from serial; yet, there
seems to be little or none support for it. I'm planning to use the
serial method (seems like the best way to bring up a custom board
initially without depending on many other hardware to work) to load
the x-loader and u-boot. Is there any available serial utility to do
this? I have TI's Mistral OMAP3EVM development and its software tool
includes a serial utility but I can't get it to work with the
BeagleBoard.

The utility should work for you if you set the configuration to use a compatible boot-strap serial loader. In their 2nd revision of that serial download utility, they moved from having two text boxes (one for each phase) to having the first phase utility pointed to with a configuration file. They distribute the sources for this and it may be as simple as changing the UART supported (I haven't looked). You could probably affordably contract Mistral to provide you with an update that supports the Beagle.

Our hardware engineer (he has probably posted on this
board the last couple weeks) is currently trying to use the ASSET
Boundary Scan software to access the BeagleBoard NAND flash and see
if
he can read/erase/write/etc to it. When we get our new board, we
either have to use the serial boot method to get the x-loader/u-boot
working or the ASSET Boundary Scan software to flash x-loader/u-boot
on there; is getting one of the cheap available JTAG programmers
(http://elinux.org/BeagleBoardJTAG) an easier method to initially
bring up a board? Thanks.

You probably still want to get an "expensive" (possibly as low as $500) JTAG tool (such as from Spectrum Digital) for your board bring-up (make sure it supports CCSv3.3 and 1.8V I/O). The cheap (OpenOCD-based) tools are getting closer, but there are still a few gaps in understanding the route controller that haven't really propagated through the community.

The PEEDI and some other programmers might also be interesting to explore. I expect the Flyswatter support to come up soon, but it is counting on OpenOCD.

Brett,

via serial. The serial download app looks like it is working, but it
ends up in the existing uboot menu on the beagle, with some gibberish
characters visible. I suspect it isn't dropping into serial download

Ooops.. if you are using usb2serial convertor, i have not done a build
yet for pserial, but I have fixed the source for it (i use it at home
with a prolific usb2serial convertor). if you need the latest, you
need to pull from github[1]:
and build it.. :(.. will try to put up a new build rev soon..

Overall the concept of peripheral boot mode is simple as discussed in
[2]. but we need a small initial loader which will fit in SRAM as you
mentioned - currently only 2 options exist:
a) x-loader [3] or [4] - I am not sure if Sakoman's revision of
x-loader has support for sram boot+uart download, but it should be
easy to pull in.. omapzoom git version has support for x-loader from
uart3 for zoom at least..
b) u-boot v2 - [5]

For either of these options, porting will need to be done to handle
new sdram and clock differences (if any)..

Regards,
Nishanth Menon

Ref:
[1] http://github.com/nmenon/omap-u-boot-utils/tree/master
[2] http://nishanthmenon.blogspot.com/2009/01/omap-peripheral-boot-what-heck-is-it.html
[3] http://git.omapzoom.org/?p=x-loader.git;a=summary
[4] http://www.sakoman.net/cgi-bin/gitweb.cgi?p=x-load-omap3.git;a=summary
[5] http://git.denx.de/?p=u-boot/u-boot-v2.git;a=summary

> Our hardware engineer (he has probably posted on this
> board the last couple weeks) is currently trying to use the ASSET
> Boundary Scan software to access the BeagleBoard NAND flash and see
> if
> he can read/erase/write/etc to it. When we get our new board, we
> either have to use the serial boot method to get the x-loader/u-boot
> working or the ASSET Boundary Scan software to flash x-loader/u-boot
> on there; is getting one of the cheap available JTAG programmers
> (http://elinux.org/BeagleBoardJTAG) an easier method to initially
> bring up a board? Thanks.

You probably still want to get an "expensive" (possibly as low as $500) JTAG
tool (such as from Spectrum Digital) for your board bring-up (make sure it
supports CCSv3.3 and 1.8V I/O). The cheap (OpenOCD-based) tools are getting
closer, but there are still a few gaps in understanding the route controller
that haven't really propagated through the community.

The PEEDI and some other programmers might also be interesting to explore. I
expect the Flyswatter support to come up soon, but it is counting on OpenOCD.

Hi Jason,

Do you know if the XDS560OR (USB) JTAG emulator is compatible with the BeagleBoard? I noticed on the wiki page, it mentions XDS510. Our hardware engineer is having a hard time trying to get the ASSET Boundary Scan software to access the Nand flash on the BB. We currently have the XDS560OR from our previous project, which uses the TI Davinci 6446 processor. If it's not compatible, what JTAG emulator from Spectrum Digital should we buy that's compatible with the BeagleBoard?

Also, we're in the process of deciding what flash to use on our custom board, either the Micron Nand flash or a NOR flash. We had a meeting with a Spansion rep and he says that NOR is more reliable than the Nand flash; how reliable is the Nand flash on the BB? Everytime the BB boots up, I see alot of JFFS2 warnings and even CRC errors; are these messages something to be concerned about? Thanks.

Regards,
Andy

I will try and speak to the NAND part of the question.

I suggest you take some time and learn the difference between NAND and NOR memories. While NOR is more reliable than NAND, it is also smaller in size. So, it depends on what your requirements are for the amount that you need. NAND is more widely used than NOR and the issues with reliability only relate to the bad areas in the NAND that are taken care of by the ECC code. Keep in mind that every SD card or USB thumbdirve is also NAND. and, NAND is a lot less expensive.

In addition NOR is slower as it runs off the GPMC bus at 100MHZ. You will get much better performance running everything from DDR. That is all loaded from the NAND device. You can also have a mix or NOR and NAND in the system, but that has a cost impact as well. Now, you can run from NOR only if there is enough storage space and you can handle the drop in speed.

You might talk with someone that does not have a bias toward NOR, like Micron, Elpida, Numonyx, or Samsung. Make sure you get the big picture before you make your decision. Always consider all of the tradeoffs.

I hope this helps!

Gerald

Do you know if the XDS560OR (USB) JTAG emulator is compatible with the
BeagleBoard? I noticed on the wiki page, it mentions XDS510. Our
hardware engineer is having a hard time trying to get the ASSET Boundary
Scan software to access the Nand flash on the BB. We currently have the
XDS560OR from our previous project, which uses the TI Davinci 6446
processor. If it's not compatible, what JTAG emulator from Spectrum
Digital should we buy that's compatible with the BeagleBoard?

The XDS560R should be compatible with the OMAP3530. You may need to ensure you have the latest driver from Spectrum Digital and also ensure voltage compatibility. I believe the XDS560R allows for connecting directly to 1.8V, but you should check.

Brandon Azbell

>>Do you know if the XDS560OR (USB) JTAG emulator is compatible with
the
>>BeagleBoard? I noticed on the wiki page, it mentions XDS510. Our
>>hardware engineer is having a hard time trying to get the ASSET
Boundary
>>Scan software to access the Nand flash on the BB. We currently have
the
>>XDS560OR from our previous project, which uses the TI Davinci 6446
>>processor. If it's not compatible, what JTAG emulator from Spectrum
>>Digital should we buy that's compatible with the BeagleBoard?

The XDS560R should be compatible with the OMAP3530. You may need to
ensure you have the latest driver from Spectrum Digital and also ensure
voltage compatibility. I believe the XDS560R allows for connecting
directly to 1.8V, but you should check.

Brandon Azbell

I have personally had success with:

Blackhawk USB560M: http://www.blackhawk-dsp.com/Usb560.aspx
Blackhawk USB560BP: http://www.blackhawk-dsp.com/Usb560bp.aspx
TI XDS560 PCI: http://focus.tij.co.jp/jp/lit/ml/sprb148/sprb148.pdf

I have mainly dealt with the A8-core, but as well tested connection to the
DSP for all of them AFAIR...
  Søren