update dts of Magicbox V2
[openwrt/openwrt.git] / target / linux / ppc40x / patches / 104-magicboxv2-cf-card-fixup.patch
1 --- a/arch/powerpc/boot/cuboot-magicboxv2.c
2 +++ b/arch/powerpc/boot/cuboot-magicboxv2.c
3 @@ -2,6 +2,7 @@
4 * Old U-boot compatibility for Magicbox v2
5 *
6 * Author: Imre Kaloz <kaloz@openwrt.org>
7 + * Gabor Juhos <juhosg@openwrt.org>
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License version 2 as published
11 @@ -22,8 +23,36 @@
12
13 static bd_t bd;
14
15 +static void fixup_cf_card(void)
16 +{
17 +#define DCRN_CPC0_PCI_BASE 0xf9
18 +#define CF_CS0_BASE 0xff100000
19 +#define CF_CS1_BASE 0xff200000
20 +
21 + /* Turn on PerWE instead of PCIsomething */
22 + mtdcr(DCRN_CPC0_PCI_BASE,
23 + mfdcr(DCRN_CPC0_PCI_BASE) | (0x80000000L >> 27));
24 +
25 + /* PerCS1 (CF's CS0): base 0xff100000, 16-bit, rw */
26 + mtdcr(DCRN_EBC0_CFGADDR, EBC_B1CR);
27 + mtdcr(DCRN_EBC0_CFGDATA, CF_CS0_BASE | EBC_BXCR_BU_RW | EBC_BXCR_BW_16);
28 + mtdcr(DCRN_EBC0_CFGADDR, EBC_B1AP);
29 + mtdcr(DCRN_EBC0_CFGDATA, 0x080bd800);
30 +
31 + /* PerCS2 (CF's CS1): base 0xff200000, 16-bit, rw */
32 + mtdcr(DCRN_EBC0_CFGADDR, EBC_B2CR);
33 + mtdcr(DCRN_EBC0_CFGDATA, CF_CS1_BASE | EBC_BXCR_BU_RW | EBC_BXCR_BW_16);
34 + mtdcr(DCRN_EBC0_CFGADDR, EBC_B2AP);
35 + mtdcr(DCRN_EBC0_CFGDATA, 0x080bd800);
36 +
37 +#undef DCRN_CPC0_PCI_BASE
38 +#undef CF_CS0_BASE
39 +#undef CF_CS1_BASE
40 +}
41 +
42 static void magicboxv2_fixups(void)
43 {
44 + fixup_cf_card();
45 ibm405ep_fixup_clocks(25000000);
46 ibm4xx_sdram_fixup_memsize();
47 dt_fixup_mac_addresses(&bd.bi_enetaddr, &bd.bi_enet1addr);