Annotation of qemu/roms/SLOF/board-qemu/slof/tree.fs, revision 1.1.1.1

1.1       root        1: \ *****************************************************************************
                      2: \ * Copyright (c) 2004, 2011 IBM Corporation
                      3: \ * All rights reserved.
                      4: \ * This program and the accompanying materials
                      5: \ * are made available under the terms of the BSD License
                      6: \ * which accompanies this distribution, and is available at
                      7: \ * http://www.opensource.org/licenses/bsd-license.php
                      8: \ *
                      9: \ * Contributors:
                     10: \ *     IBM Corporation - initial implementation
                     11: \ ****************************************************************************/
                     12: 
                     13: : strequal ( str1 len1 str2 len2 -- flag )
                     14:   rot dup rot = IF comp 0= ELSE 2drop drop 0 THEN ; 
                     15: 
                     16: 400 cp
                     17: 
                     18: 0 value puid
                     19: 
                     20: 440 cp
                     21: 
                     22: 480 cp
                     23: 
                     24: \ The root of the device tree and some of its kids.
                     25: " /" find-device
                     26: 
                     27: " QEMU" encode-string s" model" property
                     28: 
                     29: 2 encode-int s" #address-cells" property
                     30: 2 encode-int s" #size-cells" property
                     31: 
                     32: \ Yaboot is stupid.  Without this, it can't/won't find /etc/yaboot.conf.
                     33: s" chrp" device-type
                     34: 
                     35: \ See 3.6.5, and the PowerPC OF binding document.
                     36: new-device
                     37: s" mmu" 2dup device-name device-type
                     38: 0 0 s" translations" property
                     39: 
                     40: : open  true ;
                     41: : close ;
                     42: 
                     43: finish-device
                     44: device-end
                     45: 
                     46: 4c0 cp
                     47: 
                     48: \ Fixup timebase frequency from device-tree
                     49: : fixup-tbfreq
                     50:     " /cpus/@0" find-device
                     51:     " timebase-frequency" get-node get-package-property IF
                     52:         2drop
                     53:     ELSE
                     54:         decode-int to tb-frequency 2drop
                     55:     THEN
                     56:     device-end
                     57: ;
                     58: fixup-tbfreq
                     59: 
                     60: 4d0 cp
                     61: 
                     62: \ Grab rtas from qemu
                     63: #include "rtas.fs"
                     64: 
                     65: 500 cp
                     66: 
                     67: : populate-vios ( -- )
                     68:     \ Populate the /vdevice children with their methods
                     69:     \ WARNING: Quite a few SLOFisms here like get-node, set-node, ...
                     70: 
                     71:     ." Populating /vdevice methods" cr
                     72:     " /vdevice" find-device get-node child
                     73:     BEGIN
                     74:         dup 0 <>
                     75:     WHILE
                     76:         dup set-node
                     77:         dup " compatible" rot get-package-property 0 = IF
                     78:             drop dup from-cstring
                     79:             2dup " hvterm1" strequal IF
                     80:                 " vio-hvterm.fs" included
                     81:             THEN
                     82:             2dup " IBM,v-scsi" strequal IF
                     83:                 " vio-vscsi.fs" included
                     84:             THEN
                     85:             2dup " IBM,l-lan" strequal IF
                     86:                 " vio-veth.fs" included
                     87:             THEN
                     88:             2drop
                     89:        THEN
                     90:        peer
                     91:     REPEAT drop
                     92: 
                     93:     device-end
                     94: ;
                     95: 
                     96: \ Now do it
                     97: populate-vios
                     98: 
                     99: 580 cp
                    100: 
                    101: 5a0 cp
                    102: 
                    103: 600 cp
                    104: 
                    105: \ Add rtas cleanup last
                    106: ' rtas-quiesce add-quiesce-xt
                    107: 
                    108: 640 cp
                    109: 
                    110: 690 cp
                    111: 
                    112: 6a0 cp
                    113: 
                    114: 6a8 cp
                    115: 
                    116: 6b0 cp
                    117: 
                    118: 6b8 cp
                    119: 
                    120: 6c0 cp
                    121: 
                    122: s" /cpus/@0" open-dev encode-int s" cpu" set-chosen
                    123: s" /memory" open-dev encode-int s" memory" set-chosen
                    124: 
                    125: 6e0 cp
                    126: 
                    127: 700 cp
                    128: 
                    129: \ See 3.5.
                    130: s" /openprom" find-device
                    131:    s" SLOF," slof-build-id here swap rmove here slof-build-id nip $cat encode-string s" model" property
                    132:    0 0 s" relative-addressing" property
                    133: device-end
                    134: 
                    135: s" /aliases" find-device
                    136:    : open  true ;
                    137:    : close ;
                    138: device-end
                    139: 
                    140: s" /mmu" open-dev encode-int s" mmu" set-chosen
                    141: 
                    142: #include "available.fs"
                    143: 
                    144: \ Setup terminal IO
                    145: 
                    146: #include <term-io.fs>
                    147: 
                    148: " hvterm" find-alias IF drop
                    149:   " hvterm" io
                    150: THEN

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.