tech-kern archive

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

Re: x86 bootstrap features



gson%gson.org@localhost (Andreas Gustafsson) writes:

>matthew green wrote:
>> more research with more systems would be good here, but perhaps
>> we simply need to provide multiple versions of each style (eg,
>> netboot + something, biosboot + something, etc.)

>Does anyone know the reason for the pxeboot 64k limit, and if it might
>be possible to increase it?

The PXE spec has a 32k limit. If the downloaded code exceeds that size,
it may not be able to return to BIOS on failure. Otherwise it can be
larger (up to about 500kB).

A 64k limit comes from 8086 real mode.

        # set up %ds
        mov     %cs, %ax
        mov     %ax, %ds

        # set up %ss and %sp
        movl    $_end, %eax             /* top of bss */
        shrl    $4, %eax                /* as a segment */
        addw    $0x1001, %ax            /* and + 64k */
        movw    %ax, %ss                /* for stack */
        movw    $0xfffc, %sp            /* %sp at top of it */

This assumes that code and data segment is the same and assigns
the following 64k block to the stack. We switch to protected
mode soon after, but the memory layout seems to stay the same.
Maybe changing to

	addw	$0x2001, %ax

is all that is needed.
-- 
-- 
                                Michael van Elst
Internet: mlelstv%serpens.de@localhost
                                "A potential Snark may lurk in every tree."


Home | Main Index | Thread Index | Old Index