Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / SLOF / board-qemu / slof / pci-interrupts.fs
1
2 : pci-gen-irq-map-one ( prop-addr prop-len slot pin -- prop-addr prop-len )
3         2dup + 4 mod                ( prop-addr prop-len slot pin parentpin )
4         >r >r                       ( prop-addr prop-len slot R: swizzledpin pin )
5
6         \ Child slot#
7         B lshift encode-int+        ( prop-addr prop-len R: swizzledpin pin )
8         \ Child 64bit BAR (not really used)
9         0 encode-64+
10         \ Chile pin#
11         r> encode-int+              ( prop-addr prop-len R: swizzledpin )
12
13         \ Parent phandle
14         get-parent encode-int+
15
16         \ Parent slot#
17         get-node >space
18         pci-addr2dev B lshift       ( prop-addr prop-len parent-slot R: swizzledpin )
19         encode-int+
20         \ Parent 64bit BAR (not really used)
21         0 encode-64+
22         \ Parent pin
23         r> encode-int+              ( prop-addr prop-len R: )
24 ;
25
26 : pci-gen-irq-entry ( prop-addr prop-len config-addr -- prop-addr prop-len )
27         pci-addr2dev 4 mod          ( prop-addr prop-len slot )
28         -rot                        ( slot prop-addr prop-len )
29         5 1 DO
30                 2 pick i            ( slot prop-addr prop-len slot pin )
31                 pci-gen-irq-map-one
32         LOOP
33         rot drop
34 ;
35
36 : pci-set-irq-line ( config-addr -- )
37   drop
38 ;