git: 0b7472b3d8d2 - main - Mount the EFI system partition (ESP) on newly-installed systems.
Mark Millard
marklmi at yahoo.com
Sun Feb 28 10:13:11 UTC 2021
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 :
>
>> On 28 Feb 2021, at 01:22, Brandon Bergren <bdragon at FreeBSD.org> wrote:
>>>
>>> On Sat, Feb 27, 2021, at 7:10 PM, Brandon Bergren wrote:
>>>> This is mistakenly detecting pseries powerpc64* as an EFI platform and
>>>> causing install to error out. Please add back the uname checks so this
>>>> code doesn't run on powerpc*.
>>>
>>> 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.
>>
>> 32-bit Arm can boot via EFI. Just mips* and powerpc*.
>
>
> 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?
>
> /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
=> 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
=> 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
=> 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
[all]
arm_64bit=1
dtparam=audio=on,i2c_arm=on,spi=on
dtoverlay=mmc
dtoverlay=disable-bt
device_tree_address=0x4000
kernel=u-boot.bin
[pi4]
hdmi_safe=1
armstub=armstub8-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.)
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the dev-commits-src-main
mailing list