Re: Raspberry Pi 4 and M.2 SATA SSD recognized but not booting or available for install - unsupported interface

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On Apr 12, 2024, at 06:41, Johan Helsingius <[email protected]> wrote:

> On 11/04/2024 19:57, Mark Millard wrote:
>> As far as I know, the absence of sufficient material in
>> da1p1 (efiboot0) could be your only problem.
> 
> OK, I have some progress (but not quite sure how). The
> system now boots from the USB stick, but with the ZFS
> file system from the SSD as it should - but without the
> USB stick it doesn't boot, complaining "Firmware not found".
> 
> Here is the current partitioning, da0 is the USB stick,
> da1 the SSD:
> 
> $ gpart show
> =>      63  31301568  da0  MBR  (15G)
>        63      1985       - free -  (993K)
>      2048    102400    1  fat32lba  [active]  (50M)
>    104448  10381312    2  freebsd  (5.0G)
>  10485760  20815871       - free -  (9.9G)
> 
> =>       0  10381312  da0s2  BSD  (5.0G)
>         0       128         - free -  (64K)
>       128  10381184      1  freebsd-ufs  (4.9G)
> 
> =>       40  937703008  da1  GPT  (447G)
>         40     532480    1  efi  (260M)
>     532520       2008       - free -  (1.0M)
>     534528    4194304    2  freebsd-swap  (2.0G)
>    4728832  932972544    3  freebsd-zfs  (445G)
>  937701376       1672       - free -  (836K)
> 
> $ gpart show -pl
> =>      63  31301568    da0  MBR  (15G)
>        63      1985         - free -  (993K)
>      2048    102400  da0s1  (null)  [active]  (50M)
>    104448  10381312  da0s2  (null)  (5.0G)
>  10485760  20815871         - free -  (9.9G)
> 
> =>       0  10381312   da0s2  BSD  (5.0G)
>         0       128          - free -  (64K)
>       128  10381184  da0s2a  (null)  (4.9G)
> 
> =>       40  937703008    da1  GPT  (447G)
>         40     532480  da1p1  efiboot0  (260M)
>     532520       2008         - free -  (1.0M)
>     534528    4194304  da1p2  swap0  (2.0G)
>    4728832  932972544  da1p3  zfs0  (445G)
>  937701376       1672         - free -  (836K)
> 
> da0s1 and da1p1 (that I assume are the EFI boot partitions)
> have totally different contents:
> 
> SSD / da1p1:
> $ find /boot/efi
> /boot/efi
> /boot/efi/efi
> /boot/efi/efi/freebsd
> /boot/efi/efi/freebsd/loader.efi
> /boot/efi/efi/boot
> /boot/efi/efi/boot/bootaa64.efi
> /boot/efi/ubootefi.var
> 
> 
> USB stick / da0s1:
> 
> $ find /mnt/da0s1
> /mnt
> /mnt/EFI
> /mnt/EFI/BOOT
> /mnt/EFI/BOOT/bootaa64.efi
> /mnt/dtb
> /mnt/dtb/allwinner
> /mnt/dtb/allwinner/sun50i-a64-nanopi-a64.dtb
> /mnt/dtb/allwinner/sun50i-a64-olinuxino.dtb
> /mnt/dtb/allwinner/sun50i-a64-pine64-lts.dtb
> /mnt/dtb/allwinner/sun50i-a64-pine64-plus.dtb
> /mnt/dtb/allwinner/sun50i-a64-pine64.dtb
> /mnt/dtb/allwinner/sun50i-a64-pinebook.dtb
> /mnt/dtb/allwinner/sun50i-a64-sopine-baseboard.dtb
> /mnt/dtb/allwinner/sun50i-h5-orangepi-pc2.dtb
> /mnt/dtb/allwinner/sun50i-h5-nanopi-neo2.dtb
> /mnt/dtb/allwinner/sun50i-h6-pine-h64.dtb
> /mnt/dtb/allwinner/sun50i-h6-pine-h64-model-b.dtb
> /mnt/dtb/overlays
> /mnt/dtb/overlays/sun50i-a64-mmc0-disable.dtbo
> /mnt/dtb/overlays/sun50i-a64-mmc1-disable.dtbo
> /mnt/dtb/overlays/sun50i-a64-mmc2-disable.dtbo
> /mnt/dtb/overlays/sun50i-a64-pwm.dtbo
> /mnt/dtb/overlays/sun50i-a64-rpwm.dtbo
> /mnt/dtb/overlays/sun50i-a64-spi0-spigen.dtbo
> /mnt/dtb/overlays/sun50i-a64-timer.dtbo
> /mnt/dtb/overlays/sun50i-h5-opp.dtbo
> /mnt/dtb/overlays/sun50i-h5-nanopi-neo2-opp.dtbo
> /mnt/dtb/overlays/rk3328-analog-sound.dtbo
> /mnt/dtb/overlays/rk3328-i2c0.dtbo
> /mnt/dtb/overlays/rk3328-uart1.dtbo
> /mnt/dtb/overlays/rk3399-mmc0-disable.dtbo
> /mnt/dtb/overlays/rk3399-mmc1-disable.dtbo
> /mnt/dtb/overlays/rk3399-sdhci-disable.dtbo
> /mnt/dtb/overlays/spigen-rpi3.dtbo
> /mnt/dtb/overlays/spigen-rpi4.dtbo
> /mnt/dtb/rockchip
> /mnt/dtb/rockchip/rk3399-khadas-edge-captain.dtb
> /mnt/dtb/rockchip/rk3399-khadas-edge.dtb
> /mnt/dtb/rockchip/rk3399-khadas-edge-v.dtb
> /mnt/dtb/rockchip/rk3399-nanopc-t4.dtb
> /mnt/dtb/rockchip/rk3328-nanopi-r2s.dtb
> /mnt/dtb/rockchip/rk3399-nanopi-r4s.dtb
> /mnt/dtb/rockchip/rk3399-rock-pi-4.dtb
> /mnt/dtb/rockchip/rk3328-rock-pi-e.dtb
> /mnt/dtb/rockchip/rk3328-rock64.dtb
> /mnt/dtb/rockchip/rk3399-firefly.dtb
> /mnt/dtb/rockchip/rk3399-rockpro64.dtb
> /mnt/dtb/freescale
> /mnt/dtb/freescale/fsl-ls1028a-rdb.dtb
> /mnt/dtb/freescale/fsl-lx2160a-clearfog-cx.dtb
> /mnt/dtb/freescale/fsl-lx2160a-honeycomb.dtb
> /mnt/dtb/freescale/fsl-lx2160a-qds.dtb
> /mnt/dtb/freescale/fsl-lx2160a-rdb.dtb
> /mnt/dtb/freescale/imx8mq-evk.dtb
> /mnt/dtb/freescale/imx8mq-nitrogen.dtb
> /mnt/dtb/marvell
> /mnt/dtb/marvell/armada-3720-espressobin.dtb
> /mnt/dtb/marvell/armada-8040-clearfog-gt-8k.dtb
> /mnt/dtb/marvell/armada-8040-db.dtb
> /mnt/dtb/marvell/armada-8040-mcbin.dtb
> /mnt/dtb/marvell/armada-8040-mcbin-singleshot.dtb
> /mnt/dtb/nvidia
> /mnt/dtb/nvidia/tegra210-p2371-2180.dtb
> /mnt/dtb/nvidia/tegra210-p3450-0000.dtb
> /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/bcm2710-rpi-cm3.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
> 

In the above notation and context, you would need to
do the likes of:

# cp -aRx /mnt/ /boot/efi/

Likely: Edit the /boot/efi/config.txt to also have:

#
# Local addition that avoids USB3 SSD boot failures that look like:
#   uhub_reattach_port: port ? reset failed, error=USB_ERR_TIMEOUT
#   uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port ?
# WARNING, not sufficient for "boot -s": that needs the full force_turbo=1
initial_turbo=60

# shutdown -p now

Disconnect the USB stick and leave it disconnected
during the boot (whenever you are booting). Only one
media should have those files in an msdosfs during
boot: the specific media that you want to boot from.

Power on.

You are responsible for putting a copy of the RP*
firmware, armstub*.bin files, and u-boot.bin and
the like to the msdosfs that you want to use. The
same is truth when any of those files need to be
updated: nothing will automatically put the files
in the msdosfs.


===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.