1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
--- a/crc32.c
+++ b/crc32.c
@@ -8,21 +8,16 @@
* For conditions of distribution and use, see copyright notice in zlib.h
*/
-#ifndef USE_HOSTCC
-#include <common.h>
-#endif
-#include <compiler.h>
-#include <u-boot/crc.h>
+#include <stdint.h>
+#include <asm/byteorder.h>
+
+#include "zlib.h"
-#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
-#include <watchdog.h>
-#endif
-#include "u-boot/zlib.h"
#define local static
#define ZEXPORT /* empty */
-#define tole(x) cpu_to_le32(x)
+#define tole(x) __constant_cpu_to_le32(x)
#ifdef DYNAMIC_CRC_TABLE
@@ -151,7 +146,7 @@ tole(0xb40bbe37L), tole(0xc30c8ea1L), to
#if 0
/* =========================================================================
- * This function can be used by asm versions of crc32()
+ * This function can be used by asm versions of uboot_crc32()
*/
const uint32_t * ZEXPORT get_crc_table()
{
@@ -183,7 +178,7 @@ uint32_t ZEXPORT crc32_no_comp(uint32_t
if (crc_table_empty)
make_crc_table();
#endif
- crc = cpu_to_le32(crc);
+ crc = __cpu_to_le32(crc);
/* Align it */
if (((long)b) & 3 && len) {
uint8_t *p = (uint8_t *)b;
@@ -212,11 +207,11 @@ uint32_t ZEXPORT crc32_no_comp(uint32_t
} while (--len);
}
- return le32_to_cpu(crc);
+ return __le32_to_cpu(crc);
}
#undef DO_CRC
-uint32_t ZEXPORT crc32 (uint32_t crc, const Bytef *p, uInt len)
+uint32_t ZEXPORT uboot_crc32 (uint32_t crc, const Bytef *p, uInt len)
{
return crc32_no_comp(crc ^ 0xffffffffL, p, len) ^ 0xffffffffL;
}
@@ -239,12 +234,12 @@ uint32_t ZEXPORT crc32_wd (uint32_t crc,
chunk = end - curr;
if (chunk > chunk_sz)
chunk = chunk_sz;
- crc = crc32 (crc, curr, chunk);
+ crc = uboot_crc32 (crc, curr, chunk);
curr += chunk;
WATCHDOG_RESET ();
}
#else
- crc = crc32 (crc, buf, len);
+ crc = uboot_crc32 (crc, buf, len);
#endif
return crc;
--- a/fw_env.c
+++ b/fw_env.c
@@ -34,6 +34,7 @@
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <zlib.h>
#ifdef MTD_OLD
# include <stdint.h>
@@ -210,13 +211,14 @@ static char default_environment[] = {
static int flash_io (int mode);
static char *envmatch (char * s1, char * s2);
static int parse_config (void);
+uint32_t uboot_crc32 (uint32_t crc, const Bytef *p, uInt len);
#if defined(CONFIG_FILE)
static int get_config (char *);
#endif
-static inline ulong getenvsize (void)
+static inline uint32_t getenvsize (void)
{
- ulong rc = CONFIG_ENV_SIZE - sizeof (long);
+ uint32_t rc = CONFIG_ENV_SIZE - sizeof (uint32_t);
if (HaveRedundEnv)
rc -= sizeof (char);
@@ -346,7 +348,7 @@ int fw_env_close(void)
/*
* Update CRC
*/
- *environment.crc = crc32(0, (uint8_t *) environment.data, ENV_SIZE);
+ *environment.crc = uboot_crc32(0, (uint8_t *) environment.data, ENV_SIZE);
/* write environment back to flash */
if (flash_io(O_RDWR)) {
@@ -802,7 +804,7 @@ static int flash_write_buf (int dev, int
data = malloc (erase_len);
if (!data) {
fprintf (stderr,
- "Cannot malloc %u bytes: %s\n",
+ "Cannot malloc %zu bytes: %s\n",
erase_len, strerror (errno));
return -1;
}
@@ -1107,7 +1109,7 @@ int fw_env_open(void)
if (flash_io (O_RDONLY))
return -1;
- crc0 = crc32 (0, (uint8_t *) environment.data, ENV_SIZE);
+ crc0 = uboot_crc32 (0, (uint8_t *) environment.data, ENV_SIZE);
crc0_ok = (crc0 == *environment.crc);
if (!HaveRedundEnv) {
if (!crc0_ok) {
@@ -1151,7 +1153,7 @@ int fw_env_open(void)
return -1;
}
- crc1 = crc32 (0, (uint8_t *) redundant->data, ENV_SIZE);
+ crc1 = uboot_crc32 (0, (uint8_t *) redundant->data, ENV_SIZE);
crc1_ok = (crc1 == redundant->crc);
flag1 = redundant->flags;
|