Module Name:    src
Committed By:   christos
Date:           Wed Jan 16 23:27:34 UTC 2013

Modified Files:
        src/distrib/utils/embedded: mkimage
        src/distrib/utils/embedded/conf: beagleboard.conf rpi.conf
Added Files:
        src/distrib/utils/embedded/conf: evbarm.conf

Log Message:
- Add support for xsets
- Factor out common evbarm code


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/distrib/utils/embedded/mkimage
cvs rdiff -u -r1.2 -r1.3 src/distrib/utils/embedded/conf/beagleboard.conf
cvs rdiff -u -r0 -r1.1 src/distrib/utils/embedded/conf/evbarm.conf
cvs rdiff -u -r1.8 -r1.9 src/distrib/utils/embedded/conf/rpi.conf

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/utils/embedded/mkimage
diff -u src/distrib/utils/embedded/mkimage:1.12 src/distrib/utils/embedded/mkimage:1.13
--- src/distrib/utils/embedded/mkimage:1.12	Wed Jan 16 10:58:19 2013
+++ src/distrib/utils/embedded/mkimage	Wed Jan 16 18:27:34 2013
@@ -1,7 +1,7 @@
 #! /bin/sh
 
-# $NetBSD: mkimage,v 1.12 2013/01/16 15:58:19 christos Exp $
-
+# $NetBSD: mkimage,v 1.13 2013/01/16 23:27:34 christos Exp $
+#
 # Copyright (c) 2012 Alistair Crooks <a...@netbsd.org>
 # All rights reserved.
 #
@@ -72,7 +72,7 @@ usage() {
 	cat << EOF 1>&2
 Usage: $PROG [-S <setsdir>] [-c <custom-files-dir>] [-h <host-arch>] [-s <size>]
 EOF
-exit 1
+	exit 1
 }
 
 # Return the filesystem size for an ls -l or tar -xvf list
@@ -174,9 +174,10 @@ makeffssize() {
 }
 
 finish() {
-    cleanup
-    ${sudo} umount ${mnt}
-    ${sudo} vnconfig -u ${vnddev}
+	cleanup
+	${sudo} umount ${mnt}
+	${sudo} vnconfig -u ${vnddev}
+	rm -fr ${mnt}
 }
 
 
@@ -188,6 +189,8 @@ mnt="${TMPDIR:-/tmp}/image.$$"
 src="/usr/src"
 obj="/usr/obj"
 
+sets="base comp etc games man misc modules text"
+xsets="xbase xcomp xetc xfont xserver"
 
 # Presumable block and fragment size.
 bsize=16384
@@ -225,7 +228,7 @@ do
 	c)	custom="$OPTARG";;
 	h)	;;
 	s)	size="$OPTARG";;
-	x)	set -x;;
+	x)	sets="$sets $xsets";;
 	*)	usage;;
 	esac
 done
@@ -242,10 +245,12 @@ fi
 # calculate the set bytes
 setbytes=0
 echo -n "${bar} computing set sizes ("
+b=
 for s in ${sets}; do
 	one="$(sizeone ${setsdir}/${s}.tgz)"
-	echo -n " $s=$(( ${one} / ${mtob} ))MB"
+	echo -n "$b$s=$(( ${one} / ${mtob} ))MB"
 	setbytes=$(( ${setbytes} +  ${one} ))
+	b=" "
 done
 echo "): $(( ${setbytes} / ${mtob} ))MB ${bar}"
 

Index: src/distrib/utils/embedded/conf/beagleboard.conf
diff -u src/distrib/utils/embedded/conf/beagleboard.conf:1.2 src/distrib/utils/embedded/conf/beagleboard.conf:1.3
--- src/distrib/utils/embedded/conf/beagleboard.conf:1.2	Mon Jan 14 21:51:10 2013
+++ src/distrib/utils/embedded/conf/beagleboard.conf	Wed Jan 16 18:27:34 2013
@@ -1,120 +1,33 @@
-# $NetBSD: beagleboard.conf,v 1.2 2013/01/15 02:51:10 jmcneill Exp $
+# $NetBSD: beagleboard.conf,v 1.3 2013/01/16 23:27:34 christos Exp $
 # BeagleBoard customization script used by mkimage
 #
 board=beagleboard
 kernelconf=BEAGLEBOARD
