Re: Etherboot 5.5
Michael Brown <[email protected]>
| Newsgroups | gmane.network.etherboot.devel |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 19 May 2005, Timothy Legge wrote: > > The ability to operate completely in 16-bit real mode, never > > switching to protected mode. This is necessary in order to comply > > fully with the PXE "specification". This is controlled by a > > compile-time option -DKEEP_IT_REAL; off by default. > > I understand that this is one of the more difficult parts of the PXE > spec. Doesn't it contradict some other requirement in the spec (not > that that s unusual? Operating in real mode is not the really tricky part; that would be operating in 16-bit protected mode (which we're supposed to do with the same binary code). There are a few interesting theoretical impossibilities that the spec throws at us, such as requiring us to write to specified arbitrary physical addresses when we're in 16-bit pmode and have enforced 64kB segment limits. > BTW, do we need an updated compiler/build tools? I received the > following message from the first build I tried: > > In file included from arch/i386/core/hooks.c:1: > arch/i386/include/registers.h:19: warning: declaration does not declare > anything > arch/i386/include/registers.h:87: warning: declaration does not declare > anything > arch/i386/include/registers.h:88: warning: declaration does not declare > anything > In file included from include/etherboot.h:157, > from include/buffer.h:4, > from include/dev.h:6, > from include/main.h:4, > from arch/i386/core/hooks.c:2: > include/tftp.h:88: warning: "struct buffer" declared inside parameter list > include/tftp.h:88: warning: its scope is only this definition or > declaration, which is probably not what you want > arch/i386/core/hooks.c: In function `arch_main': > arch/i386/core/hooks.c:20: error: structure has no member named `eax' > arch/i386/core/hooks.c:23: error: structure has no member named `eax' > make: *** [bin/hooks.o] Error 1 The "struct buffer" issue is due to a tweak I had to make today to get doxygen to work; I've fixed this now. The "does not declare anything" is because gcc 3.4.3 apparently doesn't like having unnamed structs. I though that this was supported; I'll have to check. We don't make significant use of the structures in registers.h, so changing them to named structs will not be too hard, though it will make the code a little less clean. Michael ------------------------------------------------------- This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the first software developer in space? Enter now for the Oracle Space Sweepstakes! http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click