Highlights:
- elfboot.c Now can load images to the ram location where linuxBIOS is running
- Added the standalone directory for bootloaders built from the linuxBIOS source
Other things:
- Correctly maode fallback_boot.c conditional
- Added entry32.lds to do the math for segment descriptor table entries
- Merged ldscript.cacheram and ldscript.base
- Moved assembly code to the sections .rom.text and .rom.data
- Modified linuxBIOS so C code completely runs from RAM as the SiS630
case does
- Updated and commented example config files for the supermicro p4dc6
- Bumped the elfboot loader version to 1.0
- Removed extra carriage returns in dump_northbridge.inc (DOS->UNIX)
- General cleanups to the config of the supermicro p4dc6
uniform_boot work, but relocated. You need the new mkelfImage to
use the elf boot format.
Previous tables were updated so I could find both the start and
the end of where they were written in memory.
Minor p4dc6 updates, to disable some debugging code.
The mkelfImage-1.9 is checked in as util/mkelfImage
and a bunch of generic changes.
- Started playing with automatic scanning memory for LinuxBIOS tables.
- Converted the fill_inbuf drivers to stream drivers. This allows
for pure data copying operations to be faster, and it allows skipping
of unneeded data on platforms that support it.
- Added a section .rodata.streams for the stream driver control structures.
This is preparation for building a bootloader that shares source code
with LinuxBIOS.
- Added a driver command to NLBConfig.py for objects that should
always be linked into LinuxBIOS if they are compiled at all.
- Moved the boot_successful logic down into the guts of the
bootloaders.
- Modified the ip style checksum logic so it isn't specific to uniform
boot headers...
- Added a function ndelay that uses the RTC (this is i786 specific for now).
- Added a function to delay in seconds for the braindead harddrive
spinup logic.
- Added a floppy stream driver.
- Added a ide stream driver.
- Broke out the ram initialization for the p4dc6 into multiple c files.
- Stupidly adapted linuxbiosmain and do_inflate to the new stream
interface. get_byte is now a slow function call so it might be able
to use some optimization.
- Updated the ELF bootloader to the new stream interface and adding a
ELF header scanning function so we can boot off of harddrives and
not smash their partition tables.
- Removed some bogus unlook ahead code from inflate.c
- Fixed a problem where we did not enable I/O resources on VGA
compatible chips. This caused a trident card to lock up the system
when it's memory mapped resources were enabled.
- Correctly set up nested pci busses. Before this a pci bus behind a
pci bus would not get enabled.
- Config changes to the p4dc6
- Added more interrupt sources to the p4dc6 interrupt table
- Converted all of the inbuf drivers to stream drivers.
All have good conversions except the doc_millenium.
Added set_initrd() to params.h and params.c.
Added PRINTK macro and KERN_SPEW to printk.h.
Changed fill_inbuf.c to accept zkernel_start and zknernel_mask as
variables that can be set by linuxbiosmain().
Changed linuxbiosmain() to allow custom code to modify some parameters
such as where the kernel image is located in ROM, the initrd parameters
and the command line.
Change most of the DBG's in newpci.c to PRINTK(KERN_SPEW... This was
the worst offender when DEBUG was defined. Some of it was changed to
KERN_DEBUG.
There are no new files this time, however,
freebios-010214.orig/src/superio/SMC/fdc37n769/superio.inc
remains and needs to be deleted and then 'cvs rm'.
None of these changes should break any other code. The same
ZKERNEL_START, ZKERNEL_MASK and CMD_LINE defines are still used, but
are now all used in linuxbiosmain() and used to initialize variables
that can later be changed rather than used directly.
These changes allow me to choose between two kernel images, optionally
use an initrd image, load the initrd image and set the kernel command
line as needed.