+kerneldir=$src/sys/arch/evbarm/compile/obj/${kernelconf}
+
+. ${DIR}/conf/evbarm.conf
+
 kernelimg=netbsd.ub
 loadaddr=81000000
-image=$HOME/${board}.img
 
-sets="base etc comp games man misc modules tests text"
-setsdir=$obj/evbarm/media
-kerneldir=$src/sys/arch/evbarm/compile/obj/${kernelconf}
-specialdirs="/kern /proc"
-
-swap=512
-size=2048
-overhead=8
-boot=112
-init=8
-msdosid=12
 
-tmp=/tmp/${board}.disklabel.$$
 
 make_filesystems() {
-
-	local asize=$(( ${size} * 1024 ))
-	local swapsize=$(( ${swap} * 1024 ))
-	local bootsize=$(( ${boot} * 1024 ))
-
-	local bootoffset=$((${init} * 1024 ))
-	local swapoffset=$(( ${bootoffset} + ${bootsize} ))
-	local aoffset=$(( ${swapoffset} + ${swapsize} ))
-
-	local totalsize=$(( ${asize} + ${swapsize} + ${bootsize} + ${bootoffset} ))
-	local bps=512
-	local spt=32
-	local tpc=64
-	local spc=2048
-	local cylinders=$(( ${totalsize} / ${spc} ))
-
-	cat > ${tmp} << EOF
-type: SCSI
-disk: STORAGE DEVICE
-label: fictitious
-flags: removable
-bytes/sector: ${bps}
-sectors/track: ${spt}
-tracks/cylinder: ${tpc}
-sectors/cylinder: ${spc}
-cylinders: ${cylinders}
-total sectors: ${totalsize}
-rpm: 3600
-interleave: 1
-trackskew: 0
-cylinderskew: 0
-headswitch: 0           # microseconds
-track-to-track seek: 0  # microseconds
-drivedata: 0 
-
-8 partitions:
-#     size         offset        fstype [fsize bsize cpg/sgs]
- a:   ${asize}     ${aoffset}    4.2BSD   2048 16384     0  # 
- b:   ${swapsize}  ${swapoffset} swap                       #
- d:   ${totalsize} 0             unused      0     0        #
- e:   ${bootsize}  ${bootoffset} MSDOS                      #
-EOF
-	${sudo} disklabel -R ${vnddev} ${tmp}
-	${sudo} fdisk -f -u -0 -s ${msdosid}/${bootoffset}/${bootsize} -F ${image}
-	${sudo} newfs /dev/r${vnddev}a
-	${sudo} newfs_msdos /dev/r${vnddev}e
-	${sudo} mount /dev/${vnddev}a ${mnt}
-	${sudo} mkdir ${mnt}/boot
-	${sudo} mount_msdos /dev/${vnddev}e ${mnt}/boot
+	make_filesystems_evbarm
 }
 
 make_fstab() {
-${sudo} cat > ${mnt}/etc/fstab << EOF
-# NetBSD /etc/fstab
-# See /usr/share/examples/fstab/ for more examples.
-/dev/ld0a	/		ffs	rw,log	1 1
-/dev/ld0b	none		swap	sw	0 0
-/dev/ld0e	/boot		msdos	rw	1 1
-kernfs		/kern		kernfs	rw
-ptyfs		/dev/pts	ptyfs	rw
-procfs		/proc		procfs	rw
-EOF
+	make_fstab_evbarm
 }
 
 customize() {
-
-	${sudo} cat >> ${mnt}/etc/rc.conf << EOF
-hostname=${board}
-sshd=YES
-dhcpcd=YES
-mdnsd=YES
-EOF
+	customize_evbarm
 
 	${sudo} cat > ${mnt}/boot/uEnv.txt << EOF
 loaduimage=fatload mmc 0 ${loadaddr} ${kernelimg}; bootm ${loadaddr} root=ld0a
 EOF
-
-	if [ ! -f ${kerneldir}/${kernelimg} ]; then
-		echo ${PROG}: Missing ${kerneldir}/${kernelimg} 1>&2
-		exit 1
-	fi
-	echo "${bar} installing kernel ${bar}"
-	${sudo} cp ${kerneldir}/${kernelimg} ${mnt}/boot
-
-	if [ ! -f ${mnt}/dev/MAKEDEV ]; then
-		echo ${PROG}: Missing ${mnt}/dev/MAKEDEV 1>&2
-		exit 1
-	fi
-	echo "${bar} running MAKEDEV ${bar}"
-	(cd ${mnt}/dev && ${sudo} sh MAKEDEV all)
 }
 
 cleanup() {
-    rm -f ${tmp}
-    ${sudo} umount ${mnt}/boot
+	cleanup_evbarm
 }

