AM2434: AM2434: CRC polynomial support

Part Number: AM2434

Hi TI,

On the AM2434 Sitara processor:  Which polynomials does the PRU_ICSSG CRC16/32 accelerator support? Is the polynomial programmable? 

Thanks,

Mohan

  • Hello Mohan,

    This thread was assigned to the correct engineer. Please allow some time for a response.

  • Hi Mohan,

    Short answer: The PRU_ICSSG CRC accelerator supports three fixed polynomials, and the polynomial itself is not programmable.

    Supported polynomials

    Mode Polynomial
    CRC32 0x04C11DB7
    CRC16 (standard) 0x8005
    CRC16-CCITT 0x1021

    These three configurations are the only ones available 1.

    Selection

    Mode is chosen via the CRC configuration register, not by writing a polynomial value:

    • CRC_CFG.R25 bit 0 — selects CRC32 vs. CRC16 mode
    • CRC_CFG.R25 bit 2 — in CRC16 mode, selects standard CRC16 vs. CRC16-CCITT 1

    Seed behavior is determined by the selected mode. The polynomial coefficients are hardwired and cannot be modified by the user 1.

    If you need a custom polynomial

    Implement the CRC in PRU firmware — a lookup-table-based routine on the PRU core is the suggested approach 1. Note the performance tradeoff: the hardware accelerator ingests a 32-byte XOUT 4 bytes at a time and completes in 20 clock cycles for CRC16 or 12 clock cycles for CRC32 2.

    1. E2E: AM2434 — How to generate standard CRC32 on AM2434
    2. AM243x Technical Reference Manual (SPRUIM2)