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>