blob: ef8c7b0d4474b6ff26c8ce63d764dbca3d2af35a [file] [log] [blame]
\ Set up all known capabilities for this board to the plugged devices
: pci-msi-prop ( addr -- )
5 pci-cap-find ( capaddr )
?dup IF
2+ rtas-config-w@ ( msi-control )
1 rshift 7 and ( msi-control:3:1 )
dup 6 < IF
1 swap lshift ( vectors# )
encode-int " ibm,req#msi" property
ELSE
." Invalid MSI vectors number " . cr
THEN
THEN
;
: pci-msix-prop ( addr -- )
11 pci-cap-find ( capaddr )
?dup IF
2+ rtas-config-w@ ( msix-control )
7ff and ( msix-control:10:0 )
1+ ( vectors# )
?dup IF
encode-int " ibm,req#msi-x" property
THEN
THEN
;
: pci-set-capabilities ( config-addr -- )
dup pci-msi-prop
dup pci-msix-prop
drop
;