From Fedora Project Wiki



OMAP5 uEVM notes

Fedora 20 uENV.txt:

setenv bootm_size 0x20000000
setenv bootargs console=${console} vram=${vram} root=LABEL=_/ ro rootwait rhgb
ext4load mmc 0:3 0x82000000 /boot/vmlinuz-3.14.0-0.rc6.git4.1.fc21.armv7hl
ext4load mmc 0:3 0x88080000 /boot/uInitrd-3.14.0-0.rc6.git4.1.fc21.armv7hl
ext4load mmc 0:3 0x88000000 /boot/dtb-3.14.0-0.rc6.git4.1.fc21.armv7hl/omap5-uevm.dtb
bootz 0x82000000 0x88080000 0x88000000

Hopefully this table of uEVM sysboot jumper cofigurations saves somebody time. I was forced to research these settings in the TI technical reference manual. The following is from a text file I keep in my homedir:



                     TI OMAP-5432 uEVM sysboot table
      --------------------------------------------------------------
      |        SYSBOOT [3:0]        |      BOOT DEVICE ORDER       |
      |-----------------------------|------------------------------|
      |   1    2    3    4   | 3210 | 1st      | 2nd     | 3rd     |
      |----------------------|------|----------|---------|---------|
    A |  off  off  off  off  | 0000 | USB      | eMMC    | N/A     | P
    B |   on  off  off  off  | 0001 | USB      | NAND    | N/A     | e
   *C |  off   on  off  off  | 0010 | USB      | SD      | eMMC    | r
    D |   on   on  off  off  | 0011 | USB      | SATA    | SD      | i
    E |  off  off   on  off  | 0100 | USB      | UART    | XIP     | p
    F |   on  off   on  off  | 0101 | UART     | OneNAND | N/A     | h
      |----------------------|------|------------------------------| e
    G |  off   on   on  off  | 0110 |           Reserved           | r
      |----------------------|------|------------------------------| a
    H |   on   on   on  off  | 0111 | Fast-XIP | UART    | USB     | l
      |----------------------|------|----------|---------|---------|
      |----------------------|------|----------|---------|---------|
    I |  off  off  off   on  | 1000 | eMMC     | USB     | N/A     | 
    J |   on  off  off   on  | 1001 | NAND     | USB     | N/A     | M
   *K |  off   on  off   on  | 1010 | SD       | eMMC    | USB     | e
   *L |   on   on  off   on  | 1011 | SATA     | SD      | USB     | m
    M |  off  off   on   on  | 1100 | XIP      | USB     | UART    | o
    N |   on  off   on   on  | 1101 | OneNAND  | UART    | N/A     | r
      |----------------------|------|------------------------------| y
    O |  off   on   on   on  | 1110 |           Reserved           |
      |----------------------|------|------------------------------|
    P |   on   on   on   on  | 1111 | Fast-XIP | UART    | USB     |
      --------------------------------------------------------------
         Reference: http://www.ti.com/lit/ug/swcu130/swcu130.pdf


Remarks:
 
 The most significant bit (jumper 4) broadly determines if the ROM looks for bootstrap from 
 'peripheral device' or 'memory device' on 1st boot device

 Configuration K is probably the most flexible configuration.

 Configurations that support an external SD card have been noted with *

Fedora 21/rawhide notes

Install MLO and u-boot on non-vfat image: WARNING: BETA NOTES


sudo dd if=MLO           \
        of=/dev/sdz      \
      conv=fsync,notrunc \
      seek=128k

sudo dd if=u-boot.img    \
        of=/dev/sdz      \
     count=2             \
      seek=1             \
      conv=notrunc,fsync \
        bs=384k


F20 notes

  • download the f20 minimal image
wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/armhfp/Fedora-Minimal-VFAT-armhfp-20-1-sda.raw.xz
  • Decompress
unxz -v Fedora-Minimal-VFAT-armhfp-20-1-sda.raw.xz


  • Map the partitions
kpartx -avp _fedora_  Fedora-Minimal-VFAT-armhfp-20-1-sda.raw


  • Extract the rootfs
dd if=/dev/mapper/loop0_fedora_3 \
   of=f20-minimal-rootfs.ext4    \
 conv=fsync


  • Unmap the partitions
kpartx -dvp _fedora_  Fedora-Minimal-VFAT-armhfp-20-1-sda.raw


  • Optionally discard the official Fedora minimal image, we now have the essential rootfs.


  • Shrink the rootfs image file
e2fsck    -f  f20-minimal-rootfs.ext4 &> /dev/null
resize2fs -M  f20-minimal-rootfs.ext4


  • Create a new f20 disk image file
truncate -s 2G f20-minimal.disk


  • Partition the newly created disk image
parted -s -- f20-minimal.disk mklabel msdos
parted -s -- f20-minimal.disk unit MiB mkpart primary fat16       4  24
parted -s -- f20-minimal.disk unit MiB mkpart primary linux-swap 24 152
parted -s -- f20-minimal.disk unit MiB mkpart primary ext2      152  -1
parted -s -- f20-minimal.disk set 1 boot on


  • Map the partitions to loop devices
kpartx -avp _remix_ f20-minimal.disk


  • Format the partitions accordingly to the output of the previous kpartx cmd.
mkfs.vfat -n uboot -F 16              /dev/mapper/loop0_remix_1

mkswap -L swap -U $(uuidgen)          /dev/mapper/loop0_remix_2

#mkfs.ext4 -L rootfs -U $(uuidgen) -m0 /dev/mapper/loop0_remix_3


  • Copy the Fedora-20 minimal rootfs to the appropriate partition
dd if=f20-minimal-rootfs.ext4   \
   of=/dev/mapper/loop0_remix_3 \
   bs=4M conv=fsync 


  • Inflate the rootfs on the partition
resize2fs -fp /dev/mapper/loop0_remix_3


  • Unmap the partition loops devs
kpartx -dvp _remix_ f20-minimal.disk

Tips & Tricks

You can monitor the DD command in an easy one liner.

dd if=/dev/sdc3 of=f20-minimal-rootfs.ext4-ORIG &   while ps -p $! ; do kill -USR1 $! ; sleep 5 ; done

This signals the DD process to spew progress info every five seconds. Especially useful on very slow sdcard, or large data transfers.


Use fsync with DD to avoid potentially dangerous filesystem buffer cache issues. My computers have large amounts of memory, and it is possible an entire file would be buffered into filesystem cache. The effect is the DD write operation appearing to finish very fast, but the filesystem empty the buffer/cache in the background asynchronously. This is like typing "sync" after the DD command, but instead happens during writes.


dd if=/dev/foo
   of=/dev/bar
 conv=[fsync|fdatasync]