Re: Supermicro R12SPD Ampere Altra - No valid device tree blob found

From: Warner Losh <imp_at_bsdimp.com>
Date: Mon, 17 Jul 2023 17:20:50 UTC
On Mon, Jul 17, 2023 at 11:15 AM Mark Millard <marklmi@yahoo.com> wrote:

> On Jul 17, 2023, at 09:37, John <jwd@FreeBSD.org> wrote:
>
> > Hi Folks,
> >
> >   I have a new Supermicro system:
> >
> > Supermicro R12SPD BIOS Date:04/26/2023 Rev:1.1a
> > CPU : Ampere(R) Altra(R) Max Processor
> >
> >   Booting from the latest media (spot checking older
> > media makes no difference):
> >
> > Boot Media:
> FreeBSD-14.0-CURRENT-arm64-aarch64-20230713-510fd8313800-264135-disc1.iso
> >
> >   Fails here:
> >
> > Loading kernel...
> > /boot/kernel/kernel text=0x2a8 text=0x8ff810 text=0x29b324 data=0x153cc8
> data=0x0+0x2c3000 0x8+0x155628+0x8+0x17e504|
> > Loading configured modules...
> > can't find '/etc/hostid'
> > can't find '/boot/entropy'
> > No valid device tree blob found!
> > WARNING! Trying to fire up the kernel, but no device tree blob found!
> > EFI framebuffer information:
> > addr, size     0x10000000, 0x300000
> > dimensions     1024 x 768
> > stride         1024
> > masks          0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
> >
> >
> >   If I break into the loader, the fdt command shows the
> > same error message.
> >
> > OK fdt ls
> > No device tree blob found!
> >
> > OK
> >
> >   A verbose boot shows no additional information.
> >
> >   I've poked around in the source and don't see an obvious
> > fix for this. Web searches have also not provided any
> > obvious solutions.
> >
> >  Any ideas? Thoughts?
>
> UEFI/ACPI booting does not have a "device tree blob" to find but
> FreeBSD's UEFI laoder still puts out the "No valid device tree
> blob found!". I see this on all the UEFI/ACPI booting systems that
> I have access to --and they all boot fine, aarch64 system and the
> amd64 system.
>
> I expect that your boot context is UEFI/ACPI and that the message
> has mislead you about what to look for relative to booting.
>
> But I could be wrong and the system could be trying to boot via
> fdt. That is one of the problems with the way this messaging is
> handled.
>
> On the HoneyComb (16 Cortex-A72's), for example, there
> is the FreeBSD loader's configuration command:
>
> OK configuration
> NumberOfTableEntries=12
>   76b6bdfa-2acd-4462-9e3f-cb58c969d937 at 0xfad05b18
>   fc1bcdb0-7d31-49aa-936a-a4600d9dd083 at 0xfaabfd98
>   DXE Table at 0xfacea6b0
>   HOB List Table at 0xfaabd018
>   MemoryTypeInformation at 0xfacea338
>   Debug Image Info Table at 0xfad038d8
>   a4ee0728-e5d7-4ac5-b21e-658ed857e834 at 0xfaccea98
>   ACPI 2.0 Table at 0xef890018
>   SMBIOS3 Table at 0xfacb0000
>   dcfa911d-26eb-469f-a220-38b7dc461220 at 0xee5cb018
>   HII database at 0xee550018
>   HII config routing at 0xee530018
>
> For this context, it indicates a UEFI/ACPI boot: note the
> "ACPI 2.0 Table at". FDT booting would refer to such instead.
>
> So you likely can check if you are UEFI/ACPI booting vs.
> FDT booting.
>
> It is technically possible to have an environment that could
> list both. I've no experience with booting such a system or
> other knowledge of how FreeBSD handles such.
>

It's supposed to use FDT if it is present, and ACPI if not.
If you have both (which kboot does for $REASONS),  then
you'll need to set
kern.cfg.order="acpi,fdt"
in /boot/loader.conf which I do for kboot booted mount jade systems.

Warner