Date: Tue, 23 Jun 2020 23:53:49 -0700 From: Mark Millard <marklmi@yahoo.com> To: freebsd-arm <freebsd-arm@freebsd.org> Subject: Booting 8 GiByte RPi4 with even UEFI coming from the USB3 SSD (that has GPT partitioning) Message-ID: <B07E873D-E656-45C8-9378-F69845989972@yahoo.com> References: <B07E873D-E656-45C8-9378-F69845989972.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[I mostly ignore here the issue of occasional 4K blocks transfers to USB being garbage. (That was in earlier list submittals.) Similarly for lack of access to the built-in Ethernet and the lack of microsd card access. These were all originally found via a 4 GiByte RPi4 and likely apply here.] I was able to boot an 8 GiByte RPi4 with UEFI on the USB3 SSD that also holds the root UFS, instead of it being on the microsd card in the slot. The same is true for the 4 GiByte RPi4 (v1.1). In part I had to use the 4 GiByte one for part of setting things up. Context: The RPi4's involved have the stable (not beta) USB-MSB rpi-eeprom update and associated modern firmware. UEFI's RPI_EFI.fd from, e.g., v1.16 . Note about the microsd card slot content: I used a microsd card with an empty msdosfs on it (no UEFI even). This is because I found that the UEFI v1.16 and before code gets stuck in a loop when the slot is empty, doing what the debug RPI_EFI.fd reports as a indefinitely repeating sequence of 3 messages: Card should be MMC MMCSendCommand(371): MMC_CMD1 ERRI MmcStatus 0x18040 MMCSendCommand(371): MMC_CMD55 ERRI MmcStatus 0x18040 Apparently the card detect pin is not wired up on the RPi4's and that complicates things and the complication is not handled yet. True of both RPi4's. Note about setting Serial instead of Graphical and setting to disable the 3 GiByte limit: Attempts to set these based on using the 8 GiByte RPi4 failed to update the UEFI settings. It worked fine using the 4 GiByte RPi4. And, after that, the 8 GiByte RPi4 used the saved settings just fine (same media used on both RPi4's). How some things look for what I've done: # vmstat procs memory page disks faults cpu r b w avm fre flt re pi po fr sr da0 pa0 in sy cs us sy id 0 0 0 248M 7.6G 3.5K 0 18 0 4.0K 2 0 0 1997 3.1K 3.5K 1 2 97 # gpart show -p => 40 468862048 da0 GPT (224G) 40 2008 - free - (1.0M) 2048 413138944 da0p1 freebsd-ufs (197G) 413140992 9437184 da0p2 freebsd-swap (4.5G) 422578176 204800 da0p3 ms-basic-data (100M) 422782976 46079112 - free - (22G) # df -m Filesystem 1M-blocks Used Avail Capacity Mounted on /dev/gpt/Rock64root 195378 57896 121852 32% / devfs 0 0 0 100% /dev /dev/msdosfs/RPI4EFIFS 99 7 92 7% /usb_efi # find /usb_efi/ -print | sort /usb_efi/ /usb_efi/EFI /usb_efi/EFI/BOOT /usb_efi/EFI/BOOT/BOOTAA64.EFI /usb_efi/OVERLAYS /usb_efi/OVERLAYS/disable-bt.dtbo /usb_efi/OVERLAYS/miniuart-bt.dtbo /usb_efi/RPI_EFI.fd /usb_efi/Readme.md /usb_efi/bcm2711-rpi-4-b.dtb /usb_efi/config.txt /usb_efi/fixup4.dat /usb_efi/start4.elf # more /usb_efi/config.txt arm_64bit=1 enable_uart=1 uart_2ndstage=1 enable_gic=1 armstub=RPI_EFI.fd disable_commandline_tags=1 disable_overscan=1 device_tree_address=0x1f0000 device_tree_end=0x200000 dtoverlay=disable-bt over_voltage=6 arm_freq=2000 I've not done anything significant for testing because of the already-known "some 4K blocks of garbage" issue in file I/O to the USB3 SSD. I'll note that the same USB3 SSD is used to boot and operate a Rock64 and the Rock64 does not have the I/O problems. I will note that I've not found block-corruption issues so far on NetBSD booted via UEFI, same RPi4's, same type of USB3 SSD. The problem looks to be FreeBSD specific. === 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?B07E873D-E656-45C8-9378-F69845989972>