summaryrefslogtreecommitdiff
path: root/lib_avr32
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2007-08-13 16:34:33 +0200
committerHaavard Skinnemoen <hskinnemoen@atmel.com>2007-08-13 16:34:33 +0200
commit375c2c9e57ea5b8d678475379378f4774aa9cb88 (patch)
treec8499eaec089c8fe7c9eda562131f45b4a7738c6 /lib_avr32
parentf0d1246ed7cb5a88522244c596d7ae7e6f161283 (diff)
parent9986bc3e40e899bea372a99a2bca4071bdf2e24b (diff)
downloadu-boot-imx-375c2c9e57ea5b8d678475379378f4774aa9cb88.zip
u-boot-imx-375c2c9e57ea5b8d678475379378f4774aa9cb88.tar.gz
u-boot-imx-375c2c9e57ea5b8d678475379378f4774aa9cb88.tar.bz2
Merge commit 'upstream/master'
Diffstat (limited to 'lib_avr32')
-rw-r--r--lib_avr32/Makefile2
-rw-r--r--lib_avr32/avr32_linux.c27
-rw-r--r--lib_avr32/board.c2
-rw-r--r--lib_avr32/div64.c54
4 files changed, 12 insertions, 73 deletions
diff --git a/lib_avr32/Makefile b/lib_avr32/Makefile
index cf20836..bb2938f 100644
--- a/lib_avr32/Makefile
+++ b/lib_avr32/Makefile
@@ -29,7 +29,7 @@ LIB = $(obj)lib$(ARCH).a
SOBJS = memset.o
-COBJS = board.o interrupts.o avr32_linux.o div64.o
+COBJS = board.o interrupts.o avr32_linux.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
diff --git a/lib_avr32/avr32_linux.c b/lib_avr32/avr32_linux.c
index 6095e2f..62afbd2 100644
--- a/lib_avr32/avr32_linux.c
+++ b/lib_avr32/avr32_linux.c
@@ -36,13 +36,6 @@ extern int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
/* CPU-specific hook to allow flushing of caches, etc. */
extern void prepare_to_boot(void);
-#ifdef CONFIG_SHOW_BOOT_PROGRESS
-# include <status_led.h>
-# define SHOW_BOOT_PROGRESS(arg) show_boot_progress(arg)
-#else
-# define SHOW_BOOT_PROGRESS(arg)
-#endif
-
extern image_header_t header; /* from cmd_bootm.c */
static struct tag *setup_start_tag(struct tag *params)
@@ -204,7 +197,7 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
* Check if there is an initrd image
*/
if (argc >= 3) {
- SHOW_BOOT_PROGRESS(9);
+ show_boot_progress (9);
addr = simple_strtoul(argv[2], NULL, 16);
@@ -215,7 +208,7 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
if (ntohl(hdr->ih_magic) != IH_MAGIC) {
puts("Bad Magic Number\n");
- SHOW_BOOT_PROGRESS(-10);
+ show_boot_progress (-10);
do_reset(cmdtp, flag, argc, argv);
}
@@ -226,11 +219,11 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
if (crc32(0, (unsigned char *)data, len) != checksum) {
puts("Bad Header Checksum\n");
- SHOW_BOOT_PROGRESS(-11);
+ show_boot_progress (-11);
do_reset(cmdtp, flag, argc, argv);
}
- SHOW_BOOT_PROGRESS(10);
+ show_boot_progress (10);
print_image_hdr(hdr);
@@ -244,26 +237,26 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
csum = crc32(0, (unsigned char *)data, len);
if (csum != ntohl(hdr->ih_dcrc)) {
puts("Bad Data CRC\n");
- SHOW_BOOT_PROGRESS(-12);
+ show_boot_progress (-12);
do_reset(cmdtp, flag, argc, argv);
}
puts("OK\n");
}
- SHOW_BOOT_PROGRESS(11);
+ show_boot_progress (11);
if ((hdr->ih_os != IH_OS_LINUX) ||
(hdr->ih_arch != IH_CPU_AVR32) ||
(hdr->ih_type != IH_TYPE_RAMDISK)) {
puts("Not a Linux/AVR32 RAMDISK image\n");
- SHOW_BOOT_PROGRESS(-13);
+ show_boot_progress (-13);
do_reset(cmdtp, flag, argc, argv);
}
} else if ((hdr->ih_type == IH_TYPE_MULTI) && (len_ptr[1])) {
ulong tail = ntohl (len_ptr[0]) % 4;
int i;
- SHOW_BOOT_PROGRESS (13);
+ show_boot_progress (13);
/* skip kernel length and terminator */
data = (ulong) (&len_ptr[2]);
@@ -279,7 +272,7 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
len = ntohl (len_ptr[1]);
} else {
/* no initrd image */
- SHOW_BOOT_PROGRESS(14);
+ show_boot_progress (14);
len = data = 0;
}
@@ -291,7 +284,7 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
initrd_end = 0;
}
- SHOW_BOOT_PROGRESS(15);
+ show_boot_progress (15);
params = params_start = (struct tag *)gd->bd->bi_boot_params;
params = setup_start_tag(params);
diff --git a/lib_avr32/board.c b/lib_avr32/board.c
index 265328a..8b9ca38 100644
--- a/lib_avr32/board.c
+++ b/lib_avr32/board.c
@@ -328,7 +328,7 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
jumptable_init();
console_init_r();
-#if (CONFIG_COMMANDS & CFG_CMD_NET)
+#if defined(CONFIG_CMD_NET)
#if defined(CONFIG_NET_MULTI)
puts("Net: ");
#endif
diff --git a/lib_avr32/div64.c b/lib_avr32/div64.c
deleted file mode 100644
index 99726e3..0000000
--- a/lib_avr32/div64.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2003 Bernardo Innocenti <bernie@develer.com>
- *
- * Based on former do_div() implementation from asm-parisc/div64.h:
- * Copyright (C) 1999 Hewlett-Packard Co
- * Copyright (C) 1999 David Mosberger-Tang <davidm@hpl.hp.com>
- *
- *
- * Generic C version of 64bit/32bit division and modulo, with
- * 64bit result and 32bit remainder.
- *
- * The fast case for (n>>32 == 0) is handled inline by do_div().
- *
- * Code generated for this function might be very inefficient
- * for some CPUs. __div64_32() can be overridden by linking arch-specific
- * assembly versions such as arch/ppc/lib/div64.S and arch/sh/lib/div64.S.
- */
-
-#include <linux/types.h>
-
-#include <asm/div64.h>
-
-uint32_t __div64_32(uint64_t *n, uint32_t base)
-{
- uint64_t rem = *n;
- uint64_t b = base;
- uint64_t res, d = 1;
- uint32_t high = rem >> 32;
-
- /* Reduce the thing a bit first */
- res = 0;
- if (high >= base) {
- high /= base;
- res = (uint64_t) high << 32;
- rem -= (uint64_t) (high*base) << 32;
- }
-
- while ((int64_t)b > 0 && b < rem) {
- b = b+b;
- d = d+d;
- }
-
- do {
- if (rem >= b) {
- rem -= b;
- res += d;
- }
- b >>= 1;
- d >>= 1;
- } while (d);
-
- *n = res;
- return rem;
-}