summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2010-10-25 08:06:52 +0200
committerWolfgang Denk <wd@denx.de>2010-10-25 08:06:52 +0200
commitc163f4478ca72f51b28b55f74addc8fe029d7b83 (patch)
tree914495b79944d55ff161fd7611d46ee7ab523978 /common
parent9038e0e7029e47ec1700128351281225f711545e (diff)
parent6d79c39958aa0245e59f33860cd1ddd589119968 (diff)
downloadu-boot-imx-c163f4478ca72f51b28b55f74addc8fe029d7b83.zip
u-boot-imx-c163f4478ca72f51b28b55f74addc8fe029d7b83.tar.gz
u-boot-imx-c163f4478ca72f51b28b55f74addc8fe029d7b83.tar.bz2
Merge branch 'master' of ssh://gemini/home/wd/git/u-boot/master
Diffstat (limited to 'common')
-rw-r--r--common/cmd_onenand.c6
-rw-r--r--common/cmd_pci.c13
-rw-r--r--common/env_flash.c3
-rw-r--r--common/hwconfig.c21
-rw-r--r--common/usb_storage.c2
5 files changed, 40 insertions, 5 deletions
diff --git a/common/cmd_onenand.c b/common/cmd_onenand.c
index 83d967b..fe84c3b 100644
--- a/common/cmd_onenand.c
+++ b/common/cmd_onenand.c
@@ -525,6 +525,12 @@ static cmd_tbl_t cmd_onenand_sub[] = {
U_BOOT_CMD_MKENT(markbad, CONFIG_SYS_MAXARGS, 0, do_onenand_markbad, "", ""),
};
+#ifndef CONFIG_RELOC_FIXUP_WORKS
+void onenand_reloc(void) {
+ fixup_cmdtable(cmd_onenand_sub, ARRAY_SIZE(cmd_onenand_sub));
+}
+#endif
+
static int do_onenand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
{
cmd_tbl_t *c;
diff --git a/common/cmd_pci.c b/common/cmd_pci.c
index 4bde059..ccf5ada 100644
--- a/common/cmd_pci.c
+++ b/common/cmd_pci.c
@@ -497,6 +497,10 @@ int do_pci (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
if ((bdf = get_pci_dev(argv[2])) == -1)
return 1;
break;
+#ifdef CONFIG_CMD_PCI_ENUM
+ case 'e':
+ break;
+#endif
default: /* scan bus */
value = 1; /* short listing */
bdf = 0; /* bus number */
@@ -518,6 +522,11 @@ int do_pci (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 0;
case 'd': /* display */
return pci_cfg_display(bdf, addr, size, value);
+#ifdef CONFIG_CMD_PCI_ENUM
+ case 'e':
+ pci_init();
+ return 0;
+#endif
case 'n': /* next */
if (argc < 4)
goto usage;
@@ -545,6 +554,10 @@ U_BOOT_CMD(
"list and access PCI Configuration Space",
"[bus] [long]\n"
" - short or long list of PCI devices on bus 'bus'\n"
+#ifdef CONFIG_CMD_PCI_ENUM
+ "pci enum\n"
+ " - re-enumerate PCI buses\n"
+#endif
"pci header b.d.f\n"
" - show header of PCI device 'bus.device.function'\n"
"pci display[.b, .w, .l] b.d.f [address] [# of objects]\n"
diff --git a/common/env_flash.c b/common/env_flash.c
index 1da78b7..54c0bfe 100644
--- a/common/env_flash.c
+++ b/common/env_flash.c
@@ -82,9 +82,6 @@ uchar env_get_char_spec(int index)
return (*((uchar *)(gd->env_addr + index)));
}
-#undef debug
-#define debug printf
-
#ifdef CONFIG_ENV_ADDR_REDUND
int env_init(void)
diff --git a/common/hwconfig.c b/common/hwconfig.c
index 1f9f4a0..3c9759f 100644
--- a/common/hwconfig.c
+++ b/common/hwconfig.c
@@ -26,6 +26,8 @@
#define min(a, b) (((a) < (b)) ? (a) : (b))
#endif /* HWCONFIG_TEST */
+DECLARE_GLOBAL_DATA_PTR;
+
static const char *hwconfig_parse(const char *opts, size_t maxlen,
const char *opt, char *stopchs, char eqch,
size_t *arglen)
@@ -69,9 +71,26 @@ next:
const char *cpu_hwconfig __attribute__((weak));
const char *board_hwconfig __attribute__((weak));
+#define HWCONFIG_PRE_RELOC_BUF_SIZE 128
+
static const char *__hwconfig(const char *opt, size_t *arglen)
{
- const char *env_hwconfig = getenv("hwconfig");
+ const char *env_hwconfig = NULL;
+ char buf[HWCONFIG_PRE_RELOC_BUF_SIZE];
+
+ if (gd->flags & GD_FLG_ENV_READY) {
+ env_hwconfig = getenv("hwconfig");
+ } else {
+ /*
+ * Use our own on stack based buffer before relocation to allow
+ * accessing longer hwconfig strings that might be in the
+ * environment before we've relocated. This is pretty fragile
+ * on both the use of stack and if the buffer is big enough.
+ * However we will get a warning from getenv_f for the later.
+ */
+ if ((getenv_f("hwconfig", buf, sizeof(buf))) > 0)
+ env_hwconfig = buf;
+ }
if (env_hwconfig)
return hwconfig_parse(env_hwconfig, strlen(env_hwconfig),
diff --git a/common/usb_storage.c b/common/usb_storage.c
index 613c4f0..1e6cd6a 100644
--- a/common/usb_storage.c
+++ b/common/usb_storage.c
@@ -70,7 +70,7 @@
/* direction table -- this indicates the direction of the data
* transfer for each command code -- a 1 indicates input
*/
-unsigned char us_direction[256/8] = {
+static const unsigned char us_direction[256/8] = {
0x28, 0x81, 0x14, 0x14, 0x20, 0x01, 0x90, 0x77,
0x0C, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,