[gPXE] Dell T300 w/Broadcom chip: gpxe hangs during dhcp

Michael Brown mbrown at fensystems.co.uk
Tue Feb 23 17:04:49 EST 2010


On Tuesday 23 February 2010 21:14:02 Peter Scheie wrote:
> Grrr. It was working: I booted the Dell multiple times with it, loading
> from a flash drive.  Today, the day before I give a presentation on gpxe to
> all the tech managers, I tried it again, and now it's failing with this
> output:
>
> ...using driver undipci
> UNDIROM 0x858c4 matched PCI 14e4:165a (00000000)
> UNDI 0x589d4 loading UNDI ROM 0x858c4 to CS 93d4 DS 9007 for PCI 02:00.0
> UNDI 0x859d4 loader failed: Error 0x000000c8
> ...probe failed
>
> Why would it work one day and then stop the next day (aside from the
> obvious Murphyesque "Because you were going to demo it tomorrow.")?

FWIW, error 0x000000c8 is PXENV_STATUS_LOADER_NO_PXE_STRUCT.  This seems to be 
a fairly meaningless message, given that the UNDI loader routine is 
responsible for creating the !PXE structure.

You could try changing the value of HIGHMEM_LOADPOINT in 
arch/i386/prefix/libprefix.S.  There's an element of Russian roulette about 
using the UNDI ROM loader: the UNDI ROM is likely to have stored some data it 
needs at a PMM-allocated location in high memory.  Unfortunately, by the time 
gPXE loads from a flash drive, PMM is no longer available so we cannot tell 
which areas we need to avoid.

HIGHMEM_LOADPOINT can sensibly be redefined to any even megabyte, e.g.

	.equ    HIGHMEM_LOADPOINT, ( 6 << 20 )

or

	.equ    HIGHMEM_LOADPOINT, ( 8 << 20 )

There is no "guaranteed safe" value.

Michael


More information about the gPXE mailing list