Return to BSD News archive
Newsgroups: comp.unix.bsd Path: sserve!manuel!munnari.oz.au!uunet!super!rminnich From: rminnich@super.org (Ronald G Minnich) Subject: wdbootblk.c Message-ID: <1992Jul24.173003.12119@super.org> Sender: news@super.org (USENET News System) Nntp-Posting-Host: b117 Organization: Supercomputing Research Center (Bowie, MD) Date: Fri, 24 Jul 1992 17:30:03 GMT Lines: 39 on 0.0, i was looking at wdbootblk.c to see why i could not boot a > 400k kernel. Now this may not apply to 0.1 source, i don't have that up yet, but it is interesting. My copy of wdbootblk.c copies itself up to 0x70000 so that there is room for the kernel, but: reloc: movl $ BIOSRELOC,%esi movl $ RELOC,%edi movl $512,%ecx rep movsb movl $0x60000,%esp pushl $dodisk ret note that the stack is set up at 0x60000, which is below the end address of a kernel bigger than 393216 bytes! once we read in the kernel the stack is now hash. I expect that this is the cause of my woe. Anyone see a problem putting the stack at RELOC? i.e. stack top is at RELOC, which is ok as the first thing we do is a pushl. so it might look like: reloc: movl $ BIOSRELOC,%esi movl $ RELOC,%edi movl $512,%ecx rep movsb movl $ RELOC, %esp pushl $dodisk ret ron -- -------------------------------------------------------------------------------- satisfaction: the feeling you get when you | rminnich@super.org run newfs on a DOS disk so you can install 386BSD.| (301)-805-7451 Now if only I could do this to AIX on the RS/6k ...|