doc: cleanup - move board READMEs into respective board directories
Also drop a few files referring to no longer / not yet supported boards. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Prafulla Wadaskar <prafulla@marvell.com> Cc: Stefan Roese <sr@denx.de> Cc: Kim Phillips <kim.phillips@freescale.com> Cc: Andy Fleming <afleming@gmail.com> Cc: Jason Jin <jason.jin@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com> Acked-by: Stefano Babic <sbabic@denx.de> Acked-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
This commit is contained in:
parent
631fea8f2d
commit
702e6014f1
board
AndesTech/adp-ag101
Marvell
RPXClassic
RPXlite
alaska
amcc
armltd/integrator
cmi
cobra5272
davinci/da8xxevm
dnp5370
evb64260
fads
freescale
m52277evb
m5253evbe
m53017evb
m5373evb
m54455evb
m547xevb
mpc7448hpc2
mpc8313erdb
mpc8315erdb
mpc8323erdb
mpc832xemds
mpc8349itx
mpc8360emds
mpc837xemds
mpc837xerdb
mpc8536ds
mpc8544ds
mpc8569mds
mpc8572ds
mpc8610hpcd
mpc8641hpcn
mx35pdk
mx6qsabrelite
p1022ds
p1023rds
p1_p2_rdb
p1_p2_rdb_pc
p2041rdb
p3060qds
icecube
incaip
iphase4539
keymile/km83xx
korat
matrix_vision
mbx8xx
mpl/pip405
phytec/pcm030
qemu-mips
renesas
sandbox/sandbox
sandpoint
sbc8349
sbc8548
sbc8560
sbc8641d
sheldon/simpc8313
st/nhk8815
stx/stxxtc
ti/omap730p2
timll/devkit8000
tqc/tqm8260
xes/xpedite1000
zeus
doc
@ -13,3 +13,170 @@ Derived from au1x00 with a lot of things cut out.
|
||||
Supports emulated flash (patch Jean-Christophe PLAGNIOL-VILLARD) with
|
||||
recent qemu versions. When using emulated flash, launch with
|
||||
-pflash <filename> and erase mips_bios.bin.
|
||||
|
||||
|
||||
|
||||
Notes for the Qemu MIPS port
|
||||
----------------------------
|
||||
|
||||
I) Example usage:
|
||||
|
||||
# ln -s u-boot.bin mips_bios.bin
|
||||
start it:
|
||||
qemu-system-mips -L . /dev/null -nographic
|
||||
|
||||
or
|
||||
|
||||
if you use a qemu version after commit 4224
|
||||
|
||||
create image:
|
||||
# dd of=flash bs=1k count=4k if=/dev/zero
|
||||
# dd of=flash bs=1k conv=notrunc if=u-boot.bin
|
||||
start it:
|
||||
# qemu-system-mips -M mips -pflash flash -monitor null -nographic
|
||||
|
||||
2) Download kernel + initrd
|
||||
|
||||
On ftp://ftp.denx.de/pub/contrib/Jean-Christophe_Plagniol-Villard/qemu_mips/
|
||||
you can downland
|
||||
|
||||
#config to build the kernel
|
||||
qemu_mips_defconfig
|
||||
#patch to fix mips interrupt init on 2.6.24.y kernel
|
||||
qemu_mips_kernel.patch
|
||||
initrd.gz
|
||||
vmlinux
|
||||
vmlinux.bin
|
||||
System.map
|
||||
|
||||
4) Generate uImage
|
||||
|
||||
# tools/mkimage -A mips -O linux -T kernel -C gzip -a 0x80010000 -e 0x80245650 -n "Linux 2.6.24.y" -d vmlinux.bin.gz uImage
|
||||
|
||||
5) Copy uImage to Flash
|
||||
# dd if=uImage bs=1k conv=notrunc seek=224 of=flash
|
||||
|
||||
6) Generate Ide Disk
|
||||
|
||||
# dd of=ide bs=1k cout=100k if=/dev/zero
|
||||
|
||||
# sfdisk -C 261 -d ide
|
||||
# partition table of ide
|
||||
unit: sectors
|
||||
|
||||
ide1 : start= 63, size= 32067, Id=83
|
||||
ide2 : start= 32130, size= 32130, Id=83
|
||||
ide3 : start= 64260, size= 4128705, Id=83
|
||||
ide4 : start= 0, size= 0, Id= 0
|
||||
|
||||
7) Copy to ide
|
||||
|
||||
# dd if=uImage bs=512 conv=notrunc seek=63 of=ide
|
||||
|
||||
8) Generate ext2 on part 2 on Copy uImage and initrd.gz
|
||||
|
||||
# Attached as loop device ide offset = 32130 * 512
|
||||
# losetup -o 16450560 -f ide
|
||||
# Format as ext2 ( arg2 : nb blocks)
|
||||
# mke2fs /dev/loop0 16065
|
||||
# losetup -d /dev/loop0
|
||||
# Mount and copy uImage and initrd.gz to it
|
||||
# mount -o loop,offset=16450560 -t ext2 ide /mnt
|
||||
# mkdir /mnt/boot
|
||||
# cp {initrd.gz,uImage} /mnt/boot/
|
||||
# Umount it
|
||||
# umount /mnt
|
||||
|
||||
9) Set Environment
|
||||
|
||||
setenv rd_start 0x80800000
|
||||
setenv rd_size 2663940
|
||||
setenv kernel BFC38000
|
||||
setenv oad_addr 80500000
|
||||
setenv load_addr2 80F00000
|
||||
setenv kernel_flash BFC38000
|
||||
setenv load_addr_hello 80200000
|
||||
setenv bootargs 'root=/dev/ram0 init=/bin/sh'
|
||||
setenv load_rd_ext2 'ide res; ext2load ide 0:2 ${rd_start} /boot/initrd.gz'
|
||||
setenv load_rd_tftp 'tftp ${rd_start} /initrd.gz'
|
||||
setenv load_kernel_hda 'ide res; diskboot ${load_addr} 0:2'
|
||||
setenv load_kernel_ext2 'ide res; ext2load ide 0:2 ${load_addr} /boot/uImage'
|
||||
setenv load_kernel_tftp 'tftp ${load_addr} /qemu_mips/uImage'
|
||||
setenv boot_ext2_ext2 'run load_rd_ext2; run load_kernel_ext2; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_ext2_flash 'run load_rd_ext2; run addmisc; bootm ${kernel_flash}'
|
||||
setenv boot_ext2_hda 'run load_rd_ext2; run load_kernel_hda; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_ext2_tftp 'run load_rd_ext2; run load_kernel_tftp; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_tftp_hda 'run load_rd_tftp; run load_kernel_hda; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_tftp_ext2 'run load_rd_tftp; run load_kernel_ext2; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_tftp_flash 'run load_rd_tftp; run addmisc; bootm ${kernel_flash}'
|
||||
setenv boot_tftp_tftp 'run load_rd_tftp; run load_kernel_tftp; run addmisc; bootm ${load_addr}'
|
||||
setenv load_hello_tftp 'tftp ${load_addr_hello} /examples/hello_world.bin'
|
||||
setenv go_tftp 'run load_hello_tftp; go ${load_addr_hello}'
|
||||
setenv addmisc 'setenv bootargs ${bootargs} console=ttyS0,${baudrate} rd_start=${rd_start} rd_size=${rd_size} ethaddr=${ethaddr}'
|
||||
setenv bootcmd 'run boot_tftp_flash'
|
||||
|
||||
10) Now you can boot from flash, ide, ide+ext2 and tfp
|
||||
|
||||
# qemu-system-mips -M mips -pflash flash -monitor null -nographic -net nic -net user -tftp `pwd` -hda ide
|
||||
|
||||
II) How to debug U-Boot
|
||||
|
||||
In order to debug U-Boot you need to start qemu with gdb server support (-s)
|
||||
and waiting the connection to start the CPU (-S)
|
||||
|
||||
# qemu-system-mips -S -s -M mips -pflash flash -monitor null -nographic -net nic -net user -tftp `pwd` -hda ide
|
||||
|
||||
in an other console you start gdb
|
||||
|
||||
1) Debugging of U-Boot Before Relocation
|
||||
|
||||
Before relocation, the addresses in the ELF file can be used without any problems
|
||||
by connecting to the gdb server localhost:1234
|
||||
|
||||
# mipsel-unknown-linux-gnu-gdb u-boot
|
||||
GNU gdb 6.6
|
||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
GDB is free software, covered by the GNU General Public License, and you are
|
||||
welcome to change it and/or distribute copies of it under certain conditions.
|
||||
Type "show copying" to see the conditions.
|
||||
There is absolutely no warranty for GDB. Type "show warranty" for details.
|
||||
This GDB was configured as "--host=i486-linux-gnu --target=mipsel-unknown-linux-gnu"...
|
||||
(gdb) target remote localhost:1234
|
||||
Remote debugging using localhost:1234
|
||||
_start () at start.S:64
|
||||
64 RVECENT(reset,0) /* U-boot entry point */
|
||||
Current language: auto; currently asm
|
||||
(gdb) b board.c:289
|
||||
Breakpoint 1 at 0xbfc00cc8: file board.c, line 289.
|
||||
(gdb) c
|
||||
Continuing.
|
||||
|
||||
Breakpoint 1, board_init_f (bootflag=<value optimized out>) at board.c:290
|
||||
290 relocate_code (addr_sp, id, addr);
|
||||
Current language: auto; currently c
|
||||
(gdb) p/x addr
|
||||
$1 = 0x87fa0000
|
||||
|
||||
2) Debugging of U-Boot After Relocation
|
||||
|
||||
For debugging U-Boot after relocation we need to know the address to which
|
||||
U-Boot relocates itself to 0x87fa0000 by default.
|
||||
And replace the symbol table to this offset.
|
||||
|
||||
(gdb) symbol-file
|
||||
Discard symbol table from `/private/u-boot-arm/u-boot'? (y or n) y
|
||||
Error in re-setting breakpoint 1:
|
||||
No symbol table is loaded. Use the "file" command.
|
||||
No symbol file now.
|
||||
(gdb) add-symbol-file u-boot 0x87fa0000
|
||||
add symbol table from file "u-boot" at
|
||||
.text_addr = 0x87fa0000
|
||||
(y or n) y
|
||||
Reading symbols from /private/u-boot-arm/u-boot...done.
|
||||
Breakpoint 1 at 0x87fa0cc8: file board.c, line 289.
|
||||
(gdb) c
|
||||
Continuing.
|
||||
|
||||
Program received signal SIGINT, Interrupt.
|
||||
0xffffffff87fa0de4 in udelay (usec=<value optimized out>) at time.c:78
|
||||
78 while ((tmo - read_c0_count()) < 0x7fffffff)
|
||||
|
@ -13,3 +13,401 @@ seem to maintain it any more. I can be reached by mail as
|
||||
tkoeller@gmx.net.
|
||||
|
||||
Thomas Koeller
|
||||
|
||||
|
||||
|
||||
|
||||
The port was tested on a Sandpoint 8240 X3 board, with U-Boot
|
||||
installed in the flash memory of the CPU card. Please use the
|
||||
following DIP switch settings:
|
||||
|
||||
Motherboard:
|
||||
|
||||
SW1.1: on SW1.2: on SW1.3: on SW1.4: on
|
||||
SW1.5: on SW1.6: on SW1.7: on SW1.8: on
|
||||
|
||||
SW2.1: on SW2.2: on SW2.3: on SW2.4: on
|
||||
SW2.5: on SW2.6: on SW2.7: on SW2.8: on
|
||||
|
||||
|
||||
CPU Card:
|
||||
|
||||
SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on
|
||||
SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF
|
||||
|
||||
SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF
|
||||
SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on
|
||||
|
||||
|
||||
The followind detailed description of installation and initial steps
|
||||
with U-Boot and QNX was provided by Jim Sandoz <sandoz@lucent.com>:
|
||||
|
||||
|
||||
Directions for installing U-Boot on Sandpoint+Unity8240
|
||||
using the Abatron BDI2000 BDM/JTAG debugger ...
|
||||
|
||||
Background and Reference info:
|
||||
http://u-boot.sourceforge.net/
|
||||
http://www.abatron.ch/
|
||||
http://www.abatron.ch/BDI/bdihw.html
|
||||
http://www.abatron.ch/DataSheets/BDI2000.pdf
|
||||
http://www.abatron.ch/Manuals/ManGdbCOP-2000C.pdf
|
||||
http://e-www.motorola.com/collateral/SPX3UM.pdf
|
||||
http://e-www.motorola.com/collateral/UNITYX4CONFIG.pdf
|
||||
|
||||
|
||||
Connection Diagram:
|
||||
===========
|
||||
=== ===== |----- |
|
||||
| | <---------------> | | | | |
|
||||
|PC | rs232 | BDI |=============[] | |
|
||||
| | |2000 | BDM probe | | |
|
||||
| | <---------------> | | |----- |
|
||||
=== ethernet ===== | |
|
||||
| |
|
||||
===========
|
||||
Sandpoint X3 with
|
||||
Unity 8240 proc
|
||||
|
||||
|
||||
PART 1)
|
||||
DIP Switch Settings:
|
||||
|
||||
Sandpoint X3 8240 processor board DIP switch settings, with
|
||||
U-Boot to be installed in the flash memory of the CPU card:
|
||||
|
||||
Motorola Sandpoint X3 Motherboard:
|
||||
SW1.1: on SW1.2: on SW1.3: on SW1.4: on
|
||||
SW1.5: on SW1.6: on SW1.7: on SW1.8: on
|
||||
SW2.1: on SW2.2: on SW2.3: on SW2.4: on
|
||||
SW2.5: on SW2.6: on SW2.7: on SW2.8: on
|
||||
|
||||
Motorola Unity 8240 CPU Card:
|
||||
SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on
|
||||
SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF
|
||||
SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF
|
||||
SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on
|
||||
|
||||
|
||||
PART 2)
|
||||
Connect the BDI2000 Cable to the Sandpoint/Unity 8240:
|
||||
|
||||
BDM Pin 1 on the Unity 8240 processor board is towards the
|
||||
PCI PMC connectors, or away from the socketed SDRAM, i.e.:
|
||||
|
||||
====================
|
||||
| ---------------- |
|
||||
| | SDRAM | |
|
||||
| | | |
|
||||
| ---------------- |
|
||||
| |~| |
|
||||
| |B| ++++++ |
|
||||
| |D| + uP + |
|
||||
| |M| +8240+ |
|
||||
| ~ 1 ++++++ |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| PMC conn ====== |
|
||||
| ===== ====== |
|
||||
| |
|
||||
====================
|
||||
|
||||
|
||||
PART 3)
|
||||
Setting up the BDI2000, and preparing for TCP/IP network comms:
|
||||
|
||||
Connect the BDI2000 to the PC using the supplied serial cable.
|
||||
Download the BDI2000 software and install it using setup.exe.
|
||||
|
||||
[Note: of course you can also use the Linux command line tool
|
||||
"bdisetup" to configure your BDI2000 - the sources are included on
|
||||
the floppy disk that comes with your BDI2000. Just in case you don't
|
||||
have any Windows PC's - like me :-) -- wd ]
|
||||
|
||||
Power up the BDI2000; then follow directions to assign the IP
|
||||
address and related network information. Note that U-Boot
|
||||
will be loaded to the Sandpoint via tftp. You need to either
|
||||
use the Abatron-provided tftp application or provide a tftp
|
||||
server (e.g. Linux/Solaris/*BSD) somewhere on your network.
|
||||
Once the IP address etc are assigned via the RS232 port,
|
||||
further communication with the BDI2000 will happen via the
|
||||
ethernet connection.
|
||||
|
||||
PART 4)
|
||||
Making a TCP/IP network connection to the Abatron BDI2000:
|
||||
|
||||
Telnet to the Abatron BDI2000. Assuming that all of the
|
||||
networking info was loaded via RS232 correctly, you will see
|
||||
the following (scrolling):
|
||||
|
||||
- TARGET: waiting for target Vcc
|
||||
- TARGET: waiting for target Vcc
|
||||
|
||||
|
||||
PART 5)
|
||||
Power up the target Sandpoint:
|
||||
If the BDM connections are correct, the following will now appear:
|
||||
|
||||
- TARGET: waiting for target Vcc
|
||||
- TARGET: waiting for target Vcc
|
||||
- TARGET: processing power-up delay
|
||||
- TARGET: processing user reset request
|
||||
- BDI asserts HRESET
|
||||
- Reset JTAG controller passed
|
||||
- Bypass check: 0x55 => 0xAA
|
||||
- Bypass check: 0x55 => 0xAA
|
||||
- JTAG exists check passed
|
||||
- Target PVR is 0x00810101
|
||||
- COP status is 0x01
|
||||
- Check running state passed
|
||||
- BDI scans COP freeze command
|
||||
- BDI removes HRESET
|
||||
- COP status is 0x05
|
||||
- Check stopped state passed
|
||||
- Check LSRL length passed
|
||||
- BDI sets breakpoint at 0xFFF00100
|
||||
- BDI resumes program execution
|
||||
- Waiting for target stop passed
|
||||
- TARGET: Target PVR is 0x00810101
|
||||
- TARGET: reseting target passed
|
||||
- TARGET: processing target startup ....
|
||||
- TARGET: processing target startup passed
|
||||
BDI>
|
||||
|
||||
|
||||
PART 6)
|
||||
Erase the current contents of the flash memory:
|
||||
|
||||
BDI>era 0xFFF00000
|
||||
Erasing flash at 0xfff00000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF04000
|
||||
Erasing flash at 0xfff04000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF06000
|
||||
Erasing flash at 0xfff06000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF08000
|
||||
Erasing flash at 0xfff08000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF10000
|
||||
Erasing flash at 0xfff10000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF20000
|
||||
Erasing flash at 0xfff20000
|
||||
Erasing flash passed
|
||||
|
||||
|
||||
PART 7)
|
||||
Program the flash memory with the U-Boot image:
|
||||
|
||||
BDI>prog 0xFFF00000 u-boot.bin bin
|
||||
Programming u-boot.bin , please wait ....
|
||||
Programming flash passed
|
||||
|
||||
|
||||
PART 8)
|
||||
Connect PC to Sandpoint:
|
||||
Using a crossover serial cable, attach the PC serial port to the
|
||||
Sandpoint's COM1. Set communications parameters to 8N1 / 9600 baud.
|
||||
|
||||
|
||||
PART 9)
|
||||
Reset the Unity and begin U-Boot execution:
|
||||
|
||||
BDI>reset
|
||||
- TARGET: processing user reset request
|
||||
- TARGET: Target PVR is 0x00810101
|
||||
- TARGET: reseting target passed
|
||||
- TARGET: processing target init list ....
|
||||
- TARGET: processing target init list passed
|
||||
|
||||
BDI>go
|
||||
|
||||
Now see output from U-Boot running, sent via serial port:
|
||||
|
||||
U-Boot 1.1.4 (Jan 23 2002 - 18:29:19)
|
||||
|
||||
CPU: MPC8240 Revision 1.1 at 264 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: Sandpoint 8240 Unity
|
||||
DRAM: 64 MB
|
||||
FLASH: 2 MB
|
||||
PCI: scanning bus0 ...
|
||||
bus dev fn venID devID class rev MBAR0 MBAR1 IPIN ILINE
|
||||
00 00 00 1057 0003 060000 13 00000008 00000000 01 00
|
||||
00 0b 00 10ad 0565 060100 10 00000000 00000000 00 00
|
||||
00 0f 00 8086 1229 020000 08 80000000 80000001 01 00
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
=>
|
||||
|
||||
|
||||
PART 10)
|
||||
Set and save any required environmental variables, examples of some:
|
||||
|
||||
=> setenv ethaddr 00:03:47:97:D0:79
|
||||
=> setenv bootfile your_qnx_image_here
|
||||
=> setenv hostname sandpointX
|
||||
=> setenv netmask 255.255.255.0
|
||||
=> setenv ipaddr 192.168.0.11
|
||||
=> setenv serverip 192.168.0.10
|
||||
=> setenv gatewayip=192.168.0.1
|
||||
=> saveenv
|
||||
Saving Environment to Flash...
|
||||
Un-Protected 1 sectors
|
||||
Erasing Flash...
|
||||
done
|
||||
Erased 1 sectors
|
||||
Writing to Flash... done
|
||||
Protected 1 sectors
|
||||
=>
|
||||
|
||||
**** Example environment: ****
|
||||
|
||||
=> printenv
|
||||
baudrate=9600
|
||||
bootfile=telemetry
|
||||
hostname=sp1
|
||||
ethaddr=00:03:47:97:E4:6B
|
||||
load=tftp 100000 u-boot.bin
|
||||
update=protect off all;era FFF00000 FFF3FFFF;cp.b 100000 FFF00000 ${filesize};saveenv
|
||||
filesize=1f304
|
||||
gatewayip=145.17.228.1
|
||||
netmask=255.255.255.0
|
||||
ipaddr=145.17.228.42
|
||||
serverip=145.17.242.46
|
||||
stdin=serial
|
||||
stdout=serial
|
||||
stderr=serial
|
||||
|
||||
Environment size: 332/8188 bytes
|
||||
=>
|
||||
|
||||
here's some text useful stuff for cut-n-paste:
|
||||
setenv hostname sandpoint1
|
||||
setenv netmask 255.255.255.0
|
||||
setenv ipaddr 145.17.228.81
|
||||
setenv serverip 145.17.242.46
|
||||
setenv gatewayip 145.17.228.1
|
||||
saveenv
|
||||
|
||||
PART 11)
|
||||
Test U-Boot by tftp'ing new U-Boot, overwriting current:
|
||||
|
||||
=> protect off all
|
||||
Un-Protect Flash Bank # 1
|
||||
=> tftp 100000 u-boot.bin
|
||||
eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
|
||||
ARP broadcast 1
|
||||
TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
|
||||
gateway 145.17.228.1
|
||||
Filename 'u-boot.bin'.
|
||||
Load address: 0x100000
|
||||
Loading: #########################
|
||||
done
|
||||
Bytes transferred = 127628 (1f28c hex)
|
||||
=> era all
|
||||
Erase Flash Bank # 1
|
||||
done
|
||||
Erase Flash Bank # 2 - missing
|
||||
=> cp.b 0x100000 FFF00000 1f28c
|
||||
Copy to Flash... done
|
||||
=> saveenv
|
||||
Saving Environment to Flash...
|
||||
Un-Protected 1 sectors
|
||||
Erasing Flash...
|
||||
done
|
||||
Erased 1 sectors
|
||||
Writing to Flash... done
|
||||
Protected 1 sectors
|
||||
=> reset
|
||||
|
||||
You can put these commands into some environment variables;
|
||||
|
||||
=> setenv load tftp 100000 u-boot.bin
|
||||
=> setenv update protect off all\;era FFF00000 FFF3FFFF\;cp.b 100000 FFF00000 \${filesize}\;saveenv
|
||||
=> saveenv
|
||||
|
||||
Then you just have to type "run load" then "run update"
|
||||
|
||||
=> run load
|
||||
eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
|
||||
ARP broadcast 1
|
||||
TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
|
||||
gateway 145.17.228.1
|
||||
Filename 'u-boot.bin'.
|
||||
Load address: 0x100000
|
||||
Loading: #########################
|
||||
done
|
||||
Bytes transferred = 127748 (1f304 hex)
|
||||
=> run update
|
||||
Un-Protect Flash Bank # 1
|
||||
Un-Protect Flash Bank # 2
|
||||
Erase Flash from 0xfff00000 to 0xfff3ffff
|
||||
done
|
||||
Erased 7 sectors
|
||||
Copy to Flash... done
|
||||
Saving Environment to Flash...
|
||||
Un-Protected 1 sectors
|
||||
Erasing Flash...
|
||||
done
|
||||
Erased 1 sectors
|
||||
Writing to Flash... done
|
||||
Protected 1 sectors
|
||||
=>
|
||||
|
||||
|
||||
PART 12)
|
||||
Load OS image (ELF format) via U-Boot using tftp
|
||||
|
||||
|
||||
=> tftp 800000 sandpoint-simple.elf
|
||||
eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
|
||||
ARP broadcast 1
|
||||
TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
|
||||
gateway 145.17.228.1
|
||||
Filename 'sandpoint-simple.elf'.
|
||||
Load address: 0x800000
|
||||
Loading: #################################################################
|
||||
#################################################################
|
||||
#################################################################
|
||||
########################
|
||||
done
|
||||
Bytes transferred = 1120284 (11181c hex)
|
||||
==>
|
||||
|
||||
PART 13)
|
||||
Begin OS image execution: (note that unless you have the
|
||||
serial parameters of your OS image set to 9600 (i.e. same as
|
||||
the U-Boot binary) you will get garbage here until you change
|
||||
the serial communications speed.
|
||||
|
||||
=> bootelf 800000
|
||||
Loading @ 0x001f0100 (1120028 bytes)
|
||||
## Starting application at 0x001f1d28 ...
|
||||
Replace init_hwinfo() with a board specific version
|
||||
|
||||
Loading QNX6....
|
||||
|
||||
Header size=0x0000009c, Total Size=0x000005c0, #Cpu=1, Type=1
|
||||
<...loader and kernel messages snipped...>
|
||||
|
||||
Welcome to Neutrino on the Sandpoint
|
||||
#
|
||||
|
||||
|
||||
other information:
|
||||
|
||||
CVS Retrieval Notes:
|
||||
|
||||
U-Boot's SourceForge CVS repository can be checked out
|
||||
through anonymous (pserver) CVS with the following
|
||||
instruction set. The module you wish to check out must
|
||||
be specified as the modulename. When prompted for a
|
||||
password for anonymous, simply press the Enter key.
|
||||
|
||||
cvs -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot login
|
||||
|
||||
cvs -z6 -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot co -P u-boot
|
||||
|
@ -1,24 +0,0 @@
|
||||
This document contains different information about the port
|
||||
of U-Boot for the OXC board designed by Lucent Technologies,
|
||||
Inc.
|
||||
|
||||
1. Showing activity
|
||||
|
||||
U-Boot for the OXC board can show its current status using
|
||||
the Active LED. This feature is configured by the following
|
||||
options:
|
||||
|
||||
CONFIG_SHOW_ACTIVITY
|
||||
|
||||
When this option is on, the Active LED is blinking fast
|
||||
when U-Boot runs in the idle loop (i.e. waits for user
|
||||
commands from serial console) and blinking slow when it
|
||||
downloads an image over network. When U-Boot loads an image
|
||||
over serial line the Active LED does not blink and its state
|
||||
is random (i.e. either constant on or constant off).
|
||||
|
||||
CONFIG_SHOW_BOOT_PROGRESS
|
||||
|
||||
When this option is on, U-Boot switches the Active LED
|
||||
off before booting an image and switches it on if booting
|
||||
failed due to some reasons.
|
@ -1,394 +0,0 @@
|
||||
The port was tested on a Sandpoint 8240 X3 board, with U-Boot
|
||||
installed in the flash memory of the CPU card. Please use the
|
||||
following DIP switch settings:
|
||||
|
||||
Motherboard:
|
||||
|
||||
SW1.1: on SW1.2: on SW1.3: on SW1.4: on
|
||||
SW1.5: on SW1.6: on SW1.7: on SW1.8: on
|
||||
|
||||
SW2.1: on SW2.2: on SW2.3: on SW2.4: on
|
||||
SW2.5: on SW2.6: on SW2.7: on SW2.8: on
|
||||
|
||||
|
||||
CPU Card:
|
||||
|
||||
SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on
|
||||
SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF
|
||||
|
||||
SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF
|
||||
SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on
|
||||
|
||||
|
||||
The followind detailed description of installation and initial steps
|
||||
with U-Boot and QNX was provided by Jim Sandoz <sandoz@lucent.com>:
|
||||
|
||||
|
||||
Directions for installing U-Boot on Sandpoint+Unity8240
|
||||
using the Abatron BDI2000 BDM/JTAG debugger ...
|
||||
|
||||
Background and Reference info:
|
||||
http://u-boot.sourceforge.net/
|
||||
http://www.abatron.ch/
|
||||
http://www.abatron.ch/BDI/bdihw.html
|
||||
http://www.abatron.ch/DataSheets/BDI2000.pdf
|
||||
http://www.abatron.ch/Manuals/ManGdbCOP-2000C.pdf
|
||||
http://e-www.motorola.com/collateral/SPX3UM.pdf
|
||||
http://e-www.motorola.com/collateral/UNITYX4CONFIG.pdf
|
||||
|
||||
|
||||
Connection Diagram:
|
||||
===========
|
||||
=== ===== |----- |
|
||||
| | <---------------> | | | | |
|
||||
|PC | rs232 | BDI |=============[] | |
|
||||
| | |2000 | BDM probe | | |
|
||||
| | <---------------> | | |----- |
|
||||
=== ethernet ===== | |
|
||||
| |
|
||||
===========
|
||||
Sandpoint X3 with
|
||||
Unity 8240 proc
|
||||
|
||||
|
||||
PART 1)
|
||||
DIP Switch Settings:
|
||||
|
||||
Sandpoint X3 8240 processor board DIP switch settings, with
|
||||
U-Boot to be installed in the flash memory of the CPU card:
|
||||
|
||||
Motorola Sandpoint X3 Motherboard:
|
||||
SW1.1: on SW1.2: on SW1.3: on SW1.4: on
|
||||
SW1.5: on SW1.6: on SW1.7: on SW1.8: on
|
||||
SW2.1: on SW2.2: on SW2.3: on SW2.4: on
|
||||
SW2.5: on SW2.6: on SW2.7: on SW2.8: on
|
||||
|
||||
Motorola Unity 8240 CPU Card:
|
||||
SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on
|
||||
SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF
|
||||
SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF
|
||||
SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on
|
||||
|
||||
|
||||
PART 2)
|
||||
Connect the BDI2000 Cable to the Sandpoint/Unity 8240:
|
||||
|
||||
BDM Pin 1 on the Unity 8240 processor board is towards the
|
||||
PCI PMC connectors, or away from the socketed SDRAM, i.e.:
|
||||
|
||||
====================
|
||||
| ---------------- |
|
||||
| | SDRAM | |
|
||||
| | | |
|
||||
| ---------------- |
|
||||
| |~| |
|
||||
| |B| ++++++ |
|
||||
| |D| + uP + |
|
||||
| |M| +8240+ |
|
||||
| ~ 1 ++++++ |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| PMC conn ====== |
|
||||
| ===== ====== |
|
||||
| |
|
||||
====================
|
||||
|
||||
|
||||
PART 3)
|
||||
Setting up the BDI2000, and preparing for TCP/IP network comms:
|
||||
|
||||
Connect the BDI2000 to the PC using the supplied serial cable.
|
||||
Download the BDI2000 software and install it using setup.exe.
|
||||
|
||||
[Note: of course you can also use the Linux command line tool
|
||||
"bdisetup" to configure your BDI2000 - the sources are included on
|
||||
the floppy disk that comes with your BDI2000. Just in case you don't
|
||||
have any Windows PC's - like me :-) -- wd ]
|
||||
|
||||
Power up the BDI2000; then follow directions to assign the IP
|
||||
address and related network information. Note that U-Boot
|
||||
will be loaded to the Sandpoint via tftp. You need to either
|
||||
use the Abatron-provided tftp application or provide a tftp
|
||||
server (e.g. Linux/Solaris/*BSD) somewhere on your network.
|
||||
Once the IP address etc are assigned via the RS232 port,
|
||||
further communication with the BDI2000 will happen via the
|
||||
ethernet connection.
|
||||
|
||||
PART 4)
|
||||
Making a TCP/IP network connection to the Abatron BDI2000:
|
||||
|
||||
Telnet to the Abatron BDI2000. Assuming that all of the
|
||||
networking info was loaded via RS232 correctly, you will see
|
||||
the following (scrolling):
|
||||
|
||||
- TARGET: waiting for target Vcc
|
||||
- TARGET: waiting for target Vcc
|
||||
|
||||
|
||||
PART 5)
|
||||
Power up the target Sandpoint:
|
||||
If the BDM connections are correct, the following will now appear:
|
||||
|
||||
- TARGET: waiting for target Vcc
|
||||
- TARGET: waiting for target Vcc
|
||||
- TARGET: processing power-up delay
|
||||
- TARGET: processing user reset request
|
||||
- BDI asserts HRESET
|
||||
- Reset JTAG controller passed
|
||||
- Bypass check: 0x55 => 0xAA
|
||||
- Bypass check: 0x55 => 0xAA
|
||||
- JTAG exists check passed
|
||||
- Target PVR is 0x00810101
|
||||
- COP status is 0x01
|
||||
- Check running state passed
|
||||
- BDI scans COP freeze command
|
||||
- BDI removes HRESET
|
||||
- COP status is 0x05
|
||||
- Check stopped state passed
|
||||
- Check LSRL length passed
|
||||
- BDI sets breakpoint at 0xFFF00100
|
||||
- BDI resumes program execution
|
||||
- Waiting for target stop passed
|
||||
- TARGET: Target PVR is 0x00810101
|
||||
- TARGET: reseting target passed
|
||||
- TARGET: processing target startup ....
|
||||
- TARGET: processing target startup passed
|
||||
BDI>
|
||||
|
||||
|
||||
PART 6)
|
||||
Erase the current contents of the flash memory:
|
||||
|
||||
BDI>era 0xFFF00000
|
||||
Erasing flash at 0xfff00000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF04000
|
||||
Erasing flash at 0xfff04000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF06000
|
||||
Erasing flash at 0xfff06000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF08000
|
||||
Erasing flash at 0xfff08000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF10000
|
||||
Erasing flash at 0xfff10000
|
||||
Erasing flash passed
|
||||
BDI>era 0xFFF20000
|
||||
Erasing flash at 0xfff20000
|
||||
Erasing flash passed
|
||||
|
||||
|
||||
PART 7)
|
||||
Program the flash memory with the U-Boot image:
|
||||
|
||||
BDI>prog 0xFFF00000 u-boot.bin bin
|
||||
Programming u-boot.bin , please wait ....
|
||||
Programming flash passed
|
||||
|
||||
|
||||
PART 8)
|
||||
Connect PC to Sandpoint:
|
||||
Using a crossover serial cable, attach the PC serial port to the
|
||||
Sandpoint's COM1. Set communications parameters to 8N1 / 9600 baud.
|
||||
|
||||
|
||||
PART 9)
|
||||
Reset the Unity and begin U-Boot execution:
|
||||
|
||||
BDI>reset
|
||||
- TARGET: processing user reset request
|
||||
- TARGET: Target PVR is 0x00810101
|
||||
- TARGET: reseting target passed
|
||||
- TARGET: processing target init list ....
|
||||
- TARGET: processing target init list passed
|
||||
|
||||
BDI>go
|
||||
|
||||
Now see output from U-Boot running, sent via serial port:
|
||||
|
||||
U-Boot 1.1.4 (Jan 23 2002 - 18:29:19)
|
||||
|
||||
CPU: MPC8240 Revision 1.1 at 264 MHz: 16 kB I-Cache 16 kB D-Cache
|
||||
Board: Sandpoint 8240 Unity
|
||||
DRAM: 64 MB
|
||||
FLASH: 2 MB
|
||||
PCI: scanning bus0 ...
|
||||
bus dev fn venID devID class rev MBAR0 MBAR1 IPIN ILINE
|
||||
00 00 00 1057 0003 060000 13 00000008 00000000 01 00
|
||||
00 0b 00 10ad 0565 060100 10 00000000 00000000 00 00
|
||||
00 0f 00 8086 1229 020000 08 80000000 80000001 01 00
|
||||
In: serial
|
||||
Out: serial
|
||||
Err: serial
|
||||
=>
|
||||
|
||||
|
||||
PART 10)
|
||||
Set and save any required environmental variables, examples of some:
|
||||
|
||||
=> setenv ethaddr 00:03:47:97:D0:79
|
||||
=> setenv bootfile your_qnx_image_here
|
||||
=> setenv hostname sandpointX
|
||||
=> setenv netmask 255.255.255.0
|
||||
=> setenv ipaddr 192.168.0.11
|
||||
=> setenv serverip 192.168.0.10
|
||||
=> setenv gatewayip=192.168.0.1
|
||||
=> saveenv
|
||||
Saving Environment to Flash...
|
||||
Un-Protected 1 sectors
|
||||
Erasing Flash...
|
||||
done
|
||||
Erased 1 sectors
|
||||
Writing to Flash... done
|
||||
Protected 1 sectors
|
||||
=>
|
||||
|
||||
**** Example environment: ****
|
||||
|
||||
=> printenv
|
||||
baudrate=9600
|
||||
bootfile=telemetry
|
||||
hostname=sp1
|
||||
ethaddr=00:03:47:97:E4:6B
|
||||
load=tftp 100000 u-boot.bin
|
||||
update=protect off all;era FFF00000 FFF3FFFF;cp.b 100000 FFF00000 ${filesize};saveenv
|
||||
filesize=1f304
|
||||
gatewayip=145.17.228.1
|
||||
netmask=255.255.255.0
|
||||
ipaddr=145.17.228.42
|
||||
serverip=145.17.242.46
|
||||
stdin=serial
|
||||
stdout=serial
|
||||
stderr=serial
|
||||
|
||||
Environment size: 332/8188 bytes
|
||||
=>
|
||||
|
||||
here's some text useful stuff for cut-n-paste:
|
||||
setenv hostname sandpoint1
|
||||
setenv netmask 255.255.255.0
|
||||
setenv ipaddr 145.17.228.81
|
||||
setenv serverip 145.17.242.46
|
||||
setenv gatewayip 145.17.228.1
|
||||
saveenv
|
||||
|
||||
PART 11)
|
||||
Test U-Boot by tftp'ing new U-Boot, overwriting current:
|
||||
|
||||
=> protect off all
|
||||
Un-Protect Flash Bank # 1
|
||||
=> tftp 100000 u-boot.bin
|
||||
eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
|
||||
ARP broadcast 1
|
||||
TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
|
||||
gateway 145.17.228.1
|
||||
Filename 'u-boot.bin'.
|
||||
Load address: 0x100000
|
||||
Loading: #########################
|
||||
done
|
||||
Bytes transferred = 127628 (1f28c hex)
|
||||
=> era all
|
||||
Erase Flash Bank # 1
|
||||
done
|
||||
Erase Flash Bank # 2 - missing
|
||||
=> cp.b 0x100000 FFF00000 1f28c
|
||||
Copy to Flash... done
|
||||
=> saveenv
|
||||
Saving Environment to Flash...
|
||||
Un-Protected 1 sectors
|
||||
Erasing Flash...
|
||||
done
|
||||
Erased 1 sectors
|
||||
Writing to Flash... done
|
||||
Protected 1 sectors
|
||||
=> reset
|
||||
|
||||
You can put these commands into some environment variables;
|
||||
|
||||
=> setenv load tftp 100000 u-boot.bin
|
||||
=> setenv update protect off all\;era FFF00000 FFF3FFFF\;cp.b 100000 FFF00000 \${filesize}\;saveenv
|
||||
=> saveenv
|
||||
|
||||
Then you just have to type "run load" then "run update"
|
||||
|
||||
=> run load
|
||||
eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
|
||||
ARP broadcast 1
|
||||
TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
|
||||
gateway 145.17.228.1
|
||||
Filename 'u-boot.bin'.
|
||||
Load address: 0x100000
|
||||
Loading: #########################
|
||||
done
|
||||
Bytes transferred = 127748 (1f304 hex)
|
||||
=> run update
|
||||
Un-Protect Flash Bank # 1
|
||||
Un-Protect Flash Bank # 2
|
||||
Erase Flash from 0xfff00000 to 0xfff3ffff
|
||||
done
|
||||
Erased 7 sectors
|
||||
Copy to Flash... done
|
||||
Saving Environment to Flash...
|
||||
Un-Protected 1 sectors
|
||||
Erasing Flash...
|
||||
done
|
||||
Erased 1 sectors
|
||||
Writing to Flash... done
|
||||
Protected 1 sectors
|
||||
=>
|
||||
|
||||
|
||||
PART 12)
|
||||
Load OS image (ELF format) via U-Boot using tftp
|
||||
|
||||
|
||||
=> tftp 800000 sandpoint-simple.elf
|
||||
eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
|
||||
ARP broadcast 1
|
||||
TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
|
||||
gateway 145.17.228.1
|
||||
Filename 'sandpoint-simple.elf'.
|
||||
Load address: 0x800000
|
||||
Loading: #################################################################
|
||||
#################################################################
|
||||
#################################################################
|
||||
########################
|
||||
done
|
||||
Bytes transferred = 1120284 (11181c hex)
|
||||
==>
|
||||
|
||||
PART 13)
|
||||
Begin OS image execution: (note that unless you have the
|
||||
serial parameters of your OS image set to 9600 (i.e. same as
|
||||
the U-Boot binary) you will get garbage here until you change
|
||||
the serial communications speed.
|
||||
|
||||
=> bootelf 800000
|
||||
Loading @ 0x001f0100 (1120028 bytes)
|
||||
## Starting application at 0x001f1d28 ...
|
||||
Replace init_hwinfo() with a board specific version
|
||||
|
||||
Loading QNX6....
|
||||
|
||||
Header size=0x0000009c, Total Size=0x000005c0, #Cpu=1, Type=1
|
||||
<...loader and kernel messages snipped...>
|
||||
|
||||
Welcome to Neutrino on the Sandpoint
|
||||
#
|
||||
|
||||
|
||||
other information:
|
||||
|
||||
CVS Retrieval Notes:
|
||||
|
||||
U-Boot's SourceForge CVS repository can be checked out
|
||||
through anonymous (pserver) CVS with the following
|
||||
instruction set. The module you wish to check out must
|
||||
be specified as the modulename. When prompted for a
|
||||
password for anonymous, simply press the Enter key.
|
||||
|
||||
cvs -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot login
|
||||
|
||||
cvs -z6 -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot co -P u-boot
|
@ -1,12 +0,0 @@
|
||||
AmigaOne U-Boot and the SciTech emulator
|
||||
|
||||
The directory board/MAI/bios_emulator contains the source code
|
||||
of the SciTech x86 emulator. This emulator is normally available
|
||||
under a BSD license. However, SciTech kindly gave us permission
|
||||
to use their emulator in PPCBoot for the AmigaOne. It's available
|
||||
in this form only under GPL.
|
||||
|
||||
Thanks to Kendall Bennett and the rest of the team at SciTech.
|
||||
See http://www.scitechsoft.com for their web site
|
||||
|
||||
The GPL license can be found at http://www.gnu.org/licenses/gpl.html
|
@ -1,32 +0,0 @@
|
||||
Overview
|
||||
--------
|
||||
The P4080DS is a Freescale reference board that hosts the eight-core P4080 SOC.
|
||||
|
||||
SerDes hwconfig configuration
|
||||
-----------------------------
|
||||
The P4080 RCW includes three sets of bits the specify which SerDes lanes
|
||||
should be powered down: SRDS_LPD_B1 (for bank one), SRDS_LPD_B2 (for bank two),
|
||||
and SRDS_LPD_B3 (for bank three). Each of these contains four bits, one for
|
||||
each lane in the bank. SerDes Erratum SERDES8 requires that SRDS_LPD_B2 and
|
||||
SRDS_LPD_B3 be set to 0b1111. This forces banks two and three to be powered
|
||||
down at reset.
|
||||
|
||||
To re-enable these banks in U-Boot, two hwconfig are available:
|
||||
"fsl_srds_lpd_b2" and "fsl_srds_lpd_b3". The value passed via fsl_srds_lpd_b2
|
||||
is written into SRDS_LPD_B2, and the value passed via fsl_srds_lpd_b3 is into
|
||||
SRDS_LPD_B3. Each bit represents one of each bank, and a value of '1'
|
||||
indicates that the lane should be powered down.
|
||||
|
||||
For example, to indicate that both SerDes banks 2 and 3 are powered down, add
|
||||
the following to hwconfig:
|
||||
|
||||
serdes:fsl_srds_lpd_b2=0xf,fsl_srds_lpd_b3=0xf
|
||||
|
||||
The "0xf" is a mask that corresponds to the 4 lanes A-D. The most significant
|
||||
bit corresponds to lane A. To indicate that just lane A of bank 3 is to be
|
||||
powered down, use:
|
||||
|
||||
serdes:fsl_srds_lpd_b3=8
|
||||
|
||||
These options should be specified only if U-Boot does not automatically power
|
||||
on the correct lanes.
|
@ -1,164 +0,0 @@
|
||||
|
||||
Notes for the Qemu MIPS port
|
||||
|
||||
I) Example usage:
|
||||
|
||||
# ln -s u-boot.bin mips_bios.bin
|
||||
start it:
|
||||
qemu-system-mips -L . /dev/null -nographic
|
||||
|
||||
or
|
||||
|
||||
if you use a qemu version after commit 4224
|
||||
|
||||
create image:
|
||||
# dd of=flash bs=1k count=4k if=/dev/zero
|
||||
# dd of=flash bs=1k conv=notrunc if=u-boot.bin
|
||||
start it:
|
||||
# qemu-system-mips -M mips -pflash flash -monitor null -nographic
|
||||
|
||||
2) Download kernel + initrd
|
||||
|
||||
On ftp://ftp.denx.de/pub/contrib/Jean-Christophe_Plagniol-Villard/qemu_mips/
|
||||
you can downland
|
||||
|
||||
#config to build the kernel
|
||||
qemu_mips_defconfig
|
||||
#patch to fix mips interrupt init on 2.6.24.y kernel
|
||||
qemu_mips_kernel.patch
|
||||
initrd.gz
|
||||
vmlinux
|
||||
vmlinux.bin
|
||||
System.map
|
||||
|
||||
4) Generate uImage
|
||||
|
||||
# tools/mkimage -A mips -O linux -T kernel -C gzip -a 0x80010000 -e 0x80245650 -n "Linux 2.6.24.y" -d vmlinux.bin.gz uImage
|
||||
|
||||
5) Copy uImage to Flash
|
||||
# dd if=uImage bs=1k conv=notrunc seek=224 of=flash
|
||||
|
||||
6) Generate Ide Disk
|
||||
|
||||
# dd of=ide bs=1k cout=100k if=/dev/zero
|
||||
|
||||
# sfdisk -C 261 -d ide
|
||||
# partition table of ide
|
||||
unit: sectors
|
||||
|
||||
ide1 : start= 63, size= 32067, Id=83
|
||||
ide2 : start= 32130, size= 32130, Id=83
|
||||
ide3 : start= 64260, size= 4128705, Id=83
|
||||
ide4 : start= 0, size= 0, Id= 0
|
||||
|
||||
7) Copy to ide
|
||||
|
||||
# dd if=uImage bs=512 conv=notrunc seek=63 of=ide
|
||||
|
||||
8) Generate ext2 on part 2 on Copy uImage and initrd.gz
|
||||
|
||||
# Attached as loop device ide offset = 32130 * 512
|
||||
# losetup -o 16450560 -f ide
|
||||
# Format as ext2 ( arg2 : nb blocks)
|
||||
# mke2fs /dev/loop0 16065
|
||||
# losetup -d /dev/loop0
|
||||
# Mount and copy uImage and initrd.gz to it
|
||||
# mount -o loop,offset=16450560 -t ext2 ide /mnt
|
||||
# mkdir /mnt/boot
|
||||
# cp {initrd.gz,uImage} /mnt/boot/
|
||||
# Umount it
|
||||
# umount /mnt
|
||||
|
||||
9) Set Environment
|
||||
|
||||
setenv rd_start 0x80800000
|
||||
setenv rd_size 2663940
|
||||
setenv kernel BFC38000
|
||||
setenv oad_addr 80500000
|
||||
setenv load_addr2 80F00000
|
||||
setenv kernel_flash BFC38000
|
||||
setenv load_addr_hello 80200000
|
||||
setenv bootargs 'root=/dev/ram0 init=/bin/sh'
|
||||
setenv load_rd_ext2 'ide res; ext2load ide 0:2 ${rd_start} /boot/initrd.gz'
|
||||
setenv load_rd_tftp 'tftp ${rd_start} /initrd.gz'
|
||||
setenv load_kernel_hda 'ide res; diskboot ${load_addr} 0:2'
|
||||
setenv load_kernel_ext2 'ide res; ext2load ide 0:2 ${load_addr} /boot/uImage'
|
||||
setenv load_kernel_tftp 'tftp ${load_addr} /qemu_mips/uImage'
|
||||
setenv boot_ext2_ext2 'run load_rd_ext2; run load_kernel_ext2; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_ext2_flash 'run load_rd_ext2; run addmisc; bootm ${kernel_flash}'
|
||||
setenv boot_ext2_hda 'run load_rd_ext2; run load_kernel_hda; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_ext2_tftp 'run load_rd_ext2; run load_kernel_tftp; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_tftp_hda 'run load_rd_tftp; run load_kernel_hda; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_tftp_ext2 'run load_rd_tftp; run load_kernel_ext2; run addmisc; bootm ${load_addr}'
|
||||
setenv boot_tftp_flash 'run load_rd_tftp; run addmisc; bootm ${kernel_flash}'
|
||||
setenv boot_tftp_tftp 'run load_rd_tftp; run load_kernel_tftp; run addmisc; bootm ${load_addr}'
|
||||
setenv load_hello_tftp 'tftp ${load_addr_hello} /examples/hello_world.bin'
|
||||
setenv go_tftp 'run load_hello_tftp; go ${load_addr_hello}'
|
||||
setenv addmisc 'setenv bootargs ${bootargs} console=ttyS0,${baudrate} rd_start=${rd_start} rd_size=${rd_size} ethaddr=${ethaddr}'
|
||||
setenv bootcmd 'run boot_tftp_flash'
|
||||
|
||||
10) Now you can boot from flash, ide, ide+ext2 and tfp
|
||||
|
||||
# qemu-system-mips -M mips -pflash flash -monitor null -nographic -net nic -net user -tftp `pwd` -hda ide
|
||||
|
||||
II) How to debug U-Boot
|
||||
|
||||
In order to debug U-Boot you need to start qemu with gdb server support (-s)
|
||||
and waiting the connection to start the CPU (-S)
|
||||
|
||||
# qemu-system-mips -S -s -M mips -pflash flash -monitor null -nographic -net nic -net user -tftp `pwd` -hda ide
|
||||
|
||||
in an other console you start gdb
|
||||
|
||||
1) Debugging of U-Boot Before Relocation
|
||||
|
||||
Before relocation, the addresses in the ELF file can be used without any problems
|
||||
by connecting to the gdb server localhost:1234
|
||||
|
||||
# mipsel-unknown-linux-gnu-gdb u-boot
|
||||
GNU gdb 6.6
|
||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
GDB is free software, covered by the GNU General Public License, and you are
|
||||
welcome to change it and/or distribute copies of it under certain conditions.
|
||||
Type "show copying" to see the conditions.
|
||||
There is absolutely no warranty for GDB. Type "show warranty" for details.
|
||||
This GDB was configured as "--host=i486-linux-gnu --target=mipsel-unknown-linux-gnu"...
|
||||
(gdb) target remote localhost:1234
|
||||
Remote debugging using localhost:1234
|
||||
_start () at start.S:64
|
||||
64 RVECENT(reset,0) /* U-boot entry point */
|
||||
Current language: auto; currently asm
|
||||
(gdb) b board.c:289
|
||||
Breakpoint 1 at 0xbfc00cc8: file board.c, line 289.
|
||||
(gdb) c
|
||||
Continuing.
|
||||
|
||||
Breakpoint 1, board_init_f (bootflag=<value optimized out>) at board.c:290
|
||||
290 relocate_code (addr_sp, id, addr);
|
||||
Current language: auto; currently c
|
||||
(gdb) p/x addr
|
||||
$1 = 0x87fa0000
|
||||
|
||||
2) Debugging of U-Boot After Relocation
|
||||
|
||||
For debugging U-Boot after relocation we need to know the address to which
|
||||
U-Boot relocates itself to 0x87fa0000 by default.
|
||||
And replace the symbol table to this offset.
|
||||
|
||||
(gdb) symbol-file
|
||||
Discard symbol table from `/private/u-boot-arm/u-boot'? (y or n) y
|
||||
Error in re-setting breakpoint 1:
|
||||
No symbol table is loaded. Use the "file" command.
|
||||
No symbol file now.
|
||||
(gdb) add-symbol-file u-boot 0x87fa0000
|
||||
add symbol table from file "u-boot" at
|
||||
.text_addr = 0x87fa0000
|
||||
(y or n) y
|
||||
Reading symbols from /private/u-boot-arm/u-boot...done.
|
||||
Breakpoint 1 at 0x87fa0cc8: file board.c, line 289.
|
||||
(gdb) c
|
||||
Continuing.
|
||||
|
||||
Program received signal SIGINT, Interrupt.
|
||||
0xffffffff87fa0de4 in udelay (usec=<value optimized out>) at time.c:78
|
||||
78 while ((tmo - read_c0_count()) < 0x7fffffff)
|
Loading…
Reference in New Issue
Block a user