add VR4181 BCU register definitions.
add routines for VR4181.
This commit is contained in:
parent
09fc203c72
commit
05c9ce0788
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: bcu_vrip.c,v 1.7 2001/04/18 11:07:26 sato Exp $ */
|
||||
/* $NetBSD: bcu_vrip.c,v 1.8 2001/04/21 14:44:40 sato Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1999-2001 SATO Kazumi. All rights reserved.
|
||||
|
@ -120,7 +120,7 @@ vrbcu_dump_regs()
|
|||
{
|
||||
struct vrbcu_softc *sc = the_bcu_sc;
|
||||
int cpuclock = 0, tclock = 0, vtclock = 0, cpuid;
|
||||
#if !defined(ONLY_VR4181) && !defined(ONLY_VR4102) && defined VRGROUP_4111_4122
|
||||
#if !defined(ONLY_VR4102)
|
||||
int spdreg;
|
||||
#endif
|
||||
#ifdef VRBCUDEBUG
|
||||
|
@ -128,7 +128,7 @@ vrbcu_dump_regs()
|
|||
#endif /* VRBCUDEBUG */
|
||||
|
||||
cpuid = vrbcu_vrip_getcpuid();
|
||||
#if !defined(ONLY_VR4181) && !defined(ONLY_VR4102) && defined VRGROUP_4111_4122
|
||||
#if !defined(ONLY_VR4181) && !defined(ONLY_VR4102)
|
||||
if (cpuid != BCUREVID_FIXRID_4181
|
||||
&& cpuid <= BCUREVID_RID_4122
|
||||
&& cpuid >= BCUREVID_RID_4111) {
|
||||
|
@ -138,11 +138,38 @@ vrbcu_dump_regs()
|
|||
#endif /* VRBCUDEBUG */
|
||||
}
|
||||
#endif
|
||||
#if defined VR4181
|
||||
if (cpuid == BCUREVID_FIXRID_4181){
|
||||
spdreg = vrbcu_read(sc, BCU81CLKSPEED_REG_W);
|
||||
#ifdef VRBCUDEBUG
|
||||
printf("vrbcu: CLKSPEED %x: \n", spdreg);
|
||||
#endif /* VRBCUDEBUG */
|
||||
}
|
||||
#endif
|
||||
|
||||
cpuclock = vrbcu_vrip_getcpuclock();
|
||||
|
||||
switch (cpuid) {
|
||||
#if defined VR4181
|
||||
case BCUREVID_FIXRID_4181:
|
||||
switch ((spdreg&BCU81CLKSPEED_DIVTMASK)>>BCU81CLKSPEED_DIVTSHFT){
|
||||
case BCU81CLKSPEED_DIVT1:
|
||||
vtclock = tclock = cpuclock;
|
||||
break;
|
||||
case BCU81CLKSPEED_DIVT2:
|
||||
vtclock = tclock = cpuclock/2;
|
||||
break;
|
||||
case BCU81CLKSPEED_DIVT3:
|
||||
vtclock = tclock = cpuclock/3;
|
||||
break;
|
||||
case BCU81CLKSPEED_DIVT4:
|
||||
vtclock = tclock = cpuclock/4;
|
||||
break;
|
||||
default:
|
||||
vtclock = tclock = 0;
|
||||
}
|
||||
break;
|
||||
#endif /* VR4181 */
|
||||
case BCUREVID_RID_4101:
|
||||
case BCUREVID_RID_4102:
|
||||
vtclock = tclock = cpuclock/2;
|
||||
|
@ -262,14 +289,16 @@ vrbcu_vrip_getcpuid(void)
|
|||
return vr_cpuid;
|
||||
|
||||
if (vr_cpuid == -1) {
|
||||
revreg = (u_int16_t *)MIPS_PHYS_TO_KSEG1((VRIP_BCU_ADDR+BCUREVID_REG_W));
|
||||
if (VRIP_BCU_ADDR == VR4181_BCU_ADDR)
|
||||
revreg = (u_int16_t *)MIPS_PHYS_TO_KSEG1((VRIP_BCU_ADDR+BCU81REVID_REG_W));
|
||||
else
|
||||
revreg = (u_int16_t *)MIPS_PHYS_TO_KSEG1((VRIP_BCU_ADDR+BCUREVID_REG_W));
|
||||
|
||||
vr_cpuid = *revreg;
|
||||
vr_cpuid = (vr_cpuid&BCUREVID_RIDMASK)>>BCUREVID_RIDSHFT;
|
||||
#if !defined(VR4101) && defined(VR4181)
|
||||
if (vr_cpuid == BCUREVID_RID_4181) /* conflict vr4101 */
|
||||
if (VRIP_BCU_ADDR == VR4181_BCU_ADDR
|
||||
&& vr_cpuid == BCUREVID_RID_4181) /* conflict vr4101 */
|
||||
vr_cpuid = BCUREVID_FIXRID_4181;
|
||||
#endif /* !defined(VR4101) && defined(VR4181) */
|
||||
}
|
||||
return vr_cpuid;
|
||||
}
|
||||
|
@ -330,12 +359,13 @@ vrbcu_vrip_getcpuclock(void)
|
|||
cpuid = vrbcu_vrip_getcpuid();
|
||||
if (cpuid != BCUREVID_FIXRID_4181 && cpuid >= BCUREVID_RID_4111) {
|
||||
clksp = *(u_int16_t *)MIPS_PHYS_TO_KSEG1((VRIP_BCU_ADDR+BCUCLKSPEED_REG_W)) & BCUCLKSPEED_CLKSPMASK;
|
||||
} else if (cpuid == BCUREVID_FIXRID_4181) {
|
||||
clksp = *(u_int16_t *)MIPS_PHYS_TO_KSEG1((VRIP_BCU_ADDR+BCU81CLKSPEED_REG_W)) & BCUCLKSPEED_CLKSPMASK;
|
||||
}
|
||||
|
||||
switch (cpuid) {
|
||||
case BCUREVID_FIXRID_4181:
|
||||
/* assume 66MHz */
|
||||
cpuclock = 66000000;
|
||||
cpuclock = CLKX / clksp * 64;
|
||||
/* branch delay is 1 clock; 2 clock/loop */
|
||||
cpuspeed = (cpuclock / 2 + MHZ / 2) / MHZ;
|
||||
break;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: bcureg.h,v 1.5 2001/04/16 09:17:05 sato Exp $ */
|
||||
/* $NetBSD: bcureg.h,v 1.6 2001/04/21 14:44:40 sato Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1999-2001 SATO Kazumi. All rights reserved.
|
||||
|
@ -51,6 +51,10 @@
|
|||
#define BCUCNT1_DRAM64M (1<<14) /* DRAM SIZE 64Mbit*/
|
||||
#define BCUCNT1_DRAM32M (0<<14) /* DRAM SIZE 32Mbit*/
|
||||
|
||||
#define BCUCNT1_ROMSMASK (0x3<<14) /* ROM SIZE (=4181) */
|
||||
#define BCUCNT1_ROMS64M (0x2<<14) /* ROM SIZE 64Mbit */
|
||||
#define BCUCNT1_ROMS32M (0x1<<14) /* ROM SIZE 32Mbit */
|
||||
|
||||
#define BCUCNT1_ISAMLCD (1<<13) /* ISAM/LCD 0x0a000000 to 0xaffffff(>= 4102) */
|
||||
#define BCUCNT1_ISA (1<<13) /* ISA memory space */
|
||||
#define BCUCNT1_LCD (0<<13) /* LCD space*/
|
||||
|
@ -88,7 +92,7 @@
|
|||
#define BCUCNT1_ROMWENEN (1<<5) /* Enable */
|
||||
#define BCUCNT1_ROMWENDS (0<<5) /* Prohibit */
|
||||
|
||||
#define BCUCNT1_ROMWEN0 (1<<4) /* Enable Flash memory write ROM 0 (<= 4122,>= 4102) */
|
||||
#define BCUCNT1_ROMWEN0 (1<<4) /* Enable Flash memory write ROM 0 (<= 4122,>= 4102, =4181) */
|
||||
#define BCUCNT1_ROMWEN0EN (1<<4) /* Enable */
|
||||
#define BCUCNT1_ROMWEN0DS (0<<4) /* Prohibit */
|
||||
|
||||
|
@ -109,12 +113,17 @@
|
|||
#define BCUCNT1_BUSHERREN (1<<1) /* Enable */
|
||||
#define BCUCNT1_BUSHERRDS (0<<1) /* Prohibit */
|
||||
|
||||
#define BCUCNT1_RTYPE (0x3<<1) /* ROM type (=4181) */
|
||||
#define BCUCNT1_RTOROM (0<<1) /* Odinary ROM */
|
||||
#define BCUCNT1_RTFLASH (1<<1) /* flash ROM */
|
||||
#define BCUCNT1_RTPAGEROM (2<<1) /* Page ROM */
|
||||
|
||||
#define BCUCNT1_RSTOUT (1) /* RSTOUT control bit */
|
||||
#define BCUCNT1_RSTOUTH (1) /* RSTOUT high level*/
|
||||
#define BCUCNT1_RSTOUTL (0) /* RSTOUT low level*/
|
||||
|
||||
|
||||
#define BCUCNT2_REG_W 0x002 /* BCU Control Register 2 (<= 4121,>= 4102) */
|
||||
#define BCUCNT2_REG_W 0x002 /* BCU Control Register 2 (<= 4121,>= 4102, =4181) */
|
||||
|
||||
#define BCUCNT2_GMODE (1) /* LCD access control */
|
||||
#define BCUCNT2_GMODENOM (1) /* not invert LCD */
|
||||
|
@ -304,7 +313,7 @@
|
|||
#define BCUIO1SPEED_CSRW_2VT (0x1) /* 2VTClock */
|
||||
#define BCUIO1SPEED_CSRW_1VT (0x0) /* 1VTClock */
|
||||
|
||||
#define BCUSPEED_REG_W 0x00A /* BCU Access Cycle Change Register */
|
||||
#define BCUSPEED_REG_W 0x00A /* BCU Access Cycle Change Register (4121>=4102)*/
|
||||
|
||||
#define BCUSPD_WPROM (0x3<<12) /* Page ROM access speed */
|
||||
#define BCUSPD_WPROMRFU (0x3<<12) /* RFU */
|
||||
|
@ -352,18 +361,49 @@
|
|||
#define BCUSPD_WROMA9T (0x0<<0) /* 9TClock */
|
||||
|
||||
|
||||
#define BCUERRST_REG_W 0x00C /* BCU BUS ERROR Status Register */
|
||||
#define BCUERRST_REG_W 0x00C /* BCU BUS ERROR Status Register (4121>=4102)*/
|
||||
|
||||
#define BCUERRST_BUSERRMASK (1) /* Bus error, clear to 0 when 1 is written */
|
||||
#define BCUERRST_BUSERR (1) /* Bus error */
|
||||
#define BCUERRST_BUSNORM (0) /* Normal */
|
||||
|
||||
#define BCU81SPEED_REG_W 0x00C /* BCU Access Cycle Change Register (=4181)*/
|
||||
|
||||
#define BCURFCNT_REG_W 0x00E /* BCU Refresh Control Register */
|
||||
#define BCU81SPD_WPROM (0x7<<12) /* Page ROM access speed */
|
||||
#define BCU81SPD_WPROM8T (0x7<<12) /* 8TClock */
|
||||
#define BCU81SPD_WPROM7T (0x6<<12) /* 7TClock */
|
||||
#define BCU81SPD_WPROM6T (0x5<<12) /* 6TClock */
|
||||
#define BCU81SPD_WPROM5T (0x4<<12) /* 5TClock */
|
||||
#define BCU81SPD_WPROM4T (0x3<<12) /* 4TClock */
|
||||
#define BCU81SPD_WPROM3T (0x2<<12) /* 3TClock */
|
||||
#define BCU81SPD_WPROM2T (0x1<<12) /* 2TClock */
|
||||
#define BCU81SPD_WPROM1T (0x0<<12) /* 1TClock */
|
||||
|
||||
#define BCU81SPD_WROMA (0xf<<0) /* System Bus Access Speed */
|
||||
#define BCU81SPD_WROMA16T (0xf<<0) /* 16TClock */
|
||||
#define BCU81SPD_WROMA15T (0xe<<0) /* 15TClock */
|
||||
#define BCU81SPD_WROMA14T (0xd<<0) /* 14TClock */
|
||||
#define BCU81SPD_WROMA13T (0xc<<0) /* 13TClock */
|
||||
#define BCU81SPD_WROMA12T (0xb<<0) /* 12TClock */
|
||||
#define BCU81SPD_WROMA11T (0xa<<0) /* 11TClock */
|
||||
#define BCU81SPD_WROMA10T (0x9<<0) /* 10TClock */
|
||||
#define BCU81SPD_WROMA9T (0x8<<0) /* 9TClock */
|
||||
#define BCU81SPD_WROMA8T (0x7<<0) /* 8TClock */
|
||||
#define BCU81SPD_WROMA7T (0x6<<0) /* 7TClock */
|
||||
#define BCU81SPD_WROMA6T (0x5<<0) /* 6TClock */
|
||||
#define BCU81SPD_WROMA5T (0x4<<0) /* 5TClock */
|
||||
#define BCU81SPD_WROMA4T (0x3<<0) /* 4TClock */
|
||||
#define BCU81SPD_WROMA3T (0x2<<0) /* 3TClock */
|
||||
#define BCU81SPD_WROMA2T (0x1<<0) /* 2TClock */
|
||||
#define BCU81SPD_WROMA1T (0x0<<0) /* 1TClock */
|
||||
|
||||
#define BCURFCNT_REG_W 0x00E /* BCU Refresh Control Register(4121>=4102) */
|
||||
#define BCU81RFCNT_REG_W 0x00E /* BCU Refresh Control Register(=4181) */
|
||||
|
||||
#define BCURFCNT_MASK 0x3fff /* refresh interval MASK */
|
||||
|
||||
#define BCUREVID_REG_W 0x010 /* BCU Revision ID Register */
|
||||
#define BCUREVID_REG_W 0x010 /* BCU Revision ID Register (4122>=4101)*/
|
||||
#define BCU81REVID_REG_W 0x010 /* BCU Revision ID Register (=4181)*/
|
||||
|
||||
#define BCUREVID_RIDMASK (0xf<<12) /* Revision ID */
|
||||
#define BCUREVID_RIDSHFT (12) /* Revision ID */
|
||||
|
@ -389,6 +429,7 @@
|
|||
|
||||
|
||||
#define BCUCLKSPEED_REG_W 0x014 /* Clock Speed Register (>= 4102) */
|
||||
#define BCU81CLKSPEED_REG_W 0x014 /* Clock Speed Register (= 4181) */
|
||||
|
||||
#define BCUCLKSPEED_DIVT2B (1<<15) /* (= 4102, 4111) */
|
||||
#define BCUCLKSPEED_DIVT3B (1<<14) /* (= 4111) */
|
||||
|
@ -406,6 +447,13 @@
|
|||
#define BCUCLKSPEED_TDIV2 0x0
|
||||
#define BCUCLKSPEED_TDIVSHFT (12)
|
||||
|
||||
#define BCU81CLKSPEED_DIVTMASK (0x7<<12) /* (=4181) */
|
||||
#define BCU81CLKSPEED_DIVT1 0x7
|
||||
#define BCU81CLKSPEED_DIVT2 0x3
|
||||
#define BCU81CLKSPEED_DIVT3 0x5
|
||||
#define BCU81CLKSPEED_DIVT4 0x6
|
||||
#define BCU81CLKSPEED_DIVTSHFT (12)
|
||||
|
||||
#define BCUCLKSPEED_DIVVTMASK (0xf<<8) /* (= 4121) */
|
||||
#define BCUCLKSPEED_DIVVT1 0x1
|
||||
#define BCUCLKSPEED_DIVVT2 0x2
|
||||
|
|
Loading…
Reference in New Issue