X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=tools%2Fenvcrc.c;h=111d9f62897a4107d66cc884c3b231e4d837531f;hb=65f0d12152cd9930acbefbd79e403e1688522901;hp=5b0f7cd4ec5bb01d7d641d232b2d1c63a90cd92a;hpb=837db3d87f4bfe9261629fb4a1bb433506a3056a;p=u-boot diff --git a/tools/envcrc.c b/tools/envcrc.c index 5b0f7cd4ec..111d9f6289 100644 --- a/tools/envcrc.c +++ b/tools/envcrc.c @@ -21,6 +21,7 @@ * MA 02111-1307 USA */ +#include #include #include #include @@ -59,6 +60,11 @@ # endif #endif /* CONFIG_ENV_IS_IN_FLASH */ +#if defined(ENV_IS_EMBEDDED) && !defined(CONFIG_BUILD_ENVCRC) +# include +# define CONFIG_BUILD_ENVCRC 1 +#endif + #ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT # define ENV_HEADER_SIZE (sizeof(uint32_t) + 1) #else @@ -70,17 +76,17 @@ extern uint32_t crc32 (uint32_t, const unsigned char *, unsigned int); -#ifdef ENV_IS_EMBEDDED +#ifdef CONFIG_BUILD_ENVCRC extern unsigned int env_size; -extern unsigned char environment; -#endif /* ENV_IS_EMBEDDED */ +extern env_t environment; +#endif /* CONFIG_BUILD_ENVCRC */ int main (int argc, char **argv) { -#ifdef ENV_IS_EMBEDDED +#ifdef CONFIG_BUILD_ENVCRC unsigned char pad = 0x00; uint32_t crc; - unsigned char *envptr = &environment, + unsigned char *envptr = (unsigned char *)&environment, *dataptr = envptr + ENV_HEADER_SIZE; unsigned int datasize = ENV_SIZE; unsigned int eoe; @@ -121,7 +127,8 @@ int main (int argc, char **argv) } for (i = start; i != end; i += step) printf("%c", (crc & (0xFF << (i * 8))) >> (i * 8)); - fwrite(dataptr, 1, datasize, stdout); + if (fwrite(dataptr, 1, datasize, stdout) != datasize) + fprintf(stderr, "fwrite() failed: %s\n", strerror(errno)); } else { printf("CRC32 from offset %08X to %08X of environment = %08X\n", (unsigned int) (dataptr - envptr),