[LMH]%IO instruction and Device Descriptors

Nyef nyef@softhome.net
Wed Jul 23 05:39:00 2003


On Tue, 22 Jul 2003, Steve Krueger wrote:

>  %IO finds the device type by examining the INTERRUPT-TYPE field.  The 
> values of this field are defined in microcode and I can't find where 
> it's values are exported to macrocode.  I'll give you the values for 
> microcode ~208, they might have changed in Elroy.

Ah. I had begun to suspect such, based on the keyboard initialization code 
in window-inits.lisp and the definitions in lroy-qdev.

> ;;; Setup RQB for the NUPI completion event required for the device IO 
> system.

Okay, this explains the other NuPI event level...

... Is this the same RQB that was passed to %IO, or is it a new one?

> To start NUPI request processing:
> ;;; Set the busy bit in the RQB
> ;;; Get the NUPI control space address from the device descriptor + 
> %NUPI-CONTROL-SPACE-ADDRESS
> ;;; Start the command by sending the address of the control block to the 
> NUPI at the NUPI control space
> ;;; address + %NUPI-COMMAND-REGISTER (as an unmapped write) of the RQB 
> command word,
> ;;; converted to a NuBus byte address).

So, the NuPI has a processor on it that reads the RQB directly from NuBus 
memory... I'm going to have to cheat like mad here, if only because I 
haven't put the VMM system in place to actually -use- NuBus memory (we're 
still running directly off the load band file). That, and I don't have a 
copy of the ROMs for the processor, and don't feel like adding -another- 
CPU to exploiter right now...

> IO proceeds asynchronously and eventually produces an interrupt.  The 
> interrupt handler again dispatches on the Interrupt Type field of the 
> device descriptor found at that interrupt level.  NuPI doesn't share an 
> interrupt level with any other device.

Okay, I just reread SSDN2 section 3 in light of all you've said and I've
discovered myself over the past couple days. It makes a lot more sense
now.

---------------------------
All programming can be viewed as an exercise.
---------------------------
Alastair Bridgewater
e-mail: nyef@softhome.net