PXE boot
Sinha, Prokash
psinha at panasas.com
Thu Sep 4 09:03:25 UTC 2014
Thanks much, John !
When it starts executing ? How ?. Who starts executing these. From the
Makefile it's org is 0x7c00. So I would assume that it would be loaded at
that absolute real-mode address !. I don't understand this part. But, if I
put traces, I see pxe_open, and pxe_close are being called, but after all
these pxe_calls are done, the loader's main is invoked at Rebooting Š time.
We are using a net boot server, and I see mountd- authenticated Š message
storm on the boot server side.
Wondering what could cause such a message storm, while pxe_open() -> net
if_open( ) executes.
-prokash
On 9/3/14 2:03 PM, "John Baldwin" <jhb at freebsd.org> wrote:
>On Wednesday, September 03, 2014 04:12:01 PM Sinha, Prokash wrote:
>> Hi All,
>>
>> I'm trying to understand the invocation of the routines pxe_init();
>> pxe_open() etc. in pxe.c
>>
>> By the structure, it looks like a driver with devsw_pxedisk = { entry
>>points
>> Š}
>>
>> Once this pxeldr is brought down from the net boot server, how does it
>>get
>> invoked ( or rather who calls these routines ) ??? The loader ( strapped
>> with it don't seem to call).
>>
>> I assume that the the boot code in the NVRAM ( or wherever ) of the NIC
>>that
>> supports calls these pxe_* () functions ???
>
>pxeboot is pxeldr + /boot/loader. The firmware (BIOS or EFI) downloads
>the
>pxeboot binary to a known fixed address and starts executing it. When it
>starts executing, pxeldr finds the /boot/loader binary "behind" it and
>arranges for it to run. It passes a flag telling it that it was booted
>via
>PXE. The loader then uses the routines in pxe.c to talk to firmware on
>the
>NIC. The firmware provides both TFTP and UDP interfaces. The loader
>uses
>those to provide either a TFTP "filesystem" or to mount an NFS filesystem
>over
>UDP.
>
>--
>John Baldwin
More information about the freebsd-hackers
mailing list