Personal tools

How to write image to VisionSOM-6ULL NAND memory using UUU tool on Linux

From SomLabs Wiki

Jump to: navigation, search

How to write image to VisionSOM-6ULL NAND memory using UUU tool on Linux


Prerequisites

  • PC with Linux Ubuntu 16.04 or newer
  • A complete package with NXP UUU application
  • vsom-6ull-fb.bin - u-boot binary file to be programmed into target (from the complete package above or generated by yourself)
  • rootfs.ubi - root file system image (generated by yourself)

Information

  • SOMLABS solution is based on NXP UUU tool, with some extensions added on top of it to easly handle SOMLABS boards.
  • You can use different file names than default (u-boot-dtb.imx, rootfs.ubi) - those names are just a example.
  • Please note also, that file can be located in any directory - you need to specify complete file path then.
  • If you are using VisionSOM module with i.MX6UL processor, please change in commands given below '6ull' to '6ul'
  • Default NAND paritions layout for 4M boot variant (remaining NAND area is used for root file system by default):
VCB UUU flasher NAND map.png

Preparing

For programming a memory of VisionSOM-6ULL, switch boot selector to mode: SERIAL.

BOOTx Boot Mode
BOOT1 BOOT0
1 1 Reserved
1 0 Internal
0 1 Serial
0 0 Fuses

Join the VisionCB-STD board to the host PC using microUSB cable connected to the USB-OTG connector. To observe progress/error reports during programming, please use serial console. If you are using standard VisionSOM carrier board, this can be done by using build in serial/usb converter.

Programming VisionSOM NAND Flash memory

Make UUU executable:

chmod 755 uuu

For memory programing, use command:

sudo ./uuu -b vsom_6ull_nand_flasher vsom-6ull-fb.bin rootfs.ubi

(while: vsom-6ull-fb.bin - u-boot binaries; rootfs.ubi - user root filesystem)

At the console, a progress bar will appear:

VCB UUU Linux flashing progress bar NAND.png

The serial terminal output will look like this:

U-Boot 2018.03-00022-g23f402fe9c-dirty (May 27 2019 - 23:52:18 +0200)

CPU:   Freescale i.MX6ULL rev1.0 792 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 49C
Reset cause: POR
Model: SoMLabs VisionSOM-6ULL
Board: SomLabs VisionSOM-6ULL
DRAM:  512 MiB
board_fix_fdt(): boot device: 14, fdt@8789ed8c
fdt_enable_by_ofname(): enabling node [/soc/gpmi-nand@01806000] @00001080...result: 0
SomLabs VisionSOM-6ULL - configuring NAND interface...
NAND:  512 MiB
MMC:
No panel detected: default to SL-TFT7-TP
Display: SL-TFT7-TP (800x480)
Video: 800x480x24
Attempt to read outside the flash area
In:    serial
Out:   serial
Err:   serial
board_late_init()
Fastboot: Normal
Boot from USB for uuu
Hit any key to stop autoboot:  0
Starting download of 687104 bytes
.....
downloading of 687104 bytes finished
imxkobs: Image header:
    header: 402000D1
 boot_data: 877FF420
  dcd_addr: 877FF42C
      self: 877FF400
       csf: 00000000
 boot_data@ 80800020
     start: 877FF000
    length: 000A8000
do_imxkobs(): max_boot_stream_size_in_bytes = 1048576, boot_stream_size_in_bytes = 688128, boot_stream_size_in_pages = 168
do_imxkobs(): fw#1 0x00100000 - 0x00200000 (0x001a8000)
do_imxkobs(): fw#2 0x00200000 - 0x00300000 (0x002a8000)
do_imxkobs(): fcb checksum: FFFFFA7E
do_imxkobs(): erasing boot area...
do_imxkobs(): writing firmware image copy 1...
do_imxkobs(): writing firmware image copy 2...
do_imxkobs(): writing DBBT header...
do_imxkobs(): writing DBBT data...
do_imxkobs(): writing FCB...
  writing fcb[0] @ 00000000
  writing fcb[1] @ 00080000
do_imxkobs(): done
Starting download of 47185920 bytes
..........................................................................
..........................................................................
..........................................................................
..........................................................................
................................................................
downloading of 47185920 bytes finished

NAND erase.part: device 0 offset 0x400000, size 0x1fc00000
Skipping bad block at  0x1ff00000
Skipping bad block at  0x1ff40000
Skipping bad block at  0x1ff80000
Skipping bad block at  0x1ffc0000

OK

NAND write: device 0 offset 0x400000, size 0x2d00000
 47185920 bytes written: OK
resetting ...

If the process ends with success, a properly information will show on the console:

VCB UUU Linux flashing done NAND.png

The SoM will not boot due to present boot selector setup. Revert the boot selector back to: INTERNAL and press RESET. The board should start booting.

NXP Partner ST Partner Renesas Partner