diff options
Diffstat (limited to 'nand_spl/board/ads5125/nfc.h')
-rw-r--r-- | nand_spl/board/ads5125/nfc.h | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/nand_spl/board/ads5125/nfc.h b/nand_spl/board/ads5125/nfc.h new file mode 100644 index 00000000000..1406118eba9 --- /dev/null +++ b/nand_spl/board/ads5125/nfc.h @@ -0,0 +1,122 @@ +/* + * + * (C) Copyright 2009 + * Martha Marx, Silicon Turnkey Express, mmarx@silicontkx.com + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#define TWO_K 0x800 +#define NUMPAGES 137 /* if u-boot grows .. extend this */ + +/* NAND Flash Controller Register Offsets */ +#define NFC_BUF_MAIN1 0x0000 +#define NFC_BUF_MAIN2 0x0200 +#define NFC_BUF_MAIN3 0x0400 +#define NFC_BUF_MAIN4 0x0600 +#define NFC_BUF_MAIN5 0x0800 +#define NFC_BUF_MAIN6 0x0A00 +#define NFC_BUF_MAIN7 0x0C00 +#define NFC_BUF_MAIN8 0x0E00 +#define NFC_BUF_SPARE1 0x1000 +#define NFC_BUF_SPARE2 0x1040 +#define NFC_BUF_SPARE3 0x1080 +#define NFC_BUF_SPARE4 0x10c0 +#define NFC_BUF_SPARE5 0x1100 +#define NFC_BUF_SPARE6 0x1140 +#define NFC_BUF_SPARE7 0x1180 +#define NFC_BUF_SPARE8 0x11c0 + +#define NFC_RAM_BUF_ADDR 0x1e04 +#define NFC_FLASH_ADDR 0x1e06 +#define NFC_FLASH_CMD 0x1e08 +#define NFC_NFC_CFG 0x1e0a +#define NFC_ECC_STATUS1 0x1e0c +#define NFC_ECC_STATUS2 0x1e0e +#define NFC_SPAS 0x1e10 +#define NFC_NF_WR_PROT 0x1e12 +#define NFC_FL_WP_STAT 0x1e18 +#define NFC_NF_CFG1 0x1e1a +#define NFC_NF_CFG2 0x1e1c +#define NFC_UNLOCKSTART_BLKADDR0 0x1E20 +#define NFC_UNLOCKEND_BLKADDR0 0x1E22 +#define NFC_UNLOCKSTART_BLKADDR1 0x1E24 +#define NFC_UNLOCKEND_BLKADDR1 0x1E26 +#define NFC_UNLOCKSTART_BLKADDR2 0x1E28 +#define NFC_UNLOCKEND_BLKADDR2 0x1E2A +#define NFC_UNLOCKSTART_BLKADDR3 0x1E2C +#define NFC_UNLOCKEND_BLKADDR3 0x1E2E + +#define RAM_BUFFER_ADDRESS_RBA_4 0x4 +#define RAM_BUFFER_ADDRESS_RBA_3 0x3 +#define NFC_BUFSIZE_1KB 0x0 +#define NFC_BUFSIZE_2KB 0x1 +#define NFC_CONFIGURATION_UNLOCKED 0x2 +#define ECC_STATUS_RESULT_NO_ERR 0x0 +#define ECC_STATUS_RESULT_1BIT_ERR 0x1 +#define ECC_STATUS_RESULT_2BIT_ERR 0x2 +#define NF_WR_PROT_UNLOCK 0x4 +#define NAND_FLASH_CONFIG1_FORCE_CE (1 << 7) +#define NAND_FLASH_CONFIG1_RST (1 << 6) +#define NAND_FLASH_CONFIG1_BIG (1 << 5) +#define NAND_FLASH_CONFIG1_INT_MSK (1 << 4) +#define NAND_FLASH_CONFIG1_ECC_EN (1 << 3) +#define NAND_FLASH_CONFIG1_SP_EN (1 << 2) +#define NAND_FLASH_CONFIG2_INT_DONE (1 << 15) +#define NAND_FLASH_CONFIG2_FDO_PAGE (0 << 3) +#define NAND_FLASH_CONFIG2_FDO_ID (2 << 3) +#define NAND_FLASH_CONFIG2_FDO_STATUS (4 << 3) +#define NAND_FLASH_CONFIG2_FDI_EN (1 << 2) +#define NAND_FLASH_CONFIG2_FADD_EN (1 << 1) +#define NAND_FLASH_CONFIG2_FCMD_EN (1 << 0) +#define FDO_PAGE_SPARE_VAL 0x8 + +/* Bit Definitions */ +#define NFC_INT (1 << 15) +#define NFC_SP_EN (1 << 2) +#define NFC_ECC_EN (1 << 3) +#define NFC_INT_MSK (1 << 4) +#define NFC_BIG (1 << 5) +#define NFC_RST (1 << 6) +#define NFC_CE (1 << 7) +#define NFC_ONE_CYCLE (1 << 8) +#define NFC_BLS_LOCKED 0 +#define NFC_BLS_LOCKED_DEFAULT 1 +#define NFC_BLS_UNLOCKED 2 +#define NFC_WPC_LOCK_TIGHT 1 +#define NFC_WPC_LOCK (1 << 1) +#define NFC_WPC_UNLOCK (1 << 2) +#define NFC_FLASH_ADDR_SHIFT 0 +#define NFC_UNLOCK_END_ADDR_SHIFT 0 + + + +#define NAND_CMD_RESET 0xff +#define NFC_ECC_MODE_4 1 +#define NFC_CMD 0x1 +#define NFC_ADDR 0x2 +#define NFC_INPUT 0x4 +#define NFC_OUTPUT 0x8 +#define NFC_ID 0x10 +#define NFC_STATUS 0x20 +#define NAND_CMD_READ0 0 +#define NAND_CMD_READSTART 0x30 +#define NAND_CMD_READCACHE 0x31 +#define NAND_CMD_READCACHEND 0x34 + |