> 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&gt; 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>
> > > 
> > > 
> > 
> > 
> 

Reply via email to