The embedded boot loader uBoot uses a simple serial interface. This is tracked to the COMA socket on
the motherboard. If you want to see messages from uBoot or play about with it you need to be able to
connect a terminal. The COMA socket has four pins which are 3V3, TXD, RXD and GND.
The photograph (right) shows you which is which.
I saw this socket described as a "micro JST socket" and ordered some pre-wired plugs. (You get 10 for a few dollars from China). It was only after they arrived that I discovered that the "micro" label was a rather loose description. These connectors come in a variety of pin spacings - 1.0mm, 1.25mm, 1.5mm, 2.00mm to name but a few. Needless to say the one I bought was the wrong size - I had to order again. The connector on the board has a pin spacing of 1.25mm.
The signals on the connector are at TTL levels rather than RS232 levels. We need some sort of circuit to interface to it. There are two obvious options:
The former assumes you have a computer (or terminal) with a standard COM port on it - not always there these days. The latter requires USB. This standard has replaced the old serial and parallel ports and is bound to be present unless you're trying to use something really ancient. I adopted the latter approach.
Serial-to-USB converters based on the Silicon Labs CP2102 chip
are dirt cheap and easily available - two examples are shown right. In fact, if you're using Windows 7,
Windows will automatically download the drivers from the Windows Update site for you when you first plug
one in to your computer (at least mine did!). If you're using some other operating system you'll have
to download the drivers from the Silicon Labs website.
All we need to do is connect up the three connections - GND, TxD and RxD. However one word of warning: For reasons known only to the themselves the interface I sourced directly from Hong Kong has the data connections labelled back to front. You connect the TxD line from COMA to the TxD pin of the USB board. (Similarly RxD to RxD). The UK sourced interface is as you would expect - the TxD signal from one side is connected to the RxD on the other.
I use PuTTY as an SSH client on my Windows box. This also will act as Telnet console and can be configured to connect via a serial port. Having plugged in my converter to the USB port I used device manager to discover that it had appeared as COM5.
If nobody has altered the settings the default baud rate is 115200. My PuTTY serial settings are:
Speed (baud) 115200 Data bits 8 Stop bits 1 Parity None Flow Control None
Documentation on u-Boot can be found on the denx website
Having connected up the serial interface this is what my t5325 squirts out as it boots:
_ _ .____ | |_| | | _ \ | _ | | (_)) | |-| | | | |_| |_| |_| .. _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** LOADER ** ** BOARD: DB-88F6281A-BP LE U-Boot 1.1.4 (Jan 8 2010 - 14:03:56) MIC version : 3.4.19-16 U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CD4E0 Soc: 88F6281 A0 (DDR2) CPU running @ 1200Mhz L2 running @ 400Mhz SysClock = 400Mhz , TClock = 200Mhz DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6 DRAM CS[0] base 0x00000000 size 256MB DRAM CS[1] base 0x10000000 size 256MB DRAM Total size 512MB 16bit width Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done [1024kB@f8000000] Flash: 1 MB CPU : Marvell Feroceon (Rev 1) Streaming disabled Write allocate disabled USB 0: host mode PEX 0: PCI Express Root Complex Interface PEX interface detected Link X1 Net: egiga0 [PRIME], egiga1 Hit any key to stop autoboot: 0 Reset IDE: Marvell Serial ATA Adapter Integrated Sata device found [0 0 0]: Enable DMA mode (6) Device 0 @ 0 0: Model: SM22 Firm: I052 Ser#: (03)5526888-20080228 Type: Hard Disk Capacity: 463.6 MB = 0.4 GB (949536 x 512) 2148560 bytes read Checking Button Status: off Checking GotoWOL Status: off ## Booting image at 00200000 ... Image Name: Linux-2.6.22.18-1-armel Created: 2009-10-08 13:56:48 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2148496 Bytes = 2 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK OK Starting kernel ... Uncompressing Linux............................................................. ............................................................................ done, booting the kernel.