diff options
| author | Haavard Skinnemoen <haavard.skinnemoen@atmel.com> | 2008-12-17 16:53:07 +0100 | 
|---|---|---|
| committer | Haavard Skinnemoen <haavard.skinnemoen@atmel.com> | 2008-12-17 16:53:07 +0100 | 
| commit | cb5473205206c7f14cbb1e747f28ec75b48826e2 (patch) | |
| tree | 8f4808d60917100b18a10b05230f7638a0a9bbcc /board/esd/common/cmd_loadpci.c | |
| parent | baf449fc5ff96f071bb0e3789fd3265f6d4fd9a0 (diff) | |
| parent | 92c78a3bbcb2ce508b4bf1c4a1e0940406a024bb (diff) | |
| download | olio-uboot-2014.01-cb5473205206c7f14cbb1e747f28ec75b48826e2.tar.xz olio-uboot-2014.01-cb5473205206c7f14cbb1e747f28ec75b48826e2.zip | |
Merge branch 'fixes' into cleanups
Conflicts:
	board/atmel/atngw100/atngw100.c
	board/atmel/atstk1000/atstk1000.c
	cpu/at32ap/at32ap700x/gpio.c
	include/asm-avr32/arch-at32ap700x/clk.h
	include/configs/atngw100.h
	include/configs/atstk1002.h
	include/configs/atstk1003.h
	include/configs/atstk1004.h
	include/configs/atstk1006.h
	include/configs/favr-32-ezkit.h
	include/configs/hammerhead.h
	include/configs/mimc200.h
Diffstat (limited to 'board/esd/common/cmd_loadpci.c')
| -rw-r--r-- | board/esd/common/cmd_loadpci.c | 24 | 
1 files changed, 16 insertions, 8 deletions
| diff --git a/board/esd/common/cmd_loadpci.c b/board/esd/common/cmd_loadpci.c index d88b3876d..ad490c349 100644 --- a/board/esd/common/cmd_loadpci.c +++ b/board/esd/common/cmd_loadpci.c @@ -1,5 +1,5 @@  /* - * (C) Copyright 2005 + * (C) Copyright 2005-2008   * Matthias Fuchs, esd GmbH Germany, matthias.fuchs@esd-electronics.com   *   * See file CREDITS for list of people who contributed to this @@ -23,6 +23,9 @@  #include <common.h>  #include <command.h> +#if !defined(CONFIG_440) +#include <asm/4xx_pci.h> +#endif  #if defined(CONFIG_CMD_BSP) @@ -36,18 +39,24 @@ extern int do_autoscript (cmd_tbl_t *, int, int, char *[]);   */  int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  { -	unsigned int *ptr = 0; +	u32 *ptr = 0;  	int count = 0;  	int count2 = 0;  	char addr[16];  	char str[] = "\\|/-";  	char *local_args[2]; +	u32 la, ptm1la; +#if defined(CONFIG_440) +	ptm1la = in32r(PCIX0_PTM1LA); +#else +	ptm1la = in32r(PTM1LA); +#endif  	while(1) {  		/*  		 * Mark sync address  		 */ -		ptr = 0; +		ptr = (u32 *)ptm1la;  		memset(ptr, 0, 0x20);  		*ptr = 0xffffffff; @@ -74,7 +83,8 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		}  		printf("\nGot bootcode %08x: ", *ptr); -		sprintf(addr, "%08x", *ptr & ADDRMASK); +		la = ptm1la + (*ptr & ADDRMASK); +		sprintf(addr, "%08x", la);  		switch (*ptr & ~ADDRMASK) {  		case 0: @@ -83,8 +93,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  			 */  			printf("booting image at addr 0x%s ...\n", addr);  			setenv("loadaddr", addr); - -			do_bootm (cmdtp, 0, 0, NULL); +			do_bootm(cmdtp, 0, 0, NULL);  			break;  		case 1: @@ -92,7 +101,6 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  			 * Boot image via autoscr  			 */  			printf("executing script at addr 0x%s ...\n", addr); -  			local_args[0] = addr;  			local_args[1] = NULL;  			do_autoscript(cmdtp, 0, 1, local_args); @@ -103,7 +111,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  			 * Call run_cmd  			 */  			printf("running command at addr 0x%s ...\n", addr); -			run_command ((char*)(*ptr & ADDRMASK), 0); +			run_command((char*)la, 0);  			break;  		default: |