Installing U-Boot on i.MX27ADS

Document created by jesseg Employee on Aug 15, 2012Last modified by Jodi Paul on May 1, 2013
Version 3Show Document
  • View in full screen mode

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.

  • Telnet to the BDI
- 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
  • Erase the first 128 KiB
 
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
  • Write the flash
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>


Attachments

    Outcomes