From 21f971ec265f6042ec21636d55d06a6bc0751077 Mon Sep 17 00:00:00 2001 From: Wolfgang Denk Date: Mon, 7 Jul 2008 01:22:29 +0200 Subject: TQM823L: re-enable logo support; update LCD_INFO text Signed-off-by: Wolfgang Denk --- common/lcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'common') diff --git a/common/lcd.c b/common/lcd.c index e3347ec..8d770f3 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -793,7 +793,7 @@ static void *lcd_logo (void) sprintf (info, "%s (%s - %s) ", U_BOOT_VERSION, __DATE__, __TIME__); lcd_drawchars (LCD_INFO_X, LCD_INFO_Y, (uchar *)info, strlen(info)); - sprintf (info, "(C) 2004 DENX Software Engineering"); + sprintf (info, "(C) 2008 DENX Software Engineering GmbH"); lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT, (uchar *)info, strlen(info)); -- cgit v1.1 From 41266c9b5a5f873df3ec891bb0907616958b5602 Mon Sep 17 00:00:00 2001 From: Peter Tyser Date: Tue, 5 Aug 2008 10:51:57 -0500 Subject: FIT: Fix handling of images without ramdisks boot_get_ramdisk() should not treat the case when a FIT image does not contain a ramdisk as an error. Signed-off-by: Peter Tyser Acked-by: Michal Simek --- common/image.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'common') diff --git a/common/image.c b/common/image.c index 535c302..c3545a7 100644 --- a/common/image.c +++ b/common/image.c @@ -833,7 +833,7 @@ int boot_get_ramdisk (int argc, char *argv[], bootm_headers_t *images, rd_noffset = fit_conf_get_ramdisk_node (fit_hdr, cfg_noffset); if (rd_noffset < 0) { debug ("* ramdisk: no ramdisk in config\n"); - return 1; + return 0; } } #endif -- cgit v1.1 From 0bf202ec586d4466c900e987720fa635c594d689 Mon Sep 17 00:00:00 2001 From: Wolfgang Denk Date: Sun, 10 Aug 2008 01:26:26 +0200 Subject: Revert "[new uImage] Add autostart flag to bootm_headers structure" This reverts commit f5614e7926863bf0225ec860d9b319741a9c4004. The commit was based on a misunderstanding of the (documented) meaning of the 'autostart' environment variable. It might cause boards to hang if 'autostart' was used, with the potential to brick them. Go back to the documented behaviour. Conflicts: common/cmd_bootm.c common/image.c include/image.h Signed-off-by: Wolfgang Denk --- common/cmd_bootm.c | 1 - common/image.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'common') diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 18d7100..2dffdfa 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -138,7 +138,6 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) memset ((void *)&images, 0, sizeof (images)); images.verify = getenv_yesno ("verify"); - images.autostart = getenv_yesno ("autostart"); images.lmb = &lmb; lmb_init(&lmb); diff --git a/common/image.c b/common/image.c index c3545a7..1807348 100644 --- a/common/image.c +++ b/common/image.c @@ -189,6 +189,22 @@ int image_check_dcrc (image_header_t *hdr) return (dcrc == image_get_dcrc (hdr)); } +void memmove_wd (void *to, void *from, size_t len, ulong chunksz) +{ +#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) + while (len > 0) { + size_t tail = (len > chunksz) ? chunksz : len; + WATCHDOG_RESET (); + memmove (to, from, tail); + to += tail; + from += tail; + len -= tail; + } +#else /* !(CONFIG_HW_WATCHDOG || CONFIG_WATCHDOG) */ + memmove (to, from, len); +#endif /* CONFIG_HW_WATCHDOG || CONFIG_WATCHDOG */ +} +#endif /* USE_HOSTCC */ /** * image_multi_count - get component (sub-image) count -- cgit v1.1 From aa5ffa16d7e4c461b7b77bf8e79d2ef5638cf754 Mon Sep 17 00:00:00 2001 From: "dirk.behme@googlemail.com" Date: Sun, 10 Aug 2008 17:56:36 +0200 Subject: OneNAND: Remove base address offset usage While locally preparing some U-Boot patches for ARM based OMAP3 boards, some using OneNAND and some using NAND, we found some differences in OneNAND and NAND command address handling. As this might confuse users (it already confused us), we like to align OneNAND and NAND address handling. The issue is that cmd_onenand.c subtracts the onenand base address from the addresses you type into the u-boot command line so, unlike nand, you can't use addresses relative to the start of the onenand part e.g. this won't work: onenand read 82000000 280000 400000 you have to use: onenand read 82000000 20280000 400000 Looking at recent git, the only board currently using OneNAND is Apollon, and for this the OneNAND base address is 0 (apollon.h) #define CFG_ONENAND_BASE 0x00000000 so patch below won't break any existing boards and will align OneNAND and NAND handling on boards where OneNAND base address is != 0. Signed-off-by: Steve Sakoman Signed-off-by: Manikandan Pillai Signed-off-by: Dirk Behme --- common/cmd_onenand.c | 6 ------ common/env_onenand.c | 3 --- 2 files changed, 9 deletions(-) (limited to 'common') diff --git a/common/cmd_onenand.c b/common/cmd_onenand.c index ce99a38..d6d3376 100644 --- a/common/cmd_onenand.c +++ b/common/cmd_onenand.c @@ -58,8 +58,6 @@ int do_onenand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) } else { start = simple_strtoul(argv[2], NULL, 10); end = simple_strtoul(argv[3], NULL, 10); - start -= (unsigned long)onenand_chip.base; - end -= (unsigned long)onenand_chip.base; start >>= onenand_chip.erase_shift; end >>= onenand_chip.erase_shift; @@ -92,8 +90,6 @@ int do_onenand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) size_t retlen = 0; int oob = strncmp(argv[1], "read.oob", 8) ? 0 : 1; - ofs -= (unsigned long)onenand_chip.base; - if (oob) onenand_read_oob(&onenand_mtd, ofs, len, &retlen, (u_char *) addr); @@ -111,8 +107,6 @@ int do_onenand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) size_t len = simple_strtoul(argv[4], NULL, 16); size_t retlen = 0; - ofs -= (unsigned long)onenand_chip.base; - onenand_write(&onenand_mtd, ofs, len, &retlen, (u_char *) addr); printf("Done\n"); diff --git a/common/env_onenand.c b/common/env_onenand.c index ad5b1d7..dbd0883 100644 --- a/common/env_onenand.c +++ b/common/env_onenand.c @@ -66,7 +66,6 @@ void env_relocate_spec(void) size_t retlen; env_addr = CFG_ENV_ADDR; - env_addr -= (unsigned long) onenand_chip.base; /* Check OneNAND exist */ if (onenand_mtd.oobblock) @@ -101,7 +100,6 @@ int saveenv(void) instr.len = CFG_ENV_SIZE; instr.addr = env_addr; - instr.addr -= (unsigned long)onenand_chip.base; if (onenand_erase(&onenand_mtd, &instr)) { printf("OneNAND: erase failed at 0x%08lx\n", env_addr); return 1; @@ -111,7 +109,6 @@ int saveenv(void) env_ptr->crc = crc32(0, env_ptr->data, ONENAND_ENV_SIZE(onenand_mtd)); - env_addr -= (unsigned long)onenand_chip.base; if (onenand_write(&onenand_mtd, env_addr, onenand_mtd.oobblock, &retlen, (u_char *) env_ptr)) { printf("OneNAND: write failed at 0x%08x\n", instr.addr); -- cgit v1.1 From a9fe0c3e7ca48afa50d6a0db99fa91e7282d73d8 Mon Sep 17 00:00:00 2001 From: Gururaja Hebbar K R Date: Thu, 7 Aug 2008 13:13:27 +0530 Subject: common/cmd_load.c - Minor code & Coding Style cleanup - os_data_header Variable is a carry over feature & unused. So removed all instance of this variable - Minor Code Style Update Signed-off-by: Gururaja Hebbar Acked-by: Jean-Christophe PLAGNIOL-VILLARD --- common/cmd_load.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'common') diff --git a/common/cmd_load.c b/common/cmd_load.c index 1b75a7b..ab167f5 100644 --- a/common/cmd_load.c +++ b/common/cmd_load.c @@ -424,7 +424,6 @@ write_record (char *buf) #define untochar(x) ((int) (((x) - SPACE) & 0xff)) extern int os_data_count; -extern int os_data_header[8]; static void set_kerm_bin_mode(unsigned long *); static int k_recv(void); @@ -631,11 +630,6 @@ void send_nack (int n) } -/* os_data_* takes an OS Open image and puts it into memory, and - puts the boot header in an array named os_data_header - - if image is binary, no header is stored in os_data_header. -*/ void (*os_data_init) (void); void (*os_data_char) (char new_char); static int os_data_state, os_data_state_saved; @@ -643,25 +637,28 @@ int os_data_count; static int os_data_count_saved; static char *os_data_addr, *os_data_addr_saved; static char *bin_start_address; -int os_data_header[8]; + static void bin_data_init (void) { os_data_state = 0; os_data_count = 0; os_data_addr = bin_start_address; } + static void os_data_save (void) { os_data_state_saved = os_data_state; os_data_count_saved = os_data_count; os_data_addr_saved = os_data_addr; } + static void os_data_restore (void) { os_data_state = os_data_state_saved; os_data_count = os_data_count_saved; os_data_addr = os_data_addr_saved; } + static void bin_data_char (char new_char) { switch (os_data_state) { @@ -671,6 +668,7 @@ static void bin_data_char (char new_char) break; } } + static void set_kerm_bin_mode (unsigned long *addr) { bin_start_address = (char *) addr; @@ -686,16 +684,19 @@ void k_data_init (void) k_data_escape = 0; os_data_init (); } + void k_data_save (void) { k_data_escape_saved = k_data_escape; os_data_save (); } + void k_data_restore (void) { k_data_escape = k_data_escape_saved; os_data_restore (); } + void k_data_char (char new_char) { if (k_data_escape) { -- cgit v1.1