Signed-off-by: Sean MacLennan <[EMAIL PROTECTED]>
diff --git a/arch/powerpc/boot/cuboot-warp.c b/arch/powerpc/boot/cuboot-warp.c index eb108a8..43d7ad9 100644 --- a/arch/powerpc/boot/cuboot-warp.c +++ b/arch/powerpc/boot/cuboot-warp.c @@ -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_fixups(void) +static void warp_fixup_one_nor(u32 from, u32 to) { - unsigned long sysclk = 66000000; + void *devp; + char name[40]; + u32 v[2]; + + sprintf(name, "/plb/opb/ebc/[EMAIL PROTECTED],0/[EMAIL PROTECTED]", 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); + } +} + - ibm440ep_fixup_clocks(sysclk, 11059200, 50000000); +static void warp_fixups(void) +{ + 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/[EMAIL PROTECTED],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); + } } diff --git a/arch/powerpc/boot/dts/warp.dts b/arch/powerpc/boot/dts/warp.dts index b04a52e..fa070b0 100644 --- a/arch/powerpc/boot/dts/warp.dts +++ b/arch/powerpc/boot/dts/warp.dts @@ -132,40 +132,33 @@ [EMAIL PROTECTED],0 { compatible = "pika,fpga"; - reg = <2 0 2200>; + reg = <2 0 1000>; interrupts = <18 8>; interrupt-parent = <&UIC0>; }; + [EMAIL PROTECTED],4000 { + compatible = "pika,fpga-sd"; + reg = <2 4000 A00>; + }; + [EMAIL PROTECTED],0 { - compatible = "amd,s29gl512n", "cfi-flash"; + compatible = "amd,s29gl032a", "cfi-flash"; bank-width = <2>; - reg = <0 0 4000000>; + reg = <0 0 400000>; #address-cells = <1>; #size-cells = <1>; - [EMAIL PROTECTED] { - label = "kernel"; - reg = <0 180000>; - }; - [EMAIL PROTECTED] { - label = "root"; - reg = <180000 3480000>; - }; - [EMAIL PROTECTED] { - label = "user"; - reg = <3600000 900000>; - }; - [EMAIL PROTECTED] { + [EMAIL PROTECTED] { label = "fpga"; - reg = <3f00000 40000>; + reg = <300000 40000>; }; - [EMAIL PROTECTED] { + [EMAIL PROTECTED] { label = "env"; - reg = <3f40000 40000>; + reg = <340000 40000>; }; - [EMAIL PROTECTED] { + [EMAIL PROTECTED] { label = "u-boot"; - reg = <3f80000 80000>; + reg = <380000 80000>; }; }; }; @@ -186,6 +179,16 @@ reg = <ef600700 14>; interrupt-parent = <&UIC0>; interrupts = <2 4>; + index = <0>; + #address-cells = <1>; + #size-cells = <0>; + + [EMAIL PROTECTED] { + compatible = "adi,ad7414"; + reg = <4a>; + interrupts = <19 8>; + interrupt-parent = <&UIC0>; + }; }; GPIO0: [EMAIL PROTECTED] { _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev