* Code cleanup:
- remove trailing white space, trailing empty lines, C++ comments, etc.
- split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c)
* Patches by Kenneth Johansson, 25 Jun 2003:
- major rework of command structure
(work done mostly by Michal Cendrowski and Joakim Kristiansen)
diff --git a/board/esd/adciop/Makefile b/board/esd/adciop/Makefile
index d4a4e65..474c936 100644
--- a/board/esd/adciop/Makefile
+++ b/board/esd/adciop/Makefile
@@ -1,3 +1,4 @@
+
#
# (C) Copyright 2000
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
@@ -28,7 +29,7 @@
OBJS = $(BOARD).o flash.o ../common/pci.o
$(LIB): $(OBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/adciop/flash.c b/board/esd/adciop/flash.c
index 69618de..d9eccba 100644
--- a/board/esd/adciop/flash.c
+++ b/board/esd/adciop/flash.c
@@ -96,8 +96,8 @@
FLASH_BASE0_PRELIM+size_b0+size_b1-monitor_flash_len,
FLASH_BASE0_PRELIM+size_b0+size_b1-1,
&flash_info[1]);
- /* monitor protection OFF by default (one is enough) */
- flash_protect(FLAG_PROTECT_CLEAR,
+ /* monitor protection OFF by default (one is enough) */
+ flash_protect(FLAG_PROTECT_CLEAR,
FLASH_BASE0_PRELIM+size_b0-monitor_flash_len,
FLASH_BASE0_PRELIM+size_b0-1,
&flash_info[0]);
diff --git a/board/esd/adciop/u-boot.lds b/board/esd/adciop/u-boot.lds
index ddf1307..b07d117 100644
--- a/board/esd/adciop/u-boot.lds
+++ b/board/esd/adciop/u-boot.lds
@@ -107,6 +107,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/ar405/Makefile b/board/esd/ar405/Makefile
index 39d2fec..f5bda55 100644
--- a/board/esd/ar405/Makefile
+++ b/board/esd/ar405/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o flash.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/ar405/ar405.c b/board/esd/ar405/ar405.c
index f23b822..d0b06e6 100644
--- a/board/esd/ar405/ar405.c
+++ b/board/esd/ar405/ar405.c
@@ -25,8 +25,9 @@
#include "ar405.h"
#include <asm/processor.h>
#include <command.h>
-#include <cmd_boot.h>
+/*cmd_boot.c*/
+extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
/* ------------------------------------------------------------------------- */
diff --git a/board/esd/ar405/flash.c b/board/esd/ar405/flash.c
index 3a644f9..a651b6f 100644
--- a/board/esd/ar405/flash.c
+++ b/board/esd/ar405/flash.c
@@ -43,8 +43,8 @@
{
unsigned long size_b0, size_b1;
int i;
- uint pbcr;
- unsigned long base_b0, base_b1;
+ uint pbcr;
+ unsigned long base_b0, base_b1;
/* Init: no FLASHes known */
for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
@@ -66,27 +66,27 @@
/* Re-do sizing to get full correct info */
- if (size_b1)
- {
- mtdcr(ebccfga, pb0cr);
- pbcr = mfdcr(ebccfgd);
- mtdcr(ebccfga, pb0cr);
- base_b1 = -size_b1;
- pbcr = (pbcr & 0x0001ffff) | base_b1 | (((size_b1/1024/1024)-1)<<17);
- mtdcr(ebccfgd, pbcr);
- /* printf("pb1cr = %x\n", pbcr); */
- }
+ if (size_b1)
+ {
+ mtdcr(ebccfga, pb0cr);
+ pbcr = mfdcr(ebccfgd);
+ mtdcr(ebccfga, pb0cr);
+ base_b1 = -size_b1;
+ pbcr = (pbcr & 0x0001ffff) | base_b1 | (((size_b1/1024/1024)-1)<<17);
+ mtdcr(ebccfgd, pbcr);
+ /* printf("pb1cr = %x\n", pbcr); */
+ }
- if (size_b0)
- {
- mtdcr(ebccfga, pb1cr);
- pbcr = mfdcr(ebccfgd);
- mtdcr(ebccfga, pb1cr);
- base_b0 = base_b1 - size_b0;
- pbcr = (pbcr & 0x0001ffff) | base_b0 | (((size_b0/1024/1024)-1)<<17);
- mtdcr(ebccfgd, pbcr);
- /* printf("pb0cr = %x\n", pbcr); */
- }
+ if (size_b0)
+ {
+ mtdcr(ebccfga, pb1cr);
+ pbcr = mfdcr(ebccfgd);
+ mtdcr(ebccfga, pb1cr);
+ base_b0 = base_b1 - size_b0;
+ pbcr = (pbcr & 0x0001ffff) | base_b0 | (((size_b0/1024/1024)-1)<<17);
+ mtdcr(ebccfgd, pbcr);
+ /* printf("pb0cr = %x\n", pbcr); */
+ }
size_b0 = flash_get_size((vu_long *)base_b0, &flash_info[0]);
@@ -109,11 +109,11 @@
base_b1+size_b1-monitor_flash_len,
base_b1+size_b1-1,
&flash_info[1]);
- /* monitor protection OFF by default (one is enough) */
- (void)flash_protect(FLAG_PROTECT_CLEAR,
- base_b0+size_b0-monitor_flash_len,
- base_b0+size_b0-1,
- &flash_info[0]);
+ /* monitor protection OFF by default (one is enough) */
+ (void)flash_protect(FLAG_PROTECT_CLEAR,
+ base_b0+size_b0-monitor_flash_len,
+ base_b0+size_b0-1,
+ &flash_info[0]);
} else {
flash_info[1].flash_id = FLASH_UNKNOWN;
flash_info[1].sector_count = -1;
diff --git a/board/esd/ar405/u-boot.lds b/board/esd/ar405/u-boot.lds
index 7b86a3d..3bb4304 100644
--- a/board/esd/ar405/u-boot.lds
+++ b/board/esd/ar405/u-boot.lds
@@ -129,6 +129,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/ash405/Makefile b/board/esd/ash405/Makefile
index 39d2fec..f5bda55 100644
--- a/board/esd/ash405/Makefile
+++ b/board/esd/ash405/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o flash.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/ash405/ash405.c b/board/esd/ash405/ash405.c
index 4cb5183..f45ecf1 100644
--- a/board/esd/ash405/ash405.c
+++ b/board/esd/ash405/ash405.c
@@ -24,7 +24,6 @@
#include <common.h>
#include <asm/processor.h>
#include <command.h>
-#include <cmd_boot.h>
#include <malloc.h>
/* ------------------------------------------------------------------------- */
@@ -33,6 +32,8 @@
#define FPGA_DEBUG
#endif
+extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
/* fpga configuration data - gzip compressed and generated by bin2c */
const unsigned char fpgadata[] =
{
diff --git a/board/esd/ash405/flash.c b/board/esd/ash405/flash.c
index f904aff..89af119 100644
--- a/board/esd/ash405/flash.c
+++ b/board/esd/ash405/flash.c
@@ -43,8 +43,8 @@
{
unsigned long size_b0;
int i;
- uint pbcr;
- unsigned long base_b0;
+ uint pbcr;
+ unsigned long base_b0;
int size_val = 0;
/* Init: no FLASHes known */
@@ -61,14 +61,14 @@
size_b0, size_b0<<20);
}
- /* Setup offsets */
- flash_get_offsets (-size_b0, &flash_info[0]);
+ /* Setup offsets */
+ flash_get_offsets (-size_b0, &flash_info[0]);
- /* Re-do sizing to get full correct info */
- mtdcr(ebccfga, pb0cr);
- pbcr = mfdcr(ebccfgd);
- mtdcr(ebccfga, pb0cr);
- base_b0 = -size_b0;
+ /* Re-do sizing to get full correct info */
+ mtdcr(ebccfga, pb0cr);
+ pbcr = mfdcr(ebccfgd);
+ mtdcr(ebccfga, pb0cr);
+ base_b0 = -size_b0;
switch (size_b0) {
case 1 << 20:
size_val = 0;
@@ -87,15 +87,15 @@
break;
}
pbcr = (pbcr & 0x0001ffff) | base_b0 | (size_val << 17);
- mtdcr(ebccfgd, pbcr);
+ mtdcr(ebccfgd, pbcr);
- /* Monitor protection ON by default */
- (void)flash_protect(FLAG_PROTECT_SET,
- -CFG_MONITOR_LEN,
- 0xffffffff,
- &flash_info[0]);
+ /* Monitor protection ON by default */
+ (void)flash_protect(FLAG_PROTECT_SET,
+ -CFG_MONITOR_LEN,
+ 0xffffffff,
+ &flash_info[0]);
- flash_info[0].size = size_b0;
+ flash_info[0].size = size_b0;
return (size_b0);
}
diff --git a/board/esd/ash405/u-boot.lds b/board/esd/ash405/u-boot.lds
index 97851f1..ba55550 100644
--- a/board/esd/ash405/u-boot.lds
+++ b/board/esd/ash405/u-boot.lds
@@ -119,6 +119,10 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/canbt/Makefile b/board/esd/canbt/Makefile
index 39d2fec..f5bda55 100644
--- a/board/esd/canbt/Makefile
+++ b/board/esd/canbt/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o flash.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/canbt/canbt.c b/board/esd/canbt/canbt.c
index 708101e..ae0e880 100644
--- a/board/esd/canbt/canbt.c
+++ b/board/esd/canbt/canbt.c
@@ -25,7 +25,11 @@
#include "canbt.h"
#include <asm/processor.h>
#include <command.h>
-#include <cmd_boot.h>
+
+
+/*cmd_boot.c*/
+extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
/* ------------------------------------------------------------------------- */
diff --git a/board/esd/canbt/flash.c b/board/esd/canbt/flash.c
index 685850e..de847f9 100644
--- a/board/esd/canbt/flash.c
+++ b/board/esd/canbt/flash.c
@@ -43,8 +43,8 @@
{
unsigned long size_b0;
int i;
- uint pbcr;
- unsigned long base_b0;
+ uint pbcr;
+ unsigned long base_b0;
/* Init: no FLASHes known */
for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
@@ -60,25 +60,25 @@
size_b0, size_b0<<20);
}
- /* Setup offsets */
- flash_get_offsets (-size_b0, &flash_info[0]);
+ /* Setup offsets */
+ flash_get_offsets (-size_b0, &flash_info[0]);
- /* Re-do sizing to get full correct info */
- mtdcr(ebccfga, pb0cr);
- pbcr = mfdcr(ebccfgd);
- mtdcr(ebccfga, pb0cr);
- base_b0 = -size_b0;
- pbcr = (pbcr & 0x0001ffff) | base_b0 | (((size_b0/1024/1024)-1)<<17);
- mtdcr(ebccfgd, pbcr);
- /* printf("pb1cr = %x\n", pbcr); */
+ /* Re-do sizing to get full correct info */
+ mtdcr(ebccfga, pb0cr);
+ pbcr = mfdcr(ebccfgd);
+ mtdcr(ebccfga, pb0cr);
+ base_b0 = -size_b0;
+ pbcr = (pbcr & 0x0001ffff) | base_b0 | (((size_b0/1024/1024)-1)<<17);
+ mtdcr(ebccfgd, pbcr);
+ /* printf("pb1cr = %x\n", pbcr); */
- /* Monitor protection ON by default */
- (void)flash_protect(FLAG_PROTECT_SET,
- -monitor_flash_len,
- 0xffffffff,
- &flash_info[0]);
+ /* Monitor protection ON by default */
+ (void)flash_protect(FLAG_PROTECT_SET,
+ -monitor_flash_len,
+ 0xffffffff,
+ &flash_info[0]);
- flash_info[0].size = size_b0;
+ flash_info[0].size = size_b0;
return (size_b0);
}
diff --git a/board/esd/canbt/u-boot.lds b/board/esd/canbt/u-boot.lds
index 47b0aae..d739cea 100644
--- a/board/esd/canbt/u-boot.lds
+++ b/board/esd/canbt/u-boot.lds
@@ -131,6 +131,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/common/flash.c b/board/esd/common/flash.c
index 78a1e0f..d032b00 100644
--- a/board/esd/common/flash.c
+++ b/board/esd/common/flash.c
@@ -40,11 +40,11 @@
short n;
/* set up sector start address table */
- if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||
+ if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AM640U)) {
for (i = 0; i < info->sector_count; i++)
info->start[i] = base + (i * 0x00010000);
- } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322B) ||
+ } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322B) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323B) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320B) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324B)) {
@@ -58,7 +58,7 @@
base += 64 << 10;
++i;
}
- } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322T) ||
+ } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322T) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323T) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320T) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324T)) {
@@ -75,7 +75,7 @@
--i;
info->start[i] = base;
}
- } else {
+ } else {
if (info->flash_id & FLASH_BTYPE) {
/* set sector offsets for bottom boot block type */
info->start[0] = base + 0x00000000;
@@ -103,10 +103,10 @@
void flash_print_info (flash_info_t *info)
{
int i;
- int k;
- int size;
- int erased;
- volatile unsigned long *flash;
+ int k;
+ int size;
+ int erased;
+ volatile unsigned long *flash;
if (info->flash_id == FLASH_UNKNOWN) {
printf ("missing or unknown FLASH type\n");
@@ -161,28 +161,28 @@
printf (" Sector Start Addresses:");
for (i=0; i<info->sector_count; ++i) {
#ifdef CFG_FLASH_EMPTY_INFO
- /*
- * Check if whole sector is erased
- */
- if (i != (info->sector_count-1))
- size = info->start[i+1] - info->start[i];
- else
- size = info->start[0] + info->size - info->start[i];
- erased = 1;
- flash = (volatile unsigned long *)info->start[i];
- size = size >> 2; /* divide by 4 for longword access */
- for (k=0; k<size; k++)
- {
- if (*flash++ != 0xffffffff)
- {
- erased = 0;
- break;
- }
- }
+ /*
+ * Check if whole sector is erased
+ */
+ if (i != (info->sector_count-1))
+ size = info->start[i+1] - info->start[i];
+ else
+ size = info->start[0] + info->size - info->start[i];
+ erased = 1;
+ flash = (volatile unsigned long *)info->start[i];
+ size = size >> 2; /* divide by 4 for longword access */
+ for (k=0; k<size; k++)
+ {
+ if (*flash++ != 0xffffffff)
+ {
+ erased = 0;
+ break;
+ }
+ }
if ((i % 5) == 0)
printf ("\n ");
- /* print empty and read-only info */
+ /* print empty and read-only info */
printf (" %08lX%s%s",
info->start[i],
erased ? " E" : " ",
@@ -216,7 +216,7 @@
short n;
CFG_FLASH_WORD_SIZE value;
ulong base = (ulong)addr;
- volatile CFG_FLASH_WORD_SIZE *addr2 = (CFG_FLASH_WORD_SIZE *)addr;
+ volatile CFG_FLASH_WORD_SIZE *addr2 = (CFG_FLASH_WORD_SIZE *)addr;
/* Write auto select command: read Manufacturer ID */
addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
@@ -282,37 +282,37 @@
break; /* => 2 MB */
case (CFG_FLASH_WORD_SIZE)AMD_ID_LV320T:
- info->flash_id += FLASH_AM320T;
- info->sector_count = 71;
+ info->flash_id += FLASH_AM320T;
+ info->sector_count = 71;
info->size = 0x00400000; break; /* => 4 MB */
case (CFG_FLASH_WORD_SIZE)AMD_ID_LV320B:
- info->flash_id += FLASH_AM320B;
+ info->flash_id += FLASH_AM320B;
info->sector_count = 71;
info->size = 0x00400000; break; /* => 4 MB */
case (CFG_FLASH_WORD_SIZE)AMD_ID_DL322T:
- info->flash_id += FLASH_AMDL322T;
- info->sector_count = 71;
+ info->flash_id += FLASH_AMDL322T;
+ info->sector_count = 71;
info->size = 0x00400000; break; /* => 4 MB */
case (CFG_FLASH_WORD_SIZE)AMD_ID_DL322B:
- info->flash_id += FLASH_AMDL322B;
+ info->flash_id += FLASH_AMDL322B;
info->sector_count = 71;
info->size = 0x00400000; break; /* => 4 MB */
case (CFG_FLASH_WORD_SIZE)AMD_ID_DL323T:
- info->flash_id += FLASH_AMDL323T;
+ info->flash_id += FLASH_AMDL323T;
info->sector_count = 71;
info->size = 0x00400000; break; /* => 4 MB */
case (CFG_FLASH_WORD_SIZE)AMD_ID_DL323B:
- info->flash_id += FLASH_AMDL323B;
+ info->flash_id += FLASH_AMDL323B;
info->sector_count = 71;
info->size = 0x00400000; break; /* => 4 MB */
case (CFG_FLASH_WORD_SIZE)AMD_ID_LV640U:
- info->flash_id += FLASH_AM640U;
+ info->flash_id += FLASH_AM640U;
info->sector_count = 128;
info->size = 0x00800000; break; /* => 8 MB */
@@ -335,11 +335,11 @@
}
/* set up sector start address table */
- if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||
+ if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AM640U)) {
for (i = 0; i < info->sector_count; i++)
info->start[i] = base + (i * 0x00010000);
- } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322B) ||
+ } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322B) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323B) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320B) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324B)) {
@@ -353,7 +353,7 @@
base += 64 << 10;
++i;
}
- } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322T) ||
+ } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322T) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323T) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320T) ||
((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324T)) {
@@ -370,7 +370,7 @@
--i;
info->start[i] = base;
}
- } else {
+ } else {
if (info->flash_id & FLASH_BTYPE) {
/* set sector offsets for bottom boot block type */
info->start[0] = base + 0x00000000;
@@ -397,10 +397,10 @@
/* read sector protection at sector address, (A7 .. A0) = 0x02 */
/* D0 = 1 if protected */
addr2 = (volatile CFG_FLASH_WORD_SIZE *)(info->start[i]);
- if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST)
- info->protect[i] = 0;
- else
- info->protect[i] = addr2[CFG_FLASH_READ2] & 1;
+ if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST)
+ info->protect[i] = 0;
+ else
+ info->protect[i] = addr2[CFG_FLASH_READ2] & 1;
}
/*
@@ -424,7 +424,7 @@
volatile CFG_FLASH_WORD_SIZE *addr2;
int flag, prot, sect, l_sect;
ulong start, now, last;
- int i;
+ int i;
if ((s_first < 0) || (s_first > s_last)) {
if (info->flash_id == FLASH_UNKNOWN) {
@@ -463,25 +463,25 @@
for (sect = s_first; sect<=s_last; sect++) {
if (info->protect[sect] == 0) { /* not protected */
addr2 = (CFG_FLASH_WORD_SIZE *)(info->start[sect]);
- if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) {
- addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
- addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
- addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00800080;
- addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
- addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
- addr2[0] = (CFG_FLASH_WORD_SIZE)0x00500050; /* block erase */
- for (i=0; i<50; i++)
- udelay(1000); /* wait 1 ms */
- } else {
- if (sect == s_first) {
- addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
- addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
- addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00800080;
- addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
- addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
- }
- addr2[0] = (CFG_FLASH_WORD_SIZE)0x00300030; /* sector erase */
- }
+ if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) {
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00800080;
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr2[0] = (CFG_FLASH_WORD_SIZE)0x00500050; /* block erase */
+ for (i=0; i<50; i++)
+ udelay(1000); /* wait 1 ms */
+ } else {
+ if (sect == s_first) {
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00800080;
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ }
+ addr2[0] = (CFG_FLASH_WORD_SIZE)0x00300030; /* sector erase */
+ }
l_sect = sect;
}
}
@@ -602,42 +602,42 @@
*/
static int write_word (flash_info_t *info, ulong dest, ulong data)
{
- volatile CFG_FLASH_WORD_SIZE *addr2 = (CFG_FLASH_WORD_SIZE *)(info->start[0]);
- volatile CFG_FLASH_WORD_SIZE *dest2 = (CFG_FLASH_WORD_SIZE *)dest;
- volatile CFG_FLASH_WORD_SIZE *data2 = (CFG_FLASH_WORD_SIZE *)&data;
+ volatile CFG_FLASH_WORD_SIZE *addr2 = (CFG_FLASH_WORD_SIZE *)(info->start[0]);
+ volatile CFG_FLASH_WORD_SIZE *dest2 = (CFG_FLASH_WORD_SIZE *)dest;
+ volatile CFG_FLASH_WORD_SIZE *data2 = (CFG_FLASH_WORD_SIZE *)&data;
ulong start;
int flag;
- int i;
+ int i;
/* Check if Flash is (sufficiently) erased */
if ((*((volatile CFG_FLASH_WORD_SIZE *)dest) &
- (CFG_FLASH_WORD_SIZE)data) != (CFG_FLASH_WORD_SIZE)data) {
+ (CFG_FLASH_WORD_SIZE)data) != (CFG_FLASH_WORD_SIZE)data) {
return (2);
}
/* Disable interrupts which might cause a timeout here */
flag = disable_interrupts();
- for (i=0; i<4/sizeof(CFG_FLASH_WORD_SIZE); i++)
- {
- addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
- addr2[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
- addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00A000A0;
+ for (i=0; i<4/sizeof(CFG_FLASH_WORD_SIZE); i++)
+ {
+ addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr2[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00A000A0;
- dest2[i] = data2[i];
+ dest2[i] = data2[i];
- /* re-enable interrupts if necessary */
- if (flag)
- enable_interrupts();
+ /* re-enable interrupts if necessary */
+ if (flag)
+ enable_interrupts();
- /* data polling for D7 */
- start = get_timer (0);
- while ((dest2[i] & (CFG_FLASH_WORD_SIZE)0x00800080) !=
- (data2[i] & (CFG_FLASH_WORD_SIZE)0x00800080)) {
- if (get_timer(start) > CFG_FLASH_WRITE_TOUT) {
- return (1);
- }
- }
- }
+ /* data polling for D7 */
+ start = get_timer (0);
+ while ((dest2[i] & (CFG_FLASH_WORD_SIZE)0x00800080) !=
+ (data2[i] & (CFG_FLASH_WORD_SIZE)0x00800080)) {
+ if (get_timer(start) > CFG_FLASH_WRITE_TOUT) {
+ return (1);
+ }
+ }
+ }
return (0);
}
diff --git a/board/esd/common/fpga.c b/board/esd/common/fpga.c
index 50bce2e..f27943f 100644
--- a/board/esd/common/fpga.c
+++ b/board/esd/common/fpga.c
@@ -57,16 +57,16 @@
#define SET_FPGA(data) out32(GPIO0_OR, data)
#define FPGA_WRITE_1 { \
- SET_FPGA(FPGA_PRG | FPGA_DATA); /* set clock to 0 */ \
- SET_FPGA(FPGA_PRG | FPGA_DATA); /* set data to 1 */ \
- SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA); /* set clock to 1 */ \
- SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);} /* set data to 1 */
+ SET_FPGA(FPGA_PRG | FPGA_DATA); /* set clock to 0 */ \
+ SET_FPGA(FPGA_PRG | FPGA_DATA); /* set data to 1 */ \
+ SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA); /* set clock to 1 */ \
+ SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);} /* set data to 1 */
#define FPGA_WRITE_0 { \
- SET_FPGA(FPGA_PRG | FPGA_DATA); /* set clock to 0 */ \
- SET_FPGA(FPGA_PRG); /* set data to 0 */ \
- SET_FPGA(FPGA_PRG | FPGA_CLK); /* set clock to 1 */ \
- SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);} /* set data to 1 */
+ SET_FPGA(FPGA_PRG | FPGA_DATA); /* set clock to 0 */ \
+ SET_FPGA(FPGA_PRG); /* set data to 0 */ \
+ SET_FPGA(FPGA_PRG | FPGA_CLK); /* set clock to 1 */ \
+ SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);} /* set data to 1 */
static int fpga_boot(unsigned char *fpgadata, int size)
@@ -94,10 +94,10 @@
while (1)
{
if ((fpgadata[index] == 0xff) && (fpgadata[index+1] == 0xff) &&
- (fpgadata[index+2] == 0xff) && (fpgadata[index+3] == 0xff))
- break; /* preamble found */
+ (fpgadata[index+2] == 0xff) && (fpgadata[index+3] == 0xff))
+ break; /* preamble found */
else
- index++;
+ index++;
}
#else
/* search for preamble 0xFF2X */
@@ -134,10 +134,10 @@
udelay(1000); /* wait 1ms */
/* Check for timeout - 100us max, so use 3ms */
if (count++ > 3)
- {
- DBG("FPGA: Booting failed!\n");
- return ERROR_FPGA_PRG_INIT_LOW;
- }
+ {
+ DBG("FPGA: Booting failed!\n");
+ return ERROR_FPGA_PRG_INIT_LOW;
+ }
}
DBG("%s, ",((in32(GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE" );
@@ -153,10 +153,10 @@
udelay(1000); /* wait 1ms */
/* Check for timeout */
if (count++ > 3)
- {
- DBG("FPGA: Booting failed!\n");
- return ERROR_FPGA_PRG_INIT_HIGH;
- }
+ {
+ DBG("FPGA: Booting failed!\n");
+ return ERROR_FPGA_PRG_INIT_HIGH;
+ }
}
DBG("%s, ",((in32(GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE" );
@@ -172,17 +172,17 @@
for (i=index; i<size; i++)
{
for (j=0; j<8; j++)
- {
- if ((fpgadata[i] & 0x80) == 0x80)
+ {
+ if ((fpgadata[i] & 0x80) == 0x80)
{
- FPGA_WRITE_1;
+ FPGA_WRITE_1;
}
- else
+ else
{
- FPGA_WRITE_0;
+ FPGA_WRITE_0;
}
- fpgadata[i] <<= 1;
- }
+ fpgadata[i] <<= 1;
+ }
}
#else
/* send 0xff 0x20 */
@@ -205,30 +205,30 @@
if ((b >= 1) && (b <= MAX_ONES))
{
for(bit=0; bit<b; bit++)
- {
- FPGA_WRITE_1;
- }
+ {
+ FPGA_WRITE_1;
+ }
FPGA_WRITE_0;
}
else if (b == (MAX_ONES+1))
{
for(bit=1; bit<b; bit++)
- {
- FPGA_WRITE_1;
- }
+ {
+ FPGA_WRITE_1;
+ }
}
else if ((b >= (MAX_ONES+2)) && (b <= 254))
{
for(bit=0; bit<(b-(MAX_ONES+2)); bit++)
- {
- FPGA_WRITE_0;
- }
- FPGA_WRITE_1;
+ {
+ FPGA_WRITE_0;
+ }
+ FPGA_WRITE_1;
}
else if (b == 255)
- {
- FPGA_WRITE_1;
- }
+ {
+ FPGA_WRITE_1;
+ }
}
#endif
@@ -246,10 +246,10 @@
udelay(1000); /* wait 1ms */
/* Check for timeout */
if (count++ > 3)
- {
- DBG("FPGA: Booting failed!\n");
- return ERROR_FPGA_PRG_DONE;
- }
+ {
+ DBG("FPGA: Booting failed!\n");
+ return ERROR_FPGA_PRG_DONE;
+ }
}
DBG("FPGA: Booting successful!\n");
diff --git a/board/esd/cpci405/Makefile b/board/esd/cpci405/Makefile
index 39d2fec..f5bda55 100644
--- a/board/esd/cpci405/Makefile
+++ b/board/esd/cpci405/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o flash.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/cpci405/cpci405.c b/board/esd/cpci405/cpci405.c
index 5a6a27c..3f0ef1e 100644
--- a/board/esd/cpci405/cpci405.c
+++ b/board/esd/cpci405/cpci405.c
@@ -24,11 +24,10 @@
#include <common.h>
#include <asm/processor.h>
#include <command.h>
-#include <cmd_boot.h>
#include <malloc.h>
/* ------------------------------------------------------------------------- */
-
+extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); /*cmd_boot.c*/
#if 0
#define FPGA_DEBUG
#endif
diff --git a/board/esd/cpci405/u-boot.lds b/board/esd/cpci405/u-boot.lds
index 97851f1..311a5fe 100644
--- a/board/esd/cpci405/u-boot.lds
+++ b/board/esd/cpci405/u-boot.lds
@@ -119,6 +119,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/cpci440/Makefile b/board/esd/cpci440/Makefile
index 4e1f701..f706ebc 100644
--- a/board/esd/cpci440/Makefile
+++ b/board/esd/cpci440/Makefile
@@ -29,7 +29,7 @@
SOBJS = init.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/cpci440/cpci440.c b/board/esd/cpci440/cpci440.c
index 51a5edd..66cfe06 100644
--- a/board/esd/cpci440/cpci440.c
+++ b/board/esd/cpci440/cpci440.c
@@ -66,7 +66,6 @@
}
-
int checkboard (void)
{
sys_info_t sysinfo;
diff --git a/board/esd/cpci440/init.S b/board/esd/cpci440/init.S
index 2dab9f9..82f37fd 100644
--- a/board/esd/cpci440/init.S
+++ b/board/esd/cpci440/init.S
@@ -92,5 +92,3 @@
tlbentry( CFG_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_R|AC_W|AC_X )
tlbentry( CFG_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X )
tlbtab_end
-
-
diff --git a/board/esd/cpci440/strataflash.c b/board/esd/cpci440/strataflash.c
index de57318..2f055c2 100644
--- a/board/esd/cpci440/strataflash.c
+++ b/board/esd/cpci440/strataflash.c
@@ -89,8 +89,6 @@
#define FLASH_MAN_CFI 0x01000000
-
-
typedef union {
unsigned char c;
unsigned short w;
@@ -113,7 +111,6 @@
*/
-
static void flash_add_byte(flash_info_t *info, cfiword_t * cword, uchar c);
static void flash_make_cmd(flash_info_t * info, uchar cmd, void * cmdbuf);
static void flash_write_cmd(flash_info_t * info, int sect, uchar offset, uchar cmd);
diff --git a/board/esd/cpci440/u-boot.lds b/board/esd/cpci440/u-boot.lds
index 35d9931..46ccf31 100644
--- a/board/esd/cpci440/u-boot.lds
+++ b/board/esd/cpci440/u-boot.lds
@@ -126,6 +126,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/cpciiser4/Makefile b/board/esd/cpciiser4/Makefile
index 39d2fec..f5bda55 100644
--- a/board/esd/cpciiser4/Makefile
+++ b/board/esd/cpciiser4/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o flash.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/cpciiser4/cpciiser4.c b/board/esd/cpciiser4/cpciiser4.c
index 2e10412..725abe9 100644
--- a/board/esd/cpciiser4/cpciiser4.c
+++ b/board/esd/cpciiser4/cpciiser4.c
@@ -25,7 +25,11 @@
#include "cpciiser4.h"
#include <asm/processor.h>
#include <command.h>
-#include <cmd_boot.h>
+
+/*cmd_boot.c*/
+
+extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
/* ------------------------------------------------------------------------- */
diff --git a/board/esd/cpciiser4/flash.c b/board/esd/cpciiser4/flash.c
index 685850e..de847f9 100644
--- a/board/esd/cpciiser4/flash.c
+++ b/board/esd/cpciiser4/flash.c
@@ -43,8 +43,8 @@
{
unsigned long size_b0;
int i;
- uint pbcr;
- unsigned long base_b0;
+ uint pbcr;
+ unsigned long base_b0;
/* Init: no FLASHes known */
for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
@@ -60,25 +60,25 @@
size_b0, size_b0<<20);
}
- /* Setup offsets */
- flash_get_offsets (-size_b0, &flash_info[0]);
+ /* Setup offsets */
+ flash_get_offsets (-size_b0, &flash_info[0]);
- /* Re-do sizing to get full correct info */
- mtdcr(ebccfga, pb0cr);
- pbcr = mfdcr(ebccfgd);
- mtdcr(ebccfga, pb0cr);
- base_b0 = -size_b0;
- pbcr = (pbcr & 0x0001ffff) | base_b0 | (((size_b0/1024/1024)-1)<<17);
- mtdcr(ebccfgd, pbcr);
- /* printf("pb1cr = %x\n", pbcr); */
+ /* Re-do sizing to get full correct info */
+ mtdcr(ebccfga, pb0cr);
+ pbcr = mfdcr(ebccfgd);
+ mtdcr(ebccfga, pb0cr);
+ base_b0 = -size_b0;
+ pbcr = (pbcr & 0x0001ffff) | base_b0 | (((size_b0/1024/1024)-1)<<17);
+ mtdcr(ebccfgd, pbcr);
+ /* printf("pb1cr = %x\n", pbcr); */
- /* Monitor protection ON by default */
- (void)flash_protect(FLAG_PROTECT_SET,
- -monitor_flash_len,
- 0xffffffff,
- &flash_info[0]);
+ /* Monitor protection ON by default */
+ (void)flash_protect(FLAG_PROTECT_SET,
+ -monitor_flash_len,
+ 0xffffffff,
+ &flash_info[0]);
- flash_info[0].size = size_b0;
+ flash_info[0].size = size_b0;
return (size_b0);
}
diff --git a/board/esd/cpciiser4/u-boot.lds b/board/esd/cpciiser4/u-boot.lds
index 97851f1..311a5fe 100644
--- a/board/esd/cpciiser4/u-boot.lds
+++ b/board/esd/cpciiser4/u-boot.lds
@@ -119,6 +119,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/dasa_sim/Makefile b/board/esd/dasa_sim/Makefile
index 29aaf3b..e3b1c87 100644
--- a/board/esd/dasa_sim/Makefile
+++ b/board/esd/dasa_sim/Makefile
@@ -1,3 +1,4 @@
+
#
# (C) Copyright 2000
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
@@ -28,7 +29,7 @@
OBJS = $(BOARD).o flash.o cmd_dasa_sim.o eeprom.o ../common/pci.o
$(LIB): $(OBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/dasa_sim/cmd_dasa_sim.c b/board/esd/dasa_sim/cmd_dasa_sim.c
index 4608da7..0ebe09e 100644
--- a/board/esd/dasa_sim/cmd_dasa_sim.c
+++ b/board/esd/dasa_sim/cmd_dasa_sim.c
@@ -42,195 +42,194 @@
*
*/
-static unsigned int PciEepromReadLongVPD(int offs)
+static unsigned int PciEepromReadLongVPD (int offs)
{
- unsigned int value;
- unsigned int ret;
- int count;
+ unsigned int value;
+ unsigned int ret;
+ int count;
- pci_write_config_dword(CFG_PCI9054_DEV_FN, 0x4c, (offs<<16) | 0x0003);
- count = 0;
+ pci_write_config_dword (CFG_PCI9054_DEV_FN, 0x4c,
+ (offs << 16) | 0x0003);
+ count = 0;
- for (;;)
- {
- udelay(10 * 1000);
- pci_read_config_dword(CFG_PCI9054_DEV_FN, 0x4c, &ret);
- if ((ret & 0x80000000) != 0)
- {
- break;
- }
- else
- {
- count++;
- if (count > 10)
- {
- printf("\nTimeout: ret=%08x - Please try again!\n", ret);
- break;
- }
- }
- }
+ for (;;) {
+ udelay (10 * 1000);
+ pci_read_config_dword (CFG_PCI9054_DEV_FN, 0x4c, &ret);
+ if ((ret & 0x80000000) != 0) {
+ break;
+ } else {
+ count++;
+ if (count > 10) {
+ printf ("\nTimeout: ret=%08x - Please try again!\n", ret);
+ break;
+ }
+ }
+ }
- pci_read_config_dword(CFG_PCI9054_DEV_FN, 0x50, &value);
+ pci_read_config_dword (CFG_PCI9054_DEV_FN, 0x50, &value);
- return value;
+ return value;
}
-static int PciEepromWriteLongVPD(int offs, unsigned int value)
+static int PciEepromWriteLongVPD (int offs, unsigned int value)
{
- unsigned int ret;
- int count;
+ unsigned int ret;
+ int count;
- pci_write_config_dword(CFG_PCI9054_DEV_FN, 0x50, value);
- pci_write_config_dword(CFG_PCI9054_DEV_FN, 0x4c, (offs<<16) | 0x80000003);
- count = 0;
+ pci_write_config_dword (CFG_PCI9054_DEV_FN, 0x50, value);
+ pci_write_config_dword (CFG_PCI9054_DEV_FN, 0x4c,
+ (offs << 16) | 0x80000003);
+ count = 0;
- for (;;)
- {
- udelay(10 * 1000);
- pci_read_config_dword(CFG_PCI9054_DEV_FN, 0x4c, &ret);
- if ((ret & 0x80000000) == 0)
- {
- break;
- }
- else
- {
- count++;
- if (count > 10)
- {
- printf("\nTimeout: ret=%08x - Please try again!\n", ret);
- break;
- }
- }
- }
+ for (;;) {
+ udelay (10 * 1000);
+ pci_read_config_dword (CFG_PCI9054_DEV_FN, 0x4c, &ret);
+ if ((ret & 0x80000000) == 0) {
+ break;
+ } else {
+ count++;
+ if (count > 10) {
+ printf ("\nTimeout: ret=%08x - Please try again!\n", ret);
+ break;
+ }
+ }
+ }
- return TRUE;
+ return TRUE;
}
-static void showPci9054(void)
+static void showPci9054 (void)
{
- int val;
- int l, i;
+ int val;
+ int l, i;
- /* read 9054-values */
- for (l=0; l<6; l++)
- {
- printf("%02x: ", l*0x10);
- for (i=0; i<4; i++)
- {
- pci_read_config_dword(CFG_PCI9054_DEV_FN, l*16+i*4, &val);
- printf("%08x ", val);
- }
- printf("\n");
- }
- printf("\n");
+ /* read 9054-values */
+ for (l = 0; l < 6; l++) {
+ printf ("%02x: ", l * 0x10);
+ for (i = 0; i < 4; i++) {
+ pci_read_config_dword (CFG_PCI9054_DEV_FN,
+ l * 16 + i * 4,
+ &val);
+ printf ("%08x ", val);
+ }
+ printf ("\n");
+ }
+ printf ("\n");
- for (l=0; l<7; l++)
- {
- printf("%02x: ", l*0x10);
- for (i=0; i<4; i++)
- printf("%08x ", PciEepromReadLongVPD((i+l*4)*4));
- printf("\n");
- }
- printf("\n");
+ for (l = 0; l < 7; l++) {
+ printf ("%02x: ", l * 0x10);
+ for (i = 0; i < 4; i++)
+ printf ("%08x ",
+ PciEepromReadLongVPD ((i + l * 4) * 4));
+ printf ("\n");
+ }
+ printf ("\n");
}
-static void updatePci9054(void)
+static void updatePci9054 (void)
{
- int val;
+ int val;
- /*
- * Set EEPROM write-protect register to 0
- */
- out32(pci9054_iobase+0x0c, in32(pci9054_iobase+0x0c) & 0xffff00ff);
+ /*
+ * Set EEPROM write-protect register to 0
+ */
+ out32 (pci9054_iobase + 0x0c,
+ in32 (pci9054_iobase + 0x0c) & 0xffff00ff);
- /* Long Serial EEPROM Load Registers... */
- val = PciEepromWriteLongVPD(0x00, 0x905410b5);
- val = PciEepromWriteLongVPD(0x04, 0x09800001); /* other input controller */
- val = PciEepromWriteLongVPD(0x08, 0x28140100);
+ /* Long Serial EEPROM Load Registers... */
+ val = PciEepromWriteLongVPD (0x00, 0x905410b5);
+ val = PciEepromWriteLongVPD (0x04, 0x09800001); /* other input controller */
+ val = PciEepromWriteLongVPD (0x08, 0x28140100);
- val = PciEepromWriteLongVPD(0x0c, 0x00000000); /* MBOX0... */
- val = PciEepromWriteLongVPD(0x10, 0x00000000);
+ val = PciEepromWriteLongVPD (0x0c, 0x00000000); /* MBOX0... */
+ val = PciEepromWriteLongVPD (0x10, 0x00000000);
- /* las0: fpga access (0x0000.0000 ... 0x0003.ffff) */
- val = PciEepromWriteLongVPD(0x14, 0xfffc0000); /* LAS0RR... */
- val = PciEepromWriteLongVPD(0x18, 0x00000001); /* LAS0BA */
+ /* las0: fpga access (0x0000.0000 ... 0x0003.ffff) */
+ val = PciEepromWriteLongVPD (0x14, 0xfffc0000); /* LAS0RR... */
+ val = PciEepromWriteLongVPD (0x18, 0x00000001); /* LAS0BA */
- val = PciEepromWriteLongVPD(0x1c, 0x00200000); /* MARBR... */
- val = PciEepromWriteLongVPD(0x20, 0x00300500); /* LMISC/BIGEND */
+ val = PciEepromWriteLongVPD (0x1c, 0x00200000); /* MARBR... */
+ val = PciEepromWriteLongVPD (0x20, 0x00300500); /* LMISC/BIGEND */
- val = PciEepromWriteLongVPD(0x24, 0x00000000); /* EROMRR... */
- val = PciEepromWriteLongVPD(0x28, 0x00000000); /* EROMBA */
+ val = PciEepromWriteLongVPD (0x24, 0x00000000); /* EROMRR... */
+ val = PciEepromWriteLongVPD (0x28, 0x00000000); /* EROMBA */
- val = PciEepromWriteLongVPD(0x2c, 0x43030000); /* LBRD0... */
+ val = PciEepromWriteLongVPD (0x2c, 0x43030000); /* LBRD0... */
- val = PciEepromWriteLongVPD(0x30, 0x00000000); /* DMRR... */
- val = PciEepromWriteLongVPD(0x34, 0x00000000);
- val = PciEepromWriteLongVPD(0x38, 0x00000000);
+ val = PciEepromWriteLongVPD (0x30, 0x00000000); /* DMRR... */
+ val = PciEepromWriteLongVPD (0x34, 0x00000000);
+ val = PciEepromWriteLongVPD (0x38, 0x00000000);
- val = PciEepromWriteLongVPD(0x3c, 0x00000000); /* DMPBAM... */
- val = PciEepromWriteLongVPD(0x40, 0x00000000);
+ val = PciEepromWriteLongVPD (0x3c, 0x00000000); /* DMPBAM... */
+ val = PciEepromWriteLongVPD (0x40, 0x00000000);
- /* Extra Long Serial EEPROM Load Registers... */
- val = PciEepromWriteLongVPD(0x44, 0x010212fe); /* PCISID... */
+ /* Extra Long Serial EEPROM Load Registers... */
+ val = PciEepromWriteLongVPD (0x44, 0x010212fe); /* PCISID... */
- /* las1: 505-sram access (0x0004.0000 ... 0x001f.ffff) */
- /* Offset to LAS1: Group 1: 0x00040000 */
- /* Group 2: 0x00080000 */
- /* Group 3: 0x000c0000 */
- val = PciEepromWriteLongVPD(0x48, 0xffe00000); /* LAS1RR */
- val = PciEepromWriteLongVPD(0x4c, 0x00040001); /* LAS1BA */
- val = PciEepromWriteLongVPD(0x50, 0x00000208); /* LBRD1 */ /* so wars bisher */
+ /* las1: 505-sram access (0x0004.0000 ... 0x001f.ffff) */
+ /* Offset to LAS1: Group 1: 0x00040000 */
+ /* Group 2: 0x00080000 */
+ /* Group 3: 0x000c0000 */
+ val = PciEepromWriteLongVPD (0x48, 0xffe00000); /* LAS1RR */
+ val = PciEepromWriteLongVPD (0x4c, 0x00040001); /* LAS1BA */
+ val = PciEepromWriteLongVPD (0x50, 0x00000208); /* LBRD1 */ /* so wars bisher */
- val = PciEepromWriteLongVPD(0x54, 0x00004c06); /* HotSwap... */
+ val = PciEepromWriteLongVPD (0x54, 0x00004c06); /* HotSwap... */
- printf("Finished writing defaults into PLX PCI9054 EEPROM!\n");
+ printf ("Finished writing defaults into PLX PCI9054 EEPROM!\n");
}
-static void clearPci9054(void)
+static void clearPci9054 (void)
{
- int val;
+ int val;
- /*
- * Set EEPROM write-protect register to 0
- */
- out32(pci9054_iobase+0x0c, in32(pci9054_iobase+0x0c) & 0xffff00ff);
+ /*
+ * Set EEPROM write-protect register to 0
+ */
+ out32 (pci9054_iobase + 0x0c,
+ in32 (pci9054_iobase + 0x0c) & 0xffff00ff);
- /* Long Serial EEPROM Load Registers... */
- val = PciEepromWriteLongVPD(0x00, 0xffffffff);
- val = PciEepromWriteLongVPD(0x04, 0xffffffff); /* other input controller */
+ /* Long Serial EEPROM Load Registers... */
+ val = PciEepromWriteLongVPD (0x00, 0xffffffff);
+ val = PciEepromWriteLongVPD (0x04, 0xffffffff); /* other input controller */
- printf("Finished clearing PLX PCI9054 EEPROM!\n");
+ printf ("Finished clearing PLX PCI9054 EEPROM!\n");
}
/* ------------------------------------------------------------------------- */
-int do_pci9054(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
+int do_pci9054 (cmd_tbl_t * cmdtp, int flag, int argc,
+ char *argv[])
{
- if (strcmp(argv[1], "info") == 0)
- {
- showPci9054();
- return 0;
- }
+ if (strcmp (argv[1], "info") == 0) {
+ showPci9054 ();
+ return 0;
+ }
- if (strcmp(argv[1], "update") == 0)
- {
- updatePci9054();
- return 0;
- }
+ if (strcmp (argv[1], "update") == 0) {
+ updatePci9054 ();
+ return 0;
+ }
- if (strcmp(argv[1], "clear") == 0)
- {
- clearPci9054();
- return 0;
- }
+ if (strcmp (argv[1], "clear") == 0) {
+ clearPci9054 ();
+ return 0;
+ }
- printf("Usage:\n%s\n", cmdtp->usage);
- return 1;
+ printf ("Usage:\n%s\n", cmdtp->usage);
+ return 1;
}
+cmd_tbl_t U_BOOT_CMD (pci9054) = MK_CMD_ENTRY(
+ "pci9054", 3, 1, do_pci9054,
+ "pci9054 - PLX PCI9054 EEPROM access\n",
+ "pci9054 info - print EEPROM values\n"
+ "pci9054 update - updates EEPROM with default values\n"
+);
+
/* ------------------------------------------------------------------------- */
diff --git a/board/esd/dasa_sim/eeprom.c b/board/esd/dasa_sim/eeprom.c
index 59ef1d6..1b4c7b3 100644
--- a/board/esd/dasa_sim/eeprom.c
+++ b/board/esd/dasa_sim/eeprom.c
@@ -46,7 +46,7 @@
ret = *(unsigned short *)EEPROM_CAP;
if ((ret & 0x8000) != 0)
- break;
+ break;
}
value = *(unsigned long *)EEPROM_DATA;
@@ -83,7 +83,7 @@
ret = *(unsigned short *)EEPROM_CAP;
if ((ret & 0x8000) == 0)
- break;
+ break;
}
}
@@ -107,7 +107,7 @@
int i;
int len2, ptr;
- /* printf("\naddr=%x alen=%x buffer=%x len=%x", addr[0], addr[1], *(short *)addr, alen, buffer, len); // test-only */
+ /* printf("\naddr=%x alen=%x buffer=%x len=%x", addr[0], addr[1], *(short *)addr, alen, buffer, len); /###* test-only */
ptr = *(short *)addr;
@@ -146,7 +146,7 @@
int i;
int len2, ptr;
- /* printf("\naddr=%x alen=%x buffer=%x len=%x", addr[0], addr[1], *(short *)addr, alen, buffer, len); // test-only */
+ /* printf("\naddr=%x alen=%x buffer=%x len=%x", addr[0], addr[1], *(short *)addr, alen, buffer, len); /###* test-only */
ptr = *(short *)addr;
diff --git a/board/esd/dasa_sim/flash.c b/board/esd/dasa_sim/flash.c
index 32cd64c..d2ac13f 100644
--- a/board/esd/dasa_sim/flash.c
+++ b/board/esd/dasa_sim/flash.c
@@ -43,8 +43,8 @@
unsigned long flash_init (void)
{
unsigned long size_b0;
- int i;
- unsigned long base_b0;
+ int i;
+ unsigned long base_b0;
/* Init: no FLASHes known */
for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
@@ -60,18 +60,18 @@
size_b0, size_b0<<20);
}
- /* Setup offsets */
- flash_get_offsets (-size_b0, &flash_info[0]);
+ /* Setup offsets */
+ flash_get_offsets (-size_b0, &flash_info[0]);
- base_b0 = -size_b0;
+ base_b0 = -size_b0;
- /* Monitor protection ON by default */
- (void)flash_protect(FLAG_PROTECT_SET,
- -monitor_flash_len,
- 0xffffffff,
- &flash_info[0]);
+ /* Monitor protection ON by default */
+ (void)flash_protect(FLAG_PROTECT_SET,
+ -monitor_flash_len,
+ 0xffffffff,
+ &flash_info[0]);
- flash_info[0].size = size_b0;
+ flash_info[0].size = size_b0;
return (size_b0);
}
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index 03c0cef..5e7b225 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -133,6 +133,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/du405/Makefile b/board/esd/du405/Makefile
index 1123673..e6d7dd0 100644
--- a/board/esd/du405/Makefile
+++ b/board/esd/du405/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o flash.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/du405/du405.c b/board/esd/du405/du405.c
index 184cda8..7b430ea 100644
--- a/board/esd/du405/du405.c
+++ b/board/esd/du405/du405.c
@@ -27,7 +27,10 @@
#include <ppc4xx.h>
#include <405gp_i2c.h>
#include <command.h>
-#include <cmd_boot.h>
+
+/*cmd_boot.c*/
+
+extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
/* ------------------------------------------------------------------------- */
diff --git a/board/esd/du405/u-boot.lds b/board/esd/du405/u-boot.lds
index 463e388..b1793a2 100644
--- a/board/esd/du405/u-boot.lds
+++ b/board/esd/du405/u-boot.lds
@@ -119,6 +119,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/ocrtc/Makefile b/board/esd/ocrtc/Makefile
index 45d3d8d..b059f73 100644
--- a/board/esd/ocrtc/Makefile
+++ b/board/esd/ocrtc/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o flash.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/ocrtc/ocrtc.c b/board/esd/ocrtc/ocrtc.c
index 3c3d56e..0600273 100644
--- a/board/esd/ocrtc/ocrtc.c
+++ b/board/esd/ocrtc/ocrtc.c
@@ -26,7 +26,6 @@
#include <asm/processor.h>
#include <i2c.h>
#include <command.h>
-#include <cmd_boot.h>
/* ------------------------------------------------------------------------- */
diff --git a/board/esd/ocrtc/u-boot.lds b/board/esd/ocrtc/u-boot.lds
index 8e940a8..251a4cc 100644
--- a/board/esd/ocrtc/u-boot.lds
+++ b/board/esd/ocrtc/u-boot.lds
@@ -119,6 +119,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/pci405/Makefile b/board/esd/pci405/Makefile
index 62d7bf9..fd72b18 100644
--- a/board/esd/pci405/Makefile
+++ b/board/esd/pci405/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o flash.o cmd_pci405.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/pci405/cmd_pci405.c b/board/esd/pci405/cmd_pci405.c
index 555dc0c..df91cd4 100644
--- a/board/esd/pci405/cmd_pci405.c
+++ b/board/esd/pci405/cmd_pci405.c
@@ -22,12 +22,12 @@
*/
#include <common.h>
+#include <command.h>
#include <malloc.h>
#include <net.h>
#include <asm/io.h>
#include <pci.h>
#include <405gp_pci.h>
-#include <cmd_bsp.h>
#include "pci405.h"
diff --git a/board/esd/pci405/flash.c b/board/esd/pci405/flash.c
index 1707dcf..3b21781 100644
--- a/board/esd/pci405/flash.c
+++ b/board/esd/pci405/flash.c
@@ -43,8 +43,8 @@
{
unsigned long size_b0;
int i;
- uint pbcr;
- unsigned long base_b0;
+ uint pbcr;
+ unsigned long base_b0;
int size_val = 0;
/* Init: no FLASHes known */
@@ -61,14 +61,14 @@
size_b0, size_b0<<20);
}
- /* Setup offsets */
- flash_get_offsets (-size_b0, &flash_info[0]);
+ /* Setup offsets */
+ flash_get_offsets (-size_b0, &flash_info[0]);
- /* Re-do sizing to get full correct info */
- mtdcr(ebccfga, pb0cr);
- pbcr = mfdcr(ebccfgd);
- mtdcr(ebccfga, pb0cr);
- base_b0 = -size_b0;
+ /* Re-do sizing to get full correct info */
+ mtdcr(ebccfga, pb0cr);
+ pbcr = mfdcr(ebccfgd);
+ mtdcr(ebccfga, pb0cr);
+ base_b0 = -size_b0;
switch (size_b0) {
case 1 << 20:
size_val = 0;
@@ -87,15 +87,15 @@
break;
}
pbcr = (pbcr & 0x0001ffff) | base_b0 | (size_val << 17);
- mtdcr(ebccfgd, pbcr);
+ mtdcr(ebccfgd, pbcr);
- /* Monitor protection ON by default */
- (void)flash_protect(FLAG_PROTECT_SET,
- -monitor_flash_len,
- 0xffffffff,
- &flash_info[0]);
+ /* Monitor protection ON by default */
+ (void)flash_protect(FLAG_PROTECT_SET,
+ -monitor_flash_len,
+ 0xffffffff,
+ &flash_info[0]);
- flash_info[0].size = size_b0;
+ flash_info[0].size = size_b0;
return (size_b0);
}
diff --git a/board/esd/pci405/pci405.c b/board/esd/pci405/pci405.c
index 18d24a8..cc45fa9 100644
--- a/board/esd/pci405/pci405.c
+++ b/board/esd/pci405/pci405.c
@@ -24,7 +24,6 @@
#include <common.h>
#include <asm/processor.h>
#include <command.h>
-#include <cmd_boot.h>
#include <malloc.h>
#include <pci.h>
#include <405gp_pci.h>
@@ -33,7 +32,7 @@
/* ------------------------------------------------------------------------- */
-
+extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);/*cmd_boot.c*/
#if 0
#define FPGA_DEBUG
#endif
diff --git a/board/esd/pci405/u-boot.lds b/board/esd/pci405/u-boot.lds
index 97851f1..311a5fe 100644
--- a/board/esd/pci405/u-boot.lds
+++ b/board/esd/pci405/u-boot.lds
@@ -119,6 +119,11 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
diff --git a/board/esd/pmc405/Makefile b/board/esd/pmc405/Makefile
index 2fa097a..c4198c4 100644
--- a/board/esd/pmc405/Makefile
+++ b/board/esd/pmc405/Makefile
@@ -28,7 +28,7 @@
OBJS = $(BOARD).o strataflash.o
$(LIB): $(OBJS) $(SOBJS)
- $(AR) crv $@ $^
+ $(AR) crv $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
diff --git a/board/esd/pmc405/pmc405.c b/board/esd/pmc405/pmc405.c
index 78eed9f..5c2e98c 100644
--- a/board/esd/pmc405/pmc405.c
+++ b/board/esd/pmc405/pmc405.c
@@ -24,7 +24,6 @@
#include <common.h>
#include <asm/processor.h>
#include <command.h>
-#include <cmd_boot.h>
#include <malloc.h>
/* ------------------------------------------------------------------------- */
diff --git a/board/esd/pmc405/strataflash.c b/board/esd/pmc405/strataflash.c
index 6578ed9..d21d885 100644
--- a/board/esd/pmc405/strataflash.c
+++ b/board/esd/pmc405/strataflash.c
@@ -24,7 +24,7 @@
#include <common.h>
#include <asm/processor.h>
-#undef DEBUG_FLASH
+#undef DEBUG_FLASH
/*
* This file implements a Common Flash Interface (CFI) driver for ppcboot.
* The width of the port and the width of the chips are determined at initialization.
@@ -89,8 +89,6 @@
#define FLASH_MAN_CFI 0x01000000
-
-
typedef union {
unsigned char c;
unsigned short w;
@@ -113,7 +111,6 @@
*/
-
static void flash_add_byte(flash_info_t *info, cfiword_t * cword, uchar c);
static void flash_make_cmd(flash_info_t * info, uchar cmd, void * cmdbuf);
static void flash_write_cmd(flash_info_t * info, int sect, uchar offset, uchar cmd);
@@ -249,7 +246,7 @@
flash_write_cmd(info, sect, 0, FLASH_CMD_CLEAR_STATUS);
flash_write_cmd(info, sect, 0, FLASH_CMD_BLOCK_ERASE);
flash_write_cmd(info, sect, 0, FLASH_CMD_ERASE_CONFIRM);
-
+
if(flash_full_status_check(info, sect, info->erase_blk_tout, "erase")) {
rcode = 1;
} else
@@ -277,7 +274,7 @@
info->size >> 20, info->sector_count);
printf(" Erase timeout %ld ms, write timeout %ld ms, buffer write timeout %ld ms, buffer size %d\n",
info->erase_blk_tout, info->write_tout, info->buffer_write_tout, info->buffer_size);
-
+
printf (" Sector Start Addresses:");
for (i=0; i<info->sector_count; ++i) {
#ifdef CFG_FLASH_EMPTY_INFO
@@ -286,28 +283,28 @@
int erased;
volatile unsigned long *flash;
- /*
- * Check if whole sector is erased
- */
- if (i != (info->sector_count-1))
- size = info->start[i+1] - info->start[i];
- else
- size = info->start[0] + info->size - info->start[i];
- erased = 1;
- flash = (volatile unsigned long *)info->start[i];
- size = size >> 2; /* divide by 4 for longword access */
- for (k=0; k<size; k++)
- {
- if (*flash++ != 0xffffffff)
- {
- erased = 0;
- break;
- }
- }
+ /*
+ * Check if whole sector is erased
+ */
+ if (i != (info->sector_count-1))
+ size = info->start[i+1] - info->start[i];
+ else
+ size = info->start[0] + info->size - info->start[i];
+ erased = 1;
+ flash = (volatile unsigned long *)info->start[i];
+ size = size >> 2; /* divide by 4 for longword access */
+ for (k=0; k<size; k++)
+ {
+ if (*flash++ != 0xffffffff)
+ {
+ erased = 0;
+ break;
+ }
+ }
if ((i % 5) == 0)
printf ("\n ");
- /* print empty and read-only info */
+ /* print empty and read-only info */
printf (" %08lX%s%s",
info->start[i],
erased ? " E" : " ",
@@ -414,7 +411,7 @@
else
flash_write_cmd(info, sector, 0, FLASH_CMD_PROTECT_CLEAR);
- if((retcode = flash_full_status_check(info, sector, info->erase_blk_tout,
+ if((retcode = flash_full_status_check(info, sector, info->erase_blk_tout,
prot?"protect":"unprotect")) == 0) {
info->protect[sector] = prot;
@@ -464,7 +461,7 @@
printf("Command Sequence Error.\n");
} else if(flash_isset(info, sector, 0, FLASH_STATUS_ECLBS)){
printf("Block Erase Error.\n");
- retcode = ERR_NOT_ERASED;
+ retcode = ERR_NOT_ERASED;
} else if (flash_isset(info, sector, 0, FLASH_STATUS_PSLBS)) {
printf("Locking Error\n");
}
@@ -733,7 +730,7 @@
{
int sector;
for(sector = info->sector_count - 1; sector >= 0; sector--) {
- if(addr >= info->start[sector])
+ if(addr >= info->start[sector])
break;
}
return sector;
@@ -741,7 +738,7 @@
static int flash_write_cfibuffer(flash_info_t * info, ulong dest, uchar * cp, int len)
{
-
+
int sector;
int cnt;
int retcode;
@@ -789,8 +786,8 @@
flash_write_cmd(info, sector, 0, FLASH_CMD_WRITE_BUFFER_CONFIRM);
retcode = flash_full_status_check(info, sector, info->buffer_write_tout,
"buffer write");
- }
+ }
flash_write_cmd(info, sector, 0, FLASH_CMD_CLEAR_STATUS);
return retcode;
-}
+}
#endif /* CFG_USE_FLASH_BUFFER_WRITE */
diff --git a/board/esd/pmc405/u-boot.lds b/board/esd/pmc405/u-boot.lds
index 463e388..bfd71db 100644
--- a/board/esd/pmc405/u-boot.lds
+++ b/board/esd/pmc405/u-boot.lds
@@ -119,6 +119,10 @@
_edata = .;
PROVIDE (edata = .);
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;