bc10
bc10-router

bc10-router/arago-project(danny)/NAND boot

This article explains how to boot arago-console-image from NAND of bc10. The details of how to create arago-console-image is listed at bc10-router/arago-project(danny)/Ubuntu12.04LTS.

There are roughly three steps to crate and to configure the image for NAND boot.

The different steps for creating and configuring processes require different development environments. These development environments are already used and Their details are discussed at bc10-router/arago-projct(danny)/Ubunt12.04LTS.

  • Ubuntu 12.04 LTS
  • bc10 arago-console image
  • bc10 u-boot

Ubuntu 12.04 LTS part

The processes shown below are done on Ubuntu 12.04LTS.

The ubi file should be configured and recreated for booting from NAND. The creating process of the ubi file is described at at bc10-router/arago-project(danny)/Ubuntu12.04LTS.

The reason why recreating the ubi file is that the original ubi file, which has been build at at [bc10-router/arago-project(danny)/Ubuntu12.04LTS]], does not have certain data and cannot allow bc10 to boot from NAND.

To recreating the uni file, mtd-utils is added.

$ sudo apt-get install mtd-utils

The ubi file of arago-console-image is renamed to rootfs.ubi.

$ cd /home/beat/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images
$ cp arago-console-image-beagleboard-20140131034334.rootfs.ubi rootfs.ubi

To recreate the ubi file, ubinize.cfg is modified as shown below. Then, the new ubi file is recreated. The recreated ubi file is copied to Ext4 area ( its directory is /media/EXT3) of a SD card, which is already formatted for working with bc10.

$ diff -upN __ubinize.cfg_orig ubinize.cfg
--- __ubinize.cfg_orig  2014-02-06 14:52:27.473188696 +0900
+++ ubinize.cfg 2014-02-06 14:52:48.297189782 +0900
@@ -3,5 +3,5 @@ mode=ubi
 image=/home/beat/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images/arago-console-image-beagleboard-20140131034334.rootfs.ubifs
 vol_id=0
 vol_type=dynamic
-vol_name=beagleboard-rootfs
+vol_name=rootfs
 vol_flags=autoresize

$ sudo ubinize -v -o rootfs.ubi -m 2048 -p 128KiB -s 512 ubinize.cfg
$ sudo cp rootfs.ubi /media/EXT3/.

bc10 arago-console-image part

Boot bc10 with the SD card, which rootfs.ubi has already been copied to. Check the size of NAND partition, then copy uImage and rootfs.ubi into NAND.

Checking NAND Partition
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "X-Loader"
mtd1: 001e0000 00020000 "U-Boot"
mtd2: 00020000 00020000 "U-Boot Env"
mtd3: 00400000 00020000 "Kernel"
mtd4: 1f980000 00020000 "File System"

Copying uImage
# cd /boot/
root@beagleboard:/boot# ls
uImage        uImage-3.3.7
root@beagleboard:/boot# flash_erase /dev/mtd3 0 0
Erasing 128 Kibyte @ 3e0000 -- 100 % complete
# nandwrite -p /dev/mtd3 uImage
Writing data to block 0 at offset 0x0
Writing data to block 1 at offset 0x20000
...<snip>
Writing data to block 26 at offset 0x340000

Copying rootfs.ubi
# ubiformat -y /dev/mtd4 -f rootfs.ubi
ubiformat: mtd4 (nand), size 530055168 bytes (505.5 MiB), 4044 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 4043 -- 100 % complete
ubiformat: 4039 eraseblocks are supposedly empty
ubiformat: 5 bad eraseblocks found, numbers: 89, 107, 731, 881, 2852
ubiformat: flashing eraseblock 321 -- 100 % complete
ubiformat: formatting eraseblock 4043 -- 100 % complete
After this process is completed, bc10 is rebooted and the prompts of u-boot are started.~

bc10 u-boot part

To use the prompts of u-boot, write down MLO and uboot.img on NAND.

Copying MLO
OMAP3 beagleboard.org # mmc rescan 0
OMAP3 beagleboard.org # fatload mmc 0 ${loadaddr} MLO
reading MLO

44580 bytes read
OMAP3 beagleboard.org # nandecc hw
HW ECC selected
OMAP3 beagleboard.org # nand erase 0 80000

NAND erase: device 0 offset 0x0, size 0x80000
Erasing at 0x60000 -- 100% complete.
OK
OMAP3 beagleboard.org # nand write ${loadaddr} 0 ${filesize}

NAND write: device 0 offset 0x0, size 0xae24
 44580 bytes written: OK
OMAP3 beagleboard.org # nand write ${loadaddr} 20000 ${filesize}

NAND write: device 0 offset 0x20000, size 0xae24
 44580 bytes written: OK
OMAP3 beagleboard.org # nand write ${loadaddr} 40000 ${filesize}

NAND write: device 0 offset 0x40000, size 0xae24
 44580 bytes written: OK
OMAP3 beagleboard.org # nand write ${loadaddr} 60000 ${filesize}

NAND write: device 0 offset 0x60000, size 0xae24
 44580 bytes written: OK

