1 1.3 christos # $NetBSD: riscv.conf,v 1.3 2024/12/27 19:02:19 christos Exp $ 2 1.1 skrll # riscv shared config 3 1.1 skrll # 4 1.1 skrll image=$HOME/${board}.img 5 1.1 skrll 6 1.1 skrll extra=48 # spare space 7 1.1 skrll init=32 8 1.1 skrll boot=$((192 - ${init})) 9 1.1 skrll ffsoffset=$(( (${init} + ${boot}) / 2 ))m 10 1.1 skrll 11 1.1 skrll size=0 # autocompute 12 1.1 skrll msdosid=12 13 1.1 skrll 14 1.1 skrll if $gpt; then 15 1.1 skrll partition_type="gpt" 16 1.1 skrll else 17 1.1 skrll partition_type="disklabel" 18 1.1 skrll fi 19 1.1 skrll 20 1.1 skrll mkdir -p ${mnt}/boot 21 1.1 skrll 22 1.1 skrll make_label_riscv() { 23 1.1 skrll # compute all sizes in terms of sectors 24 1.1 skrll local totalsize=$(( ${size} / 512 )) 25 1.1 skrll 26 1.1 skrll local bootsize=$(( ${boot} * 1024 )) 27 1.1 skrll 28 1.1 skrll local bootoffset=$(( ${init} * 1024 )) 29 1.1 skrll 30 1.1 skrll local asize=$(( ${totalsize} - ${bootsize} - ${bootoffset} )) 31 1.1 skrll local aoffset=$(( ${bootoffset} + ${bootsize} )) 32 1.1 skrll 33 1.1 skrll local bps=512 34 1.1 skrll local spt=32 35 1.1 skrll local tpc=64 36 1.1 skrll local spc=2048 37 1.1 skrll local cylinders=$(( ${totalsize} / ${spc} )) 38 1.1 skrll 39 1.1 skrll cat << EOF 40 1.1 skrll type: SCSI 41 1.1 skrll disk: STORAGE DEVICE 42 1.1 skrll label: fictitious 43 1.1 skrll flags: removable 44 1.1 skrll bytes/sector: ${bps} 45 1.1 skrll sectors/track: ${spt} 46 1.1 skrll tracks/cylinder: ${tpc} 47 1.1 skrll sectors/cylinder: ${spc} 48 1.1 skrll cylinders: ${cylinders} 49 1.1 skrll total sectors: ${totalsize} 50 1.1 skrll rpm: 3600 51 1.1 skrll interleave: 1 52 1.1 skrll trackskew: 0 53 1.1 skrll cylinderskew: 0 54 1.1 skrll headswitch: 0 # microseconds 55 1.1 skrll track-to-track seek: 0 # microseconds 56 1.1 skrll drivedata: 0 57 1.1 skrll 58 1.1 skrll 8 partitions: 59 1.1 skrll # size offset fstype [fsize bsize cpg/sgs] 60 1.1 skrll a: ${asize} ${aoffset} 4.2BSD ${fsize} ${bsize} 0 # 61 1.1 skrll c: ${totalsize} 0 unused 0 0 # 62 1.1 skrll e: ${bootsize} ${bootoffset} MSDOS # 63 1.1 skrll EOF 64 1.1 skrll } 65 1.1 skrll 66 1.1 skrll make_fstab_riscv() { 67 1.3 christos make_fstab_default EFI 68 1.1 skrll } 69 1.1 skrll 70 1.1 skrll customize_riscv() { 71 1.1 skrll cp ${release}/etc/rc.conf ${mnt}/etc/rc.conf 72 1.1 skrll cat >> ${mnt}/etc/rc.conf << EOF 73 1.1 skrll dev_exists() { 74 1.1 skrll if /sbin/drvctl -l \$1 >/dev/null 2>&1 ; then 75 1.1 skrll printf YES 76 1.1 skrll else 77 1.1 skrll printf NO 78 1.1 skrll fi 79 1.1 skrll } 80 1.1 skrll 81 1.1 skrll rc_configured=YES 82 1.1 skrll hostname=${hostname:-${board}} 83 1.1 skrll no_swap=YES 84 1.1 skrll savecore=NO 85 1.1 skrll sshd=YES 86 1.1 skrll dhcpcd=YES 87 1.1 skrll ntpd=YES 88 1.1 skrll ntpd_flags="-g" 89 1.1 skrll creds_msdos=YES 90 1.1 skrll creds_msdos_partition=/boot 91 1.2 riastrad certctl_init=YES 92 1.1 skrll EOF 93 1.1 skrll 94 1.1 skrll if $resize; then 95 1.1 skrll cat >> ${mnt}/etc/rc.conf << EOF 96 1.1 skrll resize_${partition_type}=YES 97 1.1 skrll resize_root=YES 98 1.1 skrll resize_root_flags="-p" 99 1.1 skrll resize_root_postcmd="/sbin/reboot -n" 100 1.1 skrll EOF 101 1.1 skrll fi 102 1.1 skrll 103 1.1 skrll echo "./etc/rc.conf type=file uname=root gname=wheel mode=0644" \ 104 1.1 skrll >> "$tmp/selected_sets" 105 1.1 skrll 106 1.1 skrll mkdir ${mnt}/etc/rc.d 107 1.1 skrll for _f in resize_${partition_type} creds_msdos; do 108 1.1 skrll cp ${DIR}/files/${_f} ${mnt}/etc/rc.d/${_f} 109 1.1 skrll echo "./etc/rc.d/${_f} type=file uname=root gname=wheel mode=0555" \ 110 1.1 skrll >> "$tmp/selected_sets" 111 1.1 skrll done 112 1.1 skrll 113 1.1 skrll if [ ! -f ${release}/dev/MAKEDEV ]; then 114 1.1 skrll echo ${PROG}: Missing ${release}/dev/MAKEDEV 1>&2 115 1.1 skrll exit 1 116 1.1 skrll fi 117 1.1 skrll echo "${bar} running MAKEDEV ${bar}" 118 1.1 skrll ${HOST_SH} ${release}/dev/MAKEDEV -s all | sed -e 's:^\./:\./dev/:' \ 119 1.1 skrll >> "$tmp/selected_sets" 120 1.1 skrll 121 1.1 skrll echo "${bar} fixing up permissions" 122 1.1 skrll echo "./boot type=dir uname=root gname=wheel mode=0755" \ 123 1.1 skrll >> "$tmp/selected_sets" 124 1.1 skrll } 125