rendered paste body0000000 02858209 80ca45f8 00000000 00000000
0000020 009c60a4 080129c2 00010c12 00000000
0000040 0ab64910 0d09de36 e676ce9c ba6abeed
0000060 55563412 00000000 00000000 00000000
0000100 00000000 00000000 00000000 00000000
memcpy(CHIP_ID, CHIPID_LOC, CHIPID_LEN);
memcpy(tmp, (void *)0xFFFF3C54L, 0x10);
memcpy(NOR_ID, tmp + 2, NORID_LEN);
/* Create the hash */
sha1_starts(&ctx);
sha1_update(&ctx, NOR_ID, 0x10);
sha1_update(&ctx, CHIP_ID, 0x10);
sha1_finish(&ctx, (void *)sha1);
/* Endian swap the first 16 bits of the SHA1 output */
key[0] = htonl(sha1[0]);
key[1] = htonl(sha1[1]);
key[2] = htonl(sha1[2]);
key[3] = htonl(sha1[3]);
#if defined(DEBUG)
#warning 1
memset(payload, 0, 1024);
memcpy(payload + 0x00, NOR_ID, NORID_LEN);
memcpy(payload + 0x10, CHIP_ID, CHIPID_LEN);
memcpy(payload + 0x20, (void *)key, 0x10);
unsigned long n = htonl(0x12345655); /* version */
memcpy(payload + 0x30, (void *)&n, 4);
/* If DEBUG, just write to SCRATCH_OFFSET */
eraseblock(SCRATCH_OFFSET);
writeblock(SCRATCH_OFFSET, 1024, payload);