> Date: Mon, 24 Aug 2020 22:17:25 +1000 > From: Jonathan Gray <j...@jsg.id.au> > > On Mon, Aug 24, 2020 at 01:29:44PM +0200, Mark Kettenis wrote: > > > From: Todd Carson <t...@daybefore.net> > > > Date: Mon, 24 Aug 2020 20:07:24 +0900 > > > > > > It's not very obvious that there devices that can attach on RPi4 only if > > > the UEFI firmware to set to FDT mode. > > > > > > Also, the UEFI firmware for RPi4 defaults to capping physical memory to > > > 3 GB since the DMA controller can't access memory above 3 GB and Linux > > > doesn't have a workaronud for that. > > > > > > Going by the DMA constraint set up in efiboot.c and arm64/machdep.c, it > > > looks to me like it's safe to disable this cap with OpenBSD. I think it > > > makes sense to mention that in the Raspberry Pi 4 paragraphs in > > > INSTALL.arm64. > > > > That's correct. OpenBSD can deal with the 3GB limit. In fact it > > imposes a 1GB DMA limit because there are additional DMA restrictions > > for the SD controller. > > > > > Diffs below. I posted the arm64.html diff before but it was at the end > > > of another thread so it may not have been noticed... > > > > I'm not necessarily against adding this, but a lot of this information > > isn't really OpenBSD-specific and adding text about all the different > > quirks of all the ARM boards we support doesn't really scale. But > > then neither does answering the same questions over and over again on > > the mailing lists... > > > > Stuart, Jonathan, what do you tink? > > I don't have a rpi4, what was the reason for not being able to use > U-Boot again? There are some xhci/vl805 changes in git not yet in a > non-rc release.
Right. Some rpi4 models need those. For other models the current release might be good enough, but it wasn't the case when I first started working on rpi4 support. The EDK2-based firmware is a bit more user-friendly as it provides a tradional BIOS-like configuration screen and was interesting to me since it provides an ACPI option. > > > blob - 03a8b09c4376e045df573927e43b49db78a533dd > > > blob + a4b0d39c0a6faa5186719991e9b07245fa578055 > > > --- distrib/notes/arm64/prep > > > +++ distrib/notes/arm64/prep > > > @@ -73,6 +73,18 @@ Install on Raspberry Pi 4: > > > should see a multi-coloured screen followed by UEFI firmware output. > > > If you do not see this, re-check your UEFI firmware installation. > > > > > > + As of this writing, the UEFI firmware's default settings supply the > > > + booted OS with ACPI tables only. The ACPI tables do not include some > > > + onboard devices such as the bwfm(4) wireless interface. In order to > > > + use these devices under OpenBSD, configure the UEFI firmware to > > > + provide both ACPI tables and a firmware device tree (FDT). > > > + > > > + Additionally, the UEFI firmware limits the OS' physical memory to > > > + 3 GB by default because of DMA controller hardware limitations that > > > + cause problems with other operating systems. OpenBSD has a workaround > > > + for the DMA limitation, so it is safe to disable the 3 GB limit when > > > + running OpenBSD. > > > + > > > OpenBSD should boot automatically soon after loading the UEFI firmware. > > > If a monitor is connected you will see messages from the boot loader, > > > but after the kernel has started running you will only see output on > > > > > > blob - 4aae202b2b0e09c1df1e55f2a8cb8b84847c0825 > > > blob + a583aa46fe231ad14f7ecd5e28043f55a39d805d > > > --- arm64.html > > > +++ arm64.html > > > @@ -60,9 +60,20 @@ U-Boot> boot > > > > > > <p> > > > The Raspberry Pi 4 is only supported when using EDK2-based UEFI firmware. > > > -By default the boot ROM will only try to load the firmware off an SD > > > card. > > > -There is no SD/MMC driver yet, but there are no manual steps needed to > > > -boot from a USB disk drive. > > > +By default the boot ROM will only try to load the firmware off an SD > > > card, > > > +but there are no manual steps needed to boot the operating system from a > > > +USB disk drive. The UEFI firmware's ACPI tables provide enough devices > > > +for the system to be usable with USB storage and wired Ethernet; > > > additional > > > +devices such as the > > > +<a href="https://man.openbsd.org/arm64/bcmdog.4">bcmdog(4)</a> > > > +watchdog timer and > > > +<a href="https://man.openbsd.org/arm64/bcmirng.4">bcmirng(4)</a> > > > +RNG can be attached when the firmware is configured to provide a > > > +device tree in addition to ACPI. The SD controller may need to be > > > +set to eMMC2 mode in the firmware in order for it to attach along > > > +with the onboard > > > +<a href="https://man.openbsd.org/arm64/bwfm.4">bwfm(4)</a> > > > +WiFi. > > > > > > <p> > > > Ampere eMAG and AMD Opteron systems come with a UEFI firmware in ROM > > > @@ -150,7 +161,7 @@ An updated device tree may have to be supplied to make > > > <h4>802.11 wireless</h4> > > > <ul> > > > <li><a href="https://man.openbsd.org/arm64/bwfm.4">bwfm(4)</a> > > > - on Raspberry Pi 3 and Pinebook Pro > > > + on Raspberry Pi 3/4 and Pinebook Pro > > > </ul> > > > > > > <h4>Storage</h4> > > > @@ -162,7 +173,7 @@ An updated device tree may have to be supplied to make > > > <li><a href="https://man.openbsd.org/arm64/dwmmc.4">dwmmc(4)</a> > > > on Rockchip RK3328/RK3399 > > > <li><a href="https://man.openbsd.org/arm64/sdhc.4">sdhc(4)</a> > > > - on Rockchip RK3399 > > > + on Rockchip RK3399 and Raspberry Pi 4 > > > <li><a href="https://man.openbsd.org/arm64/sximmc.4">sximmc(4)</a> > > > on Allwinner A64/H5 > > > </ul> > > > > > > > > > > >