Copying u-boot.img
OMAP3 beagleboard.org # mmc rescan 0
OMAP3 beagleboard.org # fatload mmc 0 ${loadaddr} u-boot.img
reading u-boot.img

336184 bytes read
OMAP3 beagleboard.org # nandecc hw
HW ECC selected
OMAP3 beagleboard.org # nand erase 80000 1c0000

NAND erase: device 0 offset 0x80000, size 0x1c0000
Erasing at 0x220000 -- 100% complete.
OK
OMAP3 beagleboard.org # nand write ${loadaddr} 80000 ${filesize}

NAND write: device 0 offset 0x80000, size 0x52138
 336184 bytes written: OK
OMAP3 beagleboard.org #

This is the end of writing down NAND Boot to bc10.

Turn off bc10 and to remove the SD card, then, restart bc10.
Make sure that bc10 can be booted without the SD card, which does contain NAND Boot.

Caution: If the file is copied to NAND correctly, the error massage appears when it is booted.

uncorrectable error :

When the error message shows up, restart bc10. Or, turn off the power of bc10 once, then turn on and start bc10 again.

Failure of writing down to NAND and How to turn back to SD boot

If you fail to write down to NAND or if you wish to turn back to boot from a SD Card, please remove the data, which has been stored in the NAND. Please use the u-boot prompt below.

 # nand erase.chip

To check whether the data in NAND is successfully removed or not, first turn off the power of bc10 and bc10, then, restart bc10. If the data is erased from NAND, the following message appears.

40w

bc10 NAND Boot Log

These is a part of log, which is created when bc10 is booted form NAND Boot.

U-Boot SPL 2012.04.01 (Jan 28 2014 - 19:49:35)
...<snip>...
Booting from nand ...

NAND read: device 0 offset 0x280000, size 0x400000
 4194304 bytes read: OK
## Booting kernel from Legacy Image at 80007fc0 ...
   Image Name:   Linux-3.3.7
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3413048 Bytes = 3.3 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK

Starting kernel ...
...<snip>...
[    0.944183] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc (Micron NAND 512MiB 1,8V 16-bit)
[    0.954223] Creating 5 MTD partitions on "omap2-nand.0":
[    0.959808] 0x000000000000-0x000000080000 : "X-Loader"
[    0.966796] 0x000000080000-0x000000260000 : "U-Boot"
[    0.974029] 0x000000260000-0x000000280000 : "U-Boot Env"
[    0.980926] 0x000000280000-0x000000680000 : "Kernel"
[    0.989013] 0x000000680000-0x000020000000 : "File System"
[    1.199310] UBI: attaching mtd4 to ubi0
[    1.203338] UBI: physical eraseblock size:   131072 bytes (128 KiB)
[    1.209960] UBI: logical eraseblock size:    129024 bytes
[    1.215667] UBI: smallest flash I/O unit:    2048
[    1.220642] UBI: sub-page size:              512
[    1.225494] UBI: VID header offset:          512 (aligned 512)
[    1.231628] UBI: data offset:                2048
[    2.183929] UBI: max. sequence number:       10
[    2.202484] UBI: attached mtd4 to ubi0
[    2.206512] UBI: MTD device name:            "File System"
[    2.212310] UBI: MTD device size:            505 MiB
[    2.217529] UBI: number of good PEBs:        4039
[    2.222473] UBI: number of bad PEBs:         5
[    2.227142] UBI: number of corrupted PEBs:   0
[    2.231842] UBI: max. allowed volumes:       128
[    2.236694] UBI: wear-leveling threshold:    4096
[    2.241638] UBI: number of internal volumes: 1
[    2.246337] UBI: number of user volumes:     1
[    2.251007] UBI: available PEBs:             0
[    2.255676] UBI: total number of reserved PEBs: 4039
[    2.260925] UBI: number of PEBs reserved for bad PEB handling: 40
[    2.267333] UBI: max/mean erase counter: 1/0
[    2.271820] UBI: image sequence number:  86612789
[    2.277465] usbcore: registered new interface driver catc 
...<snip>...
[    5.085510] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    5.126647] UBIFS: recovery needed
[    5.227508] UBIFS: recovery completed
[    5.231384] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    5.237731] UBIFS: file system size:   256112640 bytes (250110 KiB, 244 MiB, 1985 LEBs)
[    5.246185] UBIFS: journal size:       9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
[    5.253875] UBIFS: media format:       w4/r0 (latest is w4/r0)
[    5.260040] UBIFS: default compressor: lzo
[    5.264343] UBIFS: reserved for root:  0 bytes (0 KiB)
[    5.270599] VFS: Mounted root (ubifs filesystem) on device 0:14.
[    5.277740] devtmpfs: mounted
[    5.281372] Freeing init memory: 216K
INIT: version 2.88 booting
...<snip>...
Stopping Bootlog daemon: bootlogd.

 _____                    _____           _         _
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
              |___|                    |___| 

Arago Project http://arago-project.org beagleboard ttyO2

Arago 2013.06 beagleboard ttyO2

beagleboard login:

Revision History

  • 2014/02/17 This article is initially published

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   RSS of recent changes
Last-modified: 2014-02-17 (Mon) 11:34:17 (1765d)