Volterra Dev Kit Updates

From: Robert Clausecker <fuz_at_fuz.su>
Date: Sun, 01 Jan 2023 16:45:22 UTC
Greetings and happy new year!

Got around to do some debugging on the Volterra Dev Kit today.
Allan Jude had previously patched up the boot loader a little so
it gets to the point where it shows you the menu and lets you
type in commands.  The last known state of affairs was "boot loader
gets to the point where it boots the kernel, but kernel hangs
without any further output."

My tests are based on 89ffac3b with D37765, D37766, and D47767
applied.

It seems that the boot loader is still wonky; there's radio
silence from the kernel because it doesn't actually boot!

Some printf() debugging later, I noticed that the boot loader
hangs in bi_load_efi_data(), specifically in the BS->GetMemoryMap()
loop.  I've added some printf() calls therein and now it no longer
hangs -.-  ketas in #bsdmips suggested that there migth be some
sort of race condition going on.

Anyway, we are then greeted with an "ExitBootServices error 2"
but the boot continues.  It finally jumps into the kernel, but
there is an immediate fault at the entry point:

Synchronous Exeption at 0x0000000C7C000800

Looks like the whole memory management is still wonky.  With just
a random guess, could it be that the loader tries to map the kernel
W+X to be able to load and then execute it, which the EFI
implementation doesn't like, just like it didn't like that with the
boot loader itself?

I'll try to continue to investigate, but unfortunately I know very
little about this stuff.

Yours,
Robert Clausecker

-- 
()  ascii ribbon campaign - for an 8-bit clean world 
/\  - against html email  - against proprietary attachments