FreeCalypso > hg > fc-selenite
comparison src/cs/drivers/drv_app/ffs/board/dev.c @ 134:7d50d8d13711
FFS code sync with Magnetite + gcc version fix
This change brings the new flash autodetection for FC and Pirelli targets
from Magnetite, and should also fix the gcc version for C1xx and gtamodem
targets, which were previously broken because they used TI's original
flash autodetect code (which operates at address 0) while the boot ROM
is mapped there.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Dec 2018 08:43:25 +0000 |
parents | e67bbb9b1fb9 |
children | ac4c0a9bc022 |
comparison
equal
deleted
inserted
replaced
133:118c25581538 | 134:7d50d8d13711 |
---|---|
126 { 0x780000, 18 }, | 126 { 0x780000, 18 }, |
127 { 0x7C0000, 18 } | 127 { 0x7C0000, 18 } |
128 }; | 128 }; |
129 #endif | 129 #endif |
130 | 130 |
131 #ifdef CONFIG_TARGET_LEONARDO | 131 #if defined(CONFIG_TARGET_LEONARDO) || defined(CONFIG_TARGET_PIRELLI) || \ |
132 defined(CONFIG_TARGET_FCFAM) | |
132 // 128x64kb | 133 // 128x64kb |
133 static const struct block_info_s flash_128x64[] = | 134 static const struct block_info_s flash_128x64[] = |
134 { | 135 { |
135 { 0x00000, 16 }, | 136 { 0x00000, 16 }, |
136 { 0x10000, 16 }, | 137 { 0x10000, 16 }, |
357 FFS_DRIVER_RAM, 8}, | 358 FFS_DRIVER_RAM, 8}, |
358 #endif | 359 #endif |
359 | 360 |
360 #ifdef CONFIG_TARGET_PIRELLI | 361 #ifdef CONFIG_TARGET_PIRELLI |
361 | 362 |
362 // Spansion S71PL129NC0 used in Pirelli DP-L10 | 363 /* |
363 // ID made up (same as what Pirelli's fw uses), not using autodetect | 364 * Our familiar version of the Pirelli DP-L10 hw features Spansion |
364 // This is an aftermarket FFS config for the Pirelli target | 365 * S71PL129NC0HFW4B flash (N version, 256 KiB sectors), but apparently |
366 * an earlier hw version had S71PL-J flash with 64 KiB sectors, | |
367 * and Pirelli's official fw supports both. They have modified | |
368 * TI's flash ID code to generate device ID 0x2100 for the J version | |
369 * or 0x2101 for the N version. We have now replicated this ID logic | |
370 * in our FreeCalypso code base, and we can now support both flash | |
371 * chip versions as well. | |
372 * | |
373 * Our FFS configuration for the Pirelli target is aftermarket. | |
374 */ | |
375 | |
376 /* J flash */ | |
377 { &flash_128x64[0], (char *) 0x02480000, MANUFACT_AMD, 0x2100, | |
378 FFS_DRIVER_AMD, 24 }, | |
379 | |
380 /* N flash */ | |
365 { &flash_32x256[0], (char *) 0x02480000, MANUFACT_AMD, 0x2101, | 381 { &flash_32x256[0], (char *) 0x02480000, MANUFACT_AMD, 0x2101, |
366 FFS_DRIVER_AMD, 6 }, | 382 FFS_DRIVER_AMD, 6 }, |
367 | 383 |
368 #elif defined(CONFIG_TARGET_FCFAM) | 384 #elif defined(CONFIG_TARGET_FCFAM) |
369 | 385 |
370 // We are using the same flash+pSRAM chip in our own | 386 /* |
371 // FreeCalypso hardware designs, but on a different chip select. | 387 * Our FreeCalypso hardware family is currently in its infancy |
372 // Let's use the first 2 MiB of the 2nd bank for the FFS. | 388 * (we have only one board design so far, but hoping to have more), |
389 * thus the set of possible flash chip types on FC hw platforms | |
390 * is expected to grow. The footprint on our current FCDEV3B PCB | |
391 * ideally fits Spansion MCPs with two chip select banks (either | |
392 * S71PL-J or S71PL-N), but can also be fitted with Openmoko's | |
393 * Samsung K5A3281. Spansion S71PL129NC0HFW4B (copied from the | |
394 * Pirelli DP-L10) is our official flash+RAM chip, populated on | |
395 * our production boards, but now that we have fixed TI's autodetect | |
396 * code to work with the newer Spansion chips, we can support | |
397 * all 3 possibilities in our fw with autodetection: S71PL-J, | |
398 * S71PL-N or K5A32xx. | |
399 * | |
400 * For future FreeCalypso hw designs, the Mother's plan is to | |
401 * keep the high-capacity S71PL129NC0HFW4B for the handset prototype | |
402 * and UI development board, but for embedded modem products | |
403 * we will probably switch to Openmoko's K5A32xx. | |
404 */ | |
405 | |
406 /* S71PL-N, FreeCalypso official, FFS in the first 2 MiB of the 2nd bank */ | |
373 { &flash_32x256[0], (char *) 0x01800000, MANUFACT_AMD, 0x2101, | 407 { &flash_32x256[0], (char *) 0x01800000, MANUFACT_AMD, 0x2101, |
374 FFS_DRIVER_AMD, 8 }, | 408 FFS_DRIVER_AMD, 8 }, |
409 | |
410 /* S71PL-J, currently only theoretical */ | |
411 { &flash_128x64[0], (char *) 0x01800000, MANUFACT_AMD, 0x2100, | |
412 FFS_DRIVER_AMD, 32 }, | |
413 | |
414 /* K5A32xxCTM from Openmoko */ | |
415 { &flash_16x64[0], (char *) 0x380000, MANUFACT_SAMSUNG, 0x22A0, | |
416 FFS_DRIVER_AMD, 7 }, | |
375 | 417 |
376 #elif defined(CONFIG_TARGET_COMPAL) | 418 #elif defined(CONFIG_TARGET_COMPAL) |
377 | 419 |
378 /* aftermarket FFS configurations for FreeCalypso on Mot C1xx phones */ | 420 /* aftermarket FFS configurations for FreeCalypso on Mot C1xx phones */ |
379 | 421 |