From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <44A3EB7A.708@lanl.gov> Date: Thu, 29 Jun 2006 09:02:18 -0600 From: Ronald G Minnich User-Agent: Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929) MIME-Version: 1.0 To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu> Subject: Re: [9fans] usb keyboard and mouse? References: <200606290531.k5T5VQ1W000476@ducky.net> <20060629115531.GB5893@augusta.math.psu.edu> In-Reply-To: <20060629115531.GB5893@augusta.math.psu.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Topicbox-Message-UUID: 7049b246-ead1-11e9-9d60-3106f5b1d025 Dan Cross wrote: > On Wed, Jun 28, 2006 at 10:31:26PM -0700, Mike Haertel wrote: > >>The implementation is chipset dependent. Often what happens is >>that the chipset recognizes an I/O request to port 0x60 or 0x64 and >>aborts the request with an SMI (system management interrupt). This >>is a *very* non-maskable interrupt (more non-maskable than NMI...) >>that causes the processor to save pretty much all its register state >>in a special memory area, and jump to a handler in the system BIOS. >>The BIOS SMI handler examines the saved register state, figures out >>what the OS was trying to do, runs a software model of the PS/2 >>keyboard controller's state, chats with the USB keyboard, formulates >>an appropriate response, emulates the I/O instruction the OS was >>trying to do, and resumes execution of the OS at the instruction >>following the I/O instruction. >> >>Some chipsets might do it directly in hardware rather than using >>the SMI+BIOS strategy. > > > Dear Lord! At what point is a chicken sacrificed in this process? > > - Dan C. > well, it does get better. On the GX2, the BIOS is a message-passing microkernel that lives in SMI. I am not making this up. ron