rpi_inst.conf revision 1.7
1# $NetBSD: rpi_inst.conf,v 1.7 2015/04/19 18:28:31 hubertf Exp $
2# Raspberry Pi customization script used by mkimage
3#
4
5board=rpi_inst
6kernel=$src/sys/arch/evbarm/compile/RPI/netbsd-RPI_INSTALL.bin
7
8. ${DIR}/conf/evbarm.conf
9
10image=$HOME/${board}.img
11
12swap=8
13extra=8		# spare space
14boot=112
15init=8
16
17size=$(( 10485760 + ${swap} * 1024 * 512 + ${boot} * 1024 * 512 + ${init} * 1024 * 512 ))
18msdosid=12
19
20make_label_evbarm() {
21	# compute all sizes in terms of sectors
22	local totalsize=$(( ${newsize} * 1024 * 2 / 512 ))
23
24	local swapsize=$(( ${swap} * 1024 ))
25	local bootsize=$(( ${boot} * 1024 ))
26
27	local bootoffset=$(( ${init} * 1024 ))
28	local swapoffset=$(( ${bootoffset} + ${bootsize} ))
29
30	local asize=$(( ${totalsize} - ${swapsize} - ${bootsize} - ${bootoffset} ))
31	local aoffset=$(( ${swapoffset} + ${swapsize} ))
32
33	local bps=512
34	local spt=32
35	local tpc=64
36	local spc=2048
37	local cylinders=$(( ${totalsize} / ${spc} ))
38
39	cat << EOF
40type: SCSI
41disk: STORAGE DEVICE
42label: fictitious
43flags: removable
44bytes/sector: ${bps}
45sectors/track: ${spt}
46tracks/cylinder: ${tpc}
47sectors/cylinder: ${spc}
48cylinders: ${cylinders}
49total sectors: ${totalsize}
50rpm: 3600
51interleave: 1
52trackskew: 0
53cylinderskew: 0
54headswitch: 0           # microseconds
55track-to-track seek: 0  # microseconds
56drivedata: 0 
57
588 partitions:
59#     size         offset        fstype [fsize bsize cpg/sgs]
60 a:   ${asize}     ${aoffset}    4.2BSD  ${fsize} ${bsize} 0  # 
61 b:   ${swapsize}  ${swapoffset} swap                         #
62 d:   ${totalsize} 0             unused      0     0          #
63 e:   ${bootsize}  ${bootoffset} MSDOS                        #
64EOF
65}
66
67make_fstab_evbarm() {
68:
69}
70
71customize_evbarm() {
72	echo "${bar} creating directories ${bar}"
73	mkdir ${mnt}/proc ${mnt}/kern
74}
75firmwaredir=$src/external/broadcom/rpi-firmware/dist
76firmwarefiles="LICENCE.broadcom bootcode.bin fixup.dat fixup_cd.dat start.elf start_cd.elf"
77
78make_fstab() {
79	make_fstab_evbarm
80}
81
82make_label() {
83	make_label_evbarm
84}
85
86customize() {
87	customize_evbarm
88}
89
90populate() {
91	cat > ${mnt}/boot/cmdline.txt << EOF
92root=ld0a console=fb
93#fb=1280x1024		# to select a mode, otherwise try EDID 
94#fb=disable		# to disable fb completely
95EOF
96	if [ ! -f ${kernel} ]; then
97		echo ${PROG}: Missing ${kernel} 1>&2
98		exit 1
99	fi
100
101	echo "${bar} installing kernel ${bar}"
102	case ${kernel} in
103	*.gz)
104		${GZIP_CMD} -dc ${kernel} > ${mnt}/boot/kernel.img
105		;;
106	*)
107		cp ${kernel} ${mnt}/boot/kernel.img
108		;;
109	esac
110
111	echo "${bar} installing firmware files ${bar}"
112	(cd ${mnt}/boot &&
113		for f in ${firmwarefiles}; do
114			echo " $f"
115			cp ${firmwaredir}/${f} .
116		done
117	)
118
119}
120