Just to clarify how the VSA stuff works - I am using it sucessfully with GX1 and the code for GX2 is very similar.
Firstly, the VSA code is supplied in binary form only, and the code is owned by AMD, and AMD are quite happy for this to be included with a LinuxBIOS implementation (this has been cleared with them). Also, the VGA BIOS written by Elpin systems can be used royalty free on the Geode processors (also been cleared with AMD).
The issue is that each VSA module (there are a number of them), has real-mode initialization code which has to be called in real mode (well it is actually best to do it in flat mode), but it is 16-bit code. Also, the VGA BIOS REQUIRES that the VGA VSA module is loaded. Also, the framebuffer driver and the X drivers use calls to the VGA BIOS, so to get all of that stuff running without the VSA is a no-no.
As a dirty hack I have done an implementation for the GX1 which uses a thing called Xpress Loader - this is loader code which basically gets all the hardware running - detects RAM and loads all of the VSA modules. Xpress Loader was written by National Semiconductor and now belongs to AMD, and is provided free of charge to anyone who wants to use it. This has also been cleared with AMD.
All I have then done is to create a stripped down version of LinuxBIOS in the V2 tree which skips all of the low-level init, does the PCI enumerations etc., and then uses whatever loader you want to load the kernel and boot into Linux.
The boot process is therefore as follows:
Initial boot vectors to the modified Xpress Loader code. Xpress loader inits RAM, a couple of other bits and pieces, installs the VSA modules, initializes the VSA modules, installs the VGA bios, and enters text mode. Finally Xpress Loader vectors to the stripped down LinuxBIOS which switches into protected mode and then does it's magic.
Hamish
Stefan Reinauer wrote:
- Richard Smith smithbone@gmail.com [060123 14:29]:
The GX2 of course would be a much higher performance part but we aren't quite convinced we need that yet.
I really dislike the thought of dealing with all that VSA crap.
We should remember there was a VSA implementation floating around lately that has not been approved by AMD yet.
The question is whether a VSA loader helps any since it probably won't allow us to put VSA modules in our source tree anyways. Are those modules owned by legacy bios vendors, similar to ACPI?
Stefan