Index: src/distrib/utils/embedded/conf/rpi.conf
diff -u src/distrib/utils/embedded/conf/rpi.conf:1.8 src/distrib/utils/embedded/conf/rpi.conf:1.9
--- src/distrib/utils/embedded/conf/rpi.conf:1.8	Tue Jan 15 15:55:00 2013
+++ src/distrib/utils/embedded/conf/rpi.conf	Wed Jan 16 18:27:34 2013
@@ -1,98 +1,27 @@
-# $NetBSD: rpi.conf,v 1.8 2013/01/15 20:55:00 christos Exp $
+# $NetBSD: rpi.conf,v 1.9 2013/01/16 23:27:34 christos Exp $
 # Raspberry PI customization script used by mkimage
 #
-image=$HOME/rpi.img
 
-firmwaredir=$src/external/broadcom/rpi-firmware/dist
-firmwarefiles="LICENCE.broadcom bootcode.bin fixup.dat fixup_cd.dat start.elf start_cd.elf"
+board=rpi
+kernelconf=RPI
+kerneldir=$src/sys/arch/evbarm/compile/${kernelconf}
 
-sets="base etc comp games man misc modules text"
-setsdir=$obj/evbarm//media/evbarm/binary/sets/
-kerneldir=$src/sys/arch/evbarm/compile/RPI
-specialdirs="/kern /proc"
-
-swap=256
-extra=8		# spare space
-boot=112
-init=8
-
-size=0		# autocompute
-msdosid=12
-overhead=$(( ${swap} + ${extra} + ${init} + ${boot} ))
+. ${DIR}/conf/evbarm.conf
 
