summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Korsgaard <peter@korsgaard.com>2016-02-26 15:55:43 +0100
committerPeter Korsgaard <peter@korsgaard.com>2016-02-26 15:56:12 +0100
commit16fc95d5a1409432bde812edb26f0850e66023bd (patch)
treef8374b14f72f289539868aa03fd97cfaddbd3e59
parent55fad2b5b669160696fb3a15309ad98523b24d9b (diff)
pandabord: use genimage to generate sdcard image
And drop the manual sdcard generation description from the readme. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--board/pandaboard/genimage.cfg26
-rwxr-xr-xboard/pandaboard/post-image.sh16
-rw-r--r--board/pandaboard/readme.txt48
-rw-r--r--configs/pandaboard_defconfig3
4 files changed, 54 insertions, 39 deletions
diff --git a/board/pandaboard/genimage.cfg b/board/pandaboard/genimage.cfg
new file mode 100644
index 000000000..f30033f02
--- /dev/null
+++ b/board/pandaboard/genimage.cfg
@@ -0,0 +1,26 @@
+image boot.vfat {
+ vfat {
+ files = {
+ "MLO",
+ "u-boot.img"
+ }
+ }
+ size = 8M
+}
+
+image sdcard.img {
+ hdimage {
+ }
+
+ partition boot {
+ partition-type = 0xC
+ bootable = "true"
+ image = "boot.vfat"
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ image = "rootfs.ext4"
+ size = 512M
+ }
+}
diff --git a/board/pandaboard/post-image.sh b/board/pandaboard/post-image.sh
new file mode 100755
index 000000000..9cca1b178
--- /dev/null
+++ b/board/pandaboard/post-image.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+BOARD_DIR="$(dirname $0)"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+
+rm -rf "${GENIMAGE_TMP}"
+
+genimage \
+ --rootpath "${TARGET_DIR}" \
+ --tmppath "${GENIMAGE_TMP}" \
+ --inputpath "${BINARIES_DIR}" \
+ --outputpath "${BINARIES_DIR}" \
+ --config "${GENIMAGE_CFG}"
+
+exit $?
diff --git a/board/pandaboard/readme.txt b/board/pandaboard/readme.txt
index e18ae5236..1e4820b82 100644
--- a/board/pandaboard/readme.txt
+++ b/board/pandaboard/readme.txt
@@ -28,49 +28,19 @@ The result of the build with the default settings should be these files:
├── omap4-panda.dtb
├── omap4-panda-es.dtb
├── rootfs.ext4
+ ├── sdcard.img
├── u-boot.img
└── zImage
-Setting up your SD card
------------------------
+How to write the SD card
+------------------------
-*Important*: pay attention which partition you are modifying so you don't
-accidentally erase the wrong file system, e.g your host computer or your
-external storage!
+Once the build process is finished you will have an image called "sdcard.img"
+in the output/images/ directory.
-In the default setup you need to create two partitions on your SD card:
-a boot partition and a rootfs partition.
+Copy the bootable "sdcard.img" onto an SD card with "dd":
-The ROM code from OMAP processors need the SD card to be formatted with
-a special geometry in the partition table. To do that, you can use the
-shell script below (this script was extracted from
-http://elinux.org/Panda_How_to_MLO_%26_u-boot).
+ $ sudo dd if=output/images/sdcard.img of=/dev/sdX
-#!/bin/sh
-DRIVE=$1
-if [ -b "$DRIVE" ] ; then
- dd if=/dev/zero of=$DRIVE bs=1024 count=1024
- SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
- echo DISK SIZE - $SIZE bytes
- CYLINDERS=`echo $SIZE/255/63/512 | bc`
- echo CYLINDERS - $CYLINDERS
- {
- echo ,9,0x0C,*
- echo ,,,-
- } | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE
- mkfs.vfat -F 32 -n "boot" ${DRIVE}1
- mke2fs -j -L "rootfs" ${DRIVE}2
-fi
-
-The next step is to mount the sdcard's first partition and copy MLO
-and u-boot.img to it.
-
- $ sudo mkdir -p /mnt/sdcard
- $ sudo mount /dev/sdX1 /mnt/sdcard
- $ sudo cp MLO u-boot.img /mnt/sdcard
- $ sudo umount /mnt/sdcard
-
-The last step is to copy the rootfs image to the sdcard's second
-partition using 'dd':
-
- $ sudo dd if=rootfs.ext4 of=/dev/sdX2 bs=1M conv=fsync
+Where /dev/sdX is the device node of your SD card (may be /dev/mmcblkX
+instead depending on setup).
diff --git a/configs/pandaboard_defconfig b/configs/pandaboard_defconfig
index c217d3b14..7ae1a5086 100644
--- a/configs/pandaboard_defconfig
+++ b/configs/pandaboard_defconfig
@@ -4,6 +4,7 @@ BR2_ARM_ENABLE_NEON=y
BR2_ARM_ENABLE_VFP=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyO2"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pandaboard/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.3"
@@ -23,3 +24,5 @@ BR2_TARGET_UBOOT_BOARD_DEFCONFIG="omap4_panda"
BR2_TARGET_UBOOT_FORMAT_IMG=y
BR2_TARGET_UBOOT_SPL=y
BR2_TARGET_UBOOT_SPL_NAME="MLO"
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y