Date: Sun, 28 Feb 2021 02:13:04 -0800 From: Mark Millard <marklmi@yahoo.com> To: jrtc27@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 0b7472b3d8d2 - main - Mount the EFI system partition (ESP) on newly-installed systems. Message-ID: <9F123188-69F7-4922-8A9A-6047AECF0556@yahoo.com> In-Reply-To: <236B48F1-FF66-4DC0-A19A-E4EE4B3091D1@yahoo.com> References: <236B48F1-FF66-4DC0-A19A-E4EE4B3091D1@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-Feb-27, at 23:22, Mark Millard <marklmi at yahoo.com> wrote: > Jessica Clarke jrtc27 at freebsd.org wrote on > Sun Feb 28 01:25:47 UTC 2021 : >=20 >> On 28 Feb 2021, at 01:22, Brandon Bergren <bdragon at FreeBSD.org> = wrote: >>>=20 >>> On Sat, Feb 27, 2021, at 7:10 PM, Brandon Bergren wrote: >>>> This is mistakenly detecting pseries powerpc64* as an EFI platform = and=20 >>>> causing install to error out. Please add back the uname checks so = this=20 >>>> code doesn't run on powerpc*. >>>=20 >>> Specifically, the /boot/efi stuff in = usr.sbin/bsdinstall/scripts/bootconfig should not run on mips / 32 bit = ARM / powerpc* systems. I believe /boot/efi is always created so it = can't be used to infer existence of EFI. >>=20 >> 32-bit Arm can boot via EFI. Just mips* and powerpc*. >=20 >=20 > So far as I know, those 32-bit arm systems using sysutils/u-boot-* > ports that, in turn, are using boot.scr and ublr.bin are not using > EFI. Are there problems for any of the following contexts? >=20 > /usr/ports/sysutils/u-boot-a13-olinuxino/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-bananapi/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-bananapim2/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-beaglebone/pkg-descr: * A boot.scr (U-Boot = scripts ) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-chip/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-cubieboard/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-cubieboard2/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-duovero/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-nanopi-m1plus/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-nanopi-neo-air/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-nanopi-neo/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-olimex-a20-som-evb/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-olinuxino-lime/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-olinuxino-lime2-emmc/pkg-descr: * A = boot.scr (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-olinuxino-lime2/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-orangepi-one/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-orangepi-pc-plus/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-orangepi-pc/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-orangepi-plus-2e/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-orangepi-zero/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-pandaboard/pkg-descr: * A boot.scr (U-Boot = scripts ) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-pcduino3/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-riotboard/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-rpi-0-w/pkg-descr: * A boot.scr (U-Boot = script) that loads ubldr.bin and execute it is included > /usr/ports/sysutils/u-boot-sinovoip-bpi-m3/pkg-descr: * A boot.scr = (U-Boot script) that loads ubldr.bin and execute it is included (I became curious and so looked around some more at the modern context.) I suppose a more direct note is that FreeBSD-13.0-BETA4-arm-armv7-GENERICSD.img put on a microsd card looks like: # gpart show -p /dev/mmcsd1 =3D> 63 62333889 mmcsd1 MBR (30G) 63 2016 - free - (1.0M) 2079 102312 mmcsd1s1 fat32lba [active] (50M) 104391 6187041 mmcsd1s2 freebsd (3.0G) 6291432 56042520 - free - (27G) # ls -Tld /mnt/* drwxr-xr-x 1 root wheel 4096 Feb 26 01:06:32 2021 /mnt/EFI -rwxr-xr-x 1 root wheel 103488 Feb 25 21:59:06 2021 /mnt/MLO -rwxr-xr-x 1 root wheel 26533 Feb 1 03:42:56 2021 = /mnt/bcm2709-rpi-2-b.dtb -rwxr-xr-x 1 root wheel 52456 Feb 1 03:42:56 2021 = /mnt/bootcode.bin -rwxr-xr-x 1 root wheel 89 Feb 25 22:12:10 2021 /mnt/config.txt drwxr-xr-x 1 root wheel 8192 Feb 26 01:06:32 2021 /mnt/dtb -rwxr-xr-x 1 root wheel 7302 Feb 1 03:42:56 2021 /mnt/fixup.dat -rwxr-xr-x 1 root wheel 3179 Feb 1 03:42:56 2021 = /mnt/fixup_cd.dat -rwxr-xr-x 1 root wheel 10291 Feb 1 03:42:56 2021 = /mnt/fixup_db.dat -rwxr-xr-x 1 root wheel 10289 Feb 1 03:42:56 2021 /mnt/fixup_x.dat drwxr-xr-x 1 root wheel 4096 Feb 26 01:06:36 2021 /mnt/overlays -rwxr-xr-x 1 root wheel 2951392 Feb 1 03:42:56 2021 /mnt/start.elf -rwxr-xr-x 1 root wheel 791996 Feb 1 03:42:56 2021 = /mnt/start_cd.elf -rwxr-xr-x 1 root wheel 4792808 Feb 1 03:42:56 2021 = /mnt/start_db.elf -rwxr-xr-x 1 root wheel 3703208 Feb 1 03:42:56 2021 /mnt/start_x.elf -rwxr-xr-x 1 root wheel 467824 Feb 25 22:11:32 2021 /mnt/u-boot.bin -rwxr-xr-x 1 root wheel 716804 Feb 25 21:59:06 2021 /mnt/u-boot.img -r-xr-xr-x 1 root wheel 462412 Feb 26 01:00:54 2021 /mnt/ubldr.bin # find /mnt/EFI/ -print /mnt/EFI/ /mnt/EFI/BOOT /mnt/EFI/BOOT/bootarm.efi (Nothing for efi/boot/startup.nsh . Also a capitalization style difference vs. what I see on the OverDrive 1000 and MACCHIATOBin Double Shot that I have in use [ efi/boot/BOOTaa64.efi ].) So it looks like EFI/BOOT/bootarm.efi exists even when it is not used, when the context is based on a release or snapshot GENERICSD for armv7. (I've not identified an armv7 EFI/BOOT/bootarm.efi use but there may well be some for all I know.) The above also points out u-boot.bin and u-boot.img contexts, as well as the boot.scr / ubldr.bin ones. When one of these are used, EFI/BOOT/bootarm.efi is not used, even when present. As for aarch64 . . . Looking at FreeBSD-13.0-BETA4-arm64-aarch64-mini-memstick.img shows (when expanded to a microsd card): # gpart show -p /dev/mmcsd1 =3D> 3 679832 mmcsd1 GPT (30G) [CORRUPT] 3 66584 mmcsd1p1 efi (33M) 66587 613248 mmcsd1p2 freebsd-ufs (299M) # find /mnt/ -print /mnt/ /mnt/EFI /mnt/EFI/BOOT /mnt/EFI/BOOT/bootaa64.efi (Again: capitalization and startup.nsh differences compared to what I see on the OverDrive 1000 and MACCHIATObin Double Shot.) RPI, PINE64, PINE64-LTS, ROCK64, and ROCKPRO64 have images for aarch64. Looking at RPI: # gpart show -p /dev/mmcsd1 =3D> 63 62333889 mmcsd1 MBR (30G) 63 2016 - free - (1.0M) 2079 102312 mmcsd1s1 fat32lba [active] (50M) 104391 6187041 mmcsd1s2 freebsd (3.0G) 6291432 56042520 - free - (27G) So, not GPT. # find /mnt/ -print /mnt/ /mnt/EFI /mnt/EFI/BOOT /mnt/EFI/BOOT/bootaa64.efi /mnt/dtb . . . (dtb substructure omitted) . . . /mnt/README /mnt/u-boot.bin /mnt/armstub8.bin /mnt/armstub8-gic.bin /mnt/bootcode.bin /mnt/fixup_cd.dat /mnt/fixup_db.dat /mnt/fixup_x.dat /mnt/fixup.dat /mnt/LICENCE.broadcom /mnt/start_cd.elf /mnt/start_db.elf /mnt/start_x.elf /mnt/start.elf /mnt/fixup4.dat /mnt/fixup4cd.dat /mnt/fixup4db.dat /mnt/fixup4x.dat /mnt/start4.elf /mnt/start4cd.elf /mnt/start4db.elf /mnt/start4x.elf /mnt/bcm2710-rpi-2-b.dtb /mnt/bcm2710-rpi-3-b.dtb /mnt/bcm2710-rpi-3-b-plus.dtb /mnt/bcm2711-rpi-4-b.dtb /mnt/config.txt /mnt/overlays /mnt/overlays/mmc.dtbo /mnt/overlays/pwm.dtbo /mnt/overlays/disable-bt.dtbo # more /mnt/config.txt=20 [all] arm_64bit=3D1 dtparam=3Daudio=3Don,i2c_arm=3Don,spi=3Don dtoverlay=3Dmmc dtoverlay=3Ddisable-bt device_tree_address=3D0x4000 kernel=3Du-boot.bin [pi4] hdmi_safe=3D1 armstub=3Darmstub8-gic.bin So it has EFI/BOOT/bootaa64.efi but is a u-boot.bin context in operation: bootaa64.efi is unused unless changes are made. By contrast, ROCK64 does use GPT and has just: # find /mnt/ -print /mnt/ /mnt/EFI /mnt/EFI/BOOT /mnt/EFI/BOOT/bootaa64.efi /mnt/dtb . . . (dtb substructure omitted) . . . (spans more than ROCK64) and EFI/BOOT/bootaa64.efi is used. (I'll not look at the other 3 --or at riscv64 or the like.) =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9F123188-69F7-4922-8A9A-6047AECF0556>