-tmp=/tmp/rpi.disklabel.$$
+firmwaredir=$src/external/broadcom/rpi-firmware/dist
+firmwarefiles="LICENCE.broadcom bootcode.bin fixup.dat fixup_cd.dat start.elf start_cd.elf"
 
 make_filesystems() {
-
-	local asize=$(( ${newsize} * 1024 ))
-	local swapsize=$(( ${swap} * 1024 ))
-	local bootsize=$(( ${boot} * 1024 ))
-
-	local bootoffset=$((${init} * 1024 ))
-	local swapoffset=$(( ${bootoffset} + ${bootsize} ))
-	local aoffset=$(( ${swapoffset} + ${swapsize} ))
-
-	local totalsize=$(( ${asize} + ${swapsize} + ${bootsize} + ${bootoffset} ))
-	local bps=512
-	local spt=32
-	local tpc=64
-	local spc=2048
-	local cylinders=$(( ${totalsize} / ${spc} ))
-
-	cat > ${tmp} << EOF
-type: SCSI
-disk: STORAGE DEVICE
-label: fictitious
-flags: removable
-bytes/sector: ${bps}
-sectors/track: ${spt}
-tracks/cylinder: ${tpc}
-sectors/cylinder: ${spc}
-cylinders: ${cylinders}
-total sectors: ${totalsize}
-rpm: 3600
-interleave: 1
-trackskew: 0
-cylinderskew: 0
-headswitch: 0           # microseconds
-track-to-track seek: 0  # microseconds
-drivedata: 0 
-
-8 partitions:
-#     size         offset        fstype [fsize bsize cpg/sgs]
- a:   ${asize}     ${aoffset}    4.2BSD  ${fsize} ${bsize} 0  # 
- b:   ${swapsize}  ${swapoffset} swap                         #
- d:   ${totalsize} 0             unused      0     0          #
- e:   ${bootsize}  ${bootoffset} MSDOS                        #
-EOF
-	${sudo} disklabel -R ${vnddev} ${tmp}
-	${sudo} fdisk -f -u -0 -s ${msdosid}/${bootoffset}/${bootsize} -F ${image}
-	${sudo} newfs /dev/r${vnddev}a
-	${sudo} newfs_msdos /dev/r${vnddev}e
-	${sudo} mount -o async /dev/${vnddev}a ${mnt}
-	${sudo} mkdir ${mnt}/boot
-	${sudo} mount_msdos /dev/${vnddev}e ${mnt}/boot
+	make_filesystems_evbarm
 }
 
 make_fstab() {
-${sudo} cat > ${mnt}/etc/fstab << EOF
-# NetBSD /etc/fstab
-# See /usr/share/examples/fstab/ for more examples.
-/dev/ld0a	/		ffs	rw,log	1 1
-/dev/ld0b	none		swap	sw	0 0
-/dev/ld0e	/boot		msdos	rw	1 1
-kernfs		/kern		kernfs	rw
-ptyfs		/dev/pts	ptyfs	rw
-procfs		/proc		procfs	rw
-EOF
+	make_fstab_evbarm
 }
 
 customize() {
-
-    ${sudo} cat >> ${mnt}/etc/rc.conf << EOF
-sshd=YES
-dhcpcd=YES
-mdnsd=YES
+	customize_evbarm
+	${sudo} cat >> ${mnt}/etc/rc.conf << EOF
 wscons=YES
 EOF
 
@@ -111,22 +40,8 @@ EOF
 	)
 	echo " ${bar}"
 
-	if [ ! -f ${kerneldir}/kernel.img ]; then
-		echo ${PROG}: Missing ${kerneldir}/kernel.img 1>&2
-		exit 1
-	fi
-	echo "${bar} installing kernel ${bar}"
-	${sudo} cp ${kerneldir}/kernel.img ${mnt}/boot
-
-	if [ ! -f ${mnt}/dev/MAKEDEV ]; then
-		echo ${PROG}: Missing ${mnt}/dev/MAKEDEV 1>&2
-		exit 1
-	fi
-	echo "${bar} running MAKEDEV ${bar}"
-	(cd ${mnt}/dev && ${sudo} sh MAKEDEV all)
 }
 
 cleanup() {
-    rm -f ${tmp}
-    ${sudo} umount ${mnt}/boot
+	cleanup_evbarm
 }

Added files:

