Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Sep 2014 23:16:05 +0000
From:      "Sinha, Prokash" <psinha@panasas.com>
To:        John Baldwin <jhb@freebsd.org>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: PXE boot
Message-ID:  <D02CE8DA.17D2%psinha@panasas.com>
In-Reply-To: <1641492.zXWdUoX4Sh@ralph.baldwin.cx>
References:  <D02C8BE1.179F%psinha@panasas.com> <1641492.zXWdUoX4Sh@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
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 =8A tim=
e.

We are using a net boot server, and I see mountd- authenticated =8A message
storm on the boot server side.

Wondering what could cause such a message storm, while pxe_open() -> net
if_open( ) executes.

-prokash=20

On 9/3/14 2:03 PM, "John Baldwin" <jhb@freebsd.org> wrote:

>On Wednesday, September 03, 2014 04:12:01 PM Sinha, Prokash wrote:
>> Hi All,
>>=20
>> I'm trying to understand the invocation of the routines pxe_init();
>> pxe_open()   etc.  in pxe.c
>>=20
>> By the structure, it looks like a driver with devsw_pxedisk =3D { entry
>>points
>> =8A}
>>=20
>> 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).
>>=20
>> 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=20
>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=20
>PXE.  The loader then uses the routines in pxe.c to talk to firmware on
>the=20
>NIC.  The firmware provides both TFTP and UDP interfaces.  The loader
>uses=20
>those to provide either a TFTP "filesystem" or to mount an NFS filesystem
>over=20
>UDP.
>
>--=20
>John Baldwin




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D02CE8DA.17D2%psinha>