summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_x1000/nand-x1000.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/nand-x1000.c')
-rw-r--r--firmware/target/mips/ingenic_x1000/nand-x1000.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/firmware/target/mips/ingenic_x1000/nand-x1000.c b/firmware/target/mips/ingenic_x1000/nand-x1000.c
index c78f990f5f..28e050fcef 100644
--- a/firmware/target/mips/ingenic_x1000/nand-x1000.c
+++ b/firmware/target/mips/ingenic_x1000/nand-x1000.c
@@ -71,9 +71,33 @@ static const struct nand_chip chip_w25n01gvxx = {
71 .setup_chip = winbond_setup_chip, 71 .setup_chip = winbond_setup_chip,
72}; 72};
73 73
74static const struct nand_chip chip_gd5f1gq4xexx = {
75 .log2_ppb = 6, /* 64 pages */
76 .page_size = 2048,
77 .oob_size = 64, /* 128B when hardware ECC is disabled */
78 .nr_blocks = 1024,
79 .bbm_pos = 2048,
80 .clock_freq = 150000000,
81 .dev_conf = jz_orf(SFC_DEV_CONF,
82 CE_DL(1), HOLD_DL(1), WP_DL(1),
83 CPHA(0), CPOL(0),
84 TSH(7), TSETUP(0), THOLD(0),
85 STA_TYPE_V(1BYTE), CMD_TYPE_V(8BITS),
86 SMP_DELAY(1)),
87 .flags = NAND_CHIPFLAG_QUAD | NAND_CHIPFLAG_HAS_QE_BIT |
88 NAND_CHIPFLAG_ON_DIE_ECC,
89 .cmd_page_read = NANDCMD_PAGE_READ,
90 .cmd_program_execute = NANDCMD_PROGRAM_EXECUTE,
91 .cmd_block_erase = NANDCMD_BLOCK_ERASE,
92 .cmd_read_cache = NANDCMD_READ_CACHE_x4,
93 .cmd_program_load = NANDCMD_PROGRAM_LOAD_x4,
94};
95
74const struct nand_chip_id supported_nand_chips[] = { 96const struct nand_chip_id supported_nand_chips[] = {
75 NAND_CHIP_ID(&chip_ato25d1ga, NAND_READID_ADDR, 0x9b, 0x12), 97 NAND_CHIP_ID(&chip_ato25d1ga, NAND_READID_ADDR, 0x9b, 0x12),
76 NAND_CHIP_ID(&chip_w25n01gvxx, NAND_READID_ADDR, 0xef, 0xaa, 0x21), 98 NAND_CHIP_ID(&chip_w25n01gvxx, NAND_READID_ADDR, 0xef, 0xaa, 0x21),
99 NAND_CHIP_ID(&chip_gd5f1gq4xexx, NAND_READID_ADDR, 0xc8, 0xd1),
100 NAND_CHIP_ID(&chip_gd5f1gq4xexx, NAND_READID_ADDR, 0xc8, 0xc1),
77}; 101};
78 102
79const size_t nr_supported_nand_chips = ARRAYLEN(supported_nand_chips); 103const size_t nr_supported_nand_chips = ARRAYLEN(supported_nand_chips);