2012-03-22 12:09:55 +08:00
|
|
|
|
|
|
|
: pci-gen-irq-map-one ( prop-addr prop-len slot pin -- prop-addr prop-len )
|
|
|
|
2dup + 4 mod ( prop-addr prop-len slot pin parentpin )
|
|
|
|
get-node >space
|
|
|
|
pci-addr2dev + 1- 4 mod 1+ \ do swizzling ( prop-addr prop-len slot pin swizzledpin )
|
|
|
|
>r >r >r ( prop-addr prop-len R: swizzledpin pin slot )
|
|
|
|
|
|
|
|
r> B lshift encode-int+
|
|
|
|
0 encode-64+ \ device slot ( prop-addr prop-len R: swizzledpin pin )
|
|
|
|
r> encode-int+ \ device pin ( prop-addr prop-len R: swizzledpin )
|
|
|
|
|
|
|
|
get-parent encode-int+ \ parent phandle
|
|
|
|
0 encode-int+ 0 encode-64+ \ parent slot
|
|
|
|
r> encode-int+ \ parent swizzled pin ( prop-addr prop-len R: )
|
|
|
|
;
|
|
|
|
|
2012-01-10 19:39:42 +08:00
|
|
|
: pci-gen-irq-entry ( prop-addr prop-len config-addr -- prop-addr prop-len )
|
2012-03-22 12:09:55 +08:00
|
|
|
pci-addr2dev 4 mod ( prop-addr prop-len slot )
|
|
|
|
-rot ( slot prop-addr prop-len )
|
|
|
|
5 1 DO
|
|
|
|
2 pick i ( slot prop-addr prop-len slot pin )
|
|
|
|
pci-gen-irq-map-one
|
|
|
|
LOOP
|
|
|
|
rot drop
|
2012-01-10 19:39:42 +08:00
|
|
|
;
|
|
|
|
|
|
|
|
: pci-set-irq-line ( config-addr -- )
|
|
|
|
drop
|
|
|
|
;
|