Annotation of qemu/roms/SLOF/board-qemu/slof/rtas.fs, revision 1.1

1.1     ! root        1: \ *****************************************************************************
        !             2: \ * Copyright (c) 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: \ KVM/qemu RTAS
        !            14: 
        !            15: \ rtas control block
        !            16: 
        !            17: 4d0 cp
        !            18: 
        !            19: STRUCT
        !            20:     /l field rtas>token
        !            21:     /l field rtas>nargs
        !            22:     /l field rtas>nret
        !            23:     /l field rtas>args0
        !            24:     /l field rtas>args1
        !            25:     /l field rtas>args2
        !            26:     /l field rtas>args3
        !            27:     /l field rtas>args4
        !            28:     /l field rtas>args5
        !            29:     /l field rtas>args6
        !            30:     /l field rtas>args7
        !            31:     /l C * field rtas>args
        !            32:     /l field rtas>bla
        !            33: CONSTANT /rtas-control-block
        !            34: 
        !            35: CREATE rtas-cb /rtas-control-block allot
        !            36: rtas-cb /rtas-control-block erase
        !            37: 
        !            38: 0 VALUE rtas-base
        !            39: 0 VALUE rtas-size
        !            40: 0 VALUE rtas-entry
        !            41: 0 VALUE rtas-node
        !            42: 
        !            43: \ Locate qemu RTAS, remove the linux,... properties we really don't
        !            44: \ want them to stick around
        !            45: 
        !            46: 4d1 cp
        !            47: 
        !            48: : find-qemu-rtas ( -- )
        !            49:     " /rtas" find-device get-node to rtas-node
        !            50: 
        !            51:     " linux,rtas-base" rtas-node get-package-property IF
        !            52:          device-end EXIT THEN
        !            53:     drop l@ to rtas-base
        !            54:     " linux,rtas-base" delete-property
        !            55: 
        !            56:     " rtas-size" rtas-node get-package-property IF
        !            57:          device-end EXIT THEN
        !            58:     drop l@ to rtas-size
        !            59: 
        !            60:     " linux,rtas-entry" rtas-node get-package-property IF
        !            61:         rtas-base to rtas-entry
        !            62:     ELSE
        !            63:         drop l@ to rtas-entry
        !            64:         " linux,rtas-entry" delete-property
        !            65:     THEN
        !            66: 
        !            67:     \ ." RTAS found, base=" rtas-base . ."  size=" rtas-size . cr
        !            68: 
        !            69:     device-end
        !            70: ;
        !            71: find-qemu-rtas
        !            72: 
        !            73: 4d2 cp
        !            74: 
        !            75: : enter-rtas ( -- )
        !            76:     rtas-cb rtas-base 0 rtas-entry call-c drop
        !            77: ;
        !            78: 
        !            79: : rtas-get-token ( str len -- token | 0 )
        !            80:     rtas-node get-package-property IF 0 ELSE drop l@ THEN
        !            81: ;
        !            82: 
        !            83: : rtas-start-cpu  ( pid loc r3 -- status )
        !            84:    " start-cpu" rtas-get-token rtas-cb rtas>token l!
        !            85:    3  rtas-cb rtas>nargs l!
        !            86:    1  rtas-cb rtas>nret l!
        !            87:    rtas-cb rtas>args2 l!
        !            88:    rtas-cb rtas>args1 l!
        !            89:    rtas-cb rtas>args0 l!
        !            90:    0 rtas-cb rtas>args3 l!
        !            91:    enter-rtas
        !            92:    rtas-cb rtas>args3 l@
        !            93: ;
        !            94: 
        !            95: : rtas-set-tce-bypass ( unit enable -- )
        !            96:     " ibm,set-tce-bypass" rtas-get-token rtas-cb rtas>token l!
        !            97:     2 rtas-cb rtas>nargs l!
        !            98:     0 rtas-cb rtas>nret l!
        !            99:     rtas-cb rtas>args1 l!
        !           100:     rtas-cb rtas>args0 l!
        !           101:     enter-rtas
        !           102: ;
        !           103: 
        !           104: : rtas-quiesce ( -- )
        !           105:     " quiesce" rtas-get-token rtas-cb rtas>token l!
        !           106:     0 rtas-cb rtas>nargs l!
        !           107:     0 rtas-cb rtas>nret l!
        !           108:     enter-rtas
        !           109: ;
        !           110: 
        !           111: : of-start-cpu rtas-start-cpu ;
        !           112: 
        !           113: \ Methods of the rtas node proper
        !           114: rtas-node set-node
        !           115: 
        !           116: : open true ;
        !           117: : close ;
        !           118: 
        !           119: : instantiate-rtas ( adr -- entry )
        !           120:     dup rtas-base swap rtas-size move
        !           121:     rtas-entry rtas-base - +
        !           122: ;
        !           123: 
        !           124: device-end
        !           125: 
        !           126: 4d8 cp

unix.superglobalmegacorp.com

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