Re: Volterra Dev Kit Updates

From: Robert Clausecker <fuz_at_fuz.su>
Date: Sun, 01 Jan 2023 17:13:20 UTC
Further update:

_andy_t_ from #bsdmips suggested to replace all instances of
EfiLoaderData in stand/efi/loader/copy.c with EfiLoaderCode.
With this change, there is no longer a synchronous exception,
the boot just hangs completely after entering the kernel.

Yours,
Robert Clausecker

Am Sun, Jan 01, 2023 at 05:45:22PM +0100 schrieb Robert Clausecker:
> 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
> 

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