This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM6442: Missing GPMC NAND Bootloader description

Part Number: AM6442

Hello,

Section 4.4.10.1 ("GPMC NAND Bootloader Operation") of TRM is empty.

1- Can we get the information regarding booting details of GPMC NAND?

2- Is the algorithm exactly the same as what is described in AM335x TRM section 26.1.8.4 ("NAND"), specifically:

    a- The device detection algorithm, was there any changes on am64x?

    b- Was the Supported NAND Devices table updated

    c- When an ONFI capable device is detected that is not in the supported table, and parameters extracted from ONFI Parameters Page, what are the possible errors leading to aborting NAND boot ?

    d- Is the ROM selecting BCH8 vs BCH16 still based on cell type level 8 or more to switch to BCH16? or is it related to page size now?

    e- Is Reading NAND Geometry From I2C EEPROM still available?

3- Can we have access to this part of the ROM code (only the GPMC NAND boot) to get all the answers we need ?

Thank you and Regards.

  • Hello Mehdi,
    Do we need additional detailed info on NAND boot support?
    e2e.ti.com/.../4072372
    Best,
    -Hong

  • Hello Hong,

    Yes, the 3 questions above related to documentation or a link to where the ROM source code for GPMC NAND boot is?

    Thank you.

  • Hello,

    Any update on the request above?, if no documentation available please provide access to the ROM source code for GPMC NAND boot.

    Thank you.

  • Hello Mehdi,
    Some additional info on GPMC NAND support by ROM:
    Non-ECC part only:
    – ROM uses ELM to handle ECC
    – ECC is BCH8 using D[7:0] for data
    Best,
    -Hong

  • Hi Hong,

    OK, so this ROM code is different from the one on AM335x (having the same GPMC & ELM IPs but supported BCH16 for high cell type level).

    How can I have access to this ROM code?

    Thank you

  • Hello Mehdi,
    Yes, K3 SoC (i.e. AM64x) ROM is different than AM35x one.
    Unfortunately we don't provide ROM access to customers...
    As we discussed in one of earlier e2e, GPMC NAND boot support was added in Linux SDK8.2 on AM64x GP EVM + NAND dautercard.
    e2e.ti.com/.../4072372
    Hopefully Linux SDK is helpful evaluating GPMC NAND boot.
    Please post any additional questions to e2e for us to follow-up...
    Best,
    -Hong

  • Hi Hong,

    Understood, in that case could you please answer these following questions regarding the corresponding algorithm in the ROM:

    1- Is there a device support table used or is this purely based on ONFI1.0 parameters extracted from ONFI Parameters Page

    2- What are the parameters in the ONFI parameter that will cause the ROM to abort loading the tiboot3.bin file and move to secondary boot?

    3- Offsets for the 14 bytes ECCs are computed strictly rom the ONFI parameters (is there a max or min that would cause an abort?)?

    4- Since ECC is processed by ELM, is it configured in continuous mode?

    Thank you

  • Hello Mehdi,
    A1. The NAND flash geometry is parsed by ROM via reading ONFI parameter pages.
    A2. The GPMC NAND error code is listed below

    /* NAND Driver Errors */
    #define ERROR_NAND_GPMC_RESET_FAIL                          (NAND_LOG_MAGIC | 0x80)
    #define ERROR_NAND_PWR_ON_FAIL                              (NAND_LOG_MAGIC | 0x81)
    #define ERROR_NAND_BUSY_TIMEOUT                             (NAND_LOG_MAGIC | 0x82)
    #define ERROR_NAND_RESET_FAIL                               (NAND_LOG_MAGIC | 0x83)
    #define ERROR_NAND_ONFI_FAIL                                (NAND_LOG_MAGIC | 0x84)
    #define ERROR_NAND_READ_ID_FAIIL                            (NAND_LOG_MAGIC | 0x85)
    #define ERROR_NAND_NO_VALID_PARAM_PAGE                      (NAND_LOG_MAGIC | 0x86)
    #define ERROR_NAND_UNSUPPORTED_GEOMETRY                     (NAND_LOG_MAGIC | 0x87)
    #define ERROR_NAND_16_BIT_NOT_SUPPORTED                     (NAND_LOG_MAGIC | 0x88)
    #define ERROR_NAND_UNSUPPORTED_PAGE_SIZE                    (NAND_LOG_MAGIC | 0x89)
    #define ERROR_NAND_SPARE_AREA_TOO_SMALL                     (NAND_LOG_MAGIC | 0x8A)
    #define ERROR_NAND_BAD_BLOCK_FAIL                           (NAND_LOG_MAGIC | 0x8B)
    #define ERROR_NAND_CMD_READ_FAIL                            (NAND_LOG_MAGIC | 0x8C)
    #define ERROR_NAND_READ_SPARE_FAIL                          (NAND_LOG_MAGIC | 0x8D)
    #define ERROR_NAND_GPMC_ELM_ERROR                           (NAND_LOG_MAGIC | 0x8E)
    #define ERROR_NAND_UNCORRECTABLE_DATA_ERROR                 (NAND_LOG_MAGIC | 0x8F)

    - Most of these error would abort NAND boot, i.e. when not complying
    - BCH8
    - 2Kbyte page and spare area of at least 64 bytes or
    - 4Kbyte page and spare area of at least 128 bytes.
    ...
    - In addition to the NAND functional error, you may refer to the e2e FAQ on redundant/recovery boot support in K3 ROM.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1190873/faq-am64x-am62x-soc-redundant-recovery-boot-support-in-rom-booting-r5-bootloader

    A3. I'm attaching a sample oob dump from "nand dump 0" on AM64x GP EVM + NAND daugtercard
    - "2 + (PAGESIZE / 512) * ECC_BYTES", where
    PAGESIZE = 4096
    ECC_BYTES = 14 for BCH8

    A4. yes.

    Best,
    -Hong

  • => nand info
    
    Device 0: nand0, sector size 256 KiB
      Page size       4096 b
      OOB size         256 b
      Erase size    262144 b
      subpagesize     1024 b
      options     0x0000400c
      bbt options 0x00000000
    => nand dump 0
    Page 00000000 dump:
            30 82 04 32 30 82 03 9b  a0 03 02 01 02 02 14 29
            1c 26 3e 52 96 ef 09 c4  6a 66 1e 42 f6 ad 7c 42
            dd 75 04 30 0d 06 09 2a  86 48 86 f7 0d 01 01 0d
            05 00 30 81 9d 31 0b 30  09 06 03 55 04 06 13 02
            55 53 31 0b 30 09 06 03  55 04 08 0c 02 54 58 31
            0f 30 0d 06 03 55 04 07  0c 06 44 61 6c 6c 61 73
            31 27 30 25 06 03 55 04  0a 0c 1e 54 65 78 61 73
            20 49 6e 73 74 72 75 6d  65 6e 74 73 20 49 6e 63
            6f 72 70 6f 72 61 74 65  64 31 13 30 11 06 03 55
            04 0b 0c 0a 50 72 6f 63  65 73 73 6f 72 73 31 13
            30 11 06 03 55 04 03 0c  0a 54 49 20 53 75 70 70
            6f 72 74 31 1d 30 1b 06  09 2a 86 48 86 f7 0d 01
            09 01 16 0e 73 75 70 70  6f 72 74 40 74 69 2e 63
            6f 6d 30 1e 17 0d 32 32  30 33 33 30 31 36 33 30
            31 33 5a 17 0d 32 32 30  34 32 39 31 36 33 30 31
            33 5a 30 81 9d 31 0b 30  09 06 03 55 04 06 13 02
            55 53 31 0b 30 09 06 03  55 04 08 0c 02 54 58 31
            0f 30 0d 06 03 55 04 07  0c 06 44 61 6c 6c 61 73
            31 27 30 25 06 03 55 04  0a 0c 1e 54 65 78 61 73
            20 49 6e 73 74 72 75 6d  65 6e 74 73 20 49 6e 63
            6f 72 70 6f 72 61 74 65  64 31 13 30 11 06 03 55
            04 0b 0c 0a 50 72 6f 63  65 73 73 6f 72 73 31 13
            30 11 06 03 55 04 03 0c  0a 54 49 20 53 75 70 70
            6f 72 74 31 1d 30 1b 06  09 2a 86 48 86 f7 0d 01
            09 01 16 0e 73 75 70 70  6f 72 74 40 74 69 2e 63
            6f 6d 30 81 9d 30 0d 06  09 2a 86 48 86 f7 0d 01
            01 01 05 00 03 81 8b 00  30 81 87 02 81 81 00 d1
            7e b9 d7 41 a3 f4 93 ab  d1 2b f8 19 f9 b0 df 95
            25 3a cb 52 5a 80 67 90  fd bf 90 62 e8 83 cf 5e
            23 6a 9a 20 f1 f4 52 bb  95 81 b0 0c 5a 49 ac 92
            01 4c 12 dc bf 4f a7 0f  a1 18 c7 9c 9b 22 09 e3
            de 1a 31 f6 53 b6 4d 60  e3 d8 14 e7 c8 e8 76 e8
            91 9e ee de 41 26 47 32  77 a1 86 e3 65 7c 3e c0
            da d0 00 2a 7c 48 62 e6  9b b3 cc c7 60 cf d2 4b
            d3 5e ee dd e4 21 03 1b  29 f5 12 cc dc ba a9 02
            01 01 a3 82 01 6d 30 82  01 69 30 0c 06 03 55 1d
            13 04 05 30 03 01 01 ff  30 12 06 09 2b 06 01 04
            01 82 26 01 03 04 05 30  03 02 01 01 30 82 01 43
            06 09 2b 06 01 04 01 82  26 01 09 04 82 01 34 30
            82 01 30 02 03 08 ad d4  02 01 03 30 61 02 01 01
            02 01 10 02 01 00 04 04  70 00 00 00 02 03 05 45
            c0 06 09 60 86 48 01 65  03 04 02 03 04 40 c1 2c
            f9 06 3b ee 5c 14 8a b5  d6 89 28 f1 36 7b 91 f0
            51 01 ed b7 37 e6 a9 e7  82 6c f1 0a dd b9 ae 1d
            37 57 07 02 05 c2 6c ff  63 17 55 c0 0b 70 df 3b
            c8 b5 c0 a8 87 3f 97 55  aa b6 2c 9e e6 d2 30 61
            02 01 02 02 01 00 02 01  00 04 04 00 04 40 00 02
            03 03 60 00 06 09 60 86  48 01 65 03 04 02 03 04
            40 ed d6 25 4b 18 57 e9  df d7 cc 62 46 d7 c4 26
            ee db 38 59 1f 3c 2e 38  da a6 0d f3 3c d6 09 88
            d4 18 6f 15 c9 25 ec d3  f2 11 c0 03 aa 4a fb a0
            df a2 75 90 4d cf 14 4a  25 db ff 92 e9 90 ca c9
            cd 30 60 02 01 12 02 01  00 02 01 00 04 04 00 07
            b0 00 02 02 08 14 06 09  60 86 48 01 65 03 04 02
            03 04 40 e0 3b 92 c0 31  3f b3 00 f4 65 4c 18 07
            d3 38 c5 ab db d3 b9 68  4a 9a 67 5f 61 a6 41 48
            20 2a 8e aa c0 a1 45 7c  e8 d9 25 fb 66 fc d5 1e
            1d 46 f2 d1 5d 86 cc 48  9b 1f 9e a7 72 41 5f c3
            96 a1 1f 30 0d 06 09 2a  86 48 86 f7 0d 01 01 0d
            05 00 03 81 81 00 00 01  ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
            ff ff 00 30 51 30 0d 06  09 60 86 48 01 65 03 04
            02 03 05 00 04 40 88 e0  b2 95 04 25 95 dc a2 a8
            93 d3 89 5d 28 68 cb ff  a5 84 41 62 3f bb 29 00
            a6 28 3b 4c 86 41 a3 b7  2a c7 64 2a 84 1a 56 fb
            62 6c 5a e2 92 92 e8 30  6d 3a bf 5f 63 52 44 51
            e5 85 dc 0d b7 1e 18 f0  9f e5 18 f0 9f e5 18 f0
            9f e5 18 f0 9f e5 18 f0  9f e5 18 f0 9f e5 18 f0
            9f e5 18 f0 9f e5 44 00  00 70 40 00 00 70 40 00
            00 70 40 00 00 70 40 00  00 70 40 00 00 70 40 00
            00 70 40 00 00 70 fe ff  ff ea 0f 00 00 ea 00 00
            0f e1 1f 10 00 e2 1a 00  31 e3 1f 00 c0 13 13 00
            80 13 c0 00 80 e3 00 f0  29 e1 10 0f 11 ee 02 0a
            c0 e3 10 0f 01 ee 1d 00  00 eb f1 02 00 eb 15 0f
            07 ee 9a 0f 07 ee 95 0f  07 ee 1e ff 2f e1 ee ff
            ff ea 00 00 a0 e3 17 0f  08 ee 15 0f 07 ee d5 0f
            07 ee 9a 0f 07 ee 95 0f  07 ee 10 0f 11 ee 02 0a
            c0 e3 07 00 c0 e3 02 00  80 e3 02 0b 80 e3 01 0a
            80 e3 10 0f 01 ee 0e 50  a0 e1 10 1f 10 ee 21 3a
            a0 e1 0f 30 03 e2 0f 40  01 e2 03 22 a0 e1 02 20
            84 e1 0c 00 9f e5 07 00  c0 e3 00 d0 a0 e1 05 f0
            a0 e1 00 00 00 ea 00 b8  19 70 b0 0f 10 ee ff 00
            00 e2 00 00 50 e3 00 00  00 1a 1e ff 2f e1 03 f0
            20 e3 fd ff ff ea 07 b5  01 f0 e7 f8 01 a8 0a f0
            36 fa 30 b9 01 9b 23 b1  0d f0 5d fe 01 20 0d f0
            b2 fe 03 b0 5d f8 04 fb  08 28 04 d0 09 28 14 bf
            01 20 03 20 70 47 02 20  70 47 1f 4b 1b 68 bf f3
            5f 8f 1e 4a 12 68 ca b9  c3 f3 c3 00 42 1e db 09
            0e 2a 31 d8 df e8 02 f0  2f 2f 2f 2a 2a 30 30 08
            30 0d 30 30 30 2f 21 00  13 f0 04 0f 08 bf 09 20
            70 47 13 f0 02 0f 18 bf  2a 20 70 47 c3 f3 82 20
            42 1e c3 f3 40 33 06 2a  07 d8 df e8 02 f0 0a 06
            08 15 11 14 04 00 06 20  70 47 00 20 70 47 07 20
            70 47 00 2b 0c bf 0a 20  2a 20 70 47 04 20 70 47
            c3 f1 09 00 70 47 03 20  70 47 30 00 00 43 d0 19
            04 70 08 b5 ff f7 b9 ff  09 28 0b d1 00 20 16 f0
            1c ff 38 b1 c2 69 00 21  02 62 01 22 bd e8 08 40
            16 f0 22 b8 08 bd 08 b5  ff f7 a7 ff 09 28 09 d1
            00 20 16 f0 0a ff 28 b1  bd e8 08 40 01 6a 00 22
            16 f0 12 b8 08 bd 37 b5  05 46 ff f7 96 ff 00 24
            2a 28 0f d1 05 23 28 46  01 94 00 93 07 4a 07 4b
            08 49 02 f0 6c ff 04 46  20 b1 06 49 02 46 06 48
            0b f0 d7 ff 20 46 03 b0  30 bd 3a 6f 03 70 8f 0c
            04 70 42 6f 03 70 6b 70  03 70 6a 6f 03 70 07 b5
            00 f0 e9 f8 4d 4b 0c 22  4d 48 4d 49 1b 68 40 f8
            04 3b 00 f0 78 fd 01 21  4f f4 70 20 00 f0 c5 fa
            00 21 4f f0 8a 60 00 f0  c0 fa 01 21 4f f0 8a 60
            00 f0 bb fa 02 21 4f f0  8a 60 00 f0 b6 fa 03 21
            4f f0 8a 60 00 f0 b1 fa  04 21 4f f0 8a 60 00 f0
            ac fa 06 21 4f f0 8a 60  00 f0 a7 fa 00 21 4f f0
            86 40 00 f0 a2 fa 01 21  4f f0 86 40 00 f0 9d fa
            02 21 4f f0 86 40 00 f0  98 fa 03 21 4f f0 86 40
            00 f0 93 fa 05 21 4f f0  86 40 00 f0 8e fa 06 21
            4f f0 86 40 00 f0 89 fa  01 f0 c1 f9 01 f0 6d fa
            ff f7 09 ff 6b 46 01 22  03 21 52 20 0d f0 9c fe
            18 b9 24 49 00 98 1e f0  e6 ff 23 48 00 f0 89 fa
            23 4a 23 49 00 f0 df f8  00 f0 51 fa 22 49 6a 46
            34 20 0d f0 58 ff 01 46  10 b1 1f 48 0b f0 59 ff
            1f 49 6a 46 34 20 0d f0  4e ff 01 46 10 b1 1c 48
            0b f0 4f ff 1c 4a 13 68  bf f3 5f 8f 23 f4 00 33
            bf f3 5f 8f 00 21 4a 20  13 60 6a 46 0d f0 2d ff
            01 46 10 b1 15 48 0b f0  67 fd ff f7 e6 fe 04 28
            08 d1 12 49 01 aa 34 20  0d f0 f4 fe 10 b1 10 48
            0b f0 2f ff 03 b0 5d f8  04 fb fc eb 1b 70 d0 19
            04 70 00 eb 1b 70 90 6f  03 70 d4 19 04 70 f1 01
            00 70 cd 01 00 70 98 6f  03 70 a3 6f 03 70 bd 6f
            03 70 c9 6f 03 70 70 81  51 04 e2 6f 03 70 a4 67
            04 70 f8 6f 03 70 10 b5  00 f0 e3 f9 80 21 03 6a
            04 46 98 47 02 46 78 b9  23 6a 7f 21 20 46 98 47
            02 46 68 b9 d4 f8 9c 30  7a 21 20 46 98 47 02 46
            40 b1 7a 21 09 48 01 e0  80 21 08 48 0b f0 1c fd
            7f 21 fa e7 d4 f8 9c 30  79 21 20 46 98 47 02 46
            08 b1 79 21 ee e7 10 bd  00 bf 3d 70 03 70 1f 70
            03 70 70 47 00 00 01 48  10 21 00 f0 d8 bb e0 19
            04 70 70 b5 04 9e 04 46  1d 46 08 f0 1a fe 01 1e
            06 db 33 46 2a 46 20 46  bd e8 70 40 04 f0 45 bf
            6f f0 01 00 70 bd 70 b5  06 46 00 20 0c 46 15 46
            22 f0 01 fd 01 46 10 b1  0a 48 0b f0 e5 fc 3e b9
            21 46 2a 46 22 f0 06 fd  01 46 08 b1 06 48 f4 e7
            00 20 22 f0 1b fd 01 46  08 b1 03 48 ed e7 70 bd
            00 bf 7a 70 03 70 9f 70  03 70 c7 70 03 70 08 b5
            06 4b 1b 78 13 b1 a0 f1  ff 40 08 bd 04 4b 18 68
            00 28 fa d1 03 48 0b f0  bf fc 04 b8 19 70 00 b8
            19 70 eb 70 03 70 02 4b  18 78 80 f0 01 00 70 47
            00 bf 04 b8 19 70 2d e9  f0 45 04 46 9d b0 88 46
            17 46 00 21 24 22 06 a8  00 f0 e5 fb 00 22 cd e9
            04 22 4c b1 11 46 01 20  ff f7 ad ff 8c 4b 01 22
            1a 70 1d b0 bd e8 f0 85  8a 49 40 20 04 f0 f2 fd
            89 4e 30 60 18 b9 86 49  88 48 0b f0 8d fc 08 90
            ff f7 0b fe 0f ad 01 46  0a 28 04 90 0a d8 02 28
            0c d9 c3 1e 07 2b 09 d8  df e8 03 f0 15 08 08 08
            40 0a 0a 45 1f 28 03 d0  2a 28 52 d0 7c 48 e4 e7
            4f f4 58 53 04 a9 7a 4a  06 a8 00 93 00 23 01 f0
            8e fd 04 46 16 e0 2b 46  01 22 00 21 57 20 0d f0
            63 fd 04 46 98 b1 00 23  6f f0 12 04 32 68 03 f5
            88 21 01 f5 b8 61 04 3a  53 f8 04 0b 42 f8 04 0f
            99 42 f9 d1 00 2c 33 d0  6b 48 21 46 bd e7 0f 98
            01 21 0d f0 52 fa 43 1c  e5 d0 10 f5 d8 0f 00 f5
            d8 03 04 bf 00 23 6f f0  12 04 df e7 04 a9 06 a8
            01 f0 23 fc cd e7 5a 4b  28 46 32 68 5f 49 0b f0
            1a fe 5e 4a 5f 49 28 46  0e f0 2f fe 04 46 20 b1
            0e f0 f1 fc 0e f0 ef fc  d4 e7 5a 49 01 f0 cd ff
            f8 e7 53 4b 01 22 04 a9  06 a8 01 f0 1c fe b0 e7
            d6 f8 00 a0 01 22 49 4b  1a 70 da f8 00 20 52 4b
            9a 42 02 d0 52 48 0b f0  0f fc 51 49 50 46 08 f0
            69 fe 01 1e 01 da 4f 48  77 e7 4f 4a 03 ab 00 95
            50 46 ff f7 fe fe 02 1e  03 da 4b 49 4c 48 0b f0
            fb fb 0f 9a 20 46 03 99  ff f7 05 ff 00 f0 a1 f8
            04 46 b8 f1 00 0f 00 d0  c0 47 d6 f8 00 a0 40 49
            50 46 08 f0 47 fe 06 1e  01 da 31 46 db e7 40 4a
            03 ab 31 46 50 46 00 95  ff f7 db fe 02 1e 01 da
            3c 49 db e7 0f 9b 20 46  00 93 00 23 21 68 03 9a
            88 47 80 46 10 b1 01 46  37 48 3e e7 37 4a 03 ab
            31 46 50 46 00 95 ff f7  c4 fe 02 1e 01 da 32 49
            c4 e7 0f 9b 20 46 00 93  43 46 e1 68 03 9a 88 47
            80 46 10 b1 01 46 2d 48  27 e7 2d 4a 03 ab 31 46
            50 46 00 95 ff f7 ad fe  02 1e 01 da 29 49 ad e7
            0f 9b 20 46 00 93 43 46  61 68 03 9a 88 47 80 46
            10 b1 01 46 24 48 10 e7  24 4a 03 ab 31 46 50 46
            00 95 ff f7 96 fe 02 1e  01 da 1f 49 96 e7 0f 9b
            20 46 00 93 43 46 a1 68  03 9a 88 47 01 46 08 b1
            1b 48 fa e6 00 2f 3f f4  ec ae b8 47 e9 e6 04 b8
            19 70 c0 45 04 00 00 b8  19 70 0b 71 03 70 6e 71
            03 70 40 71 03 70 a1 71  03 70 4a 71 03 70 a0 b0
            03 70 22 7b 03 70 62 71  03 70 d0 0d fe ed d0 71
            03 70 f0 71 03 70 f8 71  03 70 17 72 03 70 21 72
            03 70 46 72 03 70 54 72  03 70 7c 72 03 70 87 72
            03 70 b2 72 03 70 bd 72  03 70 e8 72 03 70 f4 72
            03 70 07 b5 08 49 01 aa  22 20 0d f0 e3 fc 01 46
            10 b1 05 48 0b f0 48 fb  01 98 14 f0 f5 fa 03 b0
            5d f8 04 fb 00 bf 34 71  04 70 25 73 03 70 30 b5
            8d b0 ff f7 e6 ff 20 22  03 ad 04 46 00 f1 d0 01
            28 46 0b f0 7c f8 94 f8  cd 20 94 f8 cc 10 05 48
            00 23 8d f8 2c 30 b4 f8  ce 30 00 95 0b f0 f9 fc
            0d b0 30 bd 00 bf 3f 73  03 70 00 eb 81 31 bf f3
            5f 8f 05 4a 41 f2 08 03  ca 50 bf f3 5f 8f 03 4a
            41 f2 0c 03 ca 50 70 47  00 bf 90 34 ef 68 5a bc
            72 d1 10 b5 07 49 07 22  04 46 0b f0 76 f8 28 b9
            a0 68 01 28 94 bf 00 20  01 20 10 bd 00 20 fc e7
            00 bf 6c 73 03 70 10 b5  05 f0 1d f8 04 f0 b3 ff
            ff f7 73 fc 03 28 0f d0  08 28 18 d1 11 48 04 f0
            e2 fe 10 49 04 46 10 48  04 f0 4d fe 10 48 21 46
            bd e8 10 40 04 f0 47 be  0e 49 0b 48 04 f0 43 fe
            0d 49 0d 48 04 f0 3f fe  0d 49 0d 48 f0 e7 ff f7
            54 fc bd e8 10 40 0b 49  02 46 0b 48 0b f0 a1 bc
            00 bf 74 73 03 70 1c 81  03 70 7d 73 03 70 8f 73
            03 70 9b 73 03 70 9f 73  03 70 a3 73 03 70 b2 73
            03 70 b7 73 03 70 54 74  03 70 c5 73 03 70 08 b5
            04 46 ff f7 5e ff 43 6c  98 47 22 f0 b4 fa 01 46
            10 b1 1b 48 0b f0 a8 fa  1b 4d ff f7 ac ff ab 68
            0b b9 e3 68 ab 60 a9 68  4f f4 00 72 01 20 22 f0
            c1 fa 06 46 20 b1 14 49  02 46 14 48 0b f0 94 fa
            6c 6d b4 b1 2c 6d 6c b9  0b f0 c2 fd 04 46 10 48
            0b f0 5f fc 01 20 22 f0  c9 fa 02 46 58 b1 0a 49
            0d 48 eb e7 20 46 0b f0  e4 fd 00 28 ef d0 20 46
            ea e7 01 26 eb e7 1e b1  ff f7 3d fd 20 bf fd e7
            a0 47 7a 70 03 70 08 b8  19 70 5d 74 03 70 e7 73
            03 70 0d 74 03 70 2d 74  03 70 70 47 00 f0 9b bb
            00 00 5f f0 7f f5 30 0f  30 ee a0 3b a0 e1 0e 30
            13 e2 1c 00 00 0a 00 a0  a0 e3 aa 20 8a e0 30 12
            a0 e1 07 10 01 e2 02 00  51 e3 13 00 00 ba 10 af
            40 ee 6f f0 7f f5 10 1f  30 ee 07 20 01 e2 04 20
            82 e2 ff 43 00 e3 a1 41  14 e0 14 5f 6f e1 ff 7f
            07 e3 a1 76 17 e0 07 90  a0 e1 14 65 a0 e1 06 b0
            8a e1 19 62 a0 e1 06 b0  8b e1 5e bf 07 ee 01 90
            59 e2 f8 ff ff aa 01 40  54 e2 f5 ff ff aa 02 a0
            8a e2 0a 00 53 e1 e3 ff  ff ca 00 a0 a0 e3 10 af
            40 ee 4e f0 7f f5 6f f0  7f f5 1e ff 2f e1 f0 4e
            2d e9 d6 ff ff eb f0 4e  bd e8 1e ff 2f e1 5f f0
            7f f5 30 0f 30 ee a0 3b  a0 e1 0e 30 13 e2 1c 00
            00 0a 00 a0 a0 e3 aa 20  8a e0 30 12 a0 e1 07 10
            01 e2 02 00 51 e3 13 00  00 ba 10 af 40 ee 6f f0
            7f f5 10 1f 30 ee 07 20  01 e2 04 20 82 e2 ff 43
            00 e3 a1 41 14 e0 14 5f  6f e1 ff 7f 07 e3 a1 76
            17 e0 07 90 a0 e1 14 65  a0 e1 06 b0 8a e1 19 62
            a0 e1 06 b0 8b e1 56 bf  07 ee 01 90 59 e2 f8 ff
            ff aa 01 40 54 e2 f5 ff  ff aa 02 a0 8a e2 0a 00
            53 e1 e3 ff ff ca 00 a0  a0 e3 10 af 40 ee 4e f0
            7f f5 6f f0 7f f5 1e ff  2f e1 f0 4e 2d e9 d6 ff
            ff eb f0 4e bd e8 1e ff  2f e1 00 23 07 ee 15 3f
            07 ee d5 3f bf f3 4f 8f  bf f3 6f 8f 70 47 70 47
            08 b5 ff f7 94 ef bd e8  08 40 ff f7 f8 bf 70 47
            38 b5 04 46 0d 46 00 f0  bb fa 30 ee 10 3f 01 22
            03 f0 07 03 04 33 9a 40  53 42 23 40 9d 42 07 d8
            bf f3 4f 8f 29 46 20 46  bd e8 38 40 ff f7 e7 bf
            07 ee 3e 3f 13 44 f1 e7  70 47 70 b5 04 46 0d 46
            00 f0 9e fa 30 ee 10 6f  29 46 20 46 00 f0 98 fa
            40 b1 01 23 06 f0 07 06  04 36 03 fa 06 f6 23 46
            9d 42 07 d8 bf f3 4f 8f  29 46 20 46 bd e8 70 40
            ff f7 e2 bf 07 ee 36 3f  33 44 f1 e7 11 ee 10 3f
            bf f3 4f 8f 23 f0 01 03  01 ee 10 3f bf f3 6f 8f
            bf f3 6f 8f 70 47 11 ee  10 3f bf f3 4f 8f 43 f0
            01 03 01 ee 10 3f bf f3  6f 8f bf f3 6f 8f 70 47
            00 00 03 69 06 2b 8e bf  00 21 0b 4a d1 5c 43 68
            06 ee 12 3f 03 68 06 ee  11 3f 42 69 12 b1 52 00
    OOB:
            ff ff 68 f4 c2 79 d8 28
            09 9b cd 52 d8 4f b8 00
            20 9e 06 3c 2c c6 2a bd
            43 ba ab fa 6c 00 83 30
            06 55 94 35 aa 91 df ad
            62 aa c3 00 d9 25 b8 21
            e9 a2 f1 0b 89 3d 40 22
            71 00 9b f0 66 e3 b0 30
            ac a9 5a 7b de e9 85 00
            09 92 c3 63 17 9f a6 04
            2b 73 13 08 17 00 9e a9
            81 e1 f8 4c 16 c2 bd 13
            46 82 89 00 8c 9c c5 33
            d2 0a 79 60 08 1a f4 11
            c2 00 ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
            ff ff ff ff ff ff ff ff
    =>

  • Hello Hong,

    This is indeed very helpful indeed, thank you:

    Q1 (relating to A2 above)- Do any of these specific errors generate an abort?:

      1- ERROR_NAND_UNSUPPORTED_GEOMETRY, what geometry can generate an abort?

      2- ERROR_NAND_UNSUPPORTED_PAGE_SIZE, does this generate an abort, if yes what sizes generate an abort?

      3- Abort means move to secondary boot device, correct?

    Q2 Is the number of sectors (PAGESIZE / 512) capped to 8 in ROM or not? I would assume that GPMC will read 512 bytes starting at 512 x sector number then goes to addr PAGESIZE+2+ 14xsector number, then ELM will only use syndrome 0 for all sectors within a page: is this correct?

    Thank you.

  • Hello Mehdi,
    A1.
    1/. "ERROR_NAND_UNSUPPORTED_GEOMETRY" is triggered when the NAND geometry reading from ONFI parameter page is out of the specifications, i.e. not 8 bit NAND, OOB is too small to fit ECC bytes etc...
    2/. "ERROR_NAND_UNSUPPORTED_PAGE_SIZE" The supported page size: 2kbyte, 4kbyte. For any other page size, the error is logged.
    3/. On abort, redundant boot offset from the primary boot media is tried next by ROM before moving to the backup boot media.
    A2.
    2K page => 4 sectors; 4k page => 8 sectors. The previously shard log lists the ECC/sector layout within the OOB (256 bytes)
    One reference is
    www.kernel.org/.../gpmc-nand.txt
    Best,
    -Hong

  • Hello Hong,

    The answer is unclear, could you please clarify my understanding:

    1- ERROR_NAND_UNSUPPORTED_GEOMETRY generates an abort, i.e: redundant boot location tried then backup boot media: Is this correct?

    2- ERROR_NAND_UNSUPPORTED_PAGE_SIZE the error is logged by ROM but will still try loading from main boot offset anyway, is this what you mean? or if  (PAGE_SIZE != 2048) and (PAGE_SIZE != 4096) => abort?

    ECC/sector layout is understood.

    Thank you for your help

  • Hello Mehdi,
    A1. yes.
    A2. the error is logged. I'd recommend to follow TRM

    4.4.10 GPMC NAND Boot
    GPMC NAND Boot Configuration Fields
    AM64x ROM only supports boot from ONFI 1.0 compatible 8 bit parallel NAND memory up to 2Gbytes in size
    connected to GPMC CS0 with the following geometries:
    - 2Kbyte page and spare area of at least 64 bytes or
    - 4Kbyte page size and spare area of at least 128 bytes.
    Best,
    -Hong

  • Hello Hong,

    from your A2, I understand that you confirm that the boot will not abort if PAGE_SIZE is different from 2K and 4K but will try to read to boot with continuous mode ELM & BCH8.

    Q1: I assume GPMC is using GPMC_CONFIG1-i only to check the sectors sequentially.

    Q2: What is the GPMC configuration in the ROM: what are the values of GPMC_ECC_CONFIG & GPMC_ECC_SIZE_CONFIG?

    Thank you,

    Mehdi

  • Hello Mehdi,
    a/. Do we have GPMC NAND boot issue by ROM on your board? or
    b/. Are you working on selecting NAND device?
    for a/. please provide more info or log file.
    for b/. TRM specifications on GPMC NAND need to be followed.
    Best,
    -Hong

  • Hong,

    This part is no longer in preview and is now in active state, as such we expect to have proper documentation. The TRM section 4.4.10.1 is still empty. Compare that to AM355x TRM section 26.1.8.4 (12 pages of detailed functionality from page 5045 to page 5055) which details the boot process of the part using GPMC and NAND and you will see where my problem stands.

    In the absence of documentation, I'm asking for the same information here.

    So, since TI is not willing to share this part of the ROM (which has no security or special IP related to as the same function is available within SPL & uboot as open source), can you please provide the registers' values being used in ROM or just state that they are the same as in uboot's nand_gpmc.c. Ideally you could share snippets of the relevant ROM code here (example: the GPMC config function and the page read function).

    Thank you