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

From: John <jwd_at_freebsd.org>
Date: Mon, 17 Jul 2023 19:34:51 UTC
----- Warner Losh's Original Message -----
> 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

OK set boot_verbose
OK set kern.cfg.order="acpi,fdt"
OK configuration
NumberOfTableEntries=12
  76b6bdfa-2acd-4462-9e3f-cb58c969d937 at 0xffe88718
  DXE Table at 0xffe84188
  HOB List Table at 0xffc40018
  MemoryTypeInformation at 0xffe865b8
  Debug Image Info Table at 0xffe87380
  00781ca1-5de3-405f-abb8-379c3c076984 at 0xffd0db98
  ACPI 2.0 Table at 0xffc80000
  a4ee0728-e5d7-4ac5-b21e-658ed857e834 at 0xffd07d18
  SMBIOS3 Table at 0xf8b1ff98
  dcfa911d-26eb-469f-a220-38b7dc461220 at 0xf0c78018
  b122a263-3661-4f68-9929-78f8b0d62180 at 0xfa76bd98
  d742672e-1918-4a66-a1aa-fda807542d81 at 0xf0be0018

OK lsdev                                                
disk devices:
    disk0:    1792780 X 512 blocks (removable)
      disk0: ISO9660
    disk1:    7501476528 X 512 blocks
    disk2:    7501476528 X 512 blocks
    disk3:    7501476528 X 512 blocks
    disk4:    7501476528 X 512 blocks
http: (unknown)
net devices:
    net0:
    net1:
    net2:
OK boot
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


   Any suggestions to track this down? Things must be going
bad pretty quickly.

Thank,
John


It still fails to boot, no output.