comparison src/cs/drivers/drv_app/ffs/board/dev.c @ 642:a6b7f63d94f1

FFS dev.c for FCFAM: better comments, S71PL064J added
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 31 Jan 2020 02:52:29 +0000
parents cab2f315827e
children b2b502339787
comparison
equal deleted inserted replaced
641:ffe7394d9b60 642:a6b7f63d94f1
358 #ifdef CONFIG_TARGET_PIRELLI 358 #ifdef CONFIG_TARGET_PIRELLI
359 359
360 /* 360 /*
361 * Our familiar version of the Pirelli DP-L10 hw features Spansion 361 * Our familiar version of the Pirelli DP-L10 hw features Spansion
362 * S71PL129NC0HFW4B flash (N version, 256 KiB sectors), but apparently 362 * S71PL129NC0HFW4B flash (N version, 256 KiB sectors), but apparently
363 * an earlier hw version had S71PL-J flash with 64 KiB sectors, 363 * an earlier hw version had S71PL129J flash with 64 KiB sectors,
364 * and Pirelli's official fw supports both. They have modified 364 * and Pirelli's official fw supports both. They have modified
365 * TI's flash ID code to generate device ID 0x2100 for the J version 365 * TI's flash ID code to generate device ID 0x2100 for the J version
366 * or 0x2101 for the N version. We have now replicated this ID logic 366 * or 0x2101 for the N version. We have now replicated this ID logic
367 * in our FreeCalypso code base, and we can now support both flash 367 * in our FreeCalypso code base, and we can now support both flash
368 * chip versions as well. 368 * chip versions as well.
379 FFS_DRIVER_AMD, 6 }, 379 FFS_DRIVER_AMD, 6 },
380 380
381 #elif defined(CONFIG_TARGET_FCFAM) 381 #elif defined(CONFIG_TARGET_FCFAM)
382 382
383 /* 383 /*
384 * Our FreeCalypso hardware family is currently in its infancy 384 * This table of flash devices covers those possibilities that may occur
385 * (we have only one board design so far, but hoping to have more), 385 * on FreeCalypso-branded hardware; we use a new table separate from the
386 * thus the set of possible flash chip types on FC hw platforms 386 * one we inherited from TI/Openmoko. Originally we had no choice because
387 * is expected to grow. The footprint on our current FCDEV3B PCB 387 * we had no working autodetection for our new S71PL129N flash; we now have
388 * ideally fits Spansion MCPs with two chip select banks (either 388 * working autodetection, but we still use a separate device table for a
389 * S71PL-J or S71PL-N), but can also be fitted with Openmoko's 389 * few reasons:
390 * Samsung K5A3281. Spansion S71PL129NC0HFW4B (copied from the
391 * Pirelli DP-L10) is our official flash+RAM chip, populated on
392 * our production boards, but now that we have fixed TI's autodetect
393 * code to work with the newer Spansion chips, we can support
394 * all 3 possibilities in our fw with autodetection: S71PL-J,
395 * S71PL-N or K5A32xx.
396 * 390 *
397 * For future FreeCalypso hw designs, the Mother's plan is to 391 * 1) Our 16 MiB flash options (S71PL129N and S71PL129J) are specific
398 * keep the high-capacity S71PL129NC0HFW4B for the handset prototype 392 * to CONFIG_TARGET_FCFAM;
399 * and UI development board, but for embedded modem products 393 *
400 * we will probably switch to Openmoko's K5A32xx. 394 * 2) We gain additional freedoms like having a different FFS config
395 * for K5A32xxCTM flash in FCFAM vs. Openmoko;
396 *
397 * 3) Less clutter is always good.
401 */ 398 */
402 399
403 /* S71PL-N, FreeCalypso official, FFS in the first 2 MiB of the 2nd bank */ 400 /* S71PL129N, current FCDEV3B hw, FFS in the first 2 MiB of the 2nd bank */
404 { &flash_32x256[0], (char *) 0x01800000, MANUFACT_AMD, 0x2101, 401 { &flash_32x256[0], (char *) 0x01800000, MANUFACT_AMD, 0x2101,
405 FFS_DRIVER_AMD, 8 }, 402 FFS_DRIVER_AMD, 8 },
406 403
407 /* S71PL-J, currently only theoretical */ 404 /* S71PL129J, currently only theoretical */
408 { &flash_128x64[0], (char *) 0x01800000, MANUFACT_AMD, 0x2100, 405 { &flash_128x64[0], (char *) 0x01800000, MANUFACT_AMD, 0x2100,
409 FFS_DRIVER_AMD, 32 }, 406 FFS_DRIVER_AMD, 32 },
410 407
408 /* S71PL064J, 7x9 mm, attractive option for tight physical form factors */
409 { &flash_16x64[0], (char *) 0x700000, MANUFACT_AMD, 0x0201,
410 FFS_DRIVER_AMD, 15 },
411
411 /* 412 /*
412 * K5A32xxCTM from Openmoko, but note our different FFS config: 413 * Prior to the discovery of S71PL064J as a superior alternative, we were
413 * if we are going to put this smaller flash chip into our embedded 414 * thinking about using Samsung K5A32xx from Openmoko in embedded modem
414 * modem products, let's use it efficiently. 415 * products that have no need for huge flash and XRAM. Now that we have
416 * discovered S71PL064J which is both physically smaller and friendlier in
417 * terms of BGA footprint, it is unlikely that we will go back to K5A32xx.
418 * However, we do have one FCDEV3B board on which we populated a K5A3281CTM
419 * chip, so we are keeping firmware support for it.
420 *
421 * Note that the FFS configuration is different from Openmoko's: the
422 * thinking was that if we were going to use this chip, let's use it
423 * efficiently.
415 */ 424 */
416 { &flash_16x64[0], (char *) 0x300000, MANUFACT_SAMSUNG, 0x22A0, 425 { &flash_16x64[0], (char *) 0x300000, MANUFACT_SAMSUNG, 0x22A0,
417 FFS_DRIVER_AMD, 15 }, 426 FFS_DRIVER_AMD, 15 },
418 427
419 #elif defined(CONFIG_TARGET_COMPAL) 428 #elif defined(CONFIG_TARGET_COMPAL)
449 FFS_DRIVER_INTEL, 13 }, 458 FFS_DRIVER_INTEL, 13 },
450 459
451 #else 460 #else
452 461
453 /* original table from TI/Openmoko, used on TI and Openmoko targets */ 462 /* original table from TI/Openmoko, used on TI and Openmoko targets */
463 /* also used on the newly discovered GTM900 and Tango modem targets */
454 464
455 /********** AMD Devices ***********************************************/ 465 /********** AMD Devices ***********************************************/
456 466
457 #ifdef CONFIG_TARGET_LEONARDO 467 #ifdef CONFIG_TARGET_LEONARDO
458 // AMD Am29DL640F. Ignoring the 8kB sectors 468 // AMD Am29DL640F. Ignoring the 8kB sectors