Re: installer: arm64: better disk variable handling

2023-04-05 Thread Andrew Hewus Fresh
On Sat, Mar 25, 2023 at 07:13:13PM +, Klemens Nanni wrote:
> On Sat, Mar 25, 2023 at 07:02:24PM +, Klemens Nanni wrote:
> > Call the function argument `_disk' and construct full device paths where
> > needed, so that other code can reuse the mnemonic variable.
> > 
> > This matches install.sub's convention around ROOTDISK=sd0, ROOTDEV=sd0a and
> > other disk/device code.
> > 
> > Since it touches the installboot block, hoist it before the sysctl block
> > which merely assigns `_plat'.
> > 
> > A future diff then turns out much better.
> 
> > -   dd if=$_mdec/u-boot-sunxi-with-spl.bin of=${_disk}c \
> > +   dd if=$_mdec/u-boot-sunxi-with-spl.bin of=/dev/${_disk}c \
> 
> Just noticed that this should use the raw device as done elsewhere across
> distrib/ and explained in INSTALL.* docs.
> 
> Easily missed before the diff, obvious with it.
> 
> OK?

This looks right to me, but I can't test it at the moment.

 
> Index: ramdisk/install.md
> ===
> RCS file: /cvs/src/distrib/arm64/ramdisk/install.md,v
> retrieving revision 1.37
> diff -u -p -r1.37 install.md
> --- ramdisk/install.md25 Mar 2023 18:29:37 -  1.37
> +++ ramdisk/install.md25 Mar 2023 19:06:43 -
> @@ -36,7 +36,13 @@ NCPU=$(sysctl -n hw.ncpufound)
>  MOUNT_ARGS_msdos="-o-l"
>  
>  md_installboot() {
> - local _disk=/dev/$1 _mdec _plat
> + local _disk=$1 _mdec _plat
> +
> + if ! installboot -r /mnt $_disk; then
> + echo "\nFailed to install bootblocks."
> + echo "You will not be able to boot OpenBSD from ${_disk}."
> + exit
> + fi
>  
>   case $(sysctl -n machdep.compatible) in
>   apple,*)_plat=apple;;
> @@ -44,12 +50,6 @@ md_installboot() {
>   raspberrypi,*)  _plat=rpi;
>   esac
>  
> - if ! installboot -r /mnt ${1}; then
> - echo "\nFailed to install bootblocks."
> - echo "You will not be able to boot OpenBSD from ${1}."
> - exit
> - fi
> -
>   # Apply some final tweaks on selected platforms
>   _mdec=/usr/mdec/$_plat
>  
> @@ -65,11 +65,11 @@ md_installboot() {
>   fi
>   ;;
>   pine64)
> - dd if=$_mdec/u-boot-sunxi-with-spl.bin of=${_disk}c \
> + dd if=$_mdec/u-boot-sunxi-with-spl.bin of=/dev/r${_disk}c \
>   bs=1024 seek=8 status=none
>   ;;
>   rpi)
> - mount ${MOUNT_ARGS_msdos} ${_disk}i /mnt/mnt
> + mount ${MOUNT_ARGS_msdos} /dev/${_disk}i /mnt/mnt
>   cp $_mdec/{bootcode.bin,start*.elf,fixup*.dat,*.dtb} /mnt/mnt/
>   cp $_mdec/u-boot.bin /mnt/mnt/
>   mkdir -p /mnt/mnt/overlays
> 

-- 
andrew

The programmer's national anthem is 'GH!!'.



Re: installer: arm64: better disk variable handling

2023-03-25 Thread Klemens Nanni
On Sat, Mar 25, 2023 at 07:02:24PM +, Klemens Nanni wrote:
> Call the function argument `_disk' and construct full device paths where
> needed, so that other code can reuse the mnemonic variable.
> 
> This matches install.sub's convention around ROOTDISK=sd0, ROOTDEV=sd0a and
> other disk/device code.
> 
> Since it touches the installboot block, hoist it before the sysctl block
> which merely assigns `_plat'.
> 
> A future diff then turns out much better.

> - dd if=$_mdec/u-boot-sunxi-with-spl.bin of=${_disk}c \
> + dd if=$_mdec/u-boot-sunxi-with-spl.bin of=/dev/${_disk}c \

Just noticed that this should use the raw device as done elsewhere across
distrib/ and explained in INSTALL.* docs.

Easily missed before the diff, obvious with it.

OK?

Index: ramdisk/install.md
===
RCS file: /cvs/src/distrib/arm64/ramdisk/install.md,v
retrieving revision 1.37
diff -u -p -r1.37 install.md
--- ramdisk/install.md  25 Mar 2023 18:29:37 -  1.37
+++ ramdisk/install.md  25 Mar 2023 19:06:43 -
@@ -36,7 +36,13 @@ NCPU=$(sysctl -n hw.ncpufound)
 MOUNT_ARGS_msdos="-o-l"
 
 md_installboot() {
-   local _disk=/dev/$1 _mdec _plat
+   local _disk=$1 _mdec _plat
+
+   if ! installboot -r /mnt $_disk; then
+   echo "\nFailed to install bootblocks."
+   echo "You will not be able to boot OpenBSD from ${_disk}."
+   exit
+   fi
 
case $(sysctl -n machdep.compatible) in
apple,*)_plat=apple;;
@@ -44,12 +50,6 @@ md_installboot() {
raspberrypi,*)  _plat=rpi;
esac
 
-   if ! installboot -r /mnt ${1}; then
-   echo "\nFailed to install bootblocks."
-   echo "You will not be able to boot OpenBSD from ${1}."
-   exit
-   fi
-
# Apply some final tweaks on selected platforms
_mdec=/usr/mdec/$_plat
 
@@ -65,11 +65,11 @@ md_installboot() {
fi
;;
pine64)
-   dd if=$_mdec/u-boot-sunxi-with-spl.bin of=${_disk}c \
+   dd if=$_mdec/u-boot-sunxi-with-spl.bin of=/dev/r${_disk}c \
bs=1024 seek=8 status=none
;;
rpi)
-   mount ${MOUNT_ARGS_msdos} ${_disk}i /mnt/mnt
+   mount ${MOUNT_ARGS_msdos} /dev/${_disk}i /mnt/mnt
cp $_mdec/{bootcode.bin,start*.elf,fixup*.dat,*.dtb} /mnt/mnt/
cp $_mdec/u-boot.bin /mnt/mnt/
mkdir -p /mnt/mnt/overlays