|
@@ -36,6 +36,7 @@
|
|
#include <image.h>
|
|
#include <image.h>
|
|
#include <malloc.h>
|
|
#include <malloc.h>
|
|
#include <asm/byteorder.h>
|
|
#include <asm/byteorder.h>
|
|
|
|
+#include <asm/io.h>
|
|
#if defined(CONFIG_8xx)
|
|
#if defined(CONFIG_8xx)
|
|
#include <mpc8xx.h>
|
|
#include <mpc8xx.h>
|
|
#endif
|
|
#endif
|
|
@@ -44,9 +45,10 @@ int
|
|
source (ulong addr, const char *fit_uname)
|
|
source (ulong addr, const char *fit_uname)
|
|
{
|
|
{
|
|
ulong len;
|
|
ulong len;
|
|
- image_header_t *hdr;
|
|
|
|
|
|
+ const image_header_t *hdr;
|
|
ulong *data;
|
|
ulong *data;
|
|
int verify;
|
|
int verify;
|
|
|
|
+ void *buf;
|
|
#if defined(CONFIG_FIT)
|
|
#if defined(CONFIG_FIT)
|
|
const void* fit_hdr;
|
|
const void* fit_hdr;
|
|
int noffset;
|
|
int noffset;
|
|
@@ -56,9 +58,10 @@ source (ulong addr, const char *fit_uname)
|
|
|
|
|
|
verify = getenv_yesno ("verify");
|
|
verify = getenv_yesno ("verify");
|
|
|
|
|
|
- switch (genimg_get_format ((void *)addr)) {
|
|
|
|
|
|
+ buf = map_sysmem(addr, 0);
|
|
|
|
+ switch (genimg_get_format(buf)) {
|
|
case IMAGE_FORMAT_LEGACY:
|
|
case IMAGE_FORMAT_LEGACY:
|
|
- hdr = (image_header_t *)addr;
|
|
|
|
|
|
+ hdr = buf;
|
|
|
|
|
|
if (!image_check_magic (hdr)) {
|
|
if (!image_check_magic (hdr)) {
|
|
puts ("Bad magic number\n");
|
|
puts ("Bad magic number\n");
|
|
@@ -104,7 +107,7 @@ source (ulong addr, const char *fit_uname)
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
- fit_hdr = (const void *)addr;
|
|
|
|
|
|
+ fit_hdr = buf;
|
|
if (!fit_check_format (fit_hdr)) {
|
|
if (!fit_check_format (fit_hdr)) {
|
|
puts ("Bad FIT image format\n");
|
|
puts ("Bad FIT image format\n");
|
|
return 1;
|
|
return 1;
|