summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Purchase <shotofadds@rockbox.org>2008-06-27 12:35:50 +0000
committerRob Purchase <shotofadds@rockbox.org>2008-06-27 12:35:50 +0000
commit38b02f3d7a372e2c0af5ffb966b72ffad10e1439 (patch)
tree3dc8f195586169b6ac2a2a44e77d155e0ad4691f
parent0494157cf406700d40e34156eda24e9b3f507a84 (diff)
downloadrockbox-38b02f3d7a372e2c0af5ffb966b72ffad10e1439.tar.gz
rockbox-38b02f3d7a372e2c0af5ffb966b72ffad10e1439.zip
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
-rw-r--r--firmware/target/arm/tcc780x/ata-nand-tcc780x.c11
1 files 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)
465 465
466 /* 466 /*
467 Sanity checks: 467 Sanity checks:
468
469 1. "BMP" tag at block 0, page 0, offset <page_size> [always present] 468 1. "BMP" tag at block 0, page 0, offset <page_size> [always present]
470 2. Byte at <page_size>+4 contains number of banks [or 0xff if 1 bank] 469 2. On most D2s, <page_size>+3 is 'M' and <page_size>+4 is no. of banks.
471 470 This is not present on some older players (formatted with early FW?)
472 If this is confirmed for all D2s we can simplify the above code and
473 also remove the icky nand_read_uid() function.
474 */ 471 */
475 472
476 nand_read_raw(0, /* bank */ 473 nand_read_raw(0, /* bank */
@@ -479,8 +476,8 @@ static void nand_get_chip_info(void)
479 8, id_buf); 476 8, id_buf);
480 477
481 if (strncmp(id_buf, "BMP", 3)) panicf("BMP tag not present"); 478 if (strncmp(id_buf, "BMP", 3)) panicf("BMP tag not present");
482 479
483 if (total_banks > 1) 480 if (id_buf[3] == 'M')
484 { 481 {
485 if (id_buf[4] != total_banks) panicf("BMPM total_banks mismatch"); 482 if (id_buf[4] != total_banks) panicf("BMPM total_banks mismatch");
486 } 483 }