hc
2023-11-06 9df731a176aab8e03b984b681b1bea01ccff6644
u-boot/drivers/mtd/nand/spi/gigadevice.c
....@@ -43,6 +43,22 @@
4343 SPINAND_PAGE_READ_FROM_CACHE_OP_3A(true, 0, 1, NULL, 0),
4444 SPINAND_PAGE_READ_FROM_CACHE_OP_3A(false, 0, 0, NULL, 0));
4545
46
+static SPINAND_OP_VARIANTS(read_cache_variants_1gq5,
47
+ SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
48
+ SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
49
+ SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
50
+ SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
51
+ SPINAND_PAGE_READ_FROM_CACHE_OP(true, 0, 1, NULL, 0),
52
+ SPINAND_PAGE_READ_FROM_CACHE_OP(false, 0, 1, NULL, 0));
53
+
54
+static SPINAND_OP_VARIANTS(read_cache_variants_2gq5,
55
+ SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 4, NULL, 0),
56
+ SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
57
+ SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 2, NULL, 0),
58
+ SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
59
+ SPINAND_PAGE_READ_FROM_CACHE_OP(true, 0, 1, NULL, 0),
60
+ SPINAND_PAGE_READ_FROM_CACHE_OP(false, 0, 1, NULL, 0));
61
+
4662 static SPINAND_OP_VARIANTS(write_cache_variants,
4763 SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
4864 SPINAND_PROG_LOAD(true, 0, NULL, 0));
....@@ -353,6 +369,36 @@
353369 SPINAND_HAS_QE_BIT,
354370 SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
355371 gd5fxgq4uexxg_ecc_get_status)),
372
+ SPINAND_INFO("GD5F1GQ4RExxG",
373
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0xc1),
374
+ NAND_MEMORG(1, 2048, 128, 64, 1024, 1, 1, 1),
375
+ NAND_ECCREQ(8, 512),
376
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
377
+ &write_cache_variants,
378
+ &update_cache_variants),
379
+ SPINAND_HAS_QE_BIT,
380
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
381
+ gd5fxgq4uexxg_ecc_get_status)),
382
+ SPINAND_INFO("GD5F2GQ4UExxG",
383
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0xd2),
384
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
385
+ NAND_ECCREQ(8, 512),
386
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
387
+ &write_cache_variants,
388
+ &update_cache_variants),
389
+ SPINAND_HAS_QE_BIT,
390
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
391
+ gd5fxgq4uexxg_ecc_get_status)),
392
+ SPINAND_INFO("GD5F2GQ4RExxG",
393
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0xc2),
394
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
395
+ NAND_ECCREQ(8, 512),
396
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
397
+ &write_cache_variants,
398
+ &update_cache_variants),
399
+ SPINAND_HAS_QE_BIT,
400
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
401
+ gd5fxgq4uexxg_ecc_get_status)),
356402 SPINAND_INFO("GD5F1GQ4UFxxG",
357403 SPINAND_ID(SPINAND_READID_METHOD_OPCODE, 0xb1, 0x48),
358404 NAND_MEMORG(1, 2048, 128, 64, 1024, 1, 1, 1),
....@@ -373,36 +419,116 @@
373419 SPINAND_HAS_QE_BIT,
374420 SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
375421 gd5fxgq5xexxg_ecc_get_status)),
376
- SPINAND_INFO("GD5F2GQ5UExxG",
377
- SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x52),
378
- NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
422
+ SPINAND_INFO("GD5F1GQ5RExxG",
423
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x41),
424
+ NAND_MEMORG(1, 2048, 128, 64, 1024, 1, 1, 1),
379425 NAND_ECCREQ(4, 512),
380
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
426
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
381427 &write_cache_variants,
382428 &update_cache_variants),
383429 SPINAND_HAS_QE_BIT,
384430 SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
385431 gd5fxgq5xexxg_ecc_get_status)),
386
- SPINAND_INFO("GD5F2GQ4UBxxG",
387
- SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0xd2),
432
+ SPINAND_INFO("GD5F2GQ5UExxG",
433
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x52),
434
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
435
+ NAND_ECCREQ(4, 512),
436
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_2gq5,
437
+ &write_cache_variants,
438
+ &update_cache_variants),
439
+ SPINAND_HAS_QE_BIT,
440
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
441
+ gd5fxgq5xexxg_ecc_get_status)),
442
+ SPINAND_INFO("GD5F2GQ5RExxG",
443
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x42),
444
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
445
+ NAND_ECCREQ(4, 512),
446
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_2gq5,
447
+ &write_cache_variants,
448
+ &update_cache_variants),
449
+ SPINAND_HAS_QE_BIT,
450
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
451
+ gd5fxgq5xexxg_ecc_get_status)),
452
+ SPINAND_INFO("GD5F4GQ6UExxG",
453
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x55),
454
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 2, 1),
455
+ NAND_ECCREQ(4, 512),
456
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_2gq5,
457
+ &write_cache_variants,
458
+ &update_cache_variants),
459
+ SPINAND_HAS_QE_BIT,
460
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
461
+ gd5fxgq5xexxg_ecc_get_status)),
462
+ SPINAND_INFO("GD5F4GQ6RExxG",
463
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x45),
464
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 2, 1),
465
+ NAND_ECCREQ(4, 512),
466
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_2gq5,
467
+ &write_cache_variants,
468
+ &update_cache_variants),
469
+ SPINAND_HAS_QE_BIT,
470
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
471
+ gd5fxgq5xexxg_ecc_get_status)),
472
+ SPINAND_INFO("GD5F1GM7UExxG",
473
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x91),
474
+ NAND_MEMORG(1, 2048, 128, 64, 1024, 1, 1, 1),
475
+ NAND_ECCREQ(8, 512),
476
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
477
+ &write_cache_variants,
478
+ &update_cache_variants),
479
+ SPINAND_HAS_QE_BIT,
480
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
481
+ gd5fxgq4uexxg_ecc_get_status)),
482
+ SPINAND_INFO("GD5F1GM7RExxG",
483
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x81),
484
+ NAND_MEMORG(1, 2048, 128, 64, 1024, 1, 1, 1),
485
+ NAND_ECCREQ(8, 512),
486
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
487
+ &write_cache_variants,
488
+ &update_cache_variants),
489
+ SPINAND_HAS_QE_BIT,
490
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
491
+ gd5fxgq4uexxg_ecc_get_status)),
492
+ SPINAND_INFO("GD5F2GM7UExxG",
493
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92),
388494 NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
389495 NAND_ECCREQ(8, 512),
390
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
496
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
391497 &write_cache_variants,
392498 &update_cache_variants),
393499 SPINAND_HAS_QE_BIT,
394500 SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
395
- gd5fxgq4xa_ecc_get_status)),
396
- SPINAND_INFO("GD5F4GQ6UExxG",
397
- SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x55),
501
+ gd5fxgq4uexxg_ecc_get_status)),
502
+ SPINAND_INFO("GD5F2GM7RExxG",
503
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x82),
504
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
505
+ NAND_ECCREQ(8, 512),
506
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
507
+ &write_cache_variants,
508
+ &update_cache_variants),
509
+ SPINAND_HAS_QE_BIT,
510
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
511
+ gd5fxgq4uexxg_ecc_get_status)),
512
+ SPINAND_INFO("GD5F4GM8UExxG",
513
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x95),
398514 NAND_MEMORG(1, 2048, 128, 64, 4096, 1, 1, 1),
399
- NAND_ECCREQ(4, 512),
400
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
515
+ NAND_ECCREQ(8, 512),
516
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
401517 &write_cache_variants,
402518 &update_cache_variants),
403519 SPINAND_HAS_QE_BIT,
404520 SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
405
- gd5fxgq5xexxg_ecc_get_status)),
521
+ gd5fxgq4uexxg_ecc_get_status)),
522
+ SPINAND_INFO("GD5F4GM8RExxG",
523
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x85),
524
+ NAND_MEMORG(1, 2048, 128, 64, 4096, 1, 1, 1),
525
+ NAND_ECCREQ(8, 512),
526
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
527
+ &write_cache_variants,
528
+ &update_cache_variants),
529
+ SPINAND_HAS_QE_BIT,
530
+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
531
+ gd5fxgq4uexxg_ecc_get_status)),
406532 SPINAND_INFO("GD5F1GQ4UExxH",
407533 SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0xd9),
408534 NAND_MEMORG(1, 2048, 64, 64, 1024, 1, 1, 1),
....@@ -412,56 +538,6 @@
412538 &update_cache_variants),
413539 SPINAND_HAS_QE_BIT,
414540 SPINAND_ECCINFO(&gd5fxgqx_variant3_ooblayout,
415
- gd5fxgq4xa_ecc_get_status)),
416
- SPINAND_INFO("GD5F1GQ5RExxG",
417
- SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x41),
418
- NAND_MEMORG(1, 2048, 128, 64, 1024, 1, 1, 1),
419
- NAND_ECCREQ(4, 512),
420
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
421
- &write_cache_variants,
422
- &update_cache_variants),
423
- SPINAND_HAS_QE_BIT,
424
- SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
425
- gd5fxgq5xexxg_ecc_get_status)),
426
- SPINAND_INFO("GD5F2GQ5RExxG",
427
- SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x42),
428
- NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
429
- NAND_ECCREQ(4, 512),
430
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
431
- &write_cache_variants,
432
- &update_cache_variants),
433
- SPINAND_HAS_QE_BIT,
434
- SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
435
- gd5fxgq5xexxg_ecc_get_status)),
436
- SPINAND_INFO("GD5F2GM7RxG",
437
- SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x82),
438
- NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
439
- NAND_ECCREQ(8, 512),
440
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
441
- &write_cache_variants,
442
- &update_cache_variants),
443
- SPINAND_HAS_QE_BIT,
444
- SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
445
- gd5fxgq4xa_ecc_get_status)),
446
- SPINAND_INFO("GD5F1GM7UxG",
447
- SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x91),
448
- NAND_MEMORG(1, 2048, 128, 64, 1024, 1, 1, 1),
449
- NAND_ECCREQ(8, 512),
450
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
451
- &write_cache_variants,
452
- &update_cache_variants),
453
- SPINAND_HAS_QE_BIT,
454
- SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
455
- gd5fxgq4xa_ecc_get_status)),
456
- SPINAND_INFO("GD5F2GM7UxG",
457
- SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x92),
458
- NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
459
- NAND_ECCREQ(8, 512),
460
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
461
- &write_cache_variants,
462
- &update_cache_variants),
463
- SPINAND_HAS_QE_BIT,
464
- SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
465541 gd5fxgq4xa_ecc_get_status)),
466542 };
467543