i.MX6x SABRE Lite Mainline U-Boot

ARM Cross Compiler: GCC

This is a 32bit x86 application, so 64bit users will need to also install the 32bit libraries for their distribution. (ubuntu: ia32-libs)

wget https://launchpad.net/linaro-toolchain-binaries/trunk/2013.03/+download/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2
tar xjf gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2
export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-

Bootloader: U-Boot

Das U-Boot – the Universal Boot Loader WebHome < U-Boot < DENX

Download:

git clone git://git.denx.de/u-boot.git
cd u-boot/
git checkout v2013.04 -b tmp

Configure and Build:

make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} mx6qsabrelite_config
make ARCH=arm CROSS_COMPILE=${CC}

Initial boot: Upgrade Bootloader

Bootloader: factory v2009.08.bin → mainline u-boot.imx
using: SD media

setenv mmcdev 0

using: microSD media

setenv mmcdev 1

Load mainline u-boot and flash to SPI

mmc dev ${mmcdev}
ext2load mmc ${mmcdev}:1 0x10800000 u-boot.imx
sf probe 1 27000000
sf erase 0 0xc0000
sf write 0x10800000 0x400 ${filesize}

For reference: mainline → mainline

mmc dev ${mmcdev}
ext2load mmc ${mmcdev}:1 0x10800000 u-boot.imx
sf probe
sf erase 0 0xc0000
sf write 0x10800000 0x400 ${filesize}

SPI Flashing Log:

MX6Q SABRELITE U-Boot > setenv mmcdev 0
MX6Q SABRELITE U-Boot > mmc dev ${mmcdev}
mmc0 is current device
MX6Q SABRELITE U-Boot > ext2load mmc ${mmcdev}:1 0x10800000 u-boot.imx
Loading file "u-boot.imx" from mmc device 0:1 (xxa1)
329208 bytes read
MX6Q SABRELITE U-Boot > sf probe 1 27000000
JEDEC ID: 0xbf:0x25:0x41
2048 KiB SST25VF016B - 2MB at 0:1 is now current device
MX6Q SABRELITE U-Boot > sf erase 0 0xc0000
Erasing SPI NOR flash 0x0 [0xc0000 bytes]
.........................................................................
.........................................................................
..............................................SUCCESS
MX6Q SABRELITE U-Boot > sf write 0x10800000 0x400 ${filesize}
Writing SPI NOR flash 0x400 [0x505f8 bytes] <- ram 0x10800000
.....SUCCESS
MX6Q SABRELITE U-Boot >

Reset by unplugging/plugging in power…

SPI Downgrade

Bootloader: mainline u-boot.imx → factory v2009.08.bin
using: SD media

setenv mmcdev 0

using: microSD media

setenv mmcdev 1

Load factory u-boot and flash to SPI

mmc dev ${mmcdev}
ext2load mmc ${mmcdev}:1 0x10800000 v2009.08.bin
sf probe
sf erase 0 0xc0000
sf write 0x10800000 0x400 ${filesize}

SPI Flashing Log:


MX6QSABRELITE U-Boot > setenv mmcdev 0
MX6QSABRELITE U-Boot > mmc dev ${mmcdev}
mmc0 is current device
MX6QSABRELITE U-Boot > ext2load mmc ${mmcdev}:1 0x10800000 v2009.08.bin
210916 bytes read in 45 ms (4.5 MiB/s)
MX6QSABRELITE U-Boot > sf probe
SF: Detected SST25VF016B with page size 4 KiB, total 2 MiB
MX6QSABRELITE U-Boot > sf erase 0 0xc0000
MX6QSABRELITE U-Boot > sf write 0x10800000 0x400 ${filesize}
MX6QSABRELITE U-Boot >

Reset by unplugging/plugging in power…

SPI Flash Recovery

i.MX6x SABRE Lite SPI Flash Recovery

Comments

Any questions or comments please go to our TechForum: TechForum