[BACK]Return to devreg.c CVS log [TXT][DIR] Up to [local] / sys / arch / sh / sh

Annotation of sys/arch/sh/sh/devreg.c, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: devreg.c,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $     */
        !             2: /*     $NetBSD: devreg.c,v 1.6 2006/03/04 01:13:35 uwe Exp $   */
        !             3:
        !             4: /*-
        !             5:  * Copyright (c) 2002 The NetBSD Foundation, Inc.
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * Redistribution and use in source and binary forms, with or without
        !             9:  * modification, are permitted provided that the following conditions
        !            10:  * are met:
        !            11:  * 1. Redistributions of source code must retain the above copyright
        !            12:  *    notice, this list of conditions and the following disclaimer.
        !            13:  * 2. Redistributions in binary form must reproduce the above copyright
        !            14:  *    notice, this list of conditions and the following disclaimer in the
        !            15:  *    documentation and/or other materials provided with the distribution.
        !            16:  * 3. All advertising materials mentioning features or use of this software
        !            17:  *    must display the following acknowledgement:
        !            18:  *        This product includes software developed by the NetBSD
        !            19:  *        Foundation, Inc. and its contributors.
        !            20:  * 4. Neither the name of The NetBSD Foundation nor the names of its
        !            21:  *    contributors may be used to endorse or promote products derived
        !            22:  *    from this software without specific prior written permission.
        !            23:  *
        !            24:  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
        !            25:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
        !            26:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
        !            27:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
        !            28:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
        !            29:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
        !            30:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
        !            31:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
        !            32:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
        !            33:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            34:  * POSSIBILITY OF SUCH DAMAGE.
        !            35:  */
        !            36:
        !            37: #include <sys/param.h>
        !            38:
        !            39: #include <sh/cache_sh3.h>
        !            40: #include <sh/cache_sh4.h>
        !            41: #include <sh/mmu_sh3.h>
        !            42: #include <sh/mmu_sh4.h>
        !            43: #include <sh/trap.h>
        !            44:
        !            45: #include <sh/ubcreg.h>
        !            46: #include <sh/rtcreg.h>
        !            47: #include <sh/tmureg.h>
        !            48:
        !            49: /* MMU */
        !            50: uint32_t __sh_PTEH;
        !            51: uint32_t __sh_TTB;
        !            52: uint32_t __sh_TEA;
        !            53: uint32_t __sh_TRA;
        !            54: uint32_t __sh_EXPEVT;
        !            55: uint32_t __sh_INTEVT;
        !            56:
        !            57: /* UBC */
        !            58: uint32_t __sh_BARA;
        !            59: uint32_t __sh_BAMRA;
        !            60: uint32_t __sh_BASRA;
        !            61: uint32_t __sh_BBRA;
        !            62: uint32_t __sh_BARB;
        !            63: uint32_t __sh_BAMRB;
        !            64: uint32_t __sh_BASRB;
        !            65: uint32_t __sh_BBRB;
        !            66: uint32_t __sh_BDRB;
        !            67: uint32_t __sh_BDMRB;
        !            68: uint32_t __sh_BRCR;
        !            69:
        !            70: /* RTC */
        !            71: uint32_t __sh_R64CNT;
        !            72: uint32_t __sh_RSECCNT;
        !            73: uint32_t __sh_RMINCNT;
        !            74: uint32_t __sh_RHRCNT;
        !            75: uint32_t __sh_RWKCNT;
        !            76: uint32_t __sh_RDAYCNT;
        !            77: uint32_t __sh_RMONCNT;
        !            78: uint32_t __sh_RYRCNT;
        !            79: uint32_t __sh_RSECAR;
        !            80: uint32_t __sh_RMINAR;
        !            81: uint32_t __sh_RHRAR;
        !            82: uint32_t __sh_RWKAR;
        !            83: uint32_t __sh_RDAYAR;
        !            84: uint32_t __sh_RMONAR;
        !            85: uint32_t __sh_RCR1;
        !            86: uint32_t __sh_RCR2;
        !            87:
        !            88: /* TMU */
        !            89: uint32_t __sh_TOCR;
        !            90: uint32_t __sh_TSTR;
        !            91: uint32_t __sh_TCOR0;
        !            92: uint32_t __sh_TCNT0;
        !            93: uint32_t __sh_TCR0;
        !            94: uint32_t __sh_TCOR1;
        !            95: uint32_t __sh_TCNT1;
        !            96: uint32_t __sh_TCR1;
        !            97: uint32_t __sh_TCOR2;
        !            98: uint32_t __sh_TCNT2;
        !            99: uint32_t __sh_TCR2;
        !           100: uint32_t __sh_TCPR2;
        !           101:
        !           102: #define        SH3REG(x)       __sh_ ## x = SH3_ ## x
        !           103: #define        SH4REG(x)       __sh_ ## x = SH4_ ## x
        !           104:
        !           105: #define        SHREG(x)                                                        \
        !           106: do {                                                                   \
        !           107: /* Exception */                                                                \
        !           108: SH ## x ## REG(TRA);                                                   \
        !           109: SH ## x ## REG(EXPEVT);                                                        \
        !           110: SH ## x ## REG(INTEVT);                                                        \
        !           111: /* UBC */                                                              \
        !           112: SH ## x ## REG(BARA);                                                  \
        !           113: SH ## x ## REG(BAMRA);                                                 \
        !           114: SH ## x ## REG(BASRA);                                                 \
        !           115: SH ## x ## REG(BBRA);                                                  \
        !           116: SH ## x ## REG(BARB);                                                  \
        !           117: SH ## x ## REG(BAMRB);                                                 \
        !           118: SH ## x ## REG(BASRB);                                                 \
        !           119: SH ## x ## REG(BBRB);                                                  \
        !           120: SH ## x ## REG(BDRB);                                                  \
        !           121: SH ## x ## REG(BDMRB);                                                 \
        !           122: SH ## x ## REG(BRCR);                                                  \
        !           123: /* MMU */                                                              \
        !           124: SH ## x ## REG(PTEH);                                                  \
        !           125: SH ## x ## REG(TEA);                                                   \
        !           126: SH ## x ## REG(TTB);                                                   \
        !           127: /* RTC */                                                              \
        !           128: SH ## x ## REG(R64CNT);                                                        \
        !           129: SH ## x ## REG(RSECCNT);                                               \
        !           130: SH ## x ## REG(RMINCNT);                                               \
        !           131: SH ## x ## REG(RHRCNT);                                                        \
        !           132: SH ## x ## REG(RWKCNT);                                                        \
        !           133: SH ## x ## REG(RDAYCNT);                                               \
        !           134: SH ## x ## REG(RMONCNT);                                               \
        !           135: SH ## x ## REG(RYRCNT);                                                        \
        !           136: SH ## x ## REG(RSECAR);                                                        \
        !           137: SH ## x ## REG(RMINAR);                                                        \
        !           138: SH ## x ## REG(RHRAR);                                                 \
        !           139: SH ## x ## REG(RWKAR);                                                 \
        !           140: SH ## x ## REG(RDAYAR);                                                        \
        !           141: SH ## x ## REG(RMONAR);                                                        \
        !           142: SH ## x ## REG(RCR1);                                                  \
        !           143: SH ## x ## REG(RCR2);                                                  \
        !           144: /* TMU */                                                              \
        !           145: SH ## x ## REG(TOCR);                                                  \
        !           146: SH ## x ## REG(TSTR);                                                  \
        !           147: SH ## x ## REG(TCOR0);                                                 \
        !           148: SH ## x ## REG(TCNT0);                                                 \
        !           149: SH ## x ## REG(TCR0);                                                  \
        !           150: SH ## x ## REG(TCOR1);                                                 \
        !           151: SH ## x ## REG(TCNT1);                                                 \
        !           152: SH ## x ## REG(TCR1);                                                  \
        !           153: SH ## x ## REG(TCOR2);                                                 \
        !           154: SH ## x ## REG(TCNT2);                                                 \
        !           155: SH ## x ## REG(TCR2);                                                  \
        !           156: SH ## x ## REG(TCPR2);                                                 \
        !           157: } while (/*CONSTCOND*/0)
        !           158:
        !           159: void
        !           160: sh_devreg_init()
        !           161: {
        !           162:        if (CPU_IS_SH3)
        !           163:                SHREG(3);
        !           164:
        !           165:        if (CPU_IS_SH4)
        !           166:                SHREG(4);
        !           167: }

CVSweb