Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/etc/etc.evbmips Create an "octeon.img.gz" bootable image for...



details:   https://anonhg.NetBSD.org/src/rev/354d96b1b66b
branches:  trunk
changeset: 936059:354d96b1b66b
user:      jmcneill <jmcneill%NetBSD.org@localhost>
date:      Fri Jul 17 15:16:34 2020 +0000

description:
Create an "octeon.img.gz" bootable image for evbmips64-eb release builds.

diffstat:

 distrib/utils/embedded/conf/arm64.conf   |    4 +-
 distrib/utils/embedded/conf/evbarm.conf  |    4 +-
 distrib/utils/embedded/conf/evbmips.conf |  195 +++++++++++++++++++++++++++++++
 distrib/utils/embedded/conf/octeon.conf  |   38 ++++++
 distrib/utils/embedded/mkimage           |    4 +-
 etc/etc.evbmips/Makefile.inc             |   41 ++++++-
 6 files changed, 279 insertions(+), 7 deletions(-)

diffs (truncated from 348 to 300 lines):

diff -r 0c9daa10ac1c -r 354d96b1b66b distrib/utils/embedded/conf/arm64.conf
--- a/distrib/utils/embedded/conf/arm64.conf    Fri Jul 17 14:57:54 2020 +0000
+++ b/distrib/utils/embedded/conf/arm64.conf    Fri Jul 17 15:16:34 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: arm64.conf,v 1.11 2020/05/24 18:44:46 jmcneill Exp $
+# $NetBSD: arm64.conf,v 1.12 2020/07/17 15:16:34 jmcneill Exp $
 # ARM64 customization script used by mkimage
 #
 board=arm64
@@ -7,7 +7,7 @@
 gpt=true
 gpt_hybrid=true
 gpt_create_flags="-p 16"
-gpt_label_efi="EFI"
+gpt_label_boot="EFI"
 gpt_label_ffs="netbsd-root"
 
 . ${DIR}/conf/evbarm.conf
diff -r 0c9daa10ac1c -r 354d96b1b66b distrib/utils/embedded/conf/evbarm.conf
--- a/distrib/utils/embedded/conf/evbarm.conf   Fri Jul 17 14:57:54 2020 +0000
+++ b/distrib/utils/embedded/conf/evbarm.conf   Fri Jul 17 15:16:34 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: evbarm.conf,v 1.36 2020/05/28 10:19:02 jmcneill Exp $
+# $NetBSD: evbarm.conf,v 1.37 2020/07/17 15:16:34 jmcneill Exp $
 # evbarm shared config
 #
 image=$HOME/${board}.img
@@ -70,7 +70,7 @@
 # NetBSD /etc/fstab
 # See /usr/share/examples/fstab/ for more examples.
 NAME=${gpt_label_ffs:-netbsd-root}     /               ffs     rw,noatime      1 1
-NAME=${gpt_label_efi:-EFI}             /boot           msdos   rw      1 1
+NAME=${gpt_label_boot:-EFI}            /boot           msdos   rw      1 1
 kernfs         /kern           kernfs  rw
 ptyfs          /dev/pts        ptyfs   rw
 procfs         /proc           procfs  rw
