Re: [Etherboot-developers] Q: does xstart work?
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Eric W B. <ebi...@ln...> - 2002-07-23 12:30:36
|
ke...@us... (Ken Yap) writes: > >xstart16 still needs a little work to get the bootp data structure below > >1MB. But othewise it should work fine. > > > >The open issues are: > >- How to copy/move bootp low for 16bit code. > > Also the segment descriptor array. Hmm. I don't quite follow you there. I only need 6 bytes for the global descriptor pointer, and then I can use a global descriptor table > 1MB. That part is working fine. > Maybe this ties in with the memory allocator routines. Ask it for a > chunk of memory below 1MB and memcpy the bootp and segment descriptor > structures before calling xstart. You could also ask the memory > allocator for a chunk for use as stack. Probably the fun part is keeping track of which areas have been allocated to the partially loaded image. > I'm not so concerned about the text segment size of Etherboot when > Etherboot is converted to run high. In the current version the main > concern is the 48kB limitation. I think there are few machines that > can't spare a couple of hundred kB from the top of memory during the > image loading phase. One is not supposed to load memory to brim anyway, > Linux will need room to expand when it gains control. Except when you have a ramdisk. But a sane implemenation will load the ramdisk low, and then push it up higher if required. Though I seem to like the insane varieties. I agree the uncompressed size is not a big deal. The compressed size continues to concern me. Even with LinuxBIOS I am loading it in a rom chip. A much bigger one than etherboot traditionally lives in true, but still a rom. And the primary reason I am working with etherboot is that it is small, and my other alternatives are not. So I don't want to mess that up. As far as stack size. I really only care there except memory < 1MB is a limited resource in high demand. What clicked for me a little while ago is that I don't have to keep anything permantnely below 1MB. I can just push all of my code on the real mode stack. And I worry a little if I am using someone else's stack that I will overflow it. The code is tight enough now that overflowing stacks is no longer an issue. Though it was quite fun reducing the footprint from 300 bytes to 80 :) Mostly I did it to combat my small observation that whenever I touch etherboot in a nontrivial the core gets bigger. O.k. I am so tired I am rambling. After I get some sleep I will check do a little cleanup and see what parts of my code I can check in. Eric |