Re: [Etherboot-developers] stumbling block for 5.2
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: <ebi...@ln...> - 2003-08-03 18:28:23
|
ke...@et... (Ken Yap) writes: > >The reason zeroing BSS wipes out the return path is simple: BSS contains > >the 32 bit stack with the return address on it! Now to figure out what > >to do about this. > > Ok, I've fixed this. I put the protected mode stack in its own segment > between _ebss and _end, so that it isn't zeroed at the beginning of > main. > > But that's not all that was needed. At the start of comprefix.S I > changed %ss to somewhere out of Etherboot's way since the real mode > stack with the return address was being clobbered by Etherboot too. > > So now it returns to the DOS prompt ok, but DOS doesn't quite work right > after that, I don't know if this is because of the old FreeDOS I'm using > or Etherboot is messing up FreeDOS another way, possibly via the GDT. If > somebody could try .com images with another DOS it would be appreciated. > The latest sources are in CVS. > > And now the ROM version exits to the BIOS ok too after the stack segment > fix. Ouch. Was this failing before? I am pretty certain that case was working. > Marty and anybody else with a moment to spare, could you please > check out the latest changes and test the ROM version (really burn it on > an EPROM or EEPROM, not the floppy simulation) and check that the Quit > command returns control to the BIOS to boot the next device in the BIOS > list? It works for this ISA NIC of mine but I'd like confirmation with > PCI NICs. > > I will release 5.1.10 (release candidate 2) in a day or two. Just a small comment on what I was thinking when I coded this. 1) Unless we reserve all of the memory dos is using it is non-trivial to return to, especially after etherboot has had a failed image load. So the quit function was just a best effort kind of thing. I did burn it in a ROM to very that case worked. But I really didn't verify anything else. Eric |