diff -r 0c9daa10ac1c -r 354d96b1b66b distrib/utils/embedded/conf/evbmips.conf
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/utils/embedded/conf/evbmips.conf  Fri Jul 17 15:16:34 2020 +0000
@@ -0,0 +1,195 @@
+# $NetBSD: evbmips.conf,v 1.1 2020/07/17 15:16:34 jmcneill Exp $
+# evbmips shared config
+#
+image=$HOME/${board}.img
+
+MACHINE=evbmips
+
+extra=48               # spare space
+init=32
+boot=$((192 - ${init}))
+ffsoffset=$(( (${init} + ${boot}) / 2 ))m
+
+size=0         # autocompute
+msdosid=12
+
+if $gpt; then
+       partition_type="gpt"
+else
+       partition_type="disklabel"
+fi
+
+mkdir -p ${mnt}/boot
+
+make_label_evbmips() {
+       # compute all sizes in terms of sectors
+       local totalsize=$(( ${newsize} * 1024 * 2 / 512 ))
+
+       local bootsize=$(( ${boot} * 1024 ))
+
+       local bootoffset=$(( ${init} * 1024 ))
+
+       local asize=$(( ${totalsize} - ${bootsize} - ${bootoffset} ))
+       local aoffset=$(( ${bootoffset} + ${bootsize} ))
+
+       local bps=512
+       local spt=32
+       local tpc=64
+       local spc=2048
+       local cylinders=$(( ${totalsize} / ${spc} ))
+
+       cat << 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  # 
+ c:   ${totalsize} 0             unused      0     0          #
+ e:   ${bootsize}  ${bootoffset} MSDOS                        #
+EOF
+}
+
+make_fstab_evbmips_gpt() {
+       cat > ${mnt}/etc/fstab << EOF
+# NetBSD /etc/fstab
+# See /usr/share/examples/fstab/ for more examples.
+NAME=${gpt_label_ffs:-netbsd-root}     /               ffs     rw,noatime      1 1
+NAME=${gpt_label_boot:-boot}           /boot           msdos   rw      1 1
+kernfs         /kern           kernfs  rw
+ptyfs          /dev/pts        ptyfs   rw
+procfs         /proc           procfs  rw
+tmpfs          /var/shm        tmpfs   rw,-m1777,-sram%25
+EOF
+}
+
+make_fstab_evbmips_normal() {
+       cat > ${mnt}/etc/fstab << EOF
+# NetBSD /etc/fstab
+# See /usr/share/examples/fstab/ for more examples.
+ROOT.a         /               ffs     rw,noatime      1 1
+ROOT.e         /boot           msdos   rw      1 1
+kernfs         /kern           kernfs  rw
+ptyfs          /dev/pts        ptyfs   rw
+procfs         /proc           procfs  rw
+tmpfs          /var/shm        tmpfs   rw,-m1777,-sram%25
+EOF
+}
+
+# From Richard Neswold's:
+# http://rich-tbp.blogspot.com/2013/03/netbsd-on-rpi-minimizing-disk-writes.html
+# Also for the postfix stuff below
+make_fstab_evbmips_minwrites() {
+       cat > ${mnt}/etc/fstab << EOF
+# NetBSD /etc/fstab
+# See /usr/share/examples/fstab/ for more examples.
+ROOT.a         /                       ffs     rw,log,noatime,nodevmtime 1 1
+ROOT.e         /boot                   msdos   rw                        1 1
+kernfs         /kern                   kernfs  rw
+ptyfs          /dev/pts                ptyfs   rw
+procfs         /proc                   procfs  rw
+tmpfs          /tmp                    tmpfs   rw,-s32M
+tmpfs          /var/log                tmpfs   rw,union,-s32M
+tmpfs          /var/run                tmpfs   rw,union,-s1M
+tmpfs          /var/mail               tmpfs   rw,union,-s10M
+tmpfs          /var/spool/postfix      tmpfs   rw,union,-s20M
+tmpfs          /var/db/postfix         tmpfs   rw,union,-s1M
+tmpfs          /var/chroot             tmpfs   rw,union,-s10M
+tmpfs          /var/shm                tmpfs   rw,-m1777,-sram%25
+EOF
+}
+
+make_fstab_evbmips() {
+       if $gpt; then
+               make_fstab_evbmips_gpt
+       elif $minwrites; then
+               make_fstab_evbmips_minwrites
+       else
+               make_fstab_evbmips_normal
+       fi
+       echo "./etc/fstab type=file uname=root gname=wheel mode=0644" \
+           >> "$tmp/selected_sets"
+
+       # Missing mount points from fstab
+       echo "./proc type=dir uname=root gname=wheel mode=0755" \
+           >> "$tmp/selected_sets"
+       echo "./kern type=dir uname=root gname=wheel mode=0755" \
+           >> "$tmp/selected_sets"
+}
+
+customize_evbmips() {
+       if $minwrites; then
+               mkdir ${mnt}/etc/postfix
+               (umask 022
+               sed -e 's/fifo/unix/' < ${release}/etc/postfix/master.cf > \
+                   ${mnt}/etc/postfix/master.cf)
+       fi
+       
+       cp ${release}/etc/rc.conf ${mnt}/etc/rc.conf
+       cat >> ${mnt}/etc/rc.conf << EOF
+dev_exists() {
+       if /sbin/drvctl -l \$1 >/dev/null 2>&1 ; then
+               printf YES
+       else
+               printf NO
+       fi
+}
+
+rc_configured=YES
+hostname=${hostname:-${board}}
+no_swap=YES
+savecore=NO
+sshd=YES
+dhcpcd=YES
+ntpd=YES
+ntpd_flags="-g"
+creds_msdos=YES
+creds_msdos_partition=/boot
+EOF
+
+       if $resize; then
+               cat >> ${mnt}/etc/rc.conf << EOF
+resize_${partition_type}=YES
+resize_root=YES
+resize_root_flags="-p"
+resize_root_postcmd="/sbin/reboot -n"
+EOF
+       fi
+
+       echo "./etc/rc.conf type=file uname=root gname=wheel mode=0644" \
+           >> "$tmp/selected_sets"
+
+       mkdir ${mnt}/etc/rc.d
+       for _f in resize_${partition_type} creds_msdos; do
+               cp ${DIR}/files/${_f} ${mnt}/etc/rc.d/${_f}
+               echo "./etc/rc.d/${_f} type=file uname=root gname=wheel mode=0555" \
+                   >> "$tmp/selected_sets"
+       done
+
+       if [ ! -f ${release}/dev/MAKEDEV ]; then
+               echo ${PROG}: Missing ${release}/dev/MAKEDEV 1>&2
+               exit 1
+       fi
+       echo "${bar} running MAKEDEV ${bar}"
+       ${HOST_SH} ${release}/dev/MAKEDEV -s all | sed -e 's:^\./:\./dev/:' \
+           >> "$tmp/selected_sets"
+
+       echo "${bar} fixing up permissions"
+       echo "./boot type=dir uname=root gname=wheel mode=0755" \
+           >> "$tmp/selected_sets"
+}
diff -r 0c9daa10ac1c -r 354d96b1b66b distrib/utils/embedded/conf/octeon.conf
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/utils/embedded/conf/octeon.conf   Fri Jul 17 15:16:34 2020 +0000
@@ -0,0 +1,38 @@
+# $NetBSD: octeon.conf,v 1.1 2020/07/17 15:16:34 jmcneill Exp $
+# Cavium OCTEON MIPS customization script used by mkimage
+#
+board=octeon
+sets="base etc rescue"
+resize=true
+gpt=true
+gpt_hybrid=true
+gpt_boot_type="windows"
+gpt_label_boot="octeon-boot"
+gpt_label_ffs="octeon-root"
+
+. ${DIR}/conf/evbmips.conf
+
+kernel_config="OCTEON"
+
+make_label() {
+       make_label_evbmips
+}
+
+make_fstab() {
+       make_fstab_evbmips
+}
+
+customize() {
+       customize_evbmips
+}
+
+populate() {
+       echo "${bar} looking for kernel in ${kernel} ${bar}"
+
+       # ELF kernel
+       kernel_elf="${kernel}/netbsd-${kernel_config}.gz"
+
+       # Install kernel to FAT partition
+       echo "${bar} installing ${kernel_elf} to /boot/netbsd ${bar}"
+       ${GZIP_CMD} -dc "${kernel_elf}" > "${mnt}/boot/netbsd"
+}
diff -r 0c9daa10ac1c -r 354d96b1b66b distrib/utils/embedded/mkimage
--- a/distrib/utils/embedded/mkimage    Fri Jul 17 14:57:54 2020 +0000
+++ b/distrib/utils/embedded/mkimage    Fri Jul 17 15:16:34 2020 +0000
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $NetBSD: mkimage,v 1.74 2020/05/24 18:43:39 jmcneill Exp $
+# $NetBSD: mkimage,v 1.75 2020/07/17 15:16:34 jmcneill Exp $
 #
 # Copyright (c) 2013, 2014 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -284,7 +284,7 @@
 
        echo ${bar} Creating partitions ${bar}
        ${GPT} ${gpt_flags} ${image} create ${gpt_create_flags}
-       ${GPT} ${gpt_flags} ${image} add -b ${initsecs} -s ${bootsecs} -l ${gpt_label_efi:-EFI} -t efi
+       ${GPT} ${gpt_flags} ${image} add -b ${initsecs} -s ${bootsecs} -l ${gpt_label_boot:-EFI} -t ${gpt_boot_type:-efi}
        ${GPT} ${gpt_flags} ${image} set -a required -i 1
        ${GPT} ${gpt_flags} ${image} add -a 4m -b ${ffsstart} -l ${gpt_label_ffs:-netbsd-root} -t ffs
        ${GPT} ${gpt_flags} ${image} show
diff -r 0c9daa10ac1c -r 354d96b1b66b etc/etc.evbmips/Makefile.inc
--- a/etc/etc.evbmips/Makefile.inc      Fri Jul 17 14:57:54 2020 +0000
+++ b/etc/etc.evbmips/Makefile.inc      Fri Jul 17 15:16:34 2020 +0000
@@ -1,4 +1,4 @@



Home | Main Index | Thread Index | Old Index