B.2. LFSR Checksum Functions
The checksum algorithm uses the same LFSR as is used in the initiation key process.
Figure B-2. Checksum LFSR
The LFSR resets to 0x6A upon receiving the Wake[CSN] command. The next shift value for the LFSR is calculated as LFSR[1] XOR LFSR[0] XOR Serial Data. The LFSR is shifted right one bit at the conclusion of each pair of reads to the Serial Isolation register. LFSR[7] is assigned the next shift value described above.
As an example of the data pattern generated by the LFSR during the serial shift protocol consider a card with a vendor abbreviation of "PXQ", a manufacturer-specific product number of 540, a revision level of "9", and a serial number of 0x04000100.
The ASCII EISA ID for "PXQ" is 0x1143 where 0x43 is byte 0 and 0x11 is byte 1 as per Table 2, Section 6.1.
Vendor ID Byte 0: | 0x43 |
Vendor ID Byte 1: | 0x11 |
Vendor ID Byte 2: | 0x54 |
Vendor ID Byte 3: | 0x09 |
Serial Number Byte 0: | 0x00 |
Serial Number Byte 1: | 0x01 |
Serial Number Byte 2: | 0x00 |
Serial Number Byte 3: | 0x04 |
The serial identifier is sent as
0x43 (Bit 0 to bit 7, 1 1 0 0 0 0 1 0)
0x11 1 0 0 0 1 0 0 0
0x54 0 0 1 0 1 0 1 0
0x09 1 0 0 1 0 0 0 0
0x00 0 0 0 0 0 0 0 0
0x01 1 0 0 0 0 0 0 0
0x00 0 0 0 0 0 0 0 0
0x04 0 0 1 0 0 0 0 0
The LFSR is reset to value 0x6A when this card receives a Wake[CSN] command. After 64 pairs of reads of the Serial Isolation register, the LFSR will have the value 0xDC.