Index: src/distrib/utils/embedded/conf/evbarm.conf
diff -u /dev/null src/distrib/utils/embedded/conf/evbarm.conf:1.1
--- /dev/null	Wed Jan 16 18:27:34 2013
+++ src/distrib/utils/embedded/conf/evbarm.conf	Wed Jan 16 18:27:34 2013
@@ -0,0 +1,109 @@
+# $NetBSD: evbarm.conf,v 1.1 2013/01/16 23:27:34 christos Exp $
+# evbarm shared config
+#
+image=$HOME/${board}.img
+
+setsdir=$obj/evbarm/media/evbarm/binary/sets/
+specialdirs="/kern /proc"
+
+swap=256
+extra=8		# spare space
+boot=112
+init=8
+
+size=0		# autocompute
+msdosid=12
+overhead=$(( ${swap} + ${extra} + ${init} + ${boot} ))
+
+tmp=/tmp/${board}.disklabel.$$
+
+make_filesystems_evbarm() {
+
+	local asize=$(( ${newsize} * 1024 ))
+	local swapsize=$(( ${swap} * 1024 ))
+	local bootsize=$(( ${boot} * 1024 ))
+
+	local bootoffset=$((${init} * 1024 ))
+	local swapoffset=$(( ${bootoffset} + ${bootsize} ))
+	local aoffset=$(( ${swapoffset} + ${swapsize} ))
+
+	local totalsize=$(( ${asize} + ${swapsize} + ${bootsize} + ${bootoffset} ))
+	local bps=512
+	local spt=32
+	local tpc=64
+	local spc=2048
+	local cylinders=$(( ${totalsize} / ${spc} ))
+
+	cat > ${tmp} << EOF
+type: SCSI
+disk: STORAGE DEVICE
+label: fictitious
+flags: removable
+bytes/sector: ${bps}
+sectors/track: ${spt}
+tracks/cylinder: ${tpc}
+sectors/cylinder: ${spc}
+cylinders: ${cylinders}
+total sectors: ${totalsize}
+rpm: 3600
+interleave: 1
+trackskew: 0
+cylinderskew: 0
+headswitch: 0           # microseconds
+track-to-track seek: 0  # microseconds
+drivedata: 0 
+
+8 partitions:
+#     size         offset        fstype [fsize bsize cpg/sgs]
+ a:   ${asize}     ${aoffset}    4.2BSD  ${fsize} ${bsize} 0  # 
+ b:   ${swapsize}  ${swapoffset} swap                         #
+ d:   ${totalsize} 0             unused      0     0          #
+ e:   ${bootsize}  ${bootoffset} MSDOS                        #
+EOF
+	${sudo} disklabel -R ${vnddev} ${tmp}
+	${sudo} fdisk -f -u -0 -s ${msdosid}/${bootoffset}/${bootsize} -F ${image}
+	${sudo} newfs /dev/r${vnddev}a
+	${sudo} newfs_msdos /dev/r${vnddev}e
+	${sudo} mount -o async /dev/${vnddev}a ${mnt}
+	${sudo} mkdir ${mnt}/boot
+	${sudo} mount_msdos /dev/${vnddev}e ${mnt}/boot
+}
+
+make_fstab_evbarm() {
+	${sudo} cat > ${mnt}/etc/fstab << EOF
+# NetBSD /etc/fstab
+# See /usr/share/examples/fstab/ for more examples.
+/dev/ld0a	/		ffs	rw,log	1 1
+/dev/ld0b	none		swap	sw	0 0
+/dev/ld0e	/boot		msdos	rw	1 1
+kernfs		/kern		kernfs	rw
+ptyfs		/dev/pts	ptyfs	rw
+procfs		/proc		procfs	rw
+EOF
+}
+
+customize_evbarm() {
+	${sudo} cat >> ${mnt}/etc/rc.conf << EOF
+sshd=YES
+dhcpcd=YES
+mdnsd=YES
+EOF
+	if [ ! -f ${kerneldir}/kernel.img ]; then
+		echo ${PROG}: Missing ${kerneldir}/kernel.img 1>&2
+		exit 1
+	fi
+	echo "${bar} installing kernel ${bar}"
+	${sudo} cp ${kerneldir}/kernel.img ${mnt}/boot
+
+	if [ ! -f ${mnt}/dev/MAKEDEV ]; then
+		echo ${PROG}: Missing ${mnt}/dev/MAKEDEV 1>&2
+		exit 1
+	fi
+	echo "${bar} running MAKEDEV ${bar}"
+	(cd ${mnt}/dev && ${sudo} sh MAKEDEV all)
+}
+
+cleanup_evbarm() {
+    rm -f ${tmp}
+    ${sudo} umount ${mnt}/boot
+}

Reply via email to