diff options
author | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/SLOF/board-qemu/slof/pci-capabilities.fs | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/SLOF/board-qemu/slof/pci-capabilities.fs')
-rw-r--r-- | roms/SLOF/board-qemu/slof/pci-capabilities.fs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/roms/SLOF/board-qemu/slof/pci-capabilities.fs b/roms/SLOF/board-qemu/slof/pci-capabilities.fs new file mode 100644 index 000000000..ef8c7b0d4 --- /dev/null +++ b/roms/SLOF/board-qemu/slof/pci-capabilities.fs @@ -0,0 +1,34 @@ +\ 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 +; |