* Fix flash parameters passed to Linux for PPChameleon board
* Remove eth_init() from lib_arm/board.c; it's done in net.net.c.
diff --git a/board/dave/PPChameleonEVB/PPChameleonEVB.c b/board/dave/PPChameleonEVB/PPChameleonEVB.c
index 603bb1e..b08b119 100644
--- a/board/dave/PPChameleonEVB/PPChameleonEVB.c
+++ b/board/dave/PPChameleonEVB/PPChameleonEVB.c
@@ -96,11 +96,15 @@
return 0; /* dummy implementation */
}
+extern flash_info_t flash_info[]; /* info for FLASH chips */
int misc_init_r (void)
{
-#if 0 /* test-only */
DECLARE_GLOBAL_DATA_PTR;
+
+ /* adjust flash start and size as well as the offset */
+ gd->bd->bi_flashstart = 0 - flash_info[0].size;
+ gd->bd->bi_flashoffset= flash_info[0].size - CFG_MONITOR_LEN;
#if 0
volatile unsigned short *fpga_mode =
(unsigned short *)((ulong)CFG_FPGA_BASE_ADDR + CFG_FPGA_CTRL);
@@ -192,8 +196,6 @@
*duart0_mcr = 0x08;
*duart1_mcr = 0x08;
#endif
-#endif
-
return (0);
}
diff --git a/board/dave/PPChameleonEVB/flash.c b/board/dave/PPChameleonEVB/flash.c
index d57c58d..5f67360 100644
--- a/board/dave/PPChameleonEVB/flash.c
+++ b/board/dave/PPChameleonEVB/flash.c
@@ -44,10 +44,10 @@
#ifdef __DEBUG_START_FROM_SRAM__
return CFG_DUMMY_FLASH_SIZE;
#else
- unsigned long size_b0;
+ unsigned long size;
int i;
uint pbcr;
- unsigned long base_b0;
+ unsigned long base;
int size_val = 0;
/* Init: no FLASHes known */
@@ -57,22 +57,22 @@
/* Static FLASH Bank configuration here - FIXME XXX */
- size_b0 = flash_get_size((vu_long *)FLASH_BASE0_PRELIM, &flash_info[0]);
+ size = flash_get_size((vu_long *)FLASH_BASE0_PRELIM, &flash_info[0]);
if (flash_info[0].flash_id == FLASH_UNKNOWN) {
printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
- size_b0, size_b0<<20);
+ size, size<<20);
}
/* Setup offsets */
- flash_get_offsets (-size_b0, &flash_info[0]);
+ flash_get_offsets (-size, &flash_info[0]);
/* Re-do sizing to get full correct info */
mtdcr(ebccfga, pb0cr);
pbcr = mfdcr(ebccfgd);
mtdcr(ebccfga, pb0cr);
- base_b0 = -size_b0;
- switch (size_b0) {
+ base = -size;
+ switch (size) {
case 1 << 20:
size_val = 0;
break;
@@ -89,7 +89,7 @@
size_val = 4;
break;
}
- pbcr = (pbcr & 0x0001ffff) | base_b0 | (size_val << 17);
+ pbcr = (pbcr & 0x0001ffff) | base | (size_val << 17);
mtdcr(ebccfgd, pbcr);
/* Monitor protection ON by default */
@@ -98,8 +98,8 @@
0xffffffff,
&flash_info[0]);
- flash_info[0].size = size_b0;
+ flash_info[0].size = size;
- return (size_b0);
+ return (size);
#endif
}