Annotation of qemu/roms/SLOF/board-js2x/slof/rtc.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: \ National Semiconductor SIO.
        !            14: \ See http://www.national.com/pf/PC/PC87417.html for the datasheet.
        !            15: \ PC87417.pdf
        !            16: \ moved the RTC initialisation from the device tree to a much earlier point
        !            17: \ so that the RTC can be accessed before device tree is generated
        !            18: 
        !            19: \ Enable the RTC, set its address at 1070
        !            20: \ see PC87417.pdf page 39 (chapter 3.2.3)
        !            21: 10 7 siocfg!
        !            22: 1 30 siocfg!
        !            23: 1070 wbsplit nip dup 60 siocfg! 62 siocfg!
        !            24: 
        !            25: : rtc@  ( offset -- value )
        !            26:    1070 io-c! 1071 io-c@
        !            27: ;
        !            28: 
        !            29: : rtc!  ( value offset -- )
        !            30:    1070 io-c! 1071 io-c!
        !            31: ;
        !            32: 
        !            33: \ Set sane configuration; BCD mode is required by Linux.
        !            34: \ PC87417.pdf page 153 (chapter 8.3.13) - RTC Control Register A
        !            35: \ 20 - Divider Chain Control = Normal Operation
        !            36: 20 0a rtc!
        !            37: \ PC87417.pdf page 155 (chapter 8.3.14) - RTC Control Register B
        !            38: \ 02 - 24-hour format enabled
        !            39: 02 0b rtc!
        !            40: \ PC87417.pdf page 156 (chapter 8.3.15) - RTC Control Register C
        !            41: 00 0c rtc!
        !            42: 
        !            43: \ read from the rtc and do the bcd-to-bin conversion
        !            44: : rtc-bin@  ( offset -- value )
        !            45:    rtc@ bcd-to-bin
        !            46: ;
        !            47: 
        !            48: \ to be compatible with the cell boards we provide a .date word
        !            49: \ .date prints the current date and time on the firmware prompt
        !            50: : .date  ( -- )
        !            51:    0 rtc-bin@  ( seconds )
        !            52:    2 rtc-bin@
        !            53:    4 rtc-bin@
        !            54:    7 rtc-bin@
        !            55:    8 rtc-bin@  ( seconds minutes hours day month )
        !            56:    9 rtc-bin@ d# 1900 + dup d# 1970 <  IF  d# 100 +  THEN
        !            57:    decimal 4 0.r 2d emit 2 0.r 2d emit 2 0.r space
        !            58:    2 0.r 3a emit 2 0.r 3a emit 2 0.r hex
        !            59: ;

unix.superglobalmegacorp.com

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