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

1.1     ! root        1: \ *****************************************************************************
        !             2: \ * Copyright (c) 2004, 2008 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: 
        !            14: \ Atmel TPM.
        !            15: 
        !            16: new-device   500 1 set-unit
        !            17: 
        !            18: s" tpm" 2dup device-name device-type
        !            19: 
        !            20: s" AT97SC3201" compatible
        !            21: 
        !            22: \ 2 bytes of ISA I/O space
        !            23: my-unit encode-int rot encode-int+ 2 encode-int+ s" reg" property
        !            24: 
        !            25: : >tpm  4e io-c! ;
        !            26: : tpm@  >tpm 4f io-c@ ;
        !            27: : tpm!  >tpm 4f io-c! ;
        !            28: 
        !            29: : dump-tpm  11 0 DO cr i 2 .r space i tpm@ 2 0.r LOOP ;
        !            30: 
        !            31: my-address wbsplit 9 tpm! 8 tpm! \ set base address
        !            32: 0 a tpm! \ disable serint
        !            33: 
        !            34: \ Now we need to execute TPM_Startup.
        !            35: CREATE startup-cmd
        !            36: 0 c, c1 c,
        !            37: 0 c, 0 c, 0 c, c c,
        !            38: 0 c, 0 c, 0 c, 99 c, \ TPM_ORD_Startup
        !            39: 0 c, 1 c, \ TCPA_ST_CLEAR
        !            40: 
        !            41: : send ( addr len -- )  bounds ?DO i c@ 500 io-c! LOOP ;
        !            42: : wait-for-ready ( -- )  BEGIN 501 io-c@ 3 and 2 = UNTIL ;
        !            43: : recv-verbose  ( -- )
        !            44:    cr ." TPM result: "
        !            45:    500 io-c@ 2 0.r 500 io-c@ 2 0.r space
        !            46:    500 io-c@ 500 io-c@ 500 io-c@ 500 io-c@ 
        !            47:    bljoin lbflip 6 - dup 8 0.r space 0
        !            48:    ?DO  500 io-c@ .  LOOP
        !            49: ;
        !            50: 
        !            51: : recv ( -- )
        !            52:    500 io-c@ drop 500 io-c@ drop
        !            53:    500 io-c@ 500 io-c@ 500 io-c@ 500 io-c@
        !            54:    bljoin lbflip 6 - 0
        !            55:    ?DO  500 io-c@ drop  LOOP
        !            56: ;
        !            57: 
        !            58: startup-cmd c send  wait-for-ready  recv
        !            59: 
        !            60: : open  true ;
        !            61: : close ;
        !            62: 
        !            63: finish-device

unix.superglobalmegacorp.com

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