* [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup
@ 2007-11-08 1:54 Mark A. Greer
2007-11-08 1:57 ` [PATCH 2/3] powerpc: prpmc2800 - Use new mv64x60_config_pci_windows() interface Mark A. Greer
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Mark A. Greer @ 2007-11-08 1:54 UTC (permalink / raw)
To: linuxppc-dev
From: Mark A. Greer <mgreer@mvista.com>
The Marvell mv64x60 line of host bridges just don't like
PCI MEM->System Memory windows setups that don't match
the CPU->System Memory window setups. For example, if there
is 1GB of System Memory and 2 CPU->System Memory windows set up
for 512MB each, then there had better be 2 PCI->System Memory
windows set up for 512MB each as well.
This restriction was documented in early versions of the bridge
but isn't supposed to apply to recent versions. It seems as though
it still applies to recent versions as well.
mv64x60_config_pci_windows() is now changed to make the windows match
as described above.
Signed-off-by: Mark A. Greer <mgreer@mvista.com>
---
arch/powerpc/boot/mv64x60.c | 133 ++++++++++++++++++++++++----------
arch/powerpc/boot/mv64x60.h | 2
2 files changed, 96 insertions(+), 39 deletions(-)
diff --git a/arch/powerpc/boot/mv64x60.c b/arch/powerpc/boot/mv64x60.c
index b432594..ddddc3f 100644
--- a/arch/powerpc/boot/mv64x60.c
+++ b/arch/powerpc/boot/mv64x60.c
@@ -92,6 +92,9 @@
#define MV64x60_PCI0_BAR_ENABLE 0x0c3c
#define MV64x60_PCI02MEM_0_SIZE 0x0c08
+#define MV64x60_PCI02MEM_1_SIZE 0x0d08
+#define MV64x60_PCI02MEM_2_SIZE 0x0c0c
+#define MV64x60_PCI02MEM_3_SIZE 0x0d0c
#define MV64x60_PCI0_ACC_CNTL_0_BASE_LO 0x1e00
#define MV64x60_PCI0_ACC_CNTL_0_BASE_HI 0x1e04
#define MV64x60_PCI0_ACC_CNTL_0_SIZE 0x1e08
@@ -113,6 +116,9 @@
#define MV64x60_PCI1_BAR_ENABLE 0x0cbc
#define MV64x60_PCI12MEM_0_SIZE 0x0c88
+#define MV64x60_PCI12MEM_1_SIZE 0x0d88
+#define MV64x60_PCI12MEM_2_SIZE 0x0c8c
+#define MV64x60_PCI12MEM_3_SIZE 0x0d8c
#define MV64x60_PCI1_ACC_CNTL_0_BASE_LO 0x1e80
#define MV64x60_PCI1_ACC_CNTL_0_BASE_HI 0x1e84
#define MV64x60_PCI1_ACC_CNTL_0_SIZE 0x1e88
@@ -331,18 +337,58 @@ void mv64x60_config_ctlr_windows(u8 *bridge_base, u8 *bridge_pbase,
}
/* PCI MEM -> system memory, et. al. setup */
-static struct mv64x60_pci_win mv64x60_pci2mem[2] = {
+static struct mv64x60_pci_win mv64x60_pci2mem[2][MV64x60_CPU2MEM_WINDOWS] = {
{ /* hose 0 */
- .fcn = 0,
- .hi = 0x14,
- .lo = 0x10,
- .size = MV64x60_PCI02MEM_0_SIZE,
+ [0] = {
+ .fcn = 0,
+ .hi = 0x14,
+ .lo = 0x10,
+ .size = MV64x60_PCI02MEM_0_SIZE,
+ },
+ [1] = {
+ .fcn = 0,
+ .hi = 0x1c,
+ .lo = 0x18,
+ .size = MV64x60_PCI02MEM_1_SIZE,
+ },
+ [2] = {
+ .fcn = 1,
+ .hi = 0x14,
+ .lo = 0x10,
+ .size = MV64x60_PCI02MEM_2_SIZE,
+ },
+ [3] = {
+ .fcn = 1,
+ .hi = 0x1c,
+ .lo = 0x18,
+ .size = MV64x60_PCI02MEM_3_SIZE,
+ },
},
{ /* hose 1 */
- .fcn = 0,
- .hi = 0x94,
- .lo = 0x90,
- .size = MV64x60_PCI12MEM_0_SIZE,
+ [0] = {
+ .fcn = 0,
+ .hi = 0x94,
+ .lo = 0x90,
+ .size = MV64x60_PCI12MEM_0_SIZE,
+ },
+ [1] = {
+ .fcn = 0,
+ .hi = 0x9c,
+ .lo = 0x98,
+ .size = MV64x60_PCI12MEM_1_SIZE,
+ },
+ [2] = {
+ .fcn = 1,
+ .hi = 0x94,
+ .lo = 0x90,
+ .size = MV64x60_PCI12MEM_2_SIZE,
+ },
+ [3] = {
+ .fcn = 1,
+ .hi = 0x9c,
+ .lo = 0x98,
+ .size = MV64x60_PCI12MEM_3_SIZE,
+ },
},
};
@@ -394,70 +440,81 @@ mv64x60_mem_win mv64x60_pci_acc[2][MV64x60_PCI_ACC_CNTL_WINDOWS] = {
},
};
-static struct mv64x60_mem_win mv64x60_pci2reg[2] = {
- {
+static struct mv64x60_pci_win mv64x60_pci2reg[2] = {
+ { /* hose 0 */
+ .fcn = 0,
.hi = 0x24,
.lo = 0x20,
.size = 0,
},
- {
+ { /* hose 1 */
+ .fcn = 0,
.hi = 0xa4,
.lo = 0xa0,
.size = 0,
},
};
-/* Only need to use 1 window (per hose) to get access to all of system memory */
+/* Make PCI->System memory windows match CPU->System memory windows */
void mv64x60_config_pci_windows(u8 *bridge_base, u8 *bridge_pbase, u8 hose,
- u8 bus, u32 mem_size, u32 acc_bits)
+ u8 bus, u32 acc_bits)
{
- u32 i, offset, bar_enable, enables;
+ u32 i, offset, bar_enable, menables, penables, base, size;
/* Disable all windows but PCI MEM -> Bridge's regs window */
- enables = ~(1 << 9);
+ penables = ~(1 << 9);
bar_enable = hose ? MV64x60_PCI1_BAR_ENABLE : MV64x60_PCI0_BAR_ENABLE;
- out_le32((u32 *)(bridge_base + bar_enable), enables);
+ out_le32((u32 *)(bridge_base + bar_enable), penables);
for (i=0; i<MV64x60_PCI_ACC_CNTL_WINDOWS; i++)
out_le32((u32 *)(bridge_base + mv64x60_pci_acc[hose][i].lo), 0);
- /* If mem_size is 0, leave windows disabled */
- if (mem_size == 0)
- return;
-
/* Cause automatic updates of PCI remap regs */
offset = hose ?
MV64x60_PCI1_PCI_DECODE_CNTL : MV64x60_PCI0_PCI_DECODE_CNTL;
i = in_le32((u32 *)(bridge_base + offset));
out_le32((u32 *)(bridge_base + offset), i & ~0x1);
- mem_size = (mem_size - 1) & 0xfffff000;
+ menables = in_le32((u32 *)(bridge_base + MV64x60_CPU_BAR_ENABLE)) & 0xf;
- /* Map PCI MEM addr 0 -> System Mem addr 0 */
- mv64x60_cfg_write(bridge_base, hose, bus,
- PCI_DEVFN(0, mv64x60_pci2mem[hose].fcn),
- mv64x60_pci2mem[hose].hi, 0);
- mv64x60_cfg_write(bridge_base, hose, bus,
- PCI_DEVFN(0, mv64x60_pci2mem[hose].fcn),
- mv64x60_pci2mem[hose].lo, 0);
- out_le32((u32 *)(bridge_base + mv64x60_pci2mem[hose].size),mem_size);
+ for (i=0; i<MV64x60_CPU2MEM_WINDOWS; i++) {
+ if (menables & (1 << i)) /* Set means disabled */
+ continue;
- acc_bits |= MV64x60_PCI_ACC_CNTL_ENABLE;
- out_le32((u32 *)(bridge_base + mv64x60_pci_acc[hose][0].hi), 0);
- out_le32((u32 *)(bridge_base + mv64x60_pci_acc[hose][0].lo), acc_bits);
- out_le32((u32 *)(bridge_base + mv64x60_pci_acc[hose][0].size),mem_size);
+ penables &= ~(1 << i); /* Enable this PCI BAR */
+ base = in_le32((u32 *)(bridge_base + mv64x60_cpu2mem[i].lo))
+ << 16;
+ size = (in_le32((u32 *)(bridge_base + mv64x60_cpu2mem[i].size))
+ << 16) | 0xf000;
+
+ mv64x60_cfg_write(bridge_base, hose, bus,
+ PCI_DEVFN(0, mv64x60_pci2mem[hose][i].fcn),
+ mv64x60_pci2mem[hose][i].hi, 0);
+ mv64x60_cfg_write(bridge_base, hose, bus,
+ PCI_DEVFN(0, mv64x60_pci2mem[hose][i].fcn),
+ mv64x60_pci2mem[hose][i].lo, base | 0xc);
+ out_le32((u32 *)(bridge_base + mv64x60_pci2mem[hose][i].size),
+ size);
+
+ out_le32((u32 *)(bridge_base + mv64x60_pci_acc[hose][i].hi), 0);
+ out_le32((u32 *)(bridge_base + mv64x60_pci_acc[hose][i].lo),
+ base | acc_bits | MV64x60_PCI_ACC_CNTL_ENABLE);
+ out_le32((u32 *)(bridge_base + mv64x60_pci_acc[hose][i].size),
+ size);
+ }
/* Set PCI MEM->bridge's reg window to where they are in CPU mem map */
i = (u32)bridge_base;
i &= 0xffff0000;
i |= (0x2 << 1);
- mv64x60_cfg_write(bridge_base, hose, bus, PCI_DEVFN(0,0),
+ mv64x60_cfg_write(bridge_base, hose, bus,
+ PCI_DEVFN(0, mv64x60_pci2reg[hose].fcn),
mv64x60_pci2reg[hose].hi, 0);
- mv64x60_cfg_write(bridge_base, hose, bus, PCI_DEVFN(0,0),
+ mv64x60_cfg_write(bridge_base, hose, bus,
+ PCI_DEVFN(0, mv64x60_pci2reg[hose].fcn),
mv64x60_pci2reg[hose].lo, i);
- enables &= ~0x1; /* Enable PCI MEM -> System Mem window 0 */
- out_le32((u32 *)(bridge_base + bar_enable), enables);
+ out_le32((u32 *)(bridge_base + bar_enable), penables);
}
/* CPU -> PCI I/O & MEM setup */
diff --git a/arch/powerpc/boot/mv64x60.h b/arch/powerpc/boot/mv64x60.h
index b827105..d0b29a7 100644
--- a/arch/powerpc/boot/mv64x60.h
+++ b/arch/powerpc/boot/mv64x60.h
@@ -53,7 +53,7 @@ void mv64x60_cfg_write(u8 *bridge_base, u8 hose, u8 bus, u8 devfn,
void mv64x60_config_ctlr_windows(u8 *bridge_base, u8 *bridge_pbase,
u8 is_coherent);
void mv64x60_config_pci_windows(u8 *bridge_base, u8 *bridge_pbase, u8 hose,
- u8 bus, u32 mem_size, u32 acc_bits);
+ u8 bus, u32 acc_bits);
void mv64x60_config_cpu2pci_window(u8 *bridge_base, u8 hose, u32 pci_base_hi,
u32 pci_base_lo, u32 cpu_base, u32 size,
struct mv64x60_cpu2pci_win *offset_tbl);
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 2/3] powerpc: prpmc2800 - Use new mv64x60_config_pci_windows() interface
2007-11-08 1:54 [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup Mark A. Greer
@ 2007-11-08 1:57 ` Mark A. Greer
2007-11-08 1:58 ` [PATCH 3/3] powerpc: mv64x60 - Aesthetic fixups for bootwrapper code Mark A. Greer
2007-11-13 2:59 ` [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup Paul Mackerras
2 siblings, 0 replies; 4+ messages in thread
From: Mark A. Greer @ 2007-11-08 1:57 UTC (permalink / raw)
To: linuxppc-dev
From: Mark A. Greer <mgreer@mvista.com>
Make the prpmc2800 bootwrapper code use the new interface to
mv64x60_config_pci_windows(). With that change, some minor code
rearrangement is possible to make things neater.
Signed-off-by: Mark A. Greer <mgreer@mvista.com>
---
arch/powerpc/boot/prpmc2800.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/arch/powerpc/boot/prpmc2800.c b/arch/powerpc/boot/prpmc2800.c
index 9614e1d..d72400d 100644
--- a/arch/powerpc/boot/prpmc2800.c
+++ b/arch/powerpc/boot/prpmc2800.c
@@ -315,7 +315,7 @@ static struct prpmc2800_board_info *prpmc2800_get_bip(void)
return bip;
}
-static void prpmc2800_bridge_setup(u32 mem_size)
+static void prpmc2800_bridge_setup(void)
{
u32 i, v[12], enables, acc_bits;
u32 pci_base_hi, pci_base_lo, size, buf[2];
@@ -340,8 +340,7 @@ static void prpmc2800_bridge_setup(u32 mem_size)
| MV64x60_PCI_ACC_CNTL_RDSIZE_256_BYTES;
mv64x60_config_ctlr_windows(bridge_base, bridge_pbase, is_coherent);
- mv64x60_config_pci_windows(bridge_base, bridge_pbase, 0, 0, mem_size,
- acc_bits);
+ mv64x60_config_pci_windows(bridge_base, bridge_pbase, 0, 0, acc_bits);
/* Get the cpu -> pci i/o & mem mappings from the device tree */
devp = finddevice("/mv64x60/pci@80000000");
@@ -397,20 +396,19 @@ static void prpmc2800_bridge_setup(u32 mem_size)
static void prpmc2800_fixups(void)
{
- u32 v[2], l, mem_size;
+ u32 v[2], l;
int rc;
void *devp;
char model[BOARD_MODEL_MAX];
struct prpmc2800_board_info *bip;
- bip = prpmc2800_get_bip(); /* Get board info based on VPD */
-
- mem_size = (bip) ? bip->mem_size : mv64x60_get_mem_size(bridge_base);
- prpmc2800_bridge_setup(mem_size); /* Do necessary bridge setup */
+ prpmc2800_bridge_setup(); /* Do necessary bridge setup */
- /* If the VPD doesn't match what we know about, just use the
+ /*
+ * If the VPD doesn't match what we know about, just use the
* defaults already in the device tree.
*/
+ bip = prpmc2800_get_bip(); /* Get board info based on VPD */
if (!bip)
return;
@@ -439,8 +437,8 @@ static void prpmc2800_fixups(void)
devp = finddevice("/memory");
if (devp == NULL)
fatal("Error: Missing /memory device tree node\n\r");
- v[0] = 0;
- v[1] = bip->mem_size;
+ v[0] = 0; /* Take min of DT's mem size and what mem ctlr is setup for */
+ v[1] = min(mv64x60_get_mem_size(bridge_base), bip->mem_size);
setprop(devp, "reg", v, sizeof(v));
/* Update /mv64x60/model, if this is a mv64362 */
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 3/3] powerpc: mv64x60 - Aesthetic fixups for bootwrapper code
2007-11-08 1:54 [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup Mark A. Greer
2007-11-08 1:57 ` [PATCH 2/3] powerpc: prpmc2800 - Use new mv64x60_config_pci_windows() interface Mark A. Greer
@ 2007-11-08 1:58 ` Mark A. Greer
2007-11-13 2:59 ` [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup Paul Mackerras
2 siblings, 0 replies; 4+ messages in thread
From: Mark A. Greer @ 2007-11-08 1:58 UTC (permalink / raw)
To: linuxppc-dev
From: Mark A. Greer <mgreer@mvista.com>
Specify locations when initializing arrays. This has already been done
for one array so may as well do it for them all.
Signed-off-by: Mark A. Greer <mgreer@mvista.com>
---
I don't know if this one is worth the bother (it is a little anal)
but it keeps things consistent. I'm happy with or without it.
arch/powerpc/boot/mv64x60.c | 72 +++++++++++++++++-----------------
1 file changed, 36 insertions(+), 36 deletions(-)
diff --git a/arch/powerpc/boot/mv64x60.c b/arch/powerpc/boot/mv64x60.c
index ddddc3f..d207a0b 100644
--- a/arch/powerpc/boot/mv64x60.c
+++ b/arch/powerpc/boot/mv64x60.c
@@ -174,11 +174,11 @@ struct {
u32 addr;
u32 data;
} static mv64x60_pci_cfgio[2] = {
- { /* hose 0 */
+ [0] = { /* hose 0 */
.addr = 0xcf8,
.data = 0xcfc,
},
- { /* hose 1 */
+ [1] = { /* hose 1 */
.addr = 0xc78,
.data = 0xc7c,
}
@@ -201,76 +201,76 @@ void mv64x60_cfg_write(u8 *bridge_base, u8 hose, u8 bus, u8 devfn, u8 offset,
/* I/O ctlr -> system memory setup */
static struct mv64x60_mem_win mv64x60_cpu2mem[MV64x60_CPU2MEM_WINDOWS] = {
- {
+ [0] = {
.lo = MV64x60_CPU2MEM_0_BASE,
.size = MV64x60_CPU2MEM_0_SIZE,
},
- {
+ [1] = {
.lo = MV64x60_CPU2MEM_1_BASE,
.size = MV64x60_CPU2MEM_1_SIZE,
},
- {
+ [2] = {
.lo = MV64x60_CPU2MEM_2_BASE,
.size = MV64x60_CPU2MEM_2_SIZE,
},
- {
+ [3] = {
.lo = MV64x60_CPU2MEM_3_BASE,
.size = MV64x60_CPU2MEM_3_SIZE,
},
};
static struct mv64x60_mem_win mv64x60_enet2mem[MV64x60_CPU2MEM_WINDOWS] = {
- {
+ [0] = {
.lo = MV64x60_ENET2MEM_0_BASE,
.size = MV64x60_ENET2MEM_0_SIZE,
},
- {
+ [1] = {
.lo = MV64x60_ENET2MEM_1_BASE,
.size = MV64x60_ENET2MEM_1_SIZE,
},
- {
+ [2] = {
.lo = MV64x60_ENET2MEM_2_BASE,
.size = MV64x60_ENET2MEM_2_SIZE,
},
- {
+ [3] = {
.lo = MV64x60_ENET2MEM_3_BASE,
.size = MV64x60_ENET2MEM_3_SIZE,
},
};
static struct mv64x60_mem_win mv64x60_mpsc2mem[MV64x60_CPU2MEM_WINDOWS] = {
- {
+ [0] = {
.lo = MV64x60_MPSC2MEM_0_BASE,
.size = MV64x60_MPSC2MEM_0_SIZE,
},
- {
+ [1] = {
.lo = MV64x60_MPSC2MEM_1_BASE,
.size = MV64x60_MPSC2MEM_1_SIZE,
},
- {
+ [2] = {
.lo = MV64x60_MPSC2MEM_2_BASE,
.size = MV64x60_MPSC2MEM_2_SIZE,
},
- {
+ [3] = {
.lo = MV64x60_MPSC2MEM_3_BASE,
.size = MV64x60_MPSC2MEM_3_SIZE,
},
};
static struct mv64x60_mem_win mv64x60_idma2mem[MV64x60_CPU2MEM_WINDOWS] = {
- {
+ [0] = {
.lo = MV64x60_IDMA2MEM_0_BASE,
.size = MV64x60_IDMA2MEM_0_SIZE,
},
- {
+ [1] = {
.lo = MV64x60_IDMA2MEM_1_BASE,
.size = MV64x60_IDMA2MEM_1_SIZE,
},
- {
+ [2] = {
.lo = MV64x60_IDMA2MEM_2_BASE,
.size = MV64x60_IDMA2MEM_2_SIZE,
},
- {
+ [3] = {
.lo = MV64x60_IDMA2MEM_3_BASE,
.size = MV64x60_IDMA2MEM_3_SIZE,
},
@@ -338,7 +338,7 @@ void mv64x60_config_ctlr_windows(u8 *bridge_base, u8 *bridge_pbase,
/* PCI MEM -> system memory, et. al. setup */
static struct mv64x60_pci_win mv64x60_pci2mem[2][MV64x60_CPU2MEM_WINDOWS] = {
- { /* hose 0 */
+ [0] = { /* hose 0 */
[0] = {
.fcn = 0,
.hi = 0x14,
@@ -364,7 +364,7 @@ static struct mv64x60_pci_win mv64x60_pci2mem[2][MV64x60_CPU2MEM_WINDOWS] = {
.size = MV64x60_PCI02MEM_3_SIZE,
},
},
- { /* hose 1 */
+ [1] = { /* hose 1 */
[0] = {
.fcn = 0,
.hi = 0x94,
@@ -394,45 +394,45 @@ static struct mv64x60_pci_win mv64x60_pci2mem[2][MV64x60_CPU2MEM_WINDOWS] = {
static struct
mv64x60_mem_win mv64x60_pci_acc[2][MV64x60_PCI_ACC_CNTL_WINDOWS] = {
- { /* hose 0 */
- {
+ [0] = { /* hose 0 */
+ [0] = {
.hi = MV64x60_PCI0_ACC_CNTL_0_BASE_HI,
.lo = MV64x60_PCI0_ACC_CNTL_0_BASE_LO,
.size = MV64x60_PCI0_ACC_CNTL_0_SIZE,
},
- {
+ [1] = {
.hi = MV64x60_PCI0_ACC_CNTL_1_BASE_HI,
.lo = MV64x60_PCI0_ACC_CNTL_1_BASE_LO,
.size = MV64x60_PCI0_ACC_CNTL_1_SIZE,
},
- {
+ [2] = {
.hi = MV64x60_PCI0_ACC_CNTL_2_BASE_HI,
.lo = MV64x60_PCI0_ACC_CNTL_2_BASE_LO,
.size = MV64x60_PCI0_ACC_CNTL_2_SIZE,
},
- {
+ [3] = {
.hi = MV64x60_PCI0_ACC_CNTL_3_BASE_HI,
.lo = MV64x60_PCI0_ACC_CNTL_3_BASE_LO,
.size = MV64x60_PCI0_ACC_CNTL_3_SIZE,
},
},
- { /* hose 1 */
- {
+ [1] = { /* hose 1 */
+ [0] = {
.hi = MV64x60_PCI1_ACC_CNTL_0_BASE_HI,
.lo = MV64x60_PCI1_ACC_CNTL_0_BASE_LO,
.size = MV64x60_PCI1_ACC_CNTL_0_SIZE,
},
- {
+ [1] = {
.hi = MV64x60_PCI1_ACC_CNTL_1_BASE_HI,
.lo = MV64x60_PCI1_ACC_CNTL_1_BASE_LO,
.size = MV64x60_PCI1_ACC_CNTL_1_SIZE,
},
- {
+ [2] = {
.hi = MV64x60_PCI1_ACC_CNTL_2_BASE_HI,
.lo = MV64x60_PCI1_ACC_CNTL_2_BASE_LO,
.size = MV64x60_PCI1_ACC_CNTL_2_SIZE,
},
- {
+ [3] = {
.hi = MV64x60_PCI1_ACC_CNTL_3_BASE_HI,
.lo = MV64x60_PCI1_ACC_CNTL_3_BASE_LO,
.size = MV64x60_PCI1_ACC_CNTL_3_SIZE,
@@ -441,13 +441,13 @@ mv64x60_mem_win mv64x60_pci_acc[2][MV64x60_PCI_ACC_CNTL_WINDOWS] = {
};
static struct mv64x60_pci_win mv64x60_pci2reg[2] = {
- { /* hose 0 */
+ [0] = { /* hose 0 */
.fcn = 0,
.hi = 0x24,
.lo = 0x20,
.size = 0,
},
- { /* hose 1 */
+ [1] = { /* hose 1 */
.fcn = 0,
.hi = 0xa4,
.lo = 0xa0,
@@ -519,13 +519,13 @@ void mv64x60_config_pci_windows(u8 *bridge_base, u8 *bridge_pbase, u8 hose,
/* CPU -> PCI I/O & MEM setup */
struct mv64x60_cpu2pci_win mv64x60_cpu2pci_io[2] = {
- { /* hose 0 */
+ [0] = { /* hose 0 */
.lo = MV64x60_CPU2PCI0_IO_BASE,
.size = MV64x60_CPU2PCI0_IO_SIZE,
.remap_hi = 0,
.remap_lo = MV64x60_CPU2PCI0_IO_REMAP,
},
- { /* hose 1 */
+ [1] = { /* hose 1 */
.lo = MV64x60_CPU2PCI1_IO_BASE,
.size = MV64x60_CPU2PCI1_IO_SIZE,
.remap_hi = 0,
@@ -534,13 +534,13 @@ struct mv64x60_cpu2pci_win mv64x60_cpu2pci_io[2] = {
};
struct mv64x60_cpu2pci_win mv64x60_cpu2pci_mem[2] = {
- { /* hose 0 */
+ [0] = { /* hose 0 */
.lo = MV64x60_CPU2PCI0_MEM_0_BASE,
.size = MV64x60_CPU2PCI0_MEM_0_SIZE,
.remap_hi = MV64x60_CPU2PCI0_MEM_0_REMAP_HI,
.remap_lo = MV64x60_CPU2PCI0_MEM_0_REMAP_LO,
},
- { /* hose 1 */
+ [1] = { /* hose 1 */
.lo = MV64x60_CPU2PCI1_MEM_0_BASE,
.size = MV64x60_CPU2PCI1_MEM_0_SIZE,
.remap_hi = MV64x60_CPU2PCI1_MEM_0_REMAP_HI,
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup
2007-11-08 1:54 [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup Mark A. Greer
2007-11-08 1:57 ` [PATCH 2/3] powerpc: prpmc2800 - Use new mv64x60_config_pci_windows() interface Mark A. Greer
2007-11-08 1:58 ` [PATCH 3/3] powerpc: mv64x60 - Aesthetic fixups for bootwrapper code Mark A. Greer
@ 2007-11-13 2:59 ` Paul Mackerras
2 siblings, 0 replies; 4+ messages in thread
From: Paul Mackerras @ 2007-11-13 2:59 UTC (permalink / raw)
To: Mark A. Greer; +Cc: linuxppc-dev
Mark A. Greer writes:
> mv64x60_config_pci_windows() is now changed to make the windows match
> as described above.
>
> Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Are any of this series required for 2.6.24?
Paul.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-11-13 2:59 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-08 1:54 [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup Mark A. Greer
2007-11-08 1:57 ` [PATCH 2/3] powerpc: prpmc2800 - Use new mv64x60_config_pci_windows() interface Mark A. Greer
2007-11-08 1:58 ` [PATCH 3/3] powerpc: mv64x60 - Aesthetic fixups for bootwrapper code Mark A. Greer
2007-11-13 2:59 ` [PATCH 1/3] powerpc: mv64x60 - Fix PCI MEM->System Mem window setup Paul Mackerras
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox