|
@@ -0,0 +1,52 @@
|
|
|
|
+--- a/tools/socfpgaimage.c
|
|
|
|
++++ b/tools/socfpgaimage.c
|
|
|
|
+@@ -74,12 +74,12 @@ static uint16_t hdr_checksum(struct socf
|
|
|
|
+ static void build_header(uint8_t *buf, uint8_t version, uint8_t flags,
|
|
|
|
+ uint16_t length_bytes)
|
|
|
|
+ {
|
|
|
|
+- header.validation = htole32(VALIDATION_WORD);
|
|
|
|
++ header.validation = cpu_to_le32(VALIDATION_WORD);
|
|
|
|
+ header.version = version;
|
|
|
|
+ header.flags = flags;
|
|
|
|
+- header.length_u32 = htole16(length_bytes/4);
|
|
|
|
++ header.length_u32 = cpu_to_le16(length_bytes/4);
|
|
|
|
+ header.zero = 0;
|
|
|
|
+- header.checksum = htole16(hdr_checksum(&header));
|
|
|
|
++ header.checksum = cpu_to_le16(hdr_checksum(&header));
|
|
|
|
+
|
|
|
|
+ memcpy(buf, &header, sizeof(header));
|
|
|
|
+ }
|
|
|
|
+@@ -92,12 +92,12 @@ static int verify_header(const uint8_t *
|
|
|
|
+ {
|
|
|
|
+ memcpy(&header, buf, sizeof(header));
|
|
|
|
+
|
|
|
|
+- if (le32toh(header.validation) != VALIDATION_WORD)
|
|
|
|
++ if (le32_to_cpu(header.validation) != VALIDATION_WORD)
|
|
|
|
+ return -1;
|
|
|
|
+- if (le16toh(header.checksum) != hdr_checksum(&header))
|
|
|
|
++ if (le16_to_cpu(header.checksum) != hdr_checksum(&header))
|
|
|
|
+ return -1;
|
|
|
|
+
|
|
|
|
+- return le16toh(header.length_u32) * 4;
|
|
|
|
++ return le16_to_cpu(header.length_u32) * 4;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* Sign the buffer and return the signed buffer size */
|
|
|
|
+@@ -116,7 +116,7 @@ static int sign_buffer(uint8_t *buf,
|
|
|
|
+ /* Calculate and apply the CRC */
|
|
|
|
+ calc_crc = ~pbl_crc32(0, (char *)buf, len);
|
|
|
|
+
|
|
|
|
+- *((uint32_t *)(buf + len)) = htole32(calc_crc);
|
|
|
|
++ *((uint32_t *)(buf + len)) = cpu_to_le32(calc_crc);
|
|
|
|
+
|
|
|
|
+ if (!pad_64k)
|
|
|
|
+ return len + 4;
|
|
|
|
+@@ -150,7 +150,7 @@ static int verify_buffer(const uint8_t *
|
|
|
|
+
|
|
|
|
+ calc_crc = ~pbl_crc32(0, (const char *)buf, len);
|
|
|
|
+
|
|
|
|
+- buf_crc = le32toh(*((uint32_t *)(buf + len)));
|
|
|
|
++ buf_crc = le32_to_cpu(*((uint32_t *)(buf + len)));
|
|
|
|
+
|
|
|
|
+ if (buf_crc != calc_crc) {
|
|
|
|
+ fprintf(stderr, "CRC32 does not match (%08x != %08x)\n",
|