Hi Peter, They use PXELINUX to download the OS deployment bootstrap. When this is completed, they want to shutdown the stack including the UNDI driver before jumping to the kernel. Thanks! Kevin On Feb 12, 2014, at 8:15 PM, "H. Peter Anvin" <hpa at zytor.com> wrote:> On 02/12/2014 05:37 PM, Kevin Tran wrote: > Hi, > One of our customers uses INT 22h/AX=C to shut down UNDI interface. This interface is documented in http://www.syslinux.org/doc/comboot.txt. The excerpt is shown below: > > AX=000Ch [2.00] Perform final cleanup > Input: AX 000Ch > DX derivative-specific flags (0000h = clean up all) > Output: None > > Apparently, device is not shut down based on the description of the problem. I am looking at int22() routine in comboot_call.c. I don't see it processes this request (AX=0xc) at all. > > Can someone help to clarify this?comboot_call.c is part of gPXE/iPXE, which only supports a subset of the COMBOOT API. However, even if you are running on top of PXELINUX proper, the INT 22h interface is obsoleted in Syslinux 5+. Its direct replacement is the syslinux_final_cleanup() C API call, but perhaps you could give some insight in what your customer needs to do so we can advice if there is a better solution? -hpa
On 02/12/2014 08:31 PM, Kevin Tran wrote:> Hi Peter, > They use PXELINUX to download the OS deployment bootstrap. When this is completed, they want to shutdown the stack including the UNDI driver before jumping to the kernel. > > Thanks! > Kevin >That is better done by using syslinux_shuffle_boot_pm() or syslinux_shuffle_boot_rm() as appropriate; they shut down the stack before calling the OS. The standard kernel image formats (bzImage, mboot, etc.) do this as well. -hpa
Hi Peter, I traced over these routines you suggested briefly and I didn't see where it invokes PXE UNDI_API (PXENV_UNDI_SHUTDOWN(0x5) to shut down the device. When this is invoked, my UNDI driver will put the device into an inactive state so that it doesn't do any more DMA read/write over PCIe bus anymore. What am I missing? Thanks! Kevin -----Original Message----- From: H. Peter Anvin [mailto:hpa at zytor.com] Sent: Wednesday, February 12, 2014 10:07 PM To: Kevin Tran Cc: For discussion of Syslinux and tftp-hpa Subject: Re: [syslinux] SYSLINUX API call INT 22h/AX=0xC On 02/12/2014 08:31 PM, Kevin Tran wrote:> Hi Peter, > They use PXELINUX to download the OS deployment bootstrap. When this is completed, they want to shutdown the stack including the UNDI driver before jumping to the kernel. > > Thanks! > Kevin >That is better done by using syslinux_shuffle_boot_pm() or syslinux_shuffle_boot_rm() as appropriate; they shut down the stack before calling the OS. The standard kernel image formats (bzImage, mboot, etc.) do this as well. -hpa