[Etherboot-developers] Getting the non LinuxBIOS case to work again...
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Eric W B. <ebi...@ln...> - 2002-08-11 06:41:34
|
O.k. I have been making headway with the 5.1.2+ source base, and almost have the normal bios cases working again. Taking advantage of the fully relocateable etherboot, I have made both the 32bit decompressor, and the rest of etherboot position independent code. Allowing it to be loaded at any address and work correctly, so long as %esp is intially set to some valid value. I have removed all 16bit code from start32.S. I have removed the 16bit decompressor from loader.S. I have made the pxe loader code just a prefix like the floppy, or the .com loader. Leaving loader.S at 275 lines, but with a little more work to go. The next step is to figure out how much overlap there is between the rom loader, and the legacy loader that are in loader.S and see what I can do with it. The code is almost comprehensible now, and ready for strange from ends like the paged rom loader somone was requesting the other day. Currently the floppy loader, pxe loader, and the com loader both prefix the .rom file. I'd like to split it up so they prefix the .img file instead so they can take advantage of automatic overhead reduction this gives. What this means is I will either need to write a start16.S with all of the common code that both the rom loader, and the non rom loaders share, or I need to split loader.S into two personalities, a rom and a non rom loader. I haven't gotten far enough into that code to tell. I have just making the decompressor and etherboot PIC so the loaders don't need to care if they are enabled. This change has one major consequence. When testing to see if an old driver needs to be updated to handle relocation, only the non-compressed etherboot will still run at the legacy location. And even that I'm not to certain about. Eric |