Netboot Mailing List (by thread)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Expanding Etherboot RAM window.



Matt Hortman writes:
 > I'm working with Etherboot 4.2.3 and the RealTek 8139 driver.  The buffers
 > used in that driver are so large that I'm overwriting the stack (I think)
 > and causing all sorts of erratic behavior (mostly spontaneous reboots).  I
 > can't seem to figure out how to increase the RAM window that etherboot uses
 > from 32K to 64K.  I tried changing the RELOC address from 0x98000 to 0x96000
 > but all I get this is an immediate reboot upon executing Etherboot....

It is possible to make this change, but it is not entirely
trivial. IIRC, a lot of code (the lzrom decompressor, the stack
handling code, ...)  makes implicit assumptions about the memory
layout. Because of the 64kB addressing model (16bit relativ pointers)
things get a little tricky here. It should be possible to give you a
little more useable space, but you won't be able to extend it to the
full 64kB, because you still need to leave the stack somewhere and the
lzrom decompressor needs scratch space. The current layout sets CS,
DS, and SS to $9800. The initial SP gets set to $8000 (or smaller if
you have less than 640kB conventional memory; check your BIOS,
sometimes the BIOS sticks stuff into the uppermost conventional memory
blocks). When lzrom is run, it uses 9000:0000 through 9000:8000 as
scratch space and it will only be able to write 32kB of uncompressed
data. If you still want to use the lzrom code, you will have to
decrease the amount of scratch space. So in your case, not only would
you have to change RELOC to 0x96000, but you'd also have to change
SCRATCH (in loader.inc) to 0x6000. I have not actually had a close
look at the decompression algorithm, so I wouldn't be able to tell you 
off the top of my head, whether decreasing the scratch space is
feasible. Of course if you don't use lzrom images, you don't have to
worry about all this.


Markus

-- 
Markus Gutschke                         Internet: markus@infoscape.com
Infoscape, Inc                          Phone:    +1-415-544-4762
100 Broadway, 2nd floor
San Francisco, CA 94111

Disclaimer: The above message represents my personal opinion; it does
            not constitute an official statement by Infoscape!

PGP signature



For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.