Specifications
D
evice Driver Programming
5-12
7. When the interrupt handler on the (H)VME bus forwards an interrupt
acknowledge to a processor, the low-level portion of the operating system
interrupt subsystem reads the code to index one of 256 addresses of
interrupt-handling routines. This one-byte code, contained by the VME
device, is an interrupt vector.
Several ways exist to set the interrupt vector:
• jumpers or switches
• programmable hardware assemblies (PROMs or PALs)
• slave or master programmed registers
8. Chapter 10 provides procedures to either modify the kernel interrupt vector
table or dynamically allocate interrupt vectors:
• If hardware settings determine the interrupt vector (preset), then
reconfigure the interrupt vector by modifying the
/etc/conf/cf.d/ivt.s file and rebuilding the kernel.
• If slave or master register programming determines the interrupt
vector, then the kernel interrupt vector table can dynamically allocate
and assign the interrupt vector to the device during bootstrap.
VME to PCI Address Decode 5
PCI address decode register values represent the upper 16 bits of the address (i.e., 64Kb of
address space). The processor uses the first 16 bytes of A16 I/O space which the user can-
not map (such as Address 0xc1000000). Although the following mapping claims A16
space starts at 0xc1000000, the available space starts at 0xc1000010.
The VME2PCI decodes addresses as follows:
Table 5-3. VME to PCI Address Decode Register
Address
Type
Processor
Address
PCI Address
VMEchip2/
VME
Decode Register
A16 0xC1000000-
0xC100FFFFF
0x01000000-
0x0100FFFF
0xFFFF0000-
0xFFFFFFFF
start1 0x0100
end1 0x0100
offset1 0xFEFF
A32 0xC1010000-
0xE0BFFFFF
0x01010000-
0x20BFFFFF
0xE0010000-
0xFFBFFFFF
start2 0x1001
A24 0xE0C00000-
0xE0FEFFFF
0x20C00000-
0x20FEFFFF
0xFFC00000-
0xFFFEFFFF end2 0x20FE
offset2 0xDF00