0000000 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);