[POWERPC] PIKA Warp: Update platform code to support Rev B boards
* Switched from 64M NOR/64M NAND to 4M NOR/256M NAND. * Full DTM support including critical temperature. * Added POST information. * Removed LED function, moved to new LED driver. * Moved ad7414 to new style I2C initialization. Signed-off-by: Sean MacLennan <smaclennan@pikatech.com> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
This commit is contained in:
committed by
Josh Boyer
parent
0393cb615f
commit
4ebef31fa6
@ -10,6 +10,7 @@
|
||||
#include "ops.h"
|
||||
#include "4xx.h"
|
||||
#include "cuboot.h"
|
||||
#include "stdio.h"
|
||||
|
||||
#define TARGET_4xx
|
||||
#define TARGET_44x
|
||||
@ -17,14 +18,54 @@
|
||||
|
||||
static bd_t bd;
|
||||
|
||||
static void warp_fixup_one_nor(u32 from, u32 to)
|
||||
{
|
||||
void *devp;
|
||||
char name[50];
|
||||
u32 v[2];
|
||||
|
||||
sprintf(name, "/plb/opb/ebc/nor_flash@0,0/partition@%x", from);
|
||||
|
||||
devp = finddevice(name);
|
||||
if (!devp)
|
||||
return;
|
||||
|
||||
if (getprop(devp, "reg", v, sizeof(v)) == sizeof(v)) {
|
||||
v[0] = to;
|
||||
setprop(devp, "reg", v, sizeof(v));
|
||||
|
||||
printf("NOR 64M fixup %x -> %x\r\n", from, to);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void warp_fixups(void)
|
||||
{
|
||||
unsigned long sysclk = 66000000;
|
||||
|
||||
ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
|
||||
ibm440ep_fixup_clocks(66000000, 11059200, 50000000);
|
||||
ibm4xx_sdram_fixup_memsize();
|
||||
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
|
||||
dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
|
||||
|
||||
/* Fixup for 64M flash on Rev A boards. */
|
||||
if (bd.bi_flashsize == 0x4000000) {
|
||||
void *devp;
|
||||
u32 v[3];
|
||||
|
||||
devp = finddevice("/plb/opb/ebc/nor_flash@0,0");
|
||||
if (!devp)
|
||||
return;
|
||||
|
||||
/* Fixup the size */
|
||||
if (getprop(devp, "reg", v, sizeof(v)) == sizeof(v)) {
|
||||
v[2] = bd.bi_flashsize;
|
||||
setprop(devp, "reg", v, sizeof(v));
|
||||
}
|
||||
|
||||
/* Fixup parition offsets */
|
||||
warp_fixup_one_nor(0x300000, 0x3f00000);
|
||||
warp_fixup_one_nor(0x340000, 0x3f40000);
|
||||
warp_fixup_one_nor(0x380000, 0x3f80000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user