From 38b02f3d7a372e2c0af5ffb966b72ffad10e1439 Mon Sep 17 00:00:00 2001 From: Rob Purchase Date: Fri, 27 Jun 2008 12:35:50 +0000 Subject: D2: Make the nand driver's sanity checks a little more... sane. This should allow booting on a few older D2's. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17805 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/tcc780x/ata-nand-tcc780x.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/firmware/target/arm/tcc780x/ata-nand-tcc780x.c b/firmware/target/arm/tcc780x/ata-nand-tcc780x.c index 3b049c27f1..9587f81eb4 100644 --- a/firmware/target/arm/tcc780x/ata-nand-tcc780x.c +++ b/firmware/target/arm/tcc780x/ata-nand-tcc780x.c @@ -465,12 +465,9 @@ static void nand_get_chip_info(void) /* Sanity checks: - 1. "BMP" tag at block 0, page 0, offset [always present] - 2. Byte at +4 contains number of banks [or 0xff if 1 bank] - - If this is confirmed for all D2s we can simplify the above code and - also remove the icky nand_read_uid() function. + 2. On most D2s, +3 is 'M' and +4 is no. of banks. + This is not present on some older players (formatted with early FW?) */ nand_read_raw(0, /* bank */ @@ -479,8 +476,8 @@ static void nand_get_chip_info(void) 8, id_buf); if (strncmp(id_buf, "BMP", 3)) panicf("BMP tag not present"); - - if (total_banks > 1) + + if (id_buf[3] == 'M') { if (id_buf[4] != total_banks) panicf("BMPM total_banks mismatch"); } -- cgit v1.2.3