2 * Copyright (c) 2008 PIKA Technologies
3 * Sean MacLennan <smaclennan@pikatech.com>
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published
7 * by the Free Software Foundation.
21 static void warp_fixup_one_nor(u32 from
, u32 to
)
27 sprintf(name
, "/plb/opb/ebc/nor_flash@0,0/partition@%x", from
);
29 devp
= finddevice(name
);
33 if (getprop(devp
, "reg", v
, sizeof(v
)) == sizeof(v
)) {
35 setprop(devp
, "reg", v
, sizeof(v
));
37 printf("NOR 64M fixup %x -> %x\r\n", from
, to
);
42 static void warp_fixups(void)
44 ibm440ep_fixup_clocks(66000000, 11059200, 50000000);
45 ibm4xx_sdram_fixup_memsize();
46 ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
47 dt_fixup_mac_address_by_alias("ethernet0", bd
.bi_enetaddr
);
49 /* Fixup for 64M flash on Rev A boards. */
50 if (bd
.bi_flashsize
== 0x4000000) {
54 devp
= finddevice("/plb/opb/ebc/nor_flash@0,0");
59 if (getprop(devp
, "reg", v
, sizeof(v
)) == sizeof(v
)) {
60 v
[2] = bd
.bi_flashsize
;
61 setprop(devp
, "reg", v
, sizeof(v
));
64 /* Fixup parition offsets */
65 warp_fixup_one_nor(0x300000, 0x3f00000);
66 warp_fixup_one_nor(0x340000, 0x3f40000);
67 warp_fixup_one_nor(0x380000, 0x3f80000);
72 void platform_init(unsigned long r3
, unsigned long r4
, unsigned long r5
,
73 unsigned long r6
, unsigned long r7
)
77 platform_ops
.fixups
= warp_fixups
;
78 platform_ops
.exit
= ibm44x_dbcr_reset
;
80 serial_console_init();