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-js2x/slof/pci-aliases.fs | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/SLOF/board-js2x/slof/pci-aliases.fs')
-rw-r--r-- | roms/SLOF/board-js2x/slof/pci-aliases.fs | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/roms/SLOF/board-js2x/slof/pci-aliases.fs b/roms/SLOF/board-js2x/slof/pci-aliases.fs new file mode 100644 index 000000000..f017e4a55 --- /dev/null +++ b/roms/SLOF/board-js2x/slof/pci-aliases.fs @@ -0,0 +1,85 @@ +\ ***************************************************************************** +\ * Copyright (c) 2004, 2008 IBM Corporation +\ * All rights reserved. +\ * This program and the accompanying materials +\ * are made available under the terms of the BSD License +\ * which accompanies this distribution, and is available at +\ * http://www.opensource.org/licenses/bsd-license.php +\ * +\ * Contributors: +\ * IBM Corporation - initial implementation +\ ****************************************************************************/ + +\ Starting alias number for net devices after the onboard devices. +2 VALUE pci-net-num +\ Starting alias number for disks after the onboard devices. +0 VALUE pci-disk-num +\ Starting alias number for cdroms after the onboard devices. +0 VALUE pci-cdrom-num + +\ define a new alias for this device +: pci-set-alias ( str-addr str-len num -- ) + $cathex strdup \ create alias name + get-node node>path \ get path string + set-alias \ and set the alias +; + +\ define a new net alias +: unknown-enet ( -- pci-net-num ) + pci-net-num dup 1+ TO pci-net-num +; +: pci-alias-net ( config-addr -- ) + u3? IF + pci-device-vec c@ CASE + 2 OF pci-device-vec-len 1 >= IF + pci-device-vec 1+ c@ CASE + 1 OF dup pci-addr2fn 1 >= IF 1 ELSE 0 THEN ENDOF + dup OF unknown-enet ENDOF + ENDCASE + ELSE + unknown-enet + THEN + ENDOF + dup OF unknown-enet ENDOF + ENDCASE + ELSE + pci-device-vec c@ CASE + 2 OF pci-device-vec-len 1 >= IF + pci-device-vec 1+ c@ CASE + 4 OF dup pci-addr2fn 1 >= IF 1 ELSE 0 THEN ENDOF + dup OF unknown-enet ENDOF + ENDCASE + ELSE + unknown-enet + THEN + ENDOF + dup OF unknown-enet ENDOF + ENDCASE + THEN + swap drop \ forget the config address + + s" net" rot pci-set-alias \ create the alias +; + +\ define a new disk alias +: pci-alias-disk ( config-addr -- ) + drop \ forget the config address + pci-disk-num dup 1+ TO pci-disk-num \ increase the pci-disk-num + s" disk" rot pci-set-alias \ create the alias +; +\ define a new cdrom alias +: pci-alias-cdrom ( config-addr -- ) + drop \ forget the config address + pci-cdrom-num dup 1+ TO pci-cdrom-num \ increase the pci-cdrom-num + s" cdrom" rot pci-set-alias \ create the alias +; + +\ define the alias for the calling device +: pci-alias ( config-addr -- ) + dup pci-class@ + 10 rshift CASE + 01 OF pci-alias-disk ENDOF + 02 OF pci-alias-net ENDOF + dup OF drop ENDOF + ENDCASE +; |