From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alan Shieh Subject: Re: Univeral Protocol Driver (using UNDI) in Linux Date: Fri, 11 Aug 2006 16:01:01 -0400 Message-ID: <44DCE1FD.5020901@cs.cornell.edu> References: <292693080608070339p6b42feacw9d8f27a147cf1771@mail.gmail.com> <44D7579D.1040303@zytor.com> <292693080608070911g57ae1215qd994e03b9dd87b66@mail.gmail.com> <44D76F26.9@zytor.com> <292693080608072213n2be75176g46199e92d669f5de@mail.gmail.com> <44D8A80F.1020202@cs.cornell.edu> <292693080608100118rc910647l7a8bf95fbc2df26c@mail.gmail.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <292693080608100118rc910647l7a8bf95fbc2df26c@mail.gmail.com> Sender: linux-net-owner@vger.kernel.org List-Id: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: Daniel Rodrick Cc: "H. Peter Anvin" , Linux Newbie , kernelnewbies , linux-net@vger.kernel.org, linux-kernel@vger.kernel.org > Umm ... pardon me if I am wrong, but I think you implemented a "UNDI > Driver" (i.e. the code that provides implementation of UNDI API, and > often resides in the NIC ROM) . I'm looking forward to write a > "Universal Protocol Driver" (i.e. the code that will be a linux kernel > module and will, use the UNDI API provided by your UNDI driver). I wrote a universal protocol driver that runs in Linux, and talks to an extended UNDI stack implemented in Etherboot. >> At minimum, one needs to be able to probe for !PXE presence, which means >> you need to map in 0-1MB of physical memory. The PXE stack's memory also >> needs to be mapped in. My UNDI driver relies on a kernel module, generic >> across all NICs, to accomplish these by mapping in the !PXE probe area >> and PXE memory in a user process. > > > I'm pretty newbie to PXE, but I I think !PXE structure is used to find > out the location & size of PXE & UNDI runtime routines, by UNIVERSAL > PROTOCOL DRIVERS. Is my understanding wrong? That's right. > Also, I think that UNDI driver routine will need not call PXE routines > (TFTP / DHCP etc) as UNDI routines would be at a lower level providing > access to the bare bones hardware. Is this correct? I'm calling the UNDI level routines (packet send, interrupt handling) from my driver. Alan