diff options
Diffstat (limited to 'board/esd/ar405')
-rw-r--r-- | board/esd/ar405/Makefile | 2 | ||||
-rw-r--r-- | board/esd/ar405/ar405.c | 3 | ||||
-rw-r--r-- | board/esd/ar405/flash.c | 56 | ||||
-rw-r--r-- | board/esd/ar405/u-boot.lds | 5 |
4 files changed, 36 insertions, 30 deletions
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 @@ LIB = lib$(BOARD).a 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 flash_init (void) { 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 @@ unsigned long flash_init (void) /* 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_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_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); */ + } size_b0 = flash_get_size((vu_long *)base_b0, &flash_info[0]); @@ -109,11 +109,11 @@ unsigned long flash_init (void) 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 @@ SECTIONS _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 = .; |