First upload the U-Boot firmware using Network (Transferring file over network) or Serial (Transferring file over serial)
This is a common serial transfer output:
=> loady
## Ready for binary (ymodem) download to 0xa0800000 at 115200 bps...
CCmode, 1359(SOH)/0(STX)/0(CAN) packets, 9 retries
## Total Size = 0x0002a388 = 172936 Bytes
Unprotect the bootloader flash area:
protect off C0000000 C003FFFF
Erase the flash blocks:
erase C0000000 C003FFFF
Copy from RAM to Flash: If firmware has been thansfered over serial:
cp.b A0800000 C0000000 2a388
If firmware has been transfered over tftp:
cp.b 100000 C0000000 2a388
Installing U-Boot using BDI3000
You can use a BDI2000/3000 to write to the S71WS256 pSRAM:
- Get this config file. Thanks to the folks at Ultimate Solutions for being such a nice people and writing an almost ready file!
- Edit the [FLASH] section to this:
[FLASH]
CHIPTYPE S29M32X16
CHIPSIZE 0x2000000
BUSWIDTH 16
FILE /home/lsantos/work/i.mx27/u-boot/u-boot-v2/uboot.bin ; change to you path
FORMAT BIN 0xC0000000
ERASE 0xC0000000
ERASE 0xC0008000
ERASE 0xC0018000
ERASE 0xC0010000
ERASE 0xC0020000
Don't forget to edit the [HOST] section to your machine's IP address.
- CONFIG: loading configuration file passed
- CONFIG: loading register definition passed
- TARGET: processing reset request
- TARGET: BDI asserts TRST and RESET
- TARGET: BDI removes TRST
- TARGET: Bypass check 0x00000001 => 0x00000002
- TARGET: JTAG exists check passed
- Core#0: ID code is 0x07926121
- TARGET: All ICEBreaker access checks passed
- TARGET: BDI removes RESET
- TARGET: BDI waits for RESET inactive
- TARGET: resetting target passed
- TARGET: processing target startup ....
- TARGET: processing target startup passed
ADS>erase
Erasing flash at 0xc0000000
Erasing flash at 0xc0008000
Erasing flash at 0xc0018000
Erasing flash at 0xc0010000
Erasing flash at 0xc0020000
Erasing flash passed
ADS>prog
Programming /home/lsantos/work/i.mx27/u-boot/u-boot-v2/uboot.bin , please wait ....
Programming flash passed
- Check everything went really well
ADS>verify
Verifying /home/lsantos/work/i.mx27/u-boot/u-boot-v2/uboot.bin , please wait ....
Verifying target memory passed
Now you can unplug the BDI and reset the board
U-Boot 2.0.0-rc9-00136-gbf725a2-dirty (Jun 17 2009 - 15:45:23)
Board: Freescale i.MX27 ADS
cfi_probe: cfi_flash base: 0xc0000000 size: 0x02000000
chip id: [2,882,1,01d]
mpll: 265999329 Hz
spll: 239999725 Hz
arm: 177332886 Hz
perclk1: 8866644 Hz
perclk2: 17733288 Hz
perclk3: 44333221 Hz
perclk4: 17733288 Hz
clkin26: 26000000 Hz
ahb: 44333221 Hz
ipg: 22166610 Hz
Malloc space: 0xa7b00000 -> 0xa7f00000 (size 4 MB)
Stack space : 0xa7af8000 -> 0xa7b00000 (size 32 kB)
envfs: wrong magic on /dev/env0
no valid environment found on /dev/env0. Using default environment
running /env/bin/init...
Hit any key to stop autoboot: 2
type update_kernel [<imagename>] to update kernel into flash
type udate_root [<imagename>] to update rootfs into flash
uboot:/
Of course, this setup works with Redboot, just change the FILE entry at the [FLASH] section or use the prog command:
ADS>prog 0xc0000000 /home/lsantos/work/i.mx27/redboot/build/install/bin/redboot.bin BIN
Programming /home/lsantos/work/i.mx27/redboot/build/install/bin/redboot.bin , please wait ....
Programming flash passed
ADS>verify
Verifying /home/lsantos/work/i.mx27/redboot/build/install/bin/redboot.bin , please wait ....
Verifying target memory passed
Rebooting
++... Read from 0x07ee0000-0x07f00000 at 0xc1fe0000: .
... Read from 0x07ed3000-0x07ed4000 at 0xc1fff000: .
**Warning** FLASH configuration checksum error or invalid key
Use 'fconfig -i' to [re]initialize database
PMIC ID: 0x0000009b [Rev: 3.3]
Ethernet FEC MAC address: is not set
Board Type: ADS
Clock input: 26 MHz
Booting from [NOR flash]
PHY ID 22 @ 1
FEC: [ HALF_DUPLEX ] [ disconnected ] [ 10M bps ]:
Ethernet eth0: MAC address 00:04:9f:00:af:7a
Can't get BOOTP info for device!
RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version FSL 200749 - built 19:37:28, Jun 17 2009
Platform: MX27 ADS/EVB (Freescale i.MX27 based) PASS 2.1 [x32 SDR]
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
RAM: 0x00000000-0x07f00000, [0x00025260-0x07ed1000] available
FLASH: 0xc0000000 - 0xc2000000, 256 blocks of 0x00020000 bytes each.
RedBoot>