Module Name: src Committed By: matt Date: Mon May 2 01:47:26 UTC 2011
Modified Files: src/sys/arch/powerpc/include/booke: e500reg.h Log Message: Add LBC FCM defintions (for NAND). To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/powerpc/include/booke/e500reg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/powerpc/include/booke/e500reg.h diff -u src/sys/arch/powerpc/include/booke/e500reg.h:1.5 src/sys/arch/powerpc/include/booke/e500reg.h:1.6 --- src/sys/arch/powerpc/include/booke/e500reg.h:1.5 Wed Mar 16 05:31:04 2011 +++ src/sys/arch/powerpc/include/booke/e500reg.h Mon May 2 01:47:26 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: e500reg.h,v 1.5 2011/03/16 05:31:04 matt Exp $ */ +/* $NetBSD: e500reg.h,v 1.6 2011/05/02 01:47:26 matt Exp $ */ /*- * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -550,18 +550,111 @@ #define MBMR 0x074 /* UPMB mode register */ #define MCMR 0x078 /* UPMC mode register */ #define MRTPR 0x084 /* Memory refresh timer prescaler register */ -#define MDR 0x088 /* UPM data register */ +#define MDR 0x088 /* UPM/FCM data register */ +#define MDR_AS3 __PPCBITS(0,7) +#define MDR_AS2 __PPCBITS(8,15) +#define MDR_AS1 __PPCBITS(16,23) +#define MDR_AS0 __PPCBITS(24,31) #define LSDMR 0x094 /* SDRAM mode register */ #define LURT 0x0A0 /* UPM refresh timer */ #define LSRT 0x0A4 /* SDRAM refresh timer */ #define LTESR 0x0B0 /* Transfer error status register */ +#define LTESR_BM __PPCBIT(0) +#define LTESR_FCT __PPCBIT(1) +#define LTESR_PAR __PPCBIT(2) +#define LTESR_WP __PPCBIT(5) +#define LTESR_ATMW __PPCBIT(8) +#define LTESR_ATMR __PPCBIT(9) +#define LTESR_CS __PPCBIT(12) +#define LTESR_UCC __PPCBIT(30) +#define LTESR_CC __PPCBIT(31) #define LTEDR 0x0B4 /* Transfer error disable register */ +#define LTEDR_BMD __PPCBIT(0) +#define LTEDR_FCTD __PPCBIT(1) +#define LTEDR_PARD __PPCBIT(2) +#define LTEDR_WPD __PPCBIT(5) +#define LTEDR_WARA __PPCBIT(8) +#define LTEDR_RAWA __PPCBIT(9) +#define LTEDR_CSD __PPCBIT(12) +#define LTEDR_UCCD __PPCBIT(30) +#define LTEDR_CCD __PPCBIT(31) #define LTEIR 0x0B8 /* Transfer error interrupt register */ +#define LTEIR_BMI __PPCBIT(0) +#define LTEIR_FCTI __PPCBIT(1) +#define LTEIR_PARI __PPCBIT(2) +#define LTEIR_WPI __PPCBIT(5) +#define LTEIR_WARA __PPCBIT(8) +#define LTEIR_RAWA __PPCBIT(9) +#define LTEIR_CSI __PPCBIT(12) +#define LTEIR_UCCI __PPCBIT(30) +#define LTEIR_CCI __PPCBIT(31) #define LTEATR 0x0BC /* Transfer error attributes register */ +#define LTEATR_RWB __PPCBIT(3) +#define LTEATR_SRCID __PPCBITS(11,15) +#define LTEATR_PB __PPCBITS(16,19) +#define LTEATR_BNK __PPCBITS(20,27) +#define LTEATR_V __PPCBIT(31) #define LTEAR 0x0C0 /* Transfer error address register */ +#define LTECCR 0x0C4 /* Transfer error ECC register */ +#define LTECCR_SBCE __PPCBITS(12,15) +#define LTECCR_MBUE __PPCBITS(28,31) #define LBCR 0x0D0 /* Configuration register */ #define LCRR 0x0D4 /* Clock ratio register */ +#define FMR 0x0E0 /* Flash Mode Register */ +#define FMR_CWTO __PPCBITS(16,19) +#define FMR_BOOT __PPCBIT(20) +#define FMR_ECCM __PPCBIT(23) +#define FMR_AL __PPCBITS(26,27) +#define FMR_OP __PPCBITS(30,31) +#define FIR 0x0E4 /* Flash Instruction Register */ +#define FIR_OP0 __PPCBITS(0,3) +#define FIR_OP1 __PPCBITS(4,7) +#define FIR_OP2 __PPCBITS(8,11) +#define FIR_OP3 __PPCBITS(12,15) +#define FIR_OP4 __PPCBITS(16,19) +#define FIR_OP5 __PPCBITS(20,23) +#define FIR_OP6 __PPCBITS(24,27) +#define FIR_OP7 __PPCBITS(28,31) +#define FIR_OP_NOP 0 +#define FIR_OP_CA 1 /* Issue current column address */ +#define FIR_OP_PA 2 /* Issue current block+page address */ +#define FIR_OP_UA 3 /* Issue user-defined address byte */ +#define FIR_OP_CM0 4 /* Issue command from FCR[CMD0] */ +#define FIR_OP_CM1 5 /* Issue command from FCR[CMD1] */ +#define FIR_OP_CM2 6 /* Issue command from FCR[CMD2] */ +#define FIR_OP_CM3 7 /* Issue command from FCR[CMD3] */ +#define FIR_OP_WB 8 /* Write FBCR bytes of data */ +#define FIR_OP_WS 9 /* Write one byte of data from MDR */ +#define FIR_OP_RB 10 /* Read FBCR bytes of data */ +#define FIR_OP_RS 11 /* Read one byte of data into MDR */ +#define FIR_OP_CW0 12 /* Wait for LFRB then FCR[CMD0] */ +#define FIR_OP_CW1 13 /* Wait for LFRB then FCR[CMD1] */ +#define FIR_OP_RBW 14 /* Wait for LFRB then read FBCR bytes */ +#define FIR_OP_RSW 15 /* Wait for LFRB then byte into MDR */ +#define FCR 0xE8 /* Flash Command Register */ +#define FCR_CMD0 __PPCBITS(0,7) +#define FCR_CMD1 __PPCBITS(8,15) +#define FCR_CMD2 __PPCBITS(16,23) +#define FCR_CMD3 __PPCBITS(24,31) +#define FBAR 0xEC /* Flash Block Address Register */ +#define FBAR_BLK __PPCBITS(8,31) +#define FPAR 0xF0 /* Flash Page Address Register */ +#define FPAR_S_PI __PPCBITS(17,21) /* Page Index */ +#define FPAR_S_MS __PPCBIT(22) /* Main(0)/Spare(1) */ +#define FPAR_S_CI __PPCBITS(23,31) /* Column Index */ +#define FPAR_L_PI __PPCBITS(14,19) /* Page Index */ +#define FPAR_L_MS __PPCBIT(20) /* Main(0)/Spare(1) */ +#define FPAR_L_CI __PPCBITS(21,31) /* Column Index */ +#define FBCR 0xF4 /* Flash Byte Count Register */ +#define FBCR_BC __PPCBITS(20,31) +#define FECC0 0x100 +#define FECC_V __PPCBIT(0) +#define FECC_ECC __PPCBIT(8,31) +#define FECC1 0x104 +#define FECC2 0x108 +#define FECC3 0x10C + #define MXMR_RFEN __PPCBIT(1) /* Refresh enable */ #define MXMR_OP __PPCBITS(2,3) /* Command opcode */ #define MXMR_OP_NORMAL __SHIFTIN(0, MXMR_OP) /* Normal Operation */