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