Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 60542
b: refs/heads/master
c: b2ba34f
h: refs/heads/master
v: v3
  • Loading branch information
David Gibson authored and Paul Mackerras committed Jun 14, 2007
1 parent 4be3b39 commit a4da833
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 11123346bfba8e65631957c6c25ed1a6ca1b4ffe
refs/heads/master: b2ba34f370a66d9ed4bbd440e45296ecf3e267d3
29 changes: 29 additions & 0 deletions trunk/arch/powerpc/boot/44x.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,32 @@ void ibm44x_dbcr_reset(void)
);

}

/* Read 4xx EBC bus bridge registers to get mappings of the peripheral
* banks into the OPB address space */
void ibm4xx_fixup_ebc_ranges(const char *ebc)
{
void *devp;
u32 bxcr;
u32 ranges[EBC_NUM_BANKS*4];
u32 *p = ranges;
int i;

for (i = 0; i < EBC_NUM_BANKS; i++) {
mtdcr(DCRN_EBC0_CFGADDR, EBC_BXCR(i));
bxcr = mfdcr(DCRN_EBC0_CFGDATA);

if ((bxcr & EBC_BXCR_BU) != EBC_BXCR_BU_OFF) {
*p++ = i;
*p++ = 0;
*p++ = bxcr & EBC_BXCR_BAS;
*p++ = EBC_BXCR_BANK_SIZE(bxcr);
}
}

devp = finddevice(ebc);
if (! devp)
fatal("Couldn't locate EBC node %s\n\r", ebc);

setprop(devp, "ranges", ranges, (p - ranges) * sizeof(u32));
}
1 change: 1 addition & 0 deletions trunk/arch/powerpc/boot/44x.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#define _PPC_BOOT_44X_H_

void ibm44x_fixup_memsize(void);
void ibm4xx_fixup_ebc_ranges(const char *ebc);

void ibm44x_dbcr_reset(void);
void ebony_init(void *mac0, void *mac1);
Expand Down
37 changes: 37 additions & 0 deletions trunk/arch/powerpc/boot/dcr.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,43 @@ static const unsigned long sdram_bxcr[] = { SDRAM0_B0CR, SDRAM0_B1CR, SDRAM0_B2C
#define SDRAM_CONFIG_BANK_SIZE(reg) \
(0x00400000 << ((reg & SDRAM_CONFIG_SIZE_MASK) >> 17))

/* 440GP External Bus Controller (EBC) */
#define DCRN_EBC0_CFGADDR 0x012
#define DCRN_EBC0_CFGDATA 0x013
#define EBC_NUM_BANKS 8
#define EBC_B0CR 0x00
#define EBC_B1CR 0x01
#define EBC_B2CR 0x02
#define EBC_B3CR 0x03
#define EBC_B4CR 0x04
#define EBC_B5CR 0x05
#define EBC_B6CR 0x06
#define EBC_B7CR 0x07
#define EBC_BXCR(n) (n)
#define EBC_BXCR_BAS 0xfff00000
#define EBC_BXCR_BS 0x000e0000
#define EBC_BXCR_BANK_SIZE(reg) \
(0x100000 << (((reg) & EBC_BXCR_BS) >> 17))
#define EBC_BXCR_BU 0x00018000
#define EBC_BXCR_BU_OFF 0x00000000
#define EBC_BXCR_BU_RO 0x00008000
#define EBC_BXCR_BU_WO 0x00010000
#define EBC_BXCR_BU_RW 0x00018000
#define EBC_BXCR_BW 0x00006000
#define EBC_B0AP 0x10
#define EBC_B1AP 0x11
#define EBC_B2AP 0x12
#define EBC_B3AP 0x13
#define EBC_B4AP 0x14
#define EBC_B5AP 0x15
#define EBC_B6AP 0x16
#define EBC_B7AP 0x17
#define EBC_BXAP(n) (0x10+(n))
#define EBC_BEAR 0x20
#define EBC_BESR 0x21
#define EBC_CFG 0x23
#define EBC_CID 0x24

/* 440GP Clock, PM, chip control */
#define DCRN_CPC0_SR 0x0b0
#define DCRN_CPC0_ER 0x0b1
Expand Down
8 changes: 3 additions & 5 deletions trunk/arch/powerpc/boot/dts/ebony.dts
Original file line number Diff line number Diff line change
Expand Up @@ -135,11 +135,9 @@
#address-cells = <2>;
#size-cells = <1>;
clock-frequency = <0>; // Filled in by zImage
ranges = <0 00000000 fff00000 100000
1 00000000 48000000 100000
2 00000000 ff800000 400000
3 00000000 48200000 100000
7 00000000 48300000 100000>;
// ranges property is supplied by zImage
// based on firmware's configuration of the
// EBC bridge
interrupts = <5 4>;
interrupt-parent = <&UIC1>;

Expand Down
1 change: 1 addition & 0 deletions trunk/arch/powerpc/boot/ebony.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ static void ebony_fixups(void)
ibm440gp_fixup_clocks(sysclk, 6 * 1843200);
ibm44x_fixup_memsize();
dt_fixup_mac_addresses(ebony_mac0, ebony_mac1);
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
}

void ebony_init(void *mac0, void *mac1)
Expand Down

0 comments on commit a4da833

Please sign in to comment.