summaryrefslogtreecommitdiff
path: root/board/trab/auto_update.c
diff options
context:
space:
mode:
authordzu <dzu>2003-09-29 21:55:54 +0000
committerdzu <dzu>2003-09-29 21:55:54 +0000
commit8a42eac7442816934567215cdc0de4e94df5b6d1 (patch)
tree4955faa0ce63f59294ff417ac70a952dd0f8eae9 /board/trab/auto_update.c
parent91e940d9bc15436de2bc73603957136e19082c35 (diff)
downloadu-boot-imx-8a42eac7442816934567215cdc0de4e94df5b6d1.zip
u-boot-imx-8a42eac7442816934567215cdc0de4e94df5b6d1.tar.gz
u-boot-imx-8a42eac7442816934567215cdc0de4e94df5b6d1.tar.bz2
* Adapt TRAB configuration and auto_update to new memory layout
Diffstat (limited to 'board/trab/auto_update.c')
-rw-r--r--board/trab/auto_update.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/board/trab/auto_update.c b/board/trab/auto_update.c
index 9371637..c9c61ea 100644
--- a/board/trab/auto_update.c
+++ b/board/trab/auto_update.c
@@ -105,14 +105,14 @@ struct flash_layout
#define AU_FL_APP_ND 0x005BFFFF
#define AU_FL_DISK_ST 0x005C0000
#define AU_FL_DISK_ND 0x00FFFFFF
-#else /* 8 MB Flash, 16 MB RAM */
+#else /* 8 MB Flash, 32 MB RAM */
#define AU_FL_FIRMWARE_ST 0x00000000
-#define AU_FL_FIRMWARE_ND 0x0003FFFF
-#define AU_FL_KERNEL_ST 0x00040000
-#define AU_FL_KERNEL_ND 0x0011FFFF
-#define AU_FL_APP_ST 0x00120000
-#define AU_FL_APP_ND 0x003FFFFF
-#define AU_FL_DISK_ST 0x00400000
+#define AU_FL_FIRMWARE_ND 0x0005FFFF
+#define AU_FL_KERNEL_ST 0x00060000
+#define AU_FL_KERNEL_ND 0x0013FFFF
+#define AU_FL_APP_ST 0x00140000
+#define AU_FL_APP_ND 0x0067FFFF
+#define AU_FL_DISK_ST 0x00680000
#define AU_FL_DISK_ND 0x007DFFFF
#define AU_FL_VFD_ST 0x007E0000
#define AU_FL_VFD_ND 0x007FFFFF
@@ -186,8 +186,8 @@ struct flash_layout aufl_layout[AU_MAXFILES - 3] = { \
#define LOAD_ADDR ((unsigned char *)0x0C100100)
/* where to build strings in memory - 256 bytes should be enough */
#define STRING_ADDR ((char *)0x0C100000)
-/* the disk is the largest image */
-#define MAX_LOADSZ ausize[IDX_DISK]
+/* the app is the largest image */
+#define MAX_LOADSZ ausize[IDX_APP]
/* externals */
extern int fat_register_device(block_dev_desc_t *, int);
@@ -222,7 +222,7 @@ au_check_valid(int idx, long nbytes)
#endif
if (ntohl(hdr->ih_magic) != IH_MAGIC ||
hdr->ih_arch != IH_CPU_ARM ||
- nbytes < ntohl(hdr->ih_size))
+ nbytes != (sizeof(*hdr) + ntohl(hdr->ih_size)))
{
printf ("Image %s bad MAGIC or ARCH or SIZE\n", aufile[idx]);
return -1;
@@ -589,6 +589,9 @@ do_auto_update(void)
*/
if (got_ctrlc == 0)
au_update_eeprom(i);
+ else
+ /* enable the power switch */
+ *CPLD_VFD_BK &= ~POWER_OFF;
}
usb_stop();
/* restore the old state */