diff options
author | Rob Purchase <shotofadds@rockbox.org> | 2008-06-27 12:35:50 +0000 |
---|---|---|
committer | Rob Purchase <shotofadds@rockbox.org> | 2008-06-27 12:35:50 +0000 |
commit | 38b02f3d7a372e2c0af5ffb966b72ffad10e1439 (patch) | |
tree | 3dc8f195586169b6ac2a2a44e77d155e0ad4691f /firmware/target | |
parent | 0494157cf406700d40e34156eda24e9b3f507a84 (diff) | |
download | rockbox-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
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/tcc780x/ata-nand-tcc780x.c | 11 |
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 | } |