Hi there: any thoughts on this? expecting to get your guidiance...[?]
Thanks, Jason 2010/12/28 fujin huang <ahss...@gmail.com> > Hi Michael: > I am a new babie to etherboot/gpxe, in order to better understanding > the source codes, i have learned to write a simple loader to test UNDI > driver calls of the native NIC's option rom. However, i have encounter a > very strange issue on Lenovo T400 laptop whose NIC is Intel 82567LM, and > below is the main work flow of the test procedure: > .1, Set up PXE tftp server , DHCP server and the file path of the > loader(the loader is built as a COM32 program) > 2, Enable "Boot from Lan" option in T400's BIOS > 3, The loader will be download to T400 through PXE, and its logic is: > a. Relocate loader itself and prepare the C running environment. > (this is done by assembly code, and will switch real mode to protect mode) > b. Get system memory map by int 15 call(0xe820), then hook int > 15 to hide the loader and initilize the heap; > c. Search option rom's UNDI stack by searching "PXENV+" and "!PXE" > keywords in memory range 0x10000 to 0xA0000, and save the undi entry point > if found. > d. Issue the first undi function call PXENV_GET_INFORMATION to get > NIC's configuration. > e. Do other UNDI call tests. > > An error code 0x6a, which is PXENV_STATUS_UNDI_INVALID_STATE, has > returned in step d. I have tried other UNDI function calls, they all > returned 0x6a. It's quite wield since that the loader works well on my > desktop whose NIC is Intel Pro 1000 GT Desktop NIC and the UNDI function > call always be excuted succussfully. > > i have tried Gpxe and found it works on T400, after studied the source > codes i noticed that Gpxe has implemented all UNDI APIs itself and hasn't > reused any API provided by Option rom or BIOS. Also I have checked the > source code of Etherboot, and found there is a ensure_ready() / > ensure_pxe_state() macro before every UNDI API call, and a > PXENV_STATUS_UNDI_INVALID_STATE error code will be returned if these check > functions. > > Could you please give some hint on why and when a > PXENV_STATUS_UNDI_INVALID_STATE are returned when issue a native UNDI API > call provided by BIOS/Option rom? Native BIOS/Option rom's undi driver APIs > should always ready for other programs. > > > Any help will be highly appreciated! > > Thanks, > > Jason >
<<330.gif>>
_______________________________________________ gPXE-devel mailing list gPXE-devel@etherboot.org http://etherboot.org/mailman/listinfo/gpxe-devel