提交 11a55f22 编写于 作者: P Paul Mackerras

Merge branch 'powerpc-next' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc

...@@ -1645,8 +1645,7 @@ platforms are moved over to use the flattened-device-tree model. ...@@ -1645,8 +1645,7 @@ platforms are moved over to use the flattened-device-tree model.
- device_type : should be "network", "hldc", "uart", "transparent" - device_type : should be "network", "hldc", "uart", "transparent"
"bisync", "atm", or "serial". "bisync", "atm", or "serial".
- compatible : could be "ucc_geth" or "fsl_atm" and so on. - compatible : could be "ucc_geth" or "fsl_atm" and so on.
- model : should be "UCC". - cell-index : the ucc number(1-8), corresponding to UCCx in UM.
- device-id : the ucc number(1-8), corresponding to UCCx in UM.
- reg : Offset and length of the register set for the device - reg : Offset and length of the register set for the device
- interrupts : <a b> where a is the interrupt number and b is a - interrupts : <a b> where a is the interrupt number and b is a
field that represents an encoding of the sense and level field that represents an encoding of the sense and level
...@@ -1699,8 +1698,7 @@ platforms are moved over to use the flattened-device-tree model. ...@@ -1699,8 +1698,7 @@ platforms are moved over to use the flattened-device-tree model.
ucc@2000 { ucc@2000 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC"; cell-index = <1>;
device-id = <1>;
reg = <2000 200>; reg = <2000 200>;
interrupts = <a0 0>; interrupts = <a0 0>;
interrupt-parent = <700>; interrupt-parent = <700>;
......
...@@ -520,6 +520,11 @@ config FSL_PCI ...@@ -520,6 +520,11 @@ config FSL_PCI
config 4xx_SOC config 4xx_SOC
bool bool
config FSL_LBC
bool
help
Freescale Localbus support
# Yes MCA RS/6000s exist but Linux-PPC does not currently support any # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
config MCA config MCA
bool bool
......
...@@ -269,7 +269,7 @@ config PPC_EARLY_DEBUG_CPM_ADDR ...@@ -269,7 +269,7 @@ config PPC_EARLY_DEBUG_CPM_ADDR
hex "CPM UART early debug transmit descriptor address" hex "CPM UART early debug transmit descriptor address"
depends on PPC_EARLY_DEBUG_CPM depends on PPC_EARLY_DEBUG_CPM
default "0xfa202008" if PPC_EP88XC default "0xfa202008" if PPC_EP88XC
default "0xf0000008" if CPM2 default "0xf0001ff8" if CPM2
default "0xff002008" if CPM1 default "0xff002008" if CPM1
help help
This specifies the address of the transmit descriptor This specifies the address of the transmit descriptor
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "types.h" #include "types.h"
#include "io.h" #include "io.h"
#include "ops.h" #include "ops.h"
#include "page.h"
struct cpm_scc { struct cpm_scc {
u32 gsmrl; u32 gsmrl;
...@@ -42,6 +43,22 @@ struct cpm_param { ...@@ -42,6 +43,22 @@ struct cpm_param {
u16 tbase; u16 tbase;
u8 rfcr; u8 rfcr;
u8 tfcr; u8 tfcr;
u16 mrblr;
u32 rstate;
u8 res1[4];
u16 rbptr;
u8 res2[6];
u32 tstate;
u8 res3[4];
u16 tbptr;
u8 res4[6];
u16 maxidl;
u16 idlc;
u16 brkln;
u16 brkec;
u16 brkcr;
u16 rmask;
u8 res5[4];
}; };
struct cpm_bd { struct cpm_bd {
...@@ -54,10 +71,10 @@ static void *cpcr; ...@@ -54,10 +71,10 @@ static void *cpcr;
static struct cpm_param *param; static struct cpm_param *param;
static struct cpm_smc *smc; static struct cpm_smc *smc;
static struct cpm_scc *scc; static struct cpm_scc *scc;
struct cpm_bd *tbdf, *rbdf; static struct cpm_bd *tbdf, *rbdf;
static u32 cpm_cmd; static u32 cpm_cmd;
static u8 *muram_start; static void *cbd_addr;
static u32 muram_offset; static u32 cbd_offset;
static void (*do_cmd)(int op); static void (*do_cmd)(int op);
static void (*enable_port)(void); static void (*enable_port)(void);
...@@ -119,20 +136,25 @@ static int cpm_serial_open(void) ...@@ -119,20 +136,25 @@ static int cpm_serial_open(void)
out_8(&param->rfcr, 0x10); out_8(&param->rfcr, 0x10);
out_8(&param->tfcr, 0x10); out_8(&param->tfcr, 0x10);
out_be16(&param->mrblr, 1);
rbdf = (struct cpm_bd *)muram_start; out_be16(&param->maxidl, 0);
rbdf->addr = (u8 *)(rbdf + 2); out_be16(&param->brkec, 0);
out_be16(&param->brkln, 0);
out_be16(&param->brkcr, 0);
rbdf = cbd_addr;
rbdf->addr = (u8 *)rbdf - 1;
rbdf->sc = 0xa000; rbdf->sc = 0xa000;
rbdf->len = 1; rbdf->len = 1;
tbdf = rbdf + 1; tbdf = rbdf + 1;
tbdf->addr = (u8 *)(rbdf + 2) + 1; tbdf->addr = (u8 *)rbdf - 2;
tbdf->sc = 0x2000; tbdf->sc = 0x2000;
tbdf->len = 1; tbdf->len = 1;
sync(); sync();
out_be16(&param->rbase, muram_offset); out_be16(&param->rbase, cbd_offset);
out_be16(&param->tbase, muram_offset + sizeof(struct cpm_bd)); out_be16(&param->tbase, cbd_offset + sizeof(struct cpm_bd));
do_cmd(CPM_CMD_INIT_RX_TX); do_cmd(CPM_CMD_INIT_RX_TX);
...@@ -175,10 +197,12 @@ static unsigned char cpm_serial_getc(void) ...@@ -175,10 +197,12 @@ static unsigned char cpm_serial_getc(void)
int cpm_console_init(void *devp, struct serial_console_data *scdp) int cpm_console_init(void *devp, struct serial_console_data *scdp)
{ {
void *reg_virt[2]; void *vreg[2];
int is_smc = 0, is_cpm2 = 0, n; u32 reg[2];
unsigned long reg_phys; int is_smc = 0, is_cpm2 = 0;
void *parent, *muram; void *parent, *muram;
void *muram_addr;
unsigned long muram_offset, muram_size;
if (dt_is_compatible(devp, "fsl,cpm1-smc-uart")) { if (dt_is_compatible(devp, "fsl,cpm1-smc-uart")) {
is_smc = 1; is_smc = 1;
...@@ -202,63 +226,64 @@ int cpm_console_init(void *devp, struct serial_console_data *scdp) ...@@ -202,63 +226,64 @@ int cpm_console_init(void *devp, struct serial_console_data *scdp)
else else
do_cmd = cpm1_cmd; do_cmd = cpm1_cmd;
n = getprop(devp, "fsl,cpm-command", &cpm_cmd, 4); if (getprop(devp, "fsl,cpm-command", &cpm_cmd, 4) < 4)
if (n < 4)
return -1; return -1;
n = getprop(devp, "virtual-reg", reg_virt, sizeof(reg_virt)); if (dt_get_virtual_reg(devp, vreg, 2) < 2)
if (n < (int)sizeof(reg_virt)) { return -1;
for (n = 0; n < 2; n++) {
if (!dt_xlate_reg(devp, n, &reg_phys, NULL))
return -1;
reg_virt[n] = (void *)reg_phys;
}
}
if (is_smc) if (is_smc)
smc = reg_virt[0]; smc = vreg[0];
else else
scc = reg_virt[0]; scc = vreg[0];
param = reg_virt[1]; param = vreg[1];
parent = get_parent(devp); parent = get_parent(devp);
if (!parent) if (!parent)
return -1; return -1;
n = getprop(parent, "virtual-reg", reg_virt, sizeof(reg_virt)); if (dt_get_virtual_reg(parent, &cpcr, 1) < 1)
if (n < (int)sizeof(reg_virt)) { return -1;
if (!dt_xlate_reg(parent, 0, &reg_phys, NULL))
return -1;
reg_virt[0] = (void *)reg_phys;
}
cpcr = reg_virt[0];
muram = finddevice("/soc/cpm/muram/data"); muram = finddevice("/soc/cpm/muram/data");
if (!muram) if (!muram)
return -1; return -1;
/* For bootwrapper-compatible device trees, we assume that the first /* For bootwrapper-compatible device trees, we assume that the first
* entry has at least 18 bytes, and that #address-cells/#data-cells * entry has at least 128 bytes, and that #address-cells/#data-cells
* is one for both parent and child. * is one for both parent and child.
*/ */
n = getprop(muram, "virtual-reg", reg_virt, sizeof(reg_virt)); if (dt_get_virtual_reg(muram, &muram_addr, 1) < 1)
if (n < (int)sizeof(reg_virt)) { return -1;
if (!dt_xlate_reg(muram, 0, &reg_phys, NULL))
return -1;
reg_virt[0] = (void *)reg_phys; if (getprop(muram, "reg", reg, 8) < 8)
} return -1;
muram_start = reg_virt[0]; muram_offset = reg[0];
muram_size = reg[1];
n = getprop(muram, "reg", &muram_offset, 4); /* Store the buffer descriptors at the end of the first muram chunk.
if (n < 4) * For SMC ports on CPM2-based platforms, relocate the parameter RAM
return -1; * just before the buffer descriptors.
*/
cbd_offset = muram_offset + muram_size - 2 * sizeof(struct cpm_bd);
if (is_cpm2 && is_smc) {
u16 *smc_base = (u16 *)param;
u16 pram_offset;
pram_offset = cbd_offset - 64;
pram_offset = _ALIGN_DOWN(pram_offset, 64);
disable_port();
out_be16(smc_base, pram_offset);
param = muram_addr - muram_offset + pram_offset;
}
cbd_addr = muram_addr - muram_offset + cbd_offset;
scdp->open = cpm_serial_open; scdp->open = cpm_serial_open;
scdp->putc = cpm_serial_putc; scdp->putc = cpm_serial_putc;
......
...@@ -128,7 +128,7 @@ static void fixup_pci(void) ...@@ -128,7 +128,7 @@ static void fixup_pci(void)
u8 *soc_regs; u8 *soc_regs;
int i, len; int i, len;
void *node, *parent_node; void *node, *parent_node;
u32 naddr, nsize, mem_log2; u32 naddr, nsize, mem_pow2, mem_mask;
node = finddevice("/pci"); node = finddevice("/pci");
if (!node || !dt_is_compatible(node, "fsl,pq2-pci")) if (!node || !dt_is_compatible(node, "fsl,pq2-pci"))
...@@ -141,7 +141,7 @@ static void fixup_pci(void) ...@@ -141,7 +141,7 @@ static void fixup_pci(void)
soc_regs = (u8 *)fsl_get_immr(); soc_regs = (u8 *)fsl_get_immr();
if (!soc_regs) if (!soc_regs)
goto err; goto unhandled;
dt_get_reg_format(node, &naddr, &nsize); dt_get_reg_format(node, &naddr, &nsize);
if (naddr != 3 || nsize != 2) if (naddr != 3 || nsize != 2)
...@@ -153,7 +153,7 @@ static void fixup_pci(void) ...@@ -153,7 +153,7 @@ static void fixup_pci(void)
dt_get_reg_format(parent_node, &naddr, &nsize); dt_get_reg_format(parent_node, &naddr, &nsize);
if (naddr != 1 || nsize != 1) if (naddr != 1 || nsize != 1)
goto err; goto unhandled;
len = getprop(node, "ranges", pci_ranges_buf, len = getprop(node, "ranges", pci_ranges_buf,
sizeof(pci_ranges_buf)); sizeof(pci_ranges_buf));
...@@ -170,14 +170,20 @@ static void fixup_pci(void) ...@@ -170,14 +170,20 @@ static void fixup_pci(void)
} }
if (!mem || !mmio || !io) if (!mem || !mmio || !io)
goto err; goto unhandled;
if (mem->size[1] != mmio->size[1])
goto unhandled;
if (mem->size[1] & (mem->size[1] - 1))
goto unhandled;
if (io->size[1] & (io->size[1] - 1))
goto unhandled;
if (mem->phys_addr + mem->size[1] == mmio->phys_addr) if (mem->phys_addr + mem->size[1] == mmio->phys_addr)
mem_base = mem; mem_base = mem;
else if (mmio->phys_addr + mmio->size[1] == mem->phys_addr) else if (mmio->phys_addr + mmio->size[1] == mem->phys_addr)
mem_base = mmio; mem_base = mmio;
else else
goto err; goto unhandled;
out_be32(&pci_regs[1][0], mem_base->phys_addr | 1); out_be32(&pci_regs[1][0], mem_base->phys_addr | 1);
out_be32(&pci_regs[2][0], ~(mem->size[1] + mmio->size[1] - 1)); out_be32(&pci_regs[2][0], ~(mem->size[1] + mmio->size[1] - 1));
...@@ -201,8 +207,9 @@ static void fixup_pci(void) ...@@ -201,8 +207,9 @@ static void fixup_pci(void)
out_le32(&pci_regs[0][58], 0); out_le32(&pci_regs[0][58], 0);
out_le32(&pci_regs[0][60], 0); out_le32(&pci_regs[0][60], 0);
mem_log2 = 1 << (__ilog2_u32(bd.bi_memsize - 1) + 1); mem_pow2 = 1 << (__ilog2_u32(bd.bi_memsize - 1) + 1);
out_le32(&pci_regs[0][62], 0xa0000000 | ~((1 << (mem_log2 - 12)) - 1)); mem_mask = ~(mem_pow2 - 1) >> 12;
out_le32(&pci_regs[0][62], 0xa0000000 | mem_mask);
/* If PCI is disabled, drive RST high to enable. */ /* If PCI is disabled, drive RST high to enable. */
if (!(in_le32(&pci_regs[0][32]) & 1)) { if (!(in_le32(&pci_regs[0][32]) & 1)) {
...@@ -228,7 +235,11 @@ static void fixup_pci(void) ...@@ -228,7 +235,11 @@ static void fixup_pci(void)
return; return;
err: err:
printf("Bad PCI node\r\n"); printf("Bad PCI node -- using existing firmware setup.\r\n");
return;
unhandled:
printf("Unsupported PCI node -- using existing firmware setup.\r\n");
} }
static void pq2_platform_fixups(void) static void pq2_platform_fixups(void)
......
...@@ -350,3 +350,23 @@ int dt_is_compatible(void *node, const char *compat) ...@@ -350,3 +350,23 @@ int dt_is_compatible(void *node, const char *compat)
return 0; return 0;
} }
int dt_get_virtual_reg(void *node, void **addr, int nres)
{
unsigned long xaddr;
int n;
n = getprop(node, "virtual-reg", addr, nres * 4);
if (n > 0)
return n / 4;
for (n = 0; n < nres; n++) {
if (!dt_xlate_reg(node, n, &xaddr, NULL))
break;
addr[n] = (void *)xaddr;
}
return n;
}
...@@ -121,8 +121,7 @@ ...@@ -121,8 +121,7 @@
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 0x1100 0x1140 reg = <0 0x2000 0x9800 0x800>;
0xec0 0x9800 0x800>;
}; };
}; };
...@@ -138,7 +137,7 @@ ...@@ -138,7 +137,7 @@
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc8248-smc-uart", compatible = "fsl,mpc8248-smc-uart",
"fsl,cpm2-smc-uart"; "fsl,cpm2-smc-uart";
reg = <0x11a80 0x20 0x1100 0x40>; reg = <0x11a80 0x20 0x87fc 2>;
interrupts = <4 8>; interrupts = <4 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
fsl,cpm-brg = <7>; fsl,cpm-brg = <7>;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* EP88xC Device Tree Source * EP88xC Device Tree Source
* *
* Copyright 2006 MontaVista Software, Inc. * Copyright 2006 MontaVista Software, Inc.
* Copyright 2007 Freescale Semiconductor, Inc. * Copyright 2007,2008 Freescale Semiconductor, Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "EP88xC"; model = "EP88xC";
...@@ -23,44 +24,44 @@ ...@@ -23,44 +24,44 @@
PowerPC,885@0 { PowerPC,885@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <d#16>; d-cache-line-size = <16>;
i-cache-line-size = <d#16>; i-cache-line-size = <16>;
d-cache-size = <d#8192>; d-cache-size = <8192>;
i-cache-size = <d#8192>; i-cache-size = <8192>;
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <f 2>; // decrementer interrupt interrupts = <15 2>; // decrementer interrupt
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
}; };
}; };
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <0 0>; reg = <0x0 0x0>;
}; };
localbus@fa200100 { localbus@fa200100 {
compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus"; compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus";
#address-cells = <2>; #address-cells = <2>;
#size-cells = <1>; #size-cells = <1>;
reg = <fa200100 40>; reg = <0xfa200100 0x40>;
ranges = < ranges = <
0 0 fc000000 04000000 0x0 0x0 0xfc000000 0x4000000
3 0 fa000000 01000000 0x3 0x0 0xfa000000 0x1000000
>; >;
flash@0,2000000 { flash@0,2000000 {
compatible = "cfi-flash"; compatible = "cfi-flash";
reg = <0 2000000 2000000>; reg = <0x0 0x2000000 0x2000000>;
bank-width = <4>; bank-width = <4>;
device-width = <2>; device-width = <2>;
}; };
board-control@3,400000 { board-control@3,400000 {
reg = <3 400000 10>; reg = <0x3 0x400000 0x10>;
compatible = "fsl,ep88xc-bcsr"; compatible = "fsl,ep88xc-bcsr";
}; };
}; };
...@@ -70,25 +71,25 @@ ...@@ -70,25 +71,25 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 fa200000 00004000>; ranges = <0x0 0xfa200000 0x4000>;
bus-frequency = <0>; bus-frequency = <0>;
// Temporary -- will go away once kernel uses ranges for get_immrbase(). // Temporary -- will go away once kernel uses ranges for get_immrbase().
reg = <fa200000 4000>; reg = <0xfa200000 0x4000>;
mdio@e00 { mdio@e00 {
compatible = "fsl,mpc885-fec-mdio", "fsl,pq1-fec-mdio"; compatible = "fsl,mpc885-fec-mdio", "fsl,pq1-fec-mdio";
reg = <e00 188>; reg = <0xe00 0x188>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
PHY0: ethernet-phy@0 { PHY0: ethernet-phy@0 {
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
PHY1: ethernet-phy@1 { PHY1: ethernet-phy@1 {
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -97,7 +98,7 @@ ...@@ -97,7 +98,7 @@
device_type = "network"; device_type = "network";
compatible = "fsl,mpc885-fec-enet", compatible = "fsl,mpc885-fec-enet",
"fsl,pq1-fec-enet"; "fsl,pq1-fec-enet";
reg = <e00 188>; reg = <0xe00 0x188>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <3 1>; interrupts = <3 1>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
...@@ -109,7 +110,7 @@ ...@@ -109,7 +110,7 @@
device_type = "network"; device_type = "network";
compatible = "fsl,mpc885-fec-enet", compatible = "fsl,mpc885-fec-enet",
"fsl,pq1-fec-enet"; "fsl,pq1-fec-enet";
reg = <1e00 188>; reg = <0x1e00 0x188>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <7 1>; interrupts = <7 1>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
...@@ -120,7 +121,7 @@ ...@@ -120,7 +121,7 @@
PIC: interrupt-controller@0 { PIC: interrupt-controller@0 {
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <0 24>; reg = <0x0 0x24>;
compatible = "fsl,mpc885-pic", "fsl,pq1-pic"; compatible = "fsl,mpc885-pic", "fsl,pq1-pic";
}; };
...@@ -130,29 +131,29 @@ ...@@ -130,29 +131,29 @@
#size-cells = <2>; #size-cells = <2>;
compatible = "fsl,pq-pcmcia"; compatible = "fsl,pq-pcmcia";
device_type = "pcmcia"; device_type = "pcmcia";
reg = <80 80>; reg = <0x80 0x80>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <d 1>; interrupts = <13 1>;
}; };
cpm@9c0 { cpm@9c0 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
compatible = "fsl,mpc885-cpm", "fsl,cpm1"; compatible = "fsl,mpc885-cpm", "fsl,cpm1";
command-proc = <9c0>; command-proc = <0x9c0>;
interrupts = <0>; // cpm error interrupt interrupts = <0>; // cpm error interrupt
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
reg = <9c0 40>; reg = <0x9c0 0x40>;
ranges; ranges;
muram@2000 { muram@2000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 2000 2000>; ranges = <0x0 0x2000 0x2000>;
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 1c00>; reg = <0x0 0x1c00>;
}; };
}; };
...@@ -160,7 +161,7 @@ ...@@ -160,7 +161,7 @@
compatible = "fsl,mpc885-brg", compatible = "fsl,mpc885-brg",
"fsl,cpm1-brg", "fsl,cpm1-brg",
"fsl,cpm-brg"; "fsl,cpm-brg";
reg = <9f0 10>; reg = <0x9f0 0x10>;
}; };
CPM_PIC: interrupt-controller@930 { CPM_PIC: interrupt-controller@930 {
...@@ -168,7 +169,7 @@ ...@@ -168,7 +169,7 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupts = <5 2 0 2>; interrupts = <5 2 0 2>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
reg = <930 20>; reg = <0x930 0x20>;
compatible = "fsl,mpc885-cpm-pic", compatible = "fsl,mpc885-cpm-pic",
"fsl,cpm1-pic"; "fsl,cpm1-pic";
}; };
...@@ -178,11 +179,11 @@ ...@@ -178,11 +179,11 @@
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc885-smc-uart", compatible = "fsl,mpc885-smc-uart",
"fsl,cpm1-smc-uart"; "fsl,cpm1-smc-uart";
reg = <a80 10 3e80 40>; reg = <0xa80 0x10 0x3e80 0x40>;
interrupts = <4>; interrupts = <4>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
fsl,cpm-brg = <1>; fsl,cpm-brg = <1>;
fsl,cpm-command = <0090>; fsl,cpm-command = <0x90>;
linux,planetcore-label = "SMC1"; linux,planetcore-label = "SMC1";
}; };
...@@ -191,11 +192,11 @@ ...@@ -191,11 +192,11 @@
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc885-scc-uart", compatible = "fsl,mpc885-scc-uart",
"fsl,cpm1-scc-uart"; "fsl,cpm1-scc-uart";
reg = <a20 20 3d00 80>; reg = <0xa20 0x20 0x3d00 0x80>;
interrupts = <1d>; interrupts = <29>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
fsl,cpm-brg = <2>; fsl,cpm-brg = <2>;
fsl,cpm-command = <0040>; fsl,cpm-command = <0x40>;
linux,planetcore-label = "SCC2"; linux,planetcore-label = "SCC2";
}; };
...@@ -204,9 +205,9 @@ ...@@ -204,9 +205,9 @@
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,mpc885-usb", compatible = "fsl,mpc885-usb",
"fsl,cpm1-usb"; "fsl,cpm1-usb";
reg = <a00 18 1c00 80>; reg = <0xa00 0x18 0x1c00 0x80>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
interrupts = <1e>; interrupts = <30>;
fsl,cpm-command = <0000>; fsl,cpm-command = <0000>;
}; };
}; };
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* Based on sandpoint.dts * Based on sandpoint.dts
* *
* 2006 (c) G. Liakhovetski <g.liakhovetski@gmx.de> * 2006 (c) G. Liakhovetski <g.liakhovetski@gmx.de>
* Copyright 2008 Freescale Semiconductor, Inc.
* *
* This file is licensed under * This file is licensed under
* the terms of the GNU General Public License version 2. This program * the terms of the GNU General Public License version 2. This program
...@@ -17,6 +18,8 @@ XXXX add flash parts, rtc, ?? ...@@ -17,6 +18,8 @@ XXXX add flash parts, rtc, ??
*/ */
/dts-v1/;
/ { / {
model = "KuroboxHD"; model = "KuroboxHD";
compatible = "linkstation"; compatible = "linkstation";
...@@ -35,19 +38,19 @@ XXXX add flash parts, rtc, ?? ...@@ -35,19 +38,19 @@ XXXX add flash parts, rtc, ??
PowerPC,603e { /* Really 8241 */ PowerPC,603e { /* Really 8241 */
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
clock-frequency = <bebc200>; /* Fixed by bootloader */ clock-frequency = <200000000>; /* Fixed by bootloader */
timebase-frequency = <1743000>; /* Fixed by bootloader */ timebase-frequency = <24391680>; /* Fixed by bootloader */
bus-frequency = <0>; /* Fixed by bootloader */ bus-frequency = <0>; /* Fixed by bootloader */
/* Following required by dtc but not used */ /* Following required by dtc but not used */
i-cache-size = <4000>; i-cache-size = <0x4000>;
d-cache-size = <4000>; d-cache-size = <0x4000>;
}; };
}; };
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 04000000>; reg = <0x0 0x4000000>;
}; };
soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */
...@@ -56,26 +59,26 @@ XXXX add flash parts, rtc, ?? ...@@ -56,26 +59,26 @@ XXXX add flash parts, rtc, ??
device_type = "soc"; device_type = "soc";
compatible = "mpc10x"; compatible = "mpc10x";
store-gathering = <0>; /* 0 == off, !0 == on */ store-gathering = <0>; /* 0 == off, !0 == on */
reg = <80000000 00100000>; reg = <0x80000000 0x100000>;
ranges = <80000000 80000000 70000000 /* pci mem space */ ranges = <0x80000000 0x80000000 0x70000000 /* pci mem space */
fc000000 fc000000 00100000 /* EUMB */ 0xfc000000 0xfc000000 0x100000 /* EUMB */
fe000000 fe000000 00c00000 /* pci i/o space */ 0xfe000000 0xfe000000 0xc00000 /* pci i/o space */
fec00000 fec00000 00300000 /* pci cfg regs */ 0xfec00000 0xfec00000 0x300000 /* pci cfg regs */
fef00000 fef00000 00100000>; /* pci iack */ 0xfef00000 0xfef00000 0x100000>; /* pci iack */
i2c@80003000 { i2c@80003000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <80003000 1000>; reg = <0x80003000 0x1000>;
interrupts = <5 2>; interrupts = <5 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
rtc@32 { rtc@32 {
device_type = "rtc"; device_type = "rtc";
compatible = "ricoh,rs5c372a"; compatible = "ricoh,rs5c372a";
reg = <32>; reg = <0x32>;
}; };
}; };
...@@ -83,9 +86,9 @@ XXXX add flash parts, rtc, ?? ...@@ -83,9 +86,9 @@ XXXX add flash parts, rtc, ??
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <80004500 8>; reg = <0x80004500 0x8>;
clock-frequency = <5d08d88>; clock-frequency = <97553800>;
current-speed = <2580>; current-speed = <9600>;
interrupts = <9 0>; interrupts = <9 0>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -94,10 +97,10 @@ XXXX add flash parts, rtc, ?? ...@@ -94,10 +97,10 @@ XXXX add flash parts, rtc, ??
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <80004600 8>; reg = <0x80004600 0x8>;
clock-frequency = <5d08d88>; clock-frequency = <97553800>;
current-speed = <e100>; current-speed = <57600>;
interrupts = <a 0>; interrupts = <10 0>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -107,7 +110,7 @@ XXXX add flash parts, rtc, ?? ...@@ -107,7 +110,7 @@ XXXX add flash parts, rtc, ??
device_type = "open-pic"; device_type = "open-pic";
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
interrupt-controller; interrupt-controller;
reg = <80040000 40000>; reg = <0x80040000 0x40000>;
}; };
pci0: pci@fec00000 { pci0: pci@fec00000 {
...@@ -116,29 +119,29 @@ XXXX add flash parts, rtc, ?? ...@@ -116,29 +119,29 @@ XXXX add flash parts, rtc, ??
#interrupt-cells = <1>; #interrupt-cells = <1>;
device_type = "pci"; device_type = "pci";
compatible = "mpc10x-pci"; compatible = "mpc10x-pci";
reg = <fec00000 400000>; reg = <0xfec00000 0x400000>;
ranges = <01000000 0 0 fe000000 0 00c00000 ranges = <0x1000000 0x0 0x0 0xfe000000 0x0 0xc00000
02000000 0 80000000 80000000 0 70000000>; 0x2000000 0x0 0x80000000 0x80000000 0x0 0x70000000>;
bus-range = <0 ff>; bus-range = <0 255>;
clock-frequency = <7f28155>; clock-frequency = <133333333>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 11 - IRQ0 ETH */ /* IDSEL 11 - IRQ0 ETH */
5800 0 0 1 &mpic 0 1 0x5800 0x0 0x0 0x1 &mpic 0x0 0x1
5800 0 0 2 &mpic 1 1 0x5800 0x0 0x0 0x2 &mpic 0x1 0x1
5800 0 0 3 &mpic 2 1 0x5800 0x0 0x0 0x3 &mpic 0x2 0x1
5800 0 0 4 &mpic 3 1 0x5800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 12 - IRQ1 IDE0 */ /* IDSEL 12 - IRQ1 IDE0 */
6000 0 0 1 &mpic 1 1 0x6000 0x0 0x0 0x1 &mpic 0x1 0x1
6000 0 0 2 &mpic 2 1 0x6000 0x0 0x0 0x2 &mpic 0x2 0x1
6000 0 0 3 &mpic 3 1 0x6000 0x0 0x0 0x3 &mpic 0x3 0x1
6000 0 0 4 &mpic 0 1 0x6000 0x0 0x0 0x4 &mpic 0x0 0x1
/* IDSEL 14 - IRQ3 USB2.0 */ /* IDSEL 14 - IRQ3 USB2.0 */
7000 0 0 1 &mpic 3 1 0x7000 0x0 0x0 0x1 &mpic 0x3 0x1
7000 0 0 2 &mpic 3 1 0x7000 0x0 0x0 0x2 &mpic 0x3 0x1
7000 0 0 3 &mpic 3 1 0x7000 0x0 0x0 0x3 &mpic 0x3 0x1
7000 0 0 4 &mpic 3 1 0x7000 0x0 0x0 0x4 &mpic 0x3 0x1
>; >;
}; };
}; };
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* Based on sandpoint.dts * Based on sandpoint.dts
* *
* 2006 (c) G. Liakhovetski <g.liakhovetski@gmx.de> * 2006 (c) G. Liakhovetski <g.liakhovetski@gmx.de>
* Copyright 2008 Freescale Semiconductor, Inc.
* *
* This file is licensed under * This file is licensed under
* the terms of the GNU General Public License version 2. This program * the terms of the GNU General Public License version 2. This program
...@@ -17,6 +18,8 @@ XXXX add flash parts, rtc, ?? ...@@ -17,6 +18,8 @@ XXXX add flash parts, rtc, ??
*/ */
/dts-v1/;
/ { / {
model = "KuroboxHG"; model = "KuroboxHG";
compatible = "linkstation"; compatible = "linkstation";
...@@ -35,19 +38,19 @@ XXXX add flash parts, rtc, ?? ...@@ -35,19 +38,19 @@ XXXX add flash parts, rtc, ??
PowerPC,603e { /* Really 8241 */ PowerPC,603e { /* Really 8241 */
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
clock-frequency = <fdad680>; /* Fixed by bootloader */ clock-frequency = <266000000>; /* Fixed by bootloader */
timebase-frequency = <1F04000>; /* Fixed by bootloader */ timebase-frequency = <32522240>; /* Fixed by bootloader */
bus-frequency = <0>; /* Fixed by bootloader */ bus-frequency = <0>; /* Fixed by bootloader */
/* Following required by dtc but not used */ /* Following required by dtc but not used */
i-cache-size = <4000>; i-cache-size = <0x4000>;
d-cache-size = <4000>; d-cache-size = <0x4000>;
}; };
}; };
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 08000000>; reg = <0x0 0x8000000>;
}; };
soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */
...@@ -56,26 +59,26 @@ XXXX add flash parts, rtc, ?? ...@@ -56,26 +59,26 @@ XXXX add flash parts, rtc, ??
device_type = "soc"; device_type = "soc";
compatible = "mpc10x"; compatible = "mpc10x";
store-gathering = <0>; /* 0 == off, !0 == on */ store-gathering = <0>; /* 0 == off, !0 == on */
reg = <80000000 00100000>; reg = <0x80000000 0x100000>;
ranges = <80000000 80000000 70000000 /* pci mem space */ ranges = <0x80000000 0x80000000 0x70000000 /* pci mem space */
fc000000 fc000000 00100000 /* EUMB */ 0xfc000000 0xfc000000 0x100000 /* EUMB */
fe000000 fe000000 00c00000 /* pci i/o space */ 0xfe000000 0xfe000000 0xc00000 /* pci i/o space */
fec00000 fec00000 00300000 /* pci cfg regs */ 0xfec00000 0xfec00000 0x300000 /* pci cfg regs */
fef00000 fef00000 00100000>; /* pci iack */ 0xfef00000 0xfef00000 0x100000>; /* pci iack */
i2c@80003000 { i2c@80003000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <80003000 1000>; reg = <0x80003000 0x1000>;
interrupts = <5 2>; interrupts = <5 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
rtc@32 { rtc@32 {
device_type = "rtc"; device_type = "rtc";
compatible = "ricoh,rs5c372a"; compatible = "ricoh,rs5c372a";
reg = <32>; reg = <0x32>;
}; };
}; };
...@@ -83,9 +86,9 @@ XXXX add flash parts, rtc, ?? ...@@ -83,9 +86,9 @@ XXXX add flash parts, rtc, ??
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <80004500 8>; reg = <0x80004500 0x8>;
clock-frequency = <7c044a8>; clock-frequency = <130041000>;
current-speed = <2580>; current-speed = <9600>;
interrupts = <9 0>; interrupts = <9 0>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -94,10 +97,10 @@ XXXX add flash parts, rtc, ?? ...@@ -94,10 +97,10 @@ XXXX add flash parts, rtc, ??
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <80004600 8>; reg = <0x80004600 0x8>;
clock-frequency = <7c044a8>; clock-frequency = <130041000>;
current-speed = <e100>; current-speed = <57600>;
interrupts = <a 0>; interrupts = <10 0>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -107,7 +110,7 @@ XXXX add flash parts, rtc, ?? ...@@ -107,7 +110,7 @@ XXXX add flash parts, rtc, ??
device_type = "open-pic"; device_type = "open-pic";
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
interrupt-controller; interrupt-controller;
reg = <80040000 40000>; reg = <0x80040000 0x40000>;
}; };
pci0: pci@fec00000 { pci0: pci@fec00000 {
...@@ -116,29 +119,29 @@ XXXX add flash parts, rtc, ?? ...@@ -116,29 +119,29 @@ XXXX add flash parts, rtc, ??
#interrupt-cells = <1>; #interrupt-cells = <1>;
device_type = "pci"; device_type = "pci";
compatible = "mpc10x-pci"; compatible = "mpc10x-pci";
reg = <fec00000 400000>; reg = <0xfec00000 0x400000>;
ranges = <01000000 0 0 fe000000 0 00c00000 ranges = <0x1000000 0x0 0x0 0xfe000000 0x0 0xc00000
02000000 0 80000000 80000000 0 70000000>; 0x2000000 0x0 0x80000000 0x80000000 0x0 0x70000000>;
bus-range = <0 ff>; bus-range = <0 255>;
clock-frequency = <7f28155>; clock-frequency = <133333333>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 11 - IRQ0 ETH */ /* IDSEL 11 - IRQ0 ETH */
5800 0 0 1 &mpic 0 1 0x5800 0x0 0x0 0x1 &mpic 0x0 0x1
5800 0 0 2 &mpic 1 1 0x5800 0x0 0x0 0x2 &mpic 0x1 0x1
5800 0 0 3 &mpic 2 1 0x5800 0x0 0x0 0x3 &mpic 0x2 0x1
5800 0 0 4 &mpic 3 1 0x5800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 12 - IRQ1 IDE0 */ /* IDSEL 12 - IRQ1 IDE0 */
6000 0 0 1 &mpic 1 1 0x6000 0x0 0x0 0x1 &mpic 0x1 0x1
6000 0 0 2 &mpic 2 1 0x6000 0x0 0x0 0x2 &mpic 0x2 0x1
6000 0 0 3 &mpic 3 1 0x6000 0x0 0x0 0x3 &mpic 0x3 0x1
6000 0 0 4 &mpic 0 1 0x6000 0x0 0x0 0x4 &mpic 0x0 0x1
/* IDSEL 14 - IRQ3 USB2.0 */ /* IDSEL 14 - IRQ3 USB2.0 */
7000 0 0 1 &mpic 3 1 0x7000 0x0 0x0 0x1 &mpic 0x3 0x1
7000 0 0 2 &mpic 3 1 0x7000 0x0 0x0 0x2 &mpic 0x3 0x1
7000 0 0 3 &mpic 3 1 0x7000 0x0 0x0 0x3 &mpic 0x3 0x1
7000 0 0 4 &mpic 3 1 0x7000 0x0 0x0 0x4 &mpic 0x3 0x1
>; >;
}; };
}; };
......
/* /*
* MPC7448HPC2 (Taiga) board Device Tree Source * MPC7448HPC2 (Taiga) board Device Tree Source
* *
* Copyright 2006 Freescale Semiconductor Inc. * Copyright 2006, 2008 Freescale Semiconductor Inc.
* 2006 Roy Zang <Roy Zang at freescale.com>. * 2006 Roy Zang <Roy Zang at freescale.com>.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "mpc7448hpc2"; model = "mpc7448hpc2";
...@@ -23,11 +24,11 @@ ...@@ -23,11 +24,11 @@
PowerPC,7448@0 { PowerPC,7448@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K bytes d-cache-size = <0x8000>; // L1, 32K bytes
i-cache-size = <8000>; // L1, 32K bytes i-cache-size = <0x8000>; // L1, 32K bytes
timebase-frequency = <0>; // 33 MHz, from uboot timebase-frequency = <0>; // 33 MHz, from uboot
clock-frequency = <0>; // From U-Boot clock-frequency = <0>; // From U-Boot
bus-frequency = <0>; // From U-Boot bus-frequency = <0>; // From U-Boot
...@@ -36,7 +37,7 @@ ...@@ -36,7 +37,7 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 20000000 // DDR2 512M at 0 reg = <0x0 0x20000000 // DDR2 512M at 0
>; >;
}; };
...@@ -44,14 +45,14 @@ ...@@ -44,14 +45,14 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "tsi-bridge"; device_type = "tsi-bridge";
ranges = <00000000 c0000000 00010000>; ranges = <0x0 0xc0000000 0x10000>;
reg = <c0000000 00010000>; reg = <0xc0000000 0x10000>;
bus-frequency = <0>; bus-frequency = <0>;
i2c@7000 { i2c@7000 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <E 0>; interrupts = <14 0>;
reg = <7000 400>; reg = <0x7000 0x400>;
device_type = "i2c"; device_type = "i2c";
compatible = "tsi108-i2c"; compatible = "tsi108-i2c";
}; };
...@@ -59,20 +60,20 @@ ...@@ -59,20 +60,20 @@
MDIO: mdio@6000 { MDIO: mdio@6000 {
device_type = "mdio"; device_type = "mdio";
compatible = "tsi108-mdio"; compatible = "tsi108-mdio";
reg = <6000 50>; reg = <0x6000 0x50>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
phy8: ethernet-phy@8 { phy8: ethernet-phy@8 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <2 1>; interrupts = <2 1>;
reg = <8>; reg = <0x8>;
}; };
phy9: ethernet-phy@9 { phy9: ethernet-phy@9 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <2 1>; interrupts = <2 1>;
reg = <9>; reg = <0x9>;
}; };
}; };
...@@ -82,9 +83,9 @@ ...@@ -82,9 +83,9 @@
#size-cells = <0>; #size-cells = <0>;
device_type = "network"; device_type = "network";
compatible = "tsi108-ethernet"; compatible = "tsi108-ethernet";
reg = <6000 200>; reg = <0x6000 0x200>;
address = [ 00 06 D2 00 00 01 ]; address = [ 00 06 D2 00 00 01 ];
interrupts = <10 2>; interrupts = <16 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
mdio-handle = <&MDIO>; mdio-handle = <&MDIO>;
phy-handle = <&phy8>; phy-handle = <&phy8>;
...@@ -96,9 +97,9 @@ ...@@ -96,9 +97,9 @@
#size-cells = <0>; #size-cells = <0>;
device_type = "network"; device_type = "network";
compatible = "tsi108-ethernet"; compatible = "tsi108-ethernet";
reg = <6400 200>; reg = <0x6400 0x200>;
address = [ 00 06 D2 00 00 02 ]; address = [ 00 06 D2 00 00 02 ];
interrupts = <11 2>; interrupts = <17 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
mdio-handle = <&MDIO>; mdio-handle = <&MDIO>;
phy-handle = <&phy9>; phy-handle = <&phy9>;
...@@ -107,18 +108,18 @@ ...@@ -107,18 +108,18 @@
serial@7808 { serial@7808 {
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <7808 200>; reg = <0x7808 0x200>;
clock-frequency = <3f6b5a00>; clock-frequency = <1064000000>;
interrupts = <c 0>; interrupts = <12 0>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
serial@7c08 { serial@7c08 {
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <7c08 200>; reg = <0x7c08 0x200>;
clock-frequency = <3f6b5a00>; clock-frequency = <1064000000>;
interrupts = <d 0>; interrupts = <13 0>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -127,7 +128,7 @@ ...@@ -127,7 +128,7 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <7400 400>; reg = <0x7400 0x400>;
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
device_type = "open-pic"; device_type = "open-pic";
big-endian; big-endian;
...@@ -138,39 +139,39 @@ ...@@ -138,39 +139,39 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <1000 1000>; reg = <0x1000 0x1000>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 e0000000 e0000000 0 1A000000 ranges = <0x2000000 0x0 0xe0000000 0xe0000000 0x0 0x1a000000
01000000 0 00000000 fa000000 0 00010000>; 0x1000000 0x0 0x0 0xfa000000 0x0 0x10000>;
clock-frequency = <7f28154>; clock-frequency = <133333332>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <17 2>; interrupts = <23 2>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x11 */ /* IDSEL 0x11 */
0800 0 0 1 &RT0 24 0 0x800 0x0 0x0 0x1 &RT0 0x24 0x0
0800 0 0 2 &RT0 25 0 0x800 0x0 0x0 0x2 &RT0 0x25 0x0
0800 0 0 3 &RT0 26 0 0x800 0x0 0x0 0x3 &RT0 0x26 0x0
0800 0 0 4 &RT0 27 0 0x800 0x0 0x0 0x4 &RT0 0x27 0x0
/* IDSEL 0x12 */ /* IDSEL 0x12 */
1000 0 0 1 &RT0 25 0 0x1000 0x0 0x0 0x1 &RT0 0x25 0x0
1000 0 0 2 &RT0 26 0 0x1000 0x0 0x0 0x2 &RT0 0x26 0x0
1000 0 0 3 &RT0 27 0 0x1000 0x0 0x0 0x3 &RT0 0x27 0x0
1000 0 0 4 &RT0 24 0 0x1000 0x0 0x0 0x4 &RT0 0x24 0x0
/* IDSEL 0x13 */ /* IDSEL 0x13 */
1800 0 0 1 &RT0 26 0 0x1800 0x0 0x0 0x1 &RT0 0x26 0x0
1800 0 0 2 &RT0 27 0 0x1800 0x0 0x0 0x2 &RT0 0x27 0x0
1800 0 0 3 &RT0 24 0 0x1800 0x0 0x0 0x3 &RT0 0x24 0x0
1800 0 0 4 &RT0 25 0 0x1800 0x0 0x0 0x4 &RT0 0x25 0x0
/* IDSEL 0x14 */ /* IDSEL 0x14 */
2000 0 0 1 &RT0 27 0 0x2000 0x0 0x0 0x1 &RT0 0x27 0x0
2000 0 0 2 &RT0 24 0 0x2000 0x0 0x0 0x2 &RT0 0x24 0x0
2000 0 0 3 &RT0 25 0 0x2000 0x0 0x0 0x3 &RT0 0x25 0x0
2000 0 0 4 &RT0 26 0 0x2000 0x0 0x0 0x4 &RT0 0x26 0x0
>; >;
RT0: router@1180 { RT0: router@1180 {
...@@ -180,7 +181,7 @@ ...@@ -180,7 +181,7 @@
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
big-endian; big-endian;
interrupts = <17 2>; interrupts = <23 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
}; };
......
/* /*
* MPC8272 ADS Device Tree Source * MPC8272 ADS Device Tree Source
* *
* Copyright 2005 Freescale Semiconductor Inc. * Copyright 2005,2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC8272ADS"; model = "MPC8272ADS";
compatible = "fsl,mpc8272ads"; compatible = "fsl,mpc8272ads";
...@@ -21,11 +23,11 @@ ...@@ -21,11 +23,11 @@
PowerPC,8272@0 { PowerPC,8272@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <d#32>; d-cache-line-size = <32>;
i-cache-line-size = <d#32>; i-cache-line-size = <32>;
d-cache-size = <d#16384>; d-cache-size = <16384>;
i-cache-size = <d#16384>; i-cache-size = <16384>;
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
...@@ -34,7 +36,7 @@ ...@@ -34,7 +36,7 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <0 0>; reg = <0x0 0x0>;
}; };
localbus@f0010100 { localbus@f0010100 {
...@@ -42,21 +44,21 @@ ...@@ -42,21 +44,21 @@
"fsl,pq2-localbus"; "fsl,pq2-localbus";
#address-cells = <2>; #address-cells = <2>;
#size-cells = <1>; #size-cells = <1>;
reg = <f0010100 40>; reg = <0xf0010100 0x40>;
ranges = <0 0 fe000000 02000000 ranges = <0x0 0x0 0xfe000000 0x2000000
1 0 f4500000 00008000 0x1 0x0 0xf4500000 0x8000
3 0 f8200000 00008000>; 0x3 0x0 0xf8200000 0x8000>;
flash@0,0 { flash@0,0 {
compatible = "jedec-flash"; compatible = "jedec-flash";
reg = <0 0 2000000>; reg = <0x0 0x0 0x2000000>;
bank-width = <4>; bank-width = <4>;
device-width = <1>; device-width = <1>;
}; };
board-control@1,0 { board-control@1,0 {
reg = <1 0 20>; reg = <0x1 0x0 0x20>;
compatible = "fsl,mpc8272ads-bcsr"; compatible = "fsl,mpc8272ads-bcsr";
}; };
...@@ -65,46 +67,46 @@ ...@@ -65,46 +67,46 @@
"fsl,pq2ads-pci-pic"; "fsl,pq2ads-pci-pic";
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupt-controller; interrupt-controller;
reg = <3 0 8>; reg = <0x3 0x0 0x8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <14 8>; interrupts = <20 8>;
}; };
}; };
pci@f0010800 { pci@f0010800 {
device_type = "pci"; device_type = "pci";
reg = <f0010800 10c f00101ac 8 f00101c4 8>; reg = <0xf0010800 0x10c 0xf00101ac 0x8 0xf00101c4 0x8>;
compatible = "fsl,mpc8272-pci", "fsl,pq2-pci"; compatible = "fsl,mpc8272-pci", "fsl,pq2-pci";
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
clock-frequency = <d#66666666>; clock-frequency = <66666666>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x16 */ /* IDSEL 0x16 */
b000 0 0 1 &PCI_PIC 0 0xb000 0x0 0x0 0x1 &PCI_PIC 0
b000 0 0 2 &PCI_PIC 1 0xb000 0x0 0x0 0x2 &PCI_PIC 1
b000 0 0 3 &PCI_PIC 2 0xb000 0x0 0x0 0x3 &PCI_PIC 2
b000 0 0 4 &PCI_PIC 3 0xb000 0x0 0x0 0x4 &PCI_PIC 3
/* IDSEL 0x17 */ /* IDSEL 0x17 */
b800 0 0 1 &PCI_PIC 4 0xb800 0x0 0x0 0x1 &PCI_PIC 4
b800 0 0 2 &PCI_PIC 5 0xb800 0x0 0x0 0x2 &PCI_PIC 5
b800 0 0 3 &PCI_PIC 6 0xb800 0x0 0x0 0x3 &PCI_PIC 6
b800 0 0 4 &PCI_PIC 7 0xb800 0x0 0x0 0x4 &PCI_PIC 7
/* IDSEL 0x18 */ /* IDSEL 0x18 */
c000 0 0 1 &PCI_PIC 8 0xc000 0x0 0x0 0x1 &PCI_PIC 8
c000 0 0 2 &PCI_PIC 9 0xc000 0x0 0x0 0x2 &PCI_PIC 9
c000 0 0 3 &PCI_PIC a 0xc000 0x0 0x0 0x3 &PCI_PIC 10
c000 0 0 4 &PCI_PIC b>; 0xc000 0x0 0x0 0x4 &PCI_PIC 11>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <12 8>; interrupts = <18 8>;
ranges = <42000000 0 80000000 80000000 0 20000000 ranges = <0x42000000 0x0 0x80000000 0x80000000 0x0 0x20000000
02000000 0 a0000000 a0000000 0 20000000 0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
01000000 0 00000000 f6000000 0 02000000>; 0x1000000 0x0 0x0 0xf6000000 0x0 0x2000000>;
}; };
soc@f0000000 { soc@f0000000 {
...@@ -112,26 +114,26 @@ ...@@ -112,26 +114,26 @@
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
compatible = "fsl,mpc8272", "fsl,pq2-soc"; compatible = "fsl,mpc8272", "fsl,pq2-soc";
ranges = <00000000 f0000000 00053000>; ranges = <0x0 0xf0000000 0x53000>;
// Temporary -- will go away once kernel uses ranges for get_immrbase(). // Temporary -- will go away once kernel uses ranges for get_immrbase().
reg = <f0000000 00053000>; reg = <0xf0000000 0x53000>;
cpm@119c0 { cpm@119c0 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
compatible = "fsl,mpc8272-cpm", "fsl,cpm2"; compatible = "fsl,mpc8272-cpm", "fsl,cpm2";
reg = <119c0 30>; reg = <0x119c0 0x30>;
ranges; ranges;
muram@0 { muram@0 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0 10000>; ranges = <0x0 0x0 0x10000>;
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 2000 9800 800>; reg = <0x0 0x2000 0x9800 0x800>;
}; };
}; };
...@@ -139,29 +141,29 @@ ...@@ -139,29 +141,29 @@
compatible = "fsl,mpc8272-brg", compatible = "fsl,mpc8272-brg",
"fsl,cpm2-brg", "fsl,cpm2-brg",
"fsl,cpm-brg"; "fsl,cpm-brg";
reg = <119f0 10 115f0 10>; reg = <0x119f0 0x10 0x115f0 0x10>;
}; };
serial@11a00 { serial@11a00 {
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc8272-scc-uart", compatible = "fsl,mpc8272-scc-uart",
"fsl,cpm2-scc-uart"; "fsl,cpm2-scc-uart";
reg = <11a00 20 8000 100>; reg = <0x11a00 0x20 0x8000 0x100>;
interrupts = <28 8>; interrupts = <40 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
fsl,cpm-brg = <1>; fsl,cpm-brg = <1>;
fsl,cpm-command = <00800000>; fsl,cpm-command = <0x800000>;
}; };
serial@11a60 { serial@11a60 {
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc8272-scc-uart", compatible = "fsl,mpc8272-scc-uart",
"fsl,cpm2-scc-uart"; "fsl,cpm2-scc-uart";
reg = <11a60 20 8300 100>; reg = <0x11a60 0x20 0x8300 0x100>;
interrupts = <2b 8>; interrupts = <43 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
fsl,cpm-brg = <4>; fsl,cpm-brg = <4>;
fsl,cpm-command = <0ce00000>; fsl,cpm-command = <0xce00000>;
}; };
mdio@10d40 { mdio@10d40 {
...@@ -169,23 +171,23 @@ ...@@ -169,23 +171,23 @@
compatible = "fsl,mpc8272ads-mdio-bitbang", compatible = "fsl,mpc8272ads-mdio-bitbang",
"fsl,mpc8272-mdio-bitbang", "fsl,mpc8272-mdio-bitbang",
"fsl,cpm2-mdio-bitbang"; "fsl,cpm2-mdio-bitbang";
reg = <10d40 14>; reg = <0x10d40 0x14>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
fsl,mdio-pin = <12>; fsl,mdio-pin = <18>;
fsl,mdc-pin = <13>; fsl,mdc-pin = <19>;
PHY0: ethernet-phy@0 { PHY0: ethernet-phy@0 {
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <17 8>; interrupts = <23 8>;
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
PHY1: ethernet-phy@1 { PHY1: ethernet-phy@1 {
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <17 8>; interrupts = <23 8>;
reg = <3>; reg = <0x3>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -194,33 +196,33 @@ ...@@ -194,33 +196,33 @@
device_type = "network"; device_type = "network";
compatible = "fsl,mpc8272-fcc-enet", compatible = "fsl,mpc8272-fcc-enet",
"fsl,cpm2-fcc-enet"; "fsl,cpm2-fcc-enet";
reg = <11300 20 8400 100 11390 1>; reg = <0x11300 0x20 0x8400 0x100 0x11390 0x1>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <20 8>; interrupts = <32 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
phy-handle = <&PHY0>; phy-handle = <&PHY0>;
linux,network-index = <0>; linux,network-index = <0>;
fsl,cpm-command = <12000300>; fsl,cpm-command = <0x12000300>;
}; };
ethernet@11320 { ethernet@11320 {
device_type = "network"; device_type = "network";
compatible = "fsl,mpc8272-fcc-enet", compatible = "fsl,mpc8272-fcc-enet",
"fsl,cpm2-fcc-enet"; "fsl,cpm2-fcc-enet";
reg = <11320 20 8500 100 113b0 1>; reg = <0x11320 0x20 0x8500 0x100 0x113b0 0x1>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <21 8>; interrupts = <33 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
phy-handle = <&PHY1>; phy-handle = <&PHY1>;
linux,network-index = <1>; linux,network-index = <1>;
fsl,cpm-command = <16200300>; fsl,cpm-command = <0x16200300>;
}; };
}; };
PIC: interrupt-controller@10c00 { PIC: interrupt-controller@10c00 {
#interrupt-cells = <2>; #interrupt-cells = <2>;
interrupt-controller; interrupt-controller;
reg = <10c00 80>; reg = <0x10c00 0x80>;
compatible = "fsl,mpc8272-pic", "fsl,cpm2-pic"; compatible = "fsl,mpc8272-pic", "fsl,cpm2-pic";
}; };
...@@ -232,14 +234,14 @@ ...@@ -232,14 +234,14 @@
"fsl,talitos-sec2", "fsl,talitos-sec2",
"fsl,talitos", "fsl,talitos",
"talitos"; "talitos";
reg = <30000 10000>; reg = <0x30000 0x10000>;
interrupts = <b 8>; interrupts = <11 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
num-channels = <4>; num-channels = <4>;
channel-fifo-len = <18>; channel-fifo-len = <24>;
exec-units-mask = <0000007e>; exec-units-mask = <0x7e>;
/* desc mask is for rev1.x, we need runtime fixup for >=2.x */ /* desc mask is for rev1.x, we need runtime fixup for >=2.x */
descriptor-types-mask = <01010ebf>; descriptor-types-mask = <0x1010ebf>;
}; };
}; };
......
...@@ -255,9 +255,7 @@ ...@@ -255,9 +255,7 @@
enet0: ucc@2200 { enet0: ucc@2200 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC";
cell-index = <3>; cell-index = <3>;
device-id = <3>;
reg = <0x2200 0x200>; reg = <0x2200 0x200>;
interrupts = <34>; interrupts = <34>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
...@@ -271,9 +269,7 @@ ...@@ -271,9 +269,7 @@
enet1: ucc@3200 { enet1: ucc@3200 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC";
cell-index = <4>; cell-index = <4>;
device-id = <4>;
reg = <0x3200 0x200>; reg = <0x3200 0x200>;
interrupts = <35>; interrupts = <35>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
...@@ -287,8 +283,7 @@ ...@@ -287,8 +283,7 @@
ucc@2400 { ucc@2400 {
device_type = "serial"; device_type = "serial";
compatible = "ucc_uart"; compatible = "ucc_uart";
model = "UCC"; cell-index = <5>; /* The UCC number, 1-7*/
device-id = <5>; /* The UCC number, 1-7*/
port-number = <0>; /* Which ttyQEx device */ port-number = <0>; /* Which ttyQEx device */
soft-uart; /* We need Soft-UART */ soft-uart; /* We need Soft-UART */
reg = <0x2400 0x200>; reg = <0x2400 0x200>;
......
...@@ -208,9 +208,7 @@ ...@@ -208,9 +208,7 @@
enet0: ucc@3000 { enet0: ucc@3000 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC";
cell-index = <2>; cell-index = <2>;
device-id = <2>;
reg = <0x3000 0x200>; reg = <0x3000 0x200>;
interrupts = <33>; interrupts = <33>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
...@@ -224,9 +222,7 @@ ...@@ -224,9 +222,7 @@
enet1: ucc@2200 { enet1: ucc@2200 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC";
cell-index = <3>; cell-index = <3>;
device-id = <3>;
reg = <0x2200 0x200>; reg = <0x2200 0x200>;
interrupts = <34>; interrupts = <34>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
......
...@@ -257,9 +257,7 @@ ...@@ -257,9 +257,7 @@
enet0: ucc@2000 { enet0: ucc@2000 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC";
cell-index = <1>; cell-index = <1>;
device-id = <1>;
reg = <0x2000 0x200>; reg = <0x2000 0x200>;
interrupts = <32>; interrupts = <32>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
...@@ -274,9 +272,7 @@ ...@@ -274,9 +272,7 @@
enet1: ucc@3000 { enet1: ucc@3000 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC";
cell-index = <2>; cell-index = <2>;
device-id = <2>;
reg = <0x3000 0x200>; reg = <0x3000 0x200>;
interrupts = <33>; interrupts = <33>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
......
/* /*
* MPC8540 ADS Device Tree Source * MPC8540 ADS Device Tree Source
* *
* Copyright 2006 Freescale Semiconductor Inc. * Copyright 2006, 2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC8540ADS"; model = "MPC8540ADS";
...@@ -31,11 +32,11 @@ ...@@ -31,11 +32,11 @@
PowerPC,8540@0 { PowerPC,8540@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; // 33 MHz, from uboot timebase-frequency = <0>; // 33 MHz, from uboot
bus-frequency = <0>; // 166 MHz bus-frequency = <0>; // 166 MHz
clock-frequency = <0>; // 825 MHz, from uboot clock-frequency = <0>; // 825 MHz, from uboot
...@@ -44,31 +45,31 @@ ...@@ -44,31 +45,31 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 08000000>; // 128M at 0x0 reg = <0x0 0x8000000>; // 128M at 0x0
}; };
soc8540@e0000000 { soc8540@e0000000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 e0000000 00100000>; ranges = <0x0 0xe0000000 0x100000>;
reg = <e0000000 00100000>; // CCSRBAR 1M reg = <0xe0000000 0x100000>; // CCSRBAR 1M
bus-frequency = <0>; bus-frequency = <0>;
memory-controller@2000 { memory-controller@2000 {
compatible = "fsl,8540-memory-controller"; compatible = "fsl,8540-memory-controller";
reg = <2000 1000>; reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
l2-cache-controller@20000 { l2-cache-controller@20000 {
compatible = "fsl,8540-l2-cache-controller"; compatible = "fsl,8540-l2-cache-controller";
reg = <20000 1000>; reg = <0x20000 0x1000>;
cache-line-size = <20>; // 32 bytes cache-line-size = <32>; // 32 bytes
cache-size = <40000>; // L2, 256K cache-size = <0x40000>; // L2, 256K
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <10 2>; interrupts = <16 2>;
}; };
i2c@3000 { i2c@3000 {
...@@ -76,8 +77,8 @@ ...@@ -76,8 +77,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3000 100>; reg = <0x3000 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -86,24 +87,24 @@ ...@@ -86,24 +87,24 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,gianfar-mdio"; compatible = "fsl,gianfar-mdio";
reg = <24520 20>; reg = <0x24520 0x20>;
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy1: ethernet-phy@1 { phy1: ethernet-phy@1 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy3: ethernet-phy@3 { phy3: ethernet-phy@3 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <7 1>; interrupts = <7 1>;
reg = <3>; reg = <0x3>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -113,9 +114,9 @@ ...@@ -113,9 +114,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <24000 1000>; reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1d 2 1e 2 22 2>; interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy0>; phy-handle = <&phy0>;
}; };
...@@ -125,9 +126,9 @@ ...@@ -125,9 +126,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <25000 1000>; reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <23 2 24 2 28 2>; interrupts = <35 2 36 2 40 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy1>; phy-handle = <&phy1>;
}; };
...@@ -137,9 +138,9 @@ ...@@ -137,9 +138,9 @@
device_type = "network"; device_type = "network";
model = "FEC"; model = "FEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <26000 1000>; reg = <0x26000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <29 2>; interrupts = <41 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy3>; phy-handle = <&phy3>;
}; };
...@@ -148,9 +149,9 @@ ...@@ -148,9 +149,9 @@
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4500 100>; // reg base, size reg = <0x4500 0x100>; // reg base, size
clock-frequency = <0>; // should we fill in in uboot? clock-frequency = <0>; // should we fill in in uboot?
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -158,9 +159,9 @@ ...@@ -158,9 +159,9 @@
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4600 100>; // reg base, size reg = <0x4600 0x100>; // reg base, size
clock-frequency = <0>; // should we fill in in uboot? clock-frequency = <0>; // should we fill in in uboot?
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
mpic: pic@40000 { mpic: pic@40000 {
...@@ -168,7 +169,7 @@ ...@@ -168,7 +169,7 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <40000 40000>; reg = <0x40000 0x40000>;
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
device_type = "open-pic"; device_type = "open-pic";
big-endian; big-endian;
...@@ -177,90 +178,90 @@ ...@@ -177,90 +178,90 @@
pci0: pci@e0008000 { pci0: pci@e0008000 {
cell-index = <0>; cell-index = <0>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x02 */ /* IDSEL 0x02 */
1000 0 0 1 &mpic 1 1 0x1000 0x0 0x0 0x1 &mpic 0x1 0x1
1000 0 0 2 &mpic 2 1 0x1000 0x0 0x0 0x2 &mpic 0x2 0x1
1000 0 0 3 &mpic 3 1 0x1000 0x0 0x0 0x3 &mpic 0x3 0x1
1000 0 0 4 &mpic 4 1 0x1000 0x0 0x0 0x4 &mpic 0x4 0x1
/* IDSEL 0x03 */ /* IDSEL 0x03 */
1800 0 0 1 &mpic 4 1 0x1800 0x0 0x0 0x1 &mpic 0x4 0x1
1800 0 0 2 &mpic 1 1 0x1800 0x0 0x0 0x2 &mpic 0x1 0x1
1800 0 0 3 &mpic 2 1 0x1800 0x0 0x0 0x3 &mpic 0x2 0x1
1800 0 0 4 &mpic 3 1 0x1800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x04 */ /* IDSEL 0x04 */
2000 0 0 1 &mpic 3 1 0x2000 0x0 0x0 0x1 &mpic 0x3 0x1
2000 0 0 2 &mpic 4 1 0x2000 0x0 0x0 0x2 &mpic 0x4 0x1
2000 0 0 3 &mpic 1 1 0x2000 0x0 0x0 0x3 &mpic 0x1 0x1
2000 0 0 4 &mpic 2 1 0x2000 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x05 */ /* IDSEL 0x05 */
2800 0 0 1 &mpic 2 1 0x2800 0x0 0x0 0x1 &mpic 0x2 0x1
2800 0 0 2 &mpic 3 1 0x2800 0x0 0x0 0x2 &mpic 0x3 0x1
2800 0 0 3 &mpic 4 1 0x2800 0x0 0x0 0x3 &mpic 0x4 0x1
2800 0 0 4 &mpic 1 1 0x2800 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x0c */ /* IDSEL 0x0c */
6000 0 0 1 &mpic 1 1 0x6000 0x0 0x0 0x1 &mpic 0x1 0x1
6000 0 0 2 &mpic 2 1 0x6000 0x0 0x0 0x2 &mpic 0x2 0x1
6000 0 0 3 &mpic 3 1 0x6000 0x0 0x0 0x3 &mpic 0x3 0x1
6000 0 0 4 &mpic 4 1 0x6000 0x0 0x0 0x4 &mpic 0x4 0x1
/* IDSEL 0x0d */ /* IDSEL 0x0d */
6800 0 0 1 &mpic 4 1 0x6800 0x0 0x0 0x1 &mpic 0x4 0x1
6800 0 0 2 &mpic 1 1 0x6800 0x0 0x0 0x2 &mpic 0x1 0x1
6800 0 0 3 &mpic 2 1 0x6800 0x0 0x0 0x3 &mpic 0x2 0x1
6800 0 0 4 &mpic 3 1 0x6800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x0e */ /* IDSEL 0x0e */
7000 0 0 1 &mpic 3 1 0x7000 0x0 0x0 0x1 &mpic 0x3 0x1
7000 0 0 2 &mpic 4 1 0x7000 0x0 0x0 0x2 &mpic 0x4 0x1
7000 0 0 3 &mpic 1 1 0x7000 0x0 0x0 0x3 &mpic 0x1 0x1
7000 0 0 4 &mpic 2 1 0x7000 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x0f */ /* IDSEL 0x0f */
7800 0 0 1 &mpic 2 1 0x7800 0x0 0x0 0x1 &mpic 0x2 0x1
7800 0 0 2 &mpic 3 1 0x7800 0x0 0x0 0x2 &mpic 0x3 0x1
7800 0 0 3 &mpic 4 1 0x7800 0x0 0x0 0x3 &mpic 0x4 0x1
7800 0 0 4 &mpic 1 1 0x7800 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x12 */ /* IDSEL 0x12 */
9000 0 0 1 &mpic 1 1 0x9000 0x0 0x0 0x1 &mpic 0x1 0x1
9000 0 0 2 &mpic 2 1 0x9000 0x0 0x0 0x2 &mpic 0x2 0x1
9000 0 0 3 &mpic 3 1 0x9000 0x0 0x0 0x3 &mpic 0x3 0x1
9000 0 0 4 &mpic 4 1 0x9000 0x0 0x0 0x4 &mpic 0x4 0x1
/* IDSEL 0x13 */ /* IDSEL 0x13 */
9800 0 0 1 &mpic 4 1 0x9800 0x0 0x0 0x1 &mpic 0x4 0x1
9800 0 0 2 &mpic 1 1 0x9800 0x0 0x0 0x2 &mpic 0x1 0x1
9800 0 0 3 &mpic 2 1 0x9800 0x0 0x0 0x3 &mpic 0x2 0x1
9800 0 0 4 &mpic 3 1 0x9800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x14 */ /* IDSEL 0x14 */
a000 0 0 1 &mpic 3 1 0xa000 0x0 0x0 0x1 &mpic 0x3 0x1
a000 0 0 2 &mpic 4 1 0xa000 0x0 0x0 0x2 &mpic 0x4 0x1
a000 0 0 3 &mpic 1 1 0xa000 0x0 0x0 0x3 &mpic 0x1 0x1
a000 0 0 4 &mpic 2 1 0xa000 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x15 */ /* IDSEL 0x15 */
a800 0 0 1 &mpic 2 1 0xa800 0x0 0x0 0x1 &mpic 0x2 0x1
a800 0 0 2 &mpic 3 1 0xa800 0x0 0x0 0x2 &mpic 0x3 0x1
a800 0 0 3 &mpic 4 1 0xa800 0x0 0x0 0x3 &mpic 0x4 0x1
a800 0 0 4 &mpic 1 1>; 0xa800 0x0 0x0 0x4 &mpic 0x1 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <18 2>; interrupts = <24 2>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 80000000 80000000 0 20000000 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
01000000 0 00000000 e2000000 0 00100000>; 0x1000000 0x0 0x0 0xe2000000 0x0 0x100000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0008000 1000>; reg = <0xe0008000 0x1000>;
compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
}; };
......
/* /*
* MPC8541 CDS Device Tree Source * MPC8541 CDS Device Tree Source
* *
* Copyright 2006 Freescale Semiconductor Inc. * Copyright 2006, 2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC8541CDS"; model = "MPC8541CDS";
...@@ -31,11 +32,11 @@ ...@@ -31,11 +32,11 @@
PowerPC,8541@0 { PowerPC,8541@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; // 33 MHz, from uboot timebase-frequency = <0>; // 33 MHz, from uboot
bus-frequency = <0>; // 166 MHz bus-frequency = <0>; // 166 MHz
clock-frequency = <0>; // 825 MHz, from uboot clock-frequency = <0>; // 825 MHz, from uboot
...@@ -44,31 +45,31 @@ ...@@ -44,31 +45,31 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 08000000>; // 128M at 0x0 reg = <0x0 0x8000000>; // 128M at 0x0
}; };
soc8541@e0000000 { soc8541@e0000000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 e0000000 00100000>; ranges = <0x0 0xe0000000 0x100000>;
reg = <e0000000 00001000>; // CCSRBAR 1M reg = <0xe0000000 0x1000>; // CCSRBAR 1M
bus-frequency = <0>; bus-frequency = <0>;
memory-controller@2000 { memory-controller@2000 {
compatible = "fsl,8541-memory-controller"; compatible = "fsl,8541-memory-controller";
reg = <2000 1000>; reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
l2-cache-controller@20000 { l2-cache-controller@20000 {
compatible = "fsl,8541-l2-cache-controller"; compatible = "fsl,8541-l2-cache-controller";
reg = <20000 1000>; reg = <0x20000 0x1000>;
cache-line-size = <20>; // 32 bytes cache-line-size = <32>; // 32 bytes
cache-size = <40000>; // L2, 256K cache-size = <0x40000>; // L2, 256K
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <10 2>; interrupts = <16 2>;
}; };
i2c@3000 { i2c@3000 {
...@@ -76,8 +77,8 @@ ...@@ -76,8 +77,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3000 100>; reg = <0x3000 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -86,18 +87,18 @@ ...@@ -86,18 +87,18 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,gianfar-mdio"; compatible = "fsl,gianfar-mdio";
reg = <24520 20>; reg = <0x24520 0x20>;
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy1: ethernet-phy@1 { phy1: ethernet-phy@1 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -107,9 +108,9 @@ ...@@ -107,9 +108,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <24000 1000>; reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1d 2 1e 2 22 2>; interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy0>; phy-handle = <&phy0>;
}; };
...@@ -119,9 +120,9 @@ ...@@ -119,9 +120,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <25000 1000>; reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <23 2 24 2 28 2>; interrupts = <35 2 36 2 40 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy1>; phy-handle = <&phy1>;
}; };
...@@ -130,9 +131,9 @@ ...@@ -130,9 +131,9 @@
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4500 100>; // reg base, size reg = <0x4500 0x100>; // reg base, size
clock-frequency = <0>; // should we fill in in uboot? clock-frequency = <0>; // should we fill in in uboot?
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -140,9 +141,9 @@ ...@@ -140,9 +141,9 @@
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4600 100>; // reg base, size reg = <0x4600 0x100>; // reg base, size
clock-frequency = <0>; // should we fill in in uboot? clock-frequency = <0>; // should we fill in in uboot?
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -151,7 +152,7 @@ ...@@ -151,7 +152,7 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <40000 40000>; reg = <0x40000 0x40000>;
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
device_type = "open-pic"; device_type = "open-pic";
big-endian; big-endian;
...@@ -161,17 +162,17 @@ ...@@ -161,17 +162,17 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
compatible = "fsl,mpc8541-cpm", "fsl,cpm2"; compatible = "fsl,mpc8541-cpm", "fsl,cpm2";
reg = <919c0 30>; reg = <0x919c0 0x30>;
ranges; ranges;
muram@80000 { muram@80000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 80000 10000>; ranges = <0x0 0x80000 0x10000>;
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 2000 9000 1000>; reg = <0x0 0x2000 0x9000 0x1000>;
}; };
}; };
...@@ -179,16 +180,16 @@ ...@@ -179,16 +180,16 @@
compatible = "fsl,mpc8541-brg", compatible = "fsl,mpc8541-brg",
"fsl,cpm2-brg", "fsl,cpm2-brg",
"fsl,cpm-brg"; "fsl,cpm-brg";
reg = <919f0 10 915f0 10>; reg = <0x919f0 0x10 0x915f0 0x10>;
}; };
cpmpic: pic@90c00 { cpmpic: pic@90c00 {
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
interrupts = <2e 2>; interrupts = <46 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
reg = <90c00 80>; reg = <0x90c00 0x80>;
compatible = "fsl,mpc8541-cpm-pic", "fsl,cpm2-pic"; compatible = "fsl,mpc8541-cpm-pic", "fsl,cpm2-pic";
}; };
}; };
...@@ -196,68 +197,68 @@ ...@@ -196,68 +197,68 @@
pci0: pci@e0008000 { pci0: pci@e0008000 {
cell-index = <0>; cell-index = <0>;
interrupt-map-mask = <1f800 0 0 7>; interrupt-map-mask = <0x1f800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x10 */ /* IDSEL 0x10 */
08000 0 0 1 &mpic 0 1 0x8000 0x0 0x0 0x1 &mpic 0x0 0x1
08000 0 0 2 &mpic 1 1 0x8000 0x0 0x0 0x2 &mpic 0x1 0x1
08000 0 0 3 &mpic 2 1 0x8000 0x0 0x0 0x3 &mpic 0x2 0x1
08000 0 0 4 &mpic 3 1 0x8000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x11 */ /* IDSEL 0x11 */
08800 0 0 1 &mpic 0 1 0x8800 0x0 0x0 0x1 &mpic 0x0 0x1
08800 0 0 2 &mpic 1 1 0x8800 0x0 0x0 0x2 &mpic 0x1 0x1
08800 0 0 3 &mpic 2 1 0x8800 0x0 0x0 0x3 &mpic 0x2 0x1
08800 0 0 4 &mpic 3 1 0x8800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x12 (Slot 1) */ /* IDSEL 0x12 (Slot 1) */
09000 0 0 1 &mpic 0 1 0x9000 0x0 0x0 0x1 &mpic 0x0 0x1
09000 0 0 2 &mpic 1 1 0x9000 0x0 0x0 0x2 &mpic 0x1 0x1
09000 0 0 3 &mpic 2 1 0x9000 0x0 0x0 0x3 &mpic 0x2 0x1
09000 0 0 4 &mpic 3 1 0x9000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x13 (Slot 2) */ /* IDSEL 0x13 (Slot 2) */
09800 0 0 1 &mpic 1 1 0x9800 0x0 0x0 0x1 &mpic 0x1 0x1
09800 0 0 2 &mpic 2 1 0x9800 0x0 0x0 0x2 &mpic 0x2 0x1
09800 0 0 3 &mpic 3 1 0x9800 0x0 0x0 0x3 &mpic 0x3 0x1
09800 0 0 4 &mpic 0 1 0x9800 0x0 0x0 0x4 &mpic 0x0 0x1
/* IDSEL 0x14 (Slot 3) */ /* IDSEL 0x14 (Slot 3) */
0a000 0 0 1 &mpic 2 1 0xa000 0x0 0x0 0x1 &mpic 0x2 0x1
0a000 0 0 2 &mpic 3 1 0xa000 0x0 0x0 0x2 &mpic 0x3 0x1
0a000 0 0 3 &mpic 0 1 0xa000 0x0 0x0 0x3 &mpic 0x0 0x1
0a000 0 0 4 &mpic 1 1 0xa000 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x15 (Slot 4) */ /* IDSEL 0x15 (Slot 4) */
0a800 0 0 1 &mpic 3 1 0xa800 0x0 0x0 0x1 &mpic 0x3 0x1
0a800 0 0 2 &mpic 0 1 0xa800 0x0 0x0 0x2 &mpic 0x0 0x1
0a800 0 0 3 &mpic 1 1 0xa800 0x0 0x0 0x3 &mpic 0x1 0x1
0a800 0 0 4 &mpic 2 1 0xa800 0x0 0x0 0x4 &mpic 0x2 0x1
/* Bus 1 (Tundra Bridge) */ /* Bus 1 (Tundra Bridge) */
/* IDSEL 0x12 (ISA bridge) */ /* IDSEL 0x12 (ISA bridge) */
19000 0 0 1 &mpic 0 1 0x19000 0x0 0x0 0x1 &mpic 0x0 0x1
19000 0 0 2 &mpic 1 1 0x19000 0x0 0x0 0x2 &mpic 0x1 0x1
19000 0 0 3 &mpic 2 1 0x19000 0x0 0x0 0x3 &mpic 0x2 0x1
19000 0 0 4 &mpic 3 1>; 0x19000 0x0 0x0 0x4 &mpic 0x3 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <18 2>; interrupts = <24 2>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 80000000 80000000 0 20000000 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
01000000 0 00000000 e2000000 0 00100000>; 0x1000000 0x0 0x0 0xe2000000 0x0 0x100000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0008000 1000>; reg = <0xe0008000 0x1000>;
compatible = "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
i8259@19000 { i8259@19000 {
interrupt-controller; interrupt-controller;
device_type = "interrupt-controller"; device_type = "interrupt-controller";
reg = <19000 0 0 0 1>; reg = <0x19000 0x0 0x0 0x0 0x1>;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
compatible = "chrp,iic"; compatible = "chrp,iic";
...@@ -268,24 +269,24 @@ ...@@ -268,24 +269,24 @@
pci1: pci@e0009000 { pci1: pci@e0009000 {
cell-index = <1>; cell-index = <1>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x15 */ /* IDSEL 0x15 */
a800 0 0 1 &mpic b 1 0xa800 0x0 0x0 0x1 &mpic 0xb 0x1
a800 0 0 2 &mpic b 1 0xa800 0x0 0x0 0x2 &mpic 0xb 0x1
a800 0 0 3 &mpic b 1 0xa800 0x0 0x0 0x3 &mpic 0xb 0x1
a800 0 0 4 &mpic b 1>; 0xa800 0x0 0x0 0x4 &mpic 0xb 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <19 2>; interrupts = <25 2>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 a0000000 a0000000 0 20000000 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
01000000 0 00000000 e3000000 0 00100000>; 0x1000000 0x0 0x0 0xe3000000 0x0 0x100000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0009000 1000>; reg = <0xe0009000 0x1000>;
compatible = "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
}; };
......
/* /*
* MPC8544 DS Device Tree Source * MPC8544 DS Device Tree Source
* *
* Copyright 2007 Freescale Semiconductor Inc. * Copyright 2007, 2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC8544DS"; model = "MPC8544DS";
compatible = "MPC8544DS", "MPC85xxDS"; compatible = "MPC8544DS", "MPC85xxDS";
...@@ -27,17 +28,16 @@ ...@@ -27,17 +28,16 @@
}; };
cpus { cpus {
#cpus = <1>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
PowerPC,8544@0 { PowerPC,8544@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 00000000>; // Filled by U-Boot reg = <0x0 0x0>; // Filled by U-Boot
}; };
soc8544@e0000000 { soc8544@e0000000 {
...@@ -54,24 +54,24 @@ ...@@ -54,24 +54,24 @@
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <00000000 e0000000 00100000>; ranges = <0x0 0xe0000000 0x100000>;
reg = <e0000000 00001000>; // CCSRBAR 1M reg = <0xe0000000 0x1000>; // CCSRBAR 1M
bus-frequency = <0>; // Filled out by uboot. bus-frequency = <0>; // Filled out by uboot.
memory-controller@2000 { memory-controller@2000 {
compatible = "fsl,8544-memory-controller"; compatible = "fsl,8544-memory-controller";
reg = <2000 1000>; reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
l2-cache-controller@20000 { l2-cache-controller@20000 {
compatible = "fsl,8544-l2-cache-controller"; compatible = "fsl,8544-l2-cache-controller";
reg = <20000 1000>; reg = <0x20000 0x1000>;
cache-line-size = <20>; // 32 bytes cache-line-size = <32>; // 32 bytes
cache-size = <40000>; // L2, 256K cache-size = <0x40000>; // L2, 256K
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <10 2>; interrupts = <16 2>;
}; };
i2c@3000 { i2c@3000 {
...@@ -79,8 +79,8 @@ ...@@ -79,8 +79,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3000 100>; reg = <0x3000 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -90,8 +90,8 @@ ...@@ -90,8 +90,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <1>; cell-index = <1>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3100 100>; reg = <0x3100 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -100,30 +100,71 @@ ...@@ -100,30 +100,71 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,gianfar-mdio"; compatible = "fsl,gianfar-mdio";
reg = <24520 20>; reg = <0x24520 0x20>;
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <a 1>; interrupts = <10 1>;
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy1: ethernet-phy@1 { phy1: ethernet-phy@1 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <a 1>; interrupts = <10 1>;
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
dma@21300 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,mpc8544-dma", "fsl,eloplus-dma";
reg = <0x21300 0x4>;
ranges = <0x0 0x21100 0x200>;
cell-index = <0>;
dma-channel@0 {
compatible = "fsl,mpc8544-dma-channel",
"fsl,eloplus-dma-channel";
reg = <0x0 0x80>;
cell-index = <0>;
interrupt-parent = <&mpic>;
interrupts = <20 2>;
};
dma-channel@80 {
compatible = "fsl,mpc8544-dma-channel",
"fsl,eloplus-dma-channel";
reg = <0x80 0x80>;
cell-index = <1>;
interrupt-parent = <&mpic>;
interrupts = <21 2>;
};
dma-channel@100 {
compatible = "fsl,mpc8544-dma-channel",
"fsl,eloplus-dma-channel";
reg = <0x100 0x80>;
cell-index = <2>;
interrupt-parent = <&mpic>;
interrupts = <22 2>;
};
dma-channel@180 {
compatible = "fsl,mpc8544-dma-channel",
"fsl,eloplus-dma-channel";
reg = <0x180 0x80>;
cell-index = <3>;
interrupt-parent = <&mpic>;
interrupts = <23 2>;
};
};
enet0: ethernet@24000 { enet0: ethernet@24000 {
cell-index = <0>; cell-index = <0>;
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <24000 1000>; reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1d 2 1e 2 22 2>; interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy0>; phy-handle = <&phy0>;
phy-connection-type = "rgmii-id"; phy-connection-type = "rgmii-id";
...@@ -134,9 +175,9 @@ ...@@ -134,9 +175,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <26000 1000>; reg = <0x26000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1f 2 20 2 21 2>; interrupts = <31 2 32 2 33 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy1>; phy-handle = <&phy1>;
phy-connection-type = "rgmii-id"; phy-connection-type = "rgmii-id";
...@@ -146,9 +187,9 @@ ...@@ -146,9 +187,9 @@
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4500 100>; reg = <0x4500 0x100>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -156,15 +197,15 @@ ...@@ -156,15 +197,15 @@
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4600 100>; reg = <0x4600 0x100>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
global-utilities@e0000 { //global utilities block global-utilities@e0000 { //global utilities block
compatible = "fsl,mpc8548-guts"; compatible = "fsl,mpc8548-guts";
reg = <e0000 1000>; reg = <0xe0000 0x1000>;
fsl,has-rstcr; fsl,has-rstcr;
}; };
...@@ -173,7 +214,7 @@ ...@@ -173,7 +214,7 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <40000 40000>; reg = <0x40000 0x40000>;
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
device_type = "open-pic"; device_type = "open-pic";
big-endian; big-endian;
...@@ -184,32 +225,32 @@ ...@@ -184,32 +225,32 @@
cell-index = <0>; cell-index = <0>;
compatible = "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x11 J17 Slot 1 */ /* IDSEL 0x11 J17 Slot 1 */
8800 0 0 1 &mpic 2 1 0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
8800 0 0 2 &mpic 3 1 0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
8800 0 0 3 &mpic 4 1 0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
8800 0 0 4 &mpic 1 1 0x8800 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x12 J16 Slot 2 */ /* IDSEL 0x12 J16 Slot 2 */
9000 0 0 1 &mpic 3 1 0x9000 0x0 0x0 0x1 &mpic 0x3 0x1
9000 0 0 2 &mpic 4 1 0x9000 0x0 0x0 0x2 &mpic 0x4 0x1
9000 0 0 3 &mpic 2 1 0x9000 0x0 0x0 0x3 &mpic 0x2 0x1
9000 0 0 4 &mpic 1 1>; 0x9000 0x0 0x0 0x4 &mpic 0x1 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <18 2>; interrupts = <24 2>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 c0000000 c0000000 0 20000000 ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000
01000000 0 00000000 e1000000 0 00010000>; 0x1000000 0x0 0x0 0xe1000000 0x0 0x10000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0008000 1000>; reg = <0xe0008000 0x1000>;
}; };
pci1: pcie@e0009000 { pci1: pcie@e0009000 {
...@@ -219,33 +260,33 @@ ...@@ -219,33 +260,33 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0009000 1000>; reg = <0xe0009000 0x1000>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 80000000 80000000 0 20000000 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
01000000 0 00000000 e1010000 0 00010000>; 0x1000000 0x0 0x0 0xe1010000 0x0 0x10000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1a 2>; interrupts = <26 2>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x0 */ /* IDSEL 0x0 */
0000 0 0 1 &mpic 4 1 0000 0x0 0x0 0x1 &mpic 0x4 0x1
0000 0 0 2 &mpic 5 1 0000 0x0 0x0 0x2 &mpic 0x5 0x1
0000 0 0 3 &mpic 6 1 0000 0x0 0x0 0x3 &mpic 0x6 0x1
0000 0 0 4 &mpic 7 1 0000 0x0 0x0 0x4 &mpic 0x7 0x1
>; >;
pcie@0 { pcie@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
device_type = "pci"; device_type = "pci";
ranges = <02000000 0 80000000 ranges = <0x2000000 0x0 0x80000000
02000000 0 80000000 0x2000000 0x0 0x80000000
0 20000000 0x0 0x20000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00010000>; 0x0 0x10000>;
}; };
}; };
...@@ -256,33 +297,33 @@ ...@@ -256,33 +297,33 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e000a000 1000>; reg = <0xe000a000 0x1000>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 a0000000 a0000000 0 10000000 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
01000000 0 00000000 e1020000 0 00010000>; 0x1000000 0x0 0x0 0xe1020000 0x0 0x10000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <19 2>; interrupts = <25 2>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x0 */ /* IDSEL 0x0 */
0000 0 0 1 &mpic 0 1 0000 0x0 0x0 0x1 &mpic 0x0 0x1
0000 0 0 2 &mpic 1 1 0000 0x0 0x0 0x2 &mpic 0x1 0x1
0000 0 0 3 &mpic 2 1 0000 0x0 0x0 0x3 &mpic 0x2 0x1
0000 0 0 4 &mpic 3 1 0000 0x0 0x0 0x4 &mpic 0x3 0x1
>; >;
pcie@0 { pcie@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
device_type = "pci"; device_type = "pci";
ranges = <02000000 0 a0000000 ranges = <0x2000000 0x0 0xa0000000
02000000 0 a0000000 0x2000000 0x0 0xa0000000
0 10000000 0x0 0x10000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00010000>; 0x0 0x10000>;
}; };
}; };
...@@ -293,72 +334,72 @@ ...@@ -293,72 +334,72 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e000b000 1000>; reg = <0xe000b000 0x1000>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 b0000000 b0000000 0 00100000 ranges = <0x2000000 0x0 0xb0000000 0xb0000000 0x0 0x100000
01000000 0 00000000 b0100000 0 00100000>; 0x1000000 0x0 0x0 0xb0100000 0x0 0x100000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1b 2>; interrupts = <27 2>;
interrupt-map-mask = <ff00 0 0 1>; interrupt-map-mask = <0xff00 0x0 0x0 0x1>;
interrupt-map = < interrupt-map = <
// IDSEL 0x1c USB // IDSEL 0x1c USB
e000 0 0 1 &i8259 c 2 0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
e100 0 0 2 &i8259 9 2 0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
e200 0 0 3 &i8259 a 2 0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
e300 0 0 4 &i8259 b 2 0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
// IDSEL 0x1d Audio // IDSEL 0x1d Audio
e800 0 0 1 &i8259 6 2 0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
// IDSEL 0x1e Legacy // IDSEL 0x1e Legacy
f000 0 0 1 &i8259 7 2 0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
f100 0 0 1 &i8259 7 2 0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
// IDSEL 0x1f IDE/SATA // IDSEL 0x1f IDE/SATA
f800 0 0 1 &i8259 e 2 0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
f900 0 0 1 &i8259 5 2 0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
>; >;
pcie@0 { pcie@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
device_type = "pci"; device_type = "pci";
ranges = <02000000 0 b0000000 ranges = <0x2000000 0x0 0xb0000000
02000000 0 b0000000 0x2000000 0x0 0xb0000000
0 00100000 0x0 0x100000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00100000>; 0x0 0x100000>;
uli1575@0 { uli1575@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
ranges = <02000000 0 b0000000 ranges = <0x2000000 0x0 0xb0000000
02000000 0 b0000000 0x2000000 0x0 0xb0000000
0 00100000 0x0 0x100000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00100000>; 0x0 0x100000>;
isa@1e { isa@1e {
device_type = "isa"; device_type = "isa";
#interrupt-cells = <2>; #interrupt-cells = <2>;
#size-cells = <1>; #size-cells = <1>;
#address-cells = <2>; #address-cells = <2>;
reg = <f000 0 0 0 0>; reg = <0xf000 0x0 0x0 0x0 0x0>;
ranges = <1 0 ranges = <0x1 0x0
01000000 0 0 0x1000000 0x0 0x0
00001000>; 0x1000>;
interrupt-parent = <&i8259>; interrupt-parent = <&i8259>;
i8259: interrupt-controller@20 { i8259: interrupt-controller@20 {
reg = <1 20 2 reg = <0x1 0x20 0x2
1 a0 2 0x1 0xa0 0x2
1 4d0 2>; 0x1 0x4d0 0x2>;
interrupt-controller; interrupt-controller;
device_type = "interrupt-controller"; device_type = "interrupt-controller";
#address-cells = <0>; #address-cells = <0>;
...@@ -371,28 +412,28 @@ ...@@ -371,28 +412,28 @@
i8042@60 { i8042@60 {
#size-cells = <0>; #size-cells = <0>;
#address-cells = <1>; #address-cells = <1>;
reg = <1 60 1 1 64 1>; reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
interrupts = <1 3 c 3>; interrupts = <1 3 12 3>;
interrupt-parent = <&i8259>; interrupt-parent = <&i8259>;
keyboard@0 { keyboard@0 {
reg = <0>; reg = <0x0>;
compatible = "pnpPNP,303"; compatible = "pnpPNP,303";
}; };
mouse@1 { mouse@1 {
reg = <1>; reg = <0x1>;
compatible = "pnpPNP,f03"; compatible = "pnpPNP,f03";
}; };
}; };
rtc@70 { rtc@70 {
compatible = "pnpPNP,b00"; compatible = "pnpPNP,b00";
reg = <1 70 2>; reg = <0x1 0x70 0x2>;
}; };
gpio@400 { gpio@400 {
reg = <1 400 80>; reg = <0x1 0x400 0x80>;
}; };
}; };
}; };
......
/* /*
* MPC8548 CDS Device Tree Source * MPC8548 CDS Device Tree Source
* *
* Copyright 2006 Freescale Semiconductor Inc. * Copyright 2006, 2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC8548CDS"; model = "MPC8548CDS";
...@@ -36,11 +37,11 @@ ...@@ -36,11 +37,11 @@
PowerPC,8548@0 { PowerPC,8548@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; // 33 MHz, from uboot timebase-frequency = <0>; // 33 MHz, from uboot
bus-frequency = <0>; // 166 MHz bus-frequency = <0>; // 166 MHz
clock-frequency = <0>; // 825 MHz, from uboot clock-frequency = <0>; // 825 MHz, from uboot
...@@ -49,31 +50,31 @@ ...@@ -49,31 +50,31 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 08000000>; // 128M at 0x0 reg = <0x0 0x8000000>; // 128M at 0x0
}; };
soc8548@e0000000 { soc8548@e0000000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <00000000 e0000000 00100000>; ranges = <0x0 0xe0000000 0x100000>;
reg = <e0000000 00001000>; // CCSRBAR reg = <0xe0000000 0x1000>; // CCSRBAR
bus-frequency = <0>; bus-frequency = <0>;
memory-controller@2000 { memory-controller@2000 {
compatible = "fsl,8548-memory-controller"; compatible = "fsl,8548-memory-controller";
reg = <2000 1000>; reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
l2-cache-controller@20000 { l2-cache-controller@20000 {
compatible = "fsl,8548-l2-cache-controller"; compatible = "fsl,8548-l2-cache-controller";
reg = <20000 1000>; reg = <0x20000 0x1000>;
cache-line-size = <20>; // 32 bytes cache-line-size = <32>; // 32 bytes
cache-size = <80000>; // L2, 512K cache-size = <0x80000>; // L2, 512K
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <10 2>; interrupts = <16 2>;
}; };
i2c@3000 { i2c@3000 {
...@@ -81,8 +82,8 @@ ...@@ -81,8 +82,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3000 100>; reg = <0x3000 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -92,8 +93,8 @@ ...@@ -92,8 +93,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <1>; cell-index = <1>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3100 100>; reg = <0x3100 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -102,30 +103,30 @@ ...@@ -102,30 +103,30 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,gianfar-mdio"; compatible = "fsl,gianfar-mdio";
reg = <24520 20>; reg = <0x24520 0x20>;
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy1: ethernet-phy@1 { phy1: ethernet-phy@1 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy2: ethernet-phy@2 { phy2: ethernet-phy@2 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <2>; reg = <0x2>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy3: ethernet-phy@3 { phy3: ethernet-phy@3 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <3>; reg = <0x3>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -135,9 +136,9 @@ ...@@ -135,9 +136,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <24000 1000>; reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1d 2 1e 2 22 2>; interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy0>; phy-handle = <&phy0>;
}; };
...@@ -147,9 +148,9 @@ ...@@ -147,9 +148,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <25000 1000>; reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <23 2 24 2 28 2>; interrupts = <35 2 36 2 40 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy1>; phy-handle = <&phy1>;
}; };
...@@ -160,9 +161,9 @@ ...@@ -160,9 +161,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <26000 1000>; reg = <0x26000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1f 2 20 2 21 2>; interrupts = <31 2 32 2 33 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy2>; phy-handle = <&phy2>;
}; };
...@@ -172,9 +173,9 @@ ...@@ -172,9 +173,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <27000 1000>; reg = <0x27000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <25 2 26 2 27 2>; interrupts = <37 2 38 2 39 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy3>; phy-handle = <&phy3>;
}; };
...@@ -184,9 +185,9 @@ ...@@ -184,9 +185,9 @@
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4500 100>; // reg base, size reg = <0x4500 0x100>; // reg base, size
clock-frequency = <0>; // should we fill in in uboot? clock-frequency = <0>; // should we fill in in uboot?
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -194,15 +195,15 @@ ...@@ -194,15 +195,15 @@
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4600 100>; // reg base, size reg = <0x4600 0x100>; // reg base, size
clock-frequency = <0>; // should we fill in in uboot? clock-frequency = <0>; // should we fill in in uboot?
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
global-utilities@e0000 { //global utilities reg global-utilities@e0000 { //global utilities reg
compatible = "fsl,mpc8548-guts"; compatible = "fsl,mpc8548-guts";
reg = <e0000 1000>; reg = <0xe0000 0x1000>;
fsl,has-rstcr; fsl,has-rstcr;
}; };
...@@ -211,7 +212,7 @@ ...@@ -211,7 +212,7 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <40000 40000>; reg = <0x40000 0x40000>;
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
device_type = "open-pic"; device_type = "open-pic";
big-endian; big-endian;
...@@ -220,139 +221,139 @@ ...@@ -220,139 +221,139 @@
pci0: pci@e0008000 { pci0: pci@e0008000 {
cell-index = <0>; cell-index = <0>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x4 (PCIX Slot 2) */ /* IDSEL 0x4 (PCIX Slot 2) */
02000 0 0 1 &mpic 0 1 0x2000 0x0 0x0 0x1 &mpic 0x0 0x1
02000 0 0 2 &mpic 1 1 0x2000 0x0 0x0 0x2 &mpic 0x1 0x1
02000 0 0 3 &mpic 2 1 0x2000 0x0 0x0 0x3 &mpic 0x2 0x1
02000 0 0 4 &mpic 3 1 0x2000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x5 (PCIX Slot 3) */ /* IDSEL 0x5 (PCIX Slot 3) */
02800 0 0 1 &mpic 1 1 0x2800 0x0 0x0 0x1 &mpic 0x1 0x1
02800 0 0 2 &mpic 2 1 0x2800 0x0 0x0 0x2 &mpic 0x2 0x1
02800 0 0 3 &mpic 3 1 0x2800 0x0 0x0 0x3 &mpic 0x3 0x1
02800 0 0 4 &mpic 0 1 0x2800 0x0 0x0 0x4 &mpic 0x0 0x1
/* IDSEL 0x6 (PCIX Slot 4) */ /* IDSEL 0x6 (PCIX Slot 4) */
03000 0 0 1 &mpic 2 1 0x3000 0x0 0x0 0x1 &mpic 0x2 0x1
03000 0 0 2 &mpic 3 1 0x3000 0x0 0x0 0x2 &mpic 0x3 0x1
03000 0 0 3 &mpic 0 1 0x3000 0x0 0x0 0x3 &mpic 0x0 0x1
03000 0 0 4 &mpic 1 1 0x3000 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x8 (PCIX Slot 5) */ /* IDSEL 0x8 (PCIX Slot 5) */
04000 0 0 1 &mpic 0 1 0x4000 0x0 0x0 0x1 &mpic 0x0 0x1
04000 0 0 2 &mpic 1 1 0x4000 0x0 0x0 0x2 &mpic 0x1 0x1
04000 0 0 3 &mpic 2 1 0x4000 0x0 0x0 0x3 &mpic 0x2 0x1
04000 0 0 4 &mpic 3 1 0x4000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0xC (Tsi310 bridge) */ /* IDSEL 0xC (Tsi310 bridge) */
06000 0 0 1 &mpic 0 1 0x6000 0x0 0x0 0x1 &mpic 0x0 0x1
06000 0 0 2 &mpic 1 1 0x6000 0x0 0x0 0x2 &mpic 0x1 0x1
06000 0 0 3 &mpic 2 1 0x6000 0x0 0x0 0x3 &mpic 0x2 0x1
06000 0 0 4 &mpic 3 1 0x6000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x14 (Slot 2) */ /* IDSEL 0x14 (Slot 2) */
0a000 0 0 1 &mpic 0 1 0xa000 0x0 0x0 0x1 &mpic 0x0 0x1
0a000 0 0 2 &mpic 1 1 0xa000 0x0 0x0 0x2 &mpic 0x1 0x1
0a000 0 0 3 &mpic 2 1 0xa000 0x0 0x0 0x3 &mpic 0x2 0x1
0a000 0 0 4 &mpic 3 1 0xa000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x15 (Slot 3) */ /* IDSEL 0x15 (Slot 3) */
0a800 0 0 1 &mpic 1 1 0xa800 0x0 0x0 0x1 &mpic 0x1 0x1
0a800 0 0 2 &mpic 2 1 0xa800 0x0 0x0 0x2 &mpic 0x2 0x1
0a800 0 0 3 &mpic 3 1 0xa800 0x0 0x0 0x3 &mpic 0x3 0x1
0a800 0 0 4 &mpic 0 1 0xa800 0x0 0x0 0x4 &mpic 0x0 0x1
/* IDSEL 0x16 (Slot 4) */ /* IDSEL 0x16 (Slot 4) */
0b000 0 0 1 &mpic 2 1 0xb000 0x0 0x0 0x1 &mpic 0x2 0x1
0b000 0 0 2 &mpic 3 1 0xb000 0x0 0x0 0x2 &mpic 0x3 0x1
0b000 0 0 3 &mpic 0 1 0xb000 0x0 0x0 0x3 &mpic 0x0 0x1
0b000 0 0 4 &mpic 1 1 0xb000 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x18 (Slot 5) */ /* IDSEL 0x18 (Slot 5) */
0c000 0 0 1 &mpic 0 1 0xc000 0x0 0x0 0x1 &mpic 0x0 0x1
0c000 0 0 2 &mpic 1 1 0xc000 0x0 0x0 0x2 &mpic 0x1 0x1
0c000 0 0 3 &mpic 2 1 0xc000 0x0 0x0 0x3 &mpic 0x2 0x1
0c000 0 0 4 &mpic 3 1 0xc000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x1C (Tsi310 bridge PCI primary) */ /* IDSEL 0x1C (Tsi310 bridge PCI primary) */
0E000 0 0 1 &mpic 0 1 0xe000 0x0 0x0 0x1 &mpic 0x0 0x1
0E000 0 0 2 &mpic 1 1 0xe000 0x0 0x0 0x2 &mpic 0x1 0x1
0E000 0 0 3 &mpic 2 1 0xe000 0x0 0x0 0x3 &mpic 0x2 0x1
0E000 0 0 4 &mpic 3 1>; 0xe000 0x0 0x0 0x4 &mpic 0x3 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <18 2>; interrupts = <24 2>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 80000000 80000000 0 10000000 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x10000000
01000000 0 00000000 e2000000 0 00800000>; 0x1000000 0x0 0x0 0xe2000000 0x0 0x800000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0008000 1000>; reg = <0xe0008000 0x1000>;
compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
pci_bridge@1c { pci_bridge@1c {
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x00 (PrPMC Site) */ /* IDSEL 0x00 (PrPMC Site) */
0000 0 0 1 &mpic 0 1 0000 0x0 0x0 0x1 &mpic 0x0 0x1
0000 0 0 2 &mpic 1 1 0000 0x0 0x0 0x2 &mpic 0x1 0x1
0000 0 0 3 &mpic 2 1 0000 0x0 0x0 0x3 &mpic 0x2 0x1
0000 0 0 4 &mpic 3 1 0000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x04 (VIA chip) */ /* IDSEL 0x04 (VIA chip) */
2000 0 0 1 &mpic 0 1 0x2000 0x0 0x0 0x1 &mpic 0x0 0x1
2000 0 0 2 &mpic 1 1 0x2000 0x0 0x0 0x2 &mpic 0x1 0x1
2000 0 0 3 &mpic 2 1 0x2000 0x0 0x0 0x3 &mpic 0x2 0x1
2000 0 0 4 &mpic 3 1 0x2000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x05 (8139) */ /* IDSEL 0x05 (8139) */
2800 0 0 1 &mpic 1 1 0x2800 0x0 0x0 0x1 &mpic 0x1 0x1
/* IDSEL 0x06 (Slot 6) */ /* IDSEL 0x06 (Slot 6) */
3000 0 0 1 &mpic 2 1 0x3000 0x0 0x0 0x1 &mpic 0x2 0x1
3000 0 0 2 &mpic 3 1 0x3000 0x0 0x0 0x2 &mpic 0x3 0x1
3000 0 0 3 &mpic 0 1 0x3000 0x0 0x0 0x3 &mpic 0x0 0x1
3000 0 0 4 &mpic 1 1 0x3000 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDESL 0x07 (Slot 7) */ /* IDESL 0x07 (Slot 7) */
3800 0 0 1 &mpic 3 1 0x3800 0x0 0x0 0x1 &mpic 0x3 0x1
3800 0 0 2 &mpic 0 1 0x3800 0x0 0x0 0x2 &mpic 0x0 0x1
3800 0 0 3 &mpic 1 1 0x3800 0x0 0x0 0x3 &mpic 0x1 0x1
3800 0 0 4 &mpic 2 1>; 0x3800 0x0 0x0 0x4 &mpic 0x2 0x1>;
reg = <e000 0 0 0 0>; reg = <0xe000 0x0 0x0 0x0 0x0>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
ranges = <02000000 0 80000000 ranges = <0x2000000 0x0 0x80000000
02000000 0 80000000 0x2000000 0x0 0x80000000
0 20000000 0x0 0x20000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00080000>; 0x0 0x80000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
isa@4 { isa@4 {
device_type = "isa"; device_type = "isa";
#interrupt-cells = <2>; #interrupt-cells = <2>;
#size-cells = <1>; #size-cells = <1>;
#address-cells = <2>; #address-cells = <2>;
reg = <2000 0 0 0 0>; reg = <0x2000 0x0 0x0 0x0 0x0>;
ranges = <1 0 01000000 0 0 00001000>; ranges = <0x1 0x0 0x1000000 0x0 0x0 0x1000>;
interrupt-parent = <&i8259>; interrupt-parent = <&i8259>;
i8259: interrupt-controller@20 { i8259: interrupt-controller@20 {
interrupt-controller; interrupt-controller;
device_type = "interrupt-controller"; device_type = "interrupt-controller";
reg = <1 20 2 reg = <0x1 0x20 0x2
1 a0 2 0x1 0xa0 0x2
1 4d0 2>; 0x1 0x4d0 0x2>;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
compatible = "chrp,iic"; compatible = "chrp,iic";
...@@ -362,7 +363,7 @@ ...@@ -362,7 +363,7 @@
rtc@70 { rtc@70 {
compatible = "pnpPNP,b00"; compatible = "pnpPNP,b00";
reg = <1 70 2>; reg = <0x1 0x70 0x2>;
}; };
}; };
}; };
...@@ -370,64 +371,64 @@ ...@@ -370,64 +371,64 @@
pci1: pci@e0009000 { pci1: pci@e0009000 {
cell-index = <1>; cell-index = <1>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x15 */ /* IDSEL 0x15 */
a800 0 0 1 &mpic b 1 0xa800 0x0 0x0 0x1 &mpic 0xb 0x1
a800 0 0 2 &mpic 1 1 0xa800 0x0 0x0 0x2 &mpic 0x1 0x1
a800 0 0 3 &mpic 2 1 0xa800 0x0 0x0 0x3 &mpic 0x2 0x1
a800 0 0 4 &mpic 3 1>; 0xa800 0x0 0x0 0x4 &mpic 0x3 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <19 2>; interrupts = <25 2>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 90000000 90000000 0 10000000 ranges = <0x2000000 0x0 0x90000000 0x90000000 0x0 0x10000000
01000000 0 00000000 e2800000 0 00800000>; 0x1000000 0x0 0x0 0xe2800000 0x0 0x800000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0009000 1000>; reg = <0xe0009000 0x1000>;
compatible = "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
}; };
pci2: pcie@e000a000 { pci2: pcie@e000a000 {
cell-index = <2>; cell-index = <2>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x0 (PEX) */ /* IDSEL 0x0 (PEX) */
00000 0 0 1 &mpic 0 1 00000 0x0 0x0 0x1 &mpic 0x0 0x1
00000 0 0 2 &mpic 1 1 00000 0x0 0x0 0x2 &mpic 0x1 0x1
00000 0 0 3 &mpic 2 1 00000 0x0 0x0 0x3 &mpic 0x2 0x1
00000 0 0 4 &mpic 3 1>; 00000 0x0 0x0 0x4 &mpic 0x3 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1a 2>; interrupts = <26 2>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 a0000000 a0000000 0 20000000 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
01000000 0 00000000 e3000000 0 08000000>; 0x1000000 0x0 0x0 0xe3000000 0x0 0x8000000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e000a000 1000>; reg = <0xe000a000 0x1000>;
compatible = "fsl,mpc8548-pcie"; compatible = "fsl,mpc8548-pcie";
device_type = "pci"; device_type = "pci";
pcie@0 { pcie@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
device_type = "pci"; device_type = "pci";
ranges = <02000000 0 a0000000 ranges = <0x2000000 0x0 0xa0000000
02000000 0 a0000000 0x2000000 0x0 0xa0000000
0 20000000 0x0 0x20000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 08000000>; 0x0 0x8000000>;
}; };
}; };
}; };
/* /*
* MPC8555 CDS Device Tree Source * MPC8555 CDS Device Tree Source
* *
* Copyright 2006 Freescale Semiconductor Inc. * Copyright 2006, 2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC8555CDS"; model = "MPC8555CDS";
...@@ -31,11 +32,11 @@ ...@@ -31,11 +32,11 @@
PowerPC,8555@0 { PowerPC,8555@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; // 33 MHz, from uboot timebase-frequency = <0>; // 33 MHz, from uboot
bus-frequency = <0>; // 166 MHz bus-frequency = <0>; // 166 MHz
clock-frequency = <0>; // 825 MHz, from uboot clock-frequency = <0>; // 825 MHz, from uboot
...@@ -44,31 +45,31 @@ ...@@ -44,31 +45,31 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 08000000>; // 128M at 0x0 reg = <0x0 0x8000000>; // 128M at 0x0
}; };
soc8555@e0000000 { soc8555@e0000000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 e0000000 00100000>; ranges = <0x0 0xe0000000 0x100000>;
reg = <e0000000 00001000>; // CCSRBAR 1M reg = <0xe0000000 0x1000>; // CCSRBAR 1M
bus-frequency = <0>; bus-frequency = <0>;
memory-controller@2000 { memory-controller@2000 {
compatible = "fsl,8555-memory-controller"; compatible = "fsl,8555-memory-controller";
reg = <2000 1000>; reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
l2-cache-controller@20000 { l2-cache-controller@20000 {
compatible = "fsl,8555-l2-cache-controller"; compatible = "fsl,8555-l2-cache-controller";
reg = <20000 1000>; reg = <0x20000 0x1000>;
cache-line-size = <20>; // 32 bytes cache-line-size = <32>; // 32 bytes
cache-size = <40000>; // L2, 256K cache-size = <0x40000>; // L2, 256K
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <10 2>; interrupts = <16 2>;
}; };
i2c@3000 { i2c@3000 {
...@@ -76,8 +77,8 @@ ...@@ -76,8 +77,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3000 100>; reg = <0x3000 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -86,18 +87,18 @@ ...@@ -86,18 +87,18 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,gianfar-mdio"; compatible = "fsl,gianfar-mdio";
reg = <24520 20>; reg = <0x24520 0x20>;
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy1: ethernet-phy@1 { phy1: ethernet-phy@1 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -107,9 +108,9 @@ ...@@ -107,9 +108,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <24000 1000>; reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1d 2 1e 2 22 2>; interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy0>; phy-handle = <&phy0>;
}; };
...@@ -119,9 +120,9 @@ ...@@ -119,9 +120,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <25000 1000>; reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <23 2 24 2 28 2>; interrupts = <35 2 36 2 40 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy1>; phy-handle = <&phy1>;
}; };
...@@ -130,9 +131,9 @@ ...@@ -130,9 +131,9 @@
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4500 100>; // reg base, size reg = <0x4500 0x100>; // reg base, size
clock-frequency = <0>; // should we fill in in uboot? clock-frequency = <0>; // should we fill in in uboot?
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -140,9 +141,9 @@ ...@@ -140,9 +141,9 @@
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4600 100>; // reg base, size reg = <0x4600 0x100>; // reg base, size
clock-frequency = <0>; // should we fill in in uboot? clock-frequency = <0>; // should we fill in in uboot?
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -151,7 +152,7 @@ ...@@ -151,7 +152,7 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <40000 40000>; reg = <0x40000 0x40000>;
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
device_type = "open-pic"; device_type = "open-pic";
big-endian; big-endian;
...@@ -161,17 +162,17 @@ ...@@ -161,17 +162,17 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
compatible = "fsl,mpc8555-cpm", "fsl,cpm2"; compatible = "fsl,mpc8555-cpm", "fsl,cpm2";
reg = <919c0 30>; reg = <0x919c0 0x30>;
ranges; ranges;
muram@80000 { muram@80000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 80000 10000>; ranges = <0x0 0x80000 0x10000>;
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 2000 9000 1000>; reg = <0x0 0x2000 0x9000 0x1000>;
}; };
}; };
...@@ -179,16 +180,16 @@ ...@@ -179,16 +180,16 @@
compatible = "fsl,mpc8555-brg", compatible = "fsl,mpc8555-brg",
"fsl,cpm2-brg", "fsl,cpm2-brg",
"fsl,cpm-brg"; "fsl,cpm-brg";
reg = <919f0 10 915f0 10>; reg = <0x919f0 0x10 0x915f0 0x10>;
}; };
cpmpic: pic@90c00 { cpmpic: pic@90c00 {
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
interrupts = <2e 2>; interrupts = <46 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
reg = <90c00 80>; reg = <0x90c00 0x80>;
compatible = "fsl,mpc8555-cpm-pic", "fsl,cpm2-pic"; compatible = "fsl,mpc8555-cpm-pic", "fsl,cpm2-pic";
}; };
}; };
...@@ -196,68 +197,68 @@ ...@@ -196,68 +197,68 @@
pci0: pci@e0008000 { pci0: pci@e0008000 {
cell-index = <0>; cell-index = <0>;
interrupt-map-mask = <1f800 0 0 7>; interrupt-map-mask = <0x1f800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x10 */ /* IDSEL 0x10 */
08000 0 0 1 &mpic 0 1 0x8000 0x0 0x0 0x1 &mpic 0x0 0x1
08000 0 0 2 &mpic 1 1 0x8000 0x0 0x0 0x2 &mpic 0x1 0x1
08000 0 0 3 &mpic 2 1 0x8000 0x0 0x0 0x3 &mpic 0x2 0x1
08000 0 0 4 &mpic 3 1 0x8000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x11 */ /* IDSEL 0x11 */
08800 0 0 1 &mpic 0 1 0x8800 0x0 0x0 0x1 &mpic 0x0 0x1
08800 0 0 2 &mpic 1 1 0x8800 0x0 0x0 0x2 &mpic 0x1 0x1
08800 0 0 3 &mpic 2 1 0x8800 0x0 0x0 0x3 &mpic 0x2 0x1
08800 0 0 4 &mpic 3 1 0x8800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x12 (Slot 1) */ /* IDSEL 0x12 (Slot 1) */
09000 0 0 1 &mpic 0 1 0x9000 0x0 0x0 0x1 &mpic 0x0 0x1
09000 0 0 2 &mpic 1 1 0x9000 0x0 0x0 0x2 &mpic 0x1 0x1
09000 0 0 3 &mpic 2 1 0x9000 0x0 0x0 0x3 &mpic 0x2 0x1
09000 0 0 4 &mpic 3 1 0x9000 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x13 (Slot 2) */ /* IDSEL 0x13 (Slot 2) */
09800 0 0 1 &mpic 1 1 0x9800 0x0 0x0 0x1 &mpic 0x1 0x1
09800 0 0 2 &mpic 2 1 0x9800 0x0 0x0 0x2 &mpic 0x2 0x1
09800 0 0 3 &mpic 3 1 0x9800 0x0 0x0 0x3 &mpic 0x3 0x1
09800 0 0 4 &mpic 0 1 0x9800 0x0 0x0 0x4 &mpic 0x0 0x1
/* IDSEL 0x14 (Slot 3) */ /* IDSEL 0x14 (Slot 3) */
0a000 0 0 1 &mpic 2 1 0xa000 0x0 0x0 0x1 &mpic 0x2 0x1
0a000 0 0 2 &mpic 3 1 0xa000 0x0 0x0 0x2 &mpic 0x3 0x1
0a000 0 0 3 &mpic 0 1 0xa000 0x0 0x0 0x3 &mpic 0x0 0x1
0a000 0 0 4 &mpic 1 1 0xa000 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x15 (Slot 4) */ /* IDSEL 0x15 (Slot 4) */
0a800 0 0 1 &mpic 3 1 0xa800 0x0 0x0 0x1 &mpic 0x3 0x1
0a800 0 0 2 &mpic 0 1 0xa800 0x0 0x0 0x2 &mpic 0x0 0x1
0a800 0 0 3 &mpic 1 1 0xa800 0x0 0x0 0x3 &mpic 0x1 0x1
0a800 0 0 4 &mpic 2 1 0xa800 0x0 0x0 0x4 &mpic 0x2 0x1
/* Bus 1 (Tundra Bridge) */ /* Bus 1 (Tundra Bridge) */
/* IDSEL 0x12 (ISA bridge) */ /* IDSEL 0x12 (ISA bridge) */
19000 0 0 1 &mpic 0 1 0x19000 0x0 0x0 0x1 &mpic 0x0 0x1
19000 0 0 2 &mpic 1 1 0x19000 0x0 0x0 0x2 &mpic 0x1 0x1
19000 0 0 3 &mpic 2 1 0x19000 0x0 0x0 0x3 &mpic 0x2 0x1
19000 0 0 4 &mpic 3 1>; 0x19000 0x0 0x0 0x4 &mpic 0x3 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <18 2>; interrupts = <24 2>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 80000000 80000000 0 20000000 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
01000000 0 00000000 e2000000 0 00100000>; 0x1000000 0x0 0x0 0xe2000000 0x0 0x100000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0008000 1000>; reg = <0xe0008000 0x1000>;
compatible = "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
i8259@19000 { i8259@19000 {
interrupt-controller; interrupt-controller;
device_type = "interrupt-controller"; device_type = "interrupt-controller";
reg = <19000 0 0 0 1>; reg = <0x19000 0x0 0x0 0x0 0x1>;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
compatible = "chrp,iic"; compatible = "chrp,iic";
...@@ -268,24 +269,24 @@ ...@@ -268,24 +269,24 @@
pci1: pci@e0009000 { pci1: pci@e0009000 {
cell-index = <1>; cell-index = <1>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x15 */ /* IDSEL 0x15 */
a800 0 0 1 &mpic b 1 0xa800 0x0 0x0 0x1 &mpic 0xb 0x1
a800 0 0 2 &mpic b 1 0xa800 0x0 0x0 0x2 &mpic 0xb 0x1
a800 0 0 3 &mpic b 1 0xa800 0x0 0x0 0x3 &mpic 0xb 0x1
a800 0 0 4 &mpic b 1>; 0xa800 0x0 0x0 0x4 &mpic 0xb 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <19 2>; interrupts = <25 2>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 a0000000 a0000000 0 20000000 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
01000000 0 00000000 e3000000 0 00100000>; 0x1000000 0x0 0x0 0xe3000000 0x0 0x100000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0009000 1000>; reg = <0xe0009000 0x1000>;
compatible = "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
}; };
......
/* /*
* MPC8560 ADS Device Tree Source * MPC8560 ADS Device Tree Source
* *
* Copyright 2006 Freescale Semiconductor Inc. * Copyright 2006, 2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC8560ADS"; model = "MPC8560ADS";
...@@ -32,74 +33,74 @@ ...@@ -32,74 +33,74 @@
PowerPC,8560@0 { PowerPC,8560@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <04ead9a0>; timebase-frequency = <82500000>;
bus-frequency = <13ab6680>; bus-frequency = <330000000>;
clock-frequency = <312c8040>; clock-frequency = <825000000>;
}; };
}; };
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 10000000>; reg = <0x0 0x10000000>;
}; };
soc8560@e0000000 { soc8560@e0000000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 e0000000 00100000>; ranges = <0x0 0xe0000000 0x100000>;
reg = <e0000000 00000200>; reg = <0xe0000000 0x200>;
bus-frequency = <13ab6680>; bus-frequency = <330000000>;
memory-controller@2000 { memory-controller@2000 {
compatible = "fsl,8540-memory-controller"; compatible = "fsl,8540-memory-controller";
reg = <2000 1000>; reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
l2-cache-controller@20000 { l2-cache-controller@20000 {
compatible = "fsl,8540-l2-cache-controller"; compatible = "fsl,8540-l2-cache-controller";
reg = <20000 1000>; reg = <0x20000 0x1000>;
cache-line-size = <20>; // 32 bytes cache-line-size = <32>; // 32 bytes
cache-size = <40000>; // L2, 256K cache-size = <0x40000>; // L2, 256K
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <10 2>; interrupts = <16 2>;
}; };
mdio@24520 { mdio@24520 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,gianfar-mdio"; compatible = "fsl,gianfar-mdio";
reg = <24520 20>; reg = <0x24520 0x20>;
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy1: ethernet-phy@1 { phy1: ethernet-phy@1 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <5 1>; interrupts = <5 1>;
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy2: ethernet-phy@2 { phy2: ethernet-phy@2 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <7 1>; interrupts = <7 1>;
reg = <2>; reg = <0x2>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy3: ethernet-phy@3 { phy3: ethernet-phy@3 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <7 1>; interrupts = <7 1>;
reg = <3>; reg = <0x3>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -109,9 +110,9 @@ ...@@ -109,9 +110,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <24000 1000>; reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1d 2 1e 2 22 2>; interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy0>; phy-handle = <&phy0>;
}; };
...@@ -121,9 +122,9 @@ ...@@ -121,9 +122,9 @@
device_type = "network"; device_type = "network";
model = "TSEC"; model = "TSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <25000 1000>; reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <23 2 24 2 28 2>; interrupts = <35 2 36 2 40 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy1>; phy-handle = <&phy1>;
}; };
...@@ -132,7 +133,7 @@ ...@@ -132,7 +133,7 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <40000 40000>; reg = <0x40000 0x40000>;
device_type = "open-pic"; device_type = "open-pic";
}; };
...@@ -140,17 +141,17 @@ ...@@ -140,17 +141,17 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
compatible = "fsl,mpc8560-cpm", "fsl,cpm2"; compatible = "fsl,mpc8560-cpm", "fsl,cpm2";
reg = <919c0 30>; reg = <0x919c0 0x30>;
ranges; ranges;
muram@80000 { muram@80000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 80000 10000>; ranges = <0x0 0x80000 0x10000>;
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 4000 9000 2000>; reg = <0x0 0x4000 0x9000 0x2000>;
}; };
}; };
...@@ -158,17 +159,17 @@ ...@@ -158,17 +159,17 @@
compatible = "fsl,mpc8560-brg", compatible = "fsl,mpc8560-brg",
"fsl,cpm2-brg", "fsl,cpm2-brg",
"fsl,cpm-brg"; "fsl,cpm-brg";
reg = <919f0 10 915f0 10>; reg = <0x919f0 0x10 0x915f0 0x10>;
clock-frequency = <d#165000000>; clock-frequency = <165000000>;
}; };
cpmpic: pic@90c00 { cpmpic: pic@90c00 {
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
interrupts = <2e 2>; interrupts = <46 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
reg = <90c00 80>; reg = <0x90c00 0x80>;
compatible = "fsl,mpc8560-cpm-pic", "fsl,cpm2-pic"; compatible = "fsl,mpc8560-cpm-pic", "fsl,cpm2-pic";
}; };
...@@ -176,11 +177,11 @@ ...@@ -176,11 +177,11 @@
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc8560-scc-uart", compatible = "fsl,mpc8560-scc-uart",
"fsl,cpm2-scc-uart"; "fsl,cpm2-scc-uart";
reg = <91a00 20 88000 100>; reg = <0x91a00 0x20 0x88000 0x100>;
fsl,cpm-brg = <1>; fsl,cpm-brg = <1>;
fsl,cpm-command = <00800000>; fsl,cpm-command = <0x800000>;
current-speed = <1c200>; current-speed = <115200>;
interrupts = <28 8>; interrupts = <40 8>;
interrupt-parent = <&cpmpic>; interrupt-parent = <&cpmpic>;
}; };
...@@ -188,11 +189,11 @@ ...@@ -188,11 +189,11 @@
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc8560-scc-uart", compatible = "fsl,mpc8560-scc-uart",
"fsl,cpm2-scc-uart"; "fsl,cpm2-scc-uart";
reg = <91a20 20 88100 100>; reg = <0x91a20 0x20 0x88100 0x100>;
fsl,cpm-brg = <2>; fsl,cpm-brg = <2>;
fsl,cpm-command = <04a00000>; fsl,cpm-command = <0x4a00000>;
current-speed = <1c200>; current-speed = <115200>;
interrupts = <29 8>; interrupts = <41 8>;
interrupt-parent = <&cpmpic>; interrupt-parent = <&cpmpic>;
}; };
...@@ -200,10 +201,10 @@ ...@@ -200,10 +201,10 @@
device_type = "network"; device_type = "network";
compatible = "fsl,mpc8560-fcc-enet", compatible = "fsl,mpc8560-fcc-enet",
"fsl,cpm2-fcc-enet"; "fsl,cpm2-fcc-enet";
reg = <91320 20 88500 100 913b0 1>; reg = <0x91320 0x20 0x88500 0x100 0x913b0 0x1>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
fsl,cpm-command = <16200300>; fsl,cpm-command = <0x16200300>;
interrupts = <21 8>; interrupts = <33 8>;
interrupt-parent = <&cpmpic>; interrupt-parent = <&cpmpic>;
phy-handle = <&phy2>; phy-handle = <&phy2>;
}; };
...@@ -212,10 +213,10 @@ ...@@ -212,10 +213,10 @@
device_type = "network"; device_type = "network";
compatible = "fsl,mpc8560-fcc-enet", compatible = "fsl,mpc8560-fcc-enet",
"fsl,cpm2-fcc-enet"; "fsl,cpm2-fcc-enet";
reg = <91340 20 88600 100 913d0 1>; reg = <0x91340 0x20 0x88600 0x100 0x913d0 0x1>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
fsl,cpm-command = <1a400300>; fsl,cpm-command = <0x1a400300>;
interrupts = <22 8>; interrupts = <34 8>;
interrupt-parent = <&cpmpic>; interrupt-parent = <&cpmpic>;
phy-handle = <&phy3>; phy-handle = <&phy3>;
}; };
...@@ -229,87 +230,87 @@ ...@@ -229,87 +230,87 @@
#address-cells = <3>; #address-cells = <3>;
compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
reg = <e0008000 1000>; reg = <0xe0008000 0x1000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x2 */ /* IDSEL 0x2 */
1000 0 0 1 &mpic 1 1 0x1000 0x0 0x0 0x1 &mpic 0x1 0x1
1000 0 0 2 &mpic 2 1 0x1000 0x0 0x0 0x2 &mpic 0x2 0x1
1000 0 0 3 &mpic 3 1 0x1000 0x0 0x0 0x3 &mpic 0x3 0x1
1000 0 0 4 &mpic 4 1 0x1000 0x0 0x0 0x4 &mpic 0x4 0x1
/* IDSEL 0x3 */ /* IDSEL 0x3 */
1800 0 0 1 &mpic 4 1 0x1800 0x0 0x0 0x1 &mpic 0x4 0x1
1800 0 0 2 &mpic 1 1 0x1800 0x0 0x0 0x2 &mpic 0x1 0x1
1800 0 0 3 &mpic 2 1 0x1800 0x0 0x0 0x3 &mpic 0x2 0x1
1800 0 0 4 &mpic 3 1 0x1800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 0x4 */ /* IDSEL 0x4 */
2000 0 0 1 &mpic 3 1 0x2000 0x0 0x0 0x1 &mpic 0x3 0x1
2000 0 0 2 &mpic 4 1 0x2000 0x0 0x0 0x2 &mpic 0x4 0x1
2000 0 0 3 &mpic 1 1 0x2000 0x0 0x0 0x3 &mpic 0x1 0x1
2000 0 0 4 &mpic 2 1 0x2000 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x5 */ /* IDSEL 0x5 */
2800 0 0 1 &mpic 2 1 0x2800 0x0 0x0 0x1 &mpic 0x2 0x1
2800 0 0 2 &mpic 3 1 0x2800 0x0 0x0 0x2 &mpic 0x3 0x1
2800 0 0 3 &mpic 4 1 0x2800 0x0 0x0 0x3 &mpic 0x4 0x1
2800 0 0 4 &mpic 1 1 0x2800 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 12 */ /* IDSEL 12 */
6000 0 0 1 &mpic 1 1 0x6000 0x0 0x0 0x1 &mpic 0x1 0x1
6000 0 0 2 &mpic 2 1 0x6000 0x0 0x0 0x2 &mpic 0x2 0x1
6000 0 0 3 &mpic 3 1 0x6000 0x0 0x0 0x3 &mpic 0x3 0x1
6000 0 0 4 &mpic 4 1 0x6000 0x0 0x0 0x4 &mpic 0x4 0x1
/* IDSEL 13 */ /* IDSEL 13 */
6800 0 0 1 &mpic 4 1 0x6800 0x0 0x0 0x1 &mpic 0x4 0x1
6800 0 0 2 &mpic 1 1 0x6800 0x0 0x0 0x2 &mpic 0x1 0x1
6800 0 0 3 &mpic 2 1 0x6800 0x0 0x0 0x3 &mpic 0x2 0x1
6800 0 0 4 &mpic 3 1 0x6800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 14*/ /* IDSEL 14*/
7000 0 0 1 &mpic 3 1 0x7000 0x0 0x0 0x1 &mpic 0x3 0x1
7000 0 0 2 &mpic 4 1 0x7000 0x0 0x0 0x2 &mpic 0x4 0x1
7000 0 0 3 &mpic 1 1 0x7000 0x0 0x0 0x3 &mpic 0x1 0x1
7000 0 0 4 &mpic 2 1 0x7000 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 15 */ /* IDSEL 15 */
7800 0 0 1 &mpic 2 1 0x7800 0x0 0x0 0x1 &mpic 0x2 0x1
7800 0 0 2 &mpic 3 1 0x7800 0x0 0x0 0x2 &mpic 0x3 0x1
7800 0 0 3 &mpic 4 1 0x7800 0x0 0x0 0x3 &mpic 0x4 0x1
7800 0 0 4 &mpic 1 1 0x7800 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 18 */ /* IDSEL 18 */
9000 0 0 1 &mpic 1 1 0x9000 0x0 0x0 0x1 &mpic 0x1 0x1
9000 0 0 2 &mpic 2 1 0x9000 0x0 0x0 0x2 &mpic 0x2 0x1
9000 0 0 3 &mpic 3 1 0x9000 0x0 0x0 0x3 &mpic 0x3 0x1
9000 0 0 4 &mpic 4 1 0x9000 0x0 0x0 0x4 &mpic 0x4 0x1
/* IDSEL 19 */ /* IDSEL 19 */
9800 0 0 1 &mpic 4 1 0x9800 0x0 0x0 0x1 &mpic 0x4 0x1
9800 0 0 2 &mpic 1 1 0x9800 0x0 0x0 0x2 &mpic 0x1 0x1
9800 0 0 3 &mpic 2 1 0x9800 0x0 0x0 0x3 &mpic 0x2 0x1
9800 0 0 4 &mpic 3 1 0x9800 0x0 0x0 0x4 &mpic 0x3 0x1
/* IDSEL 20 */ /* IDSEL 20 */
a000 0 0 1 &mpic 3 1 0xa000 0x0 0x0 0x1 &mpic 0x3 0x1
a000 0 0 2 &mpic 4 1 0xa000 0x0 0x0 0x2 &mpic 0x4 0x1
a000 0 0 3 &mpic 1 1 0xa000 0x0 0x0 0x3 &mpic 0x1 0x1
a000 0 0 4 &mpic 2 1 0xa000 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 21 */ /* IDSEL 21 */
a800 0 0 1 &mpic 2 1 0xa800 0x0 0x0 0x1 &mpic 0x2 0x1
a800 0 0 2 &mpic 3 1 0xa800 0x0 0x0 0x2 &mpic 0x3 0x1
a800 0 0 3 &mpic 4 1 0xa800 0x0 0x0 0x3 &mpic 0x4 0x1
a800 0 0 4 &mpic 1 1>; 0xa800 0x0 0x0 0x4 &mpic 0x1 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <18 2>; interrupts = <24 2>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 80000000 80000000 0 20000000 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
01000000 0 00000000 e2000000 0 01000000>; 0x1000000 0x0 0x0 0xe2000000 0x0 0x1000000>;
}; };
}; };
/* /*
* MPC8568E MDS Device Tree Source * MPC8568E MDS Device Tree Source
* *
* Copyright 2007 Freescale Semiconductor Inc. * Copyright 2007, 2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,10 +9,7 @@ ...@@ -9,10 +9,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/*
/memreserve/ 00000000 1000000;
*/
/ { / {
model = "MPC8568EMDS"; model = "MPC8568EMDS";
...@@ -37,11 +34,11 @@ ...@@ -37,11 +34,11 @@
PowerPC,8568@0 { PowerPC,8568@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
...@@ -50,36 +47,36 @@ ...@@ -50,36 +47,36 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 10000000>; reg = <0x0 0x10000000>;
}; };
bcsr@f8000000 { bcsr@f8000000 {
device_type = "board-control"; device_type = "board-control";
reg = <f8000000 8000>; reg = <0xf8000000 0x8000>;
}; };
soc8568@e0000000 { soc8568@e0000000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 e0000000 00100000>; ranges = <0x0 0xe0000000 0x100000>;
reg = <e0000000 00001000>; reg = <0xe0000000 0x1000>;
bus-frequency = <0>; bus-frequency = <0>;
memory-controller@2000 { memory-controller@2000 {
compatible = "fsl,8568-memory-controller"; compatible = "fsl,8568-memory-controller";
reg = <2000 1000>; reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
l2-cache-controller@20000 { l2-cache-controller@20000 {
compatible = "fsl,8568-l2-cache-controller"; compatible = "fsl,8568-l2-cache-controller";
reg = <20000 1000>; reg = <0x20000 0x1000>;
cache-line-size = <20>; // 32 bytes cache-line-size = <32>; // 32 bytes
cache-size = <80000>; // L2, 512K cache-size = <0x80000>; // L2, 512K
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <10 2>; interrupts = <16 2>;
}; };
i2c@3000 { i2c@3000 {
...@@ -87,14 +84,14 @@ ...@@ -87,14 +84,14 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3000 100>; reg = <0x3000 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
rtc@68 { rtc@68 {
compatible = "dallas,ds1374"; compatible = "dallas,ds1374";
reg = <68>; reg = <0x68>;
}; };
}; };
...@@ -103,8 +100,8 @@ ...@@ -103,8 +100,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <1>; cell-index = <1>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3100 100>; reg = <0x3100 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -113,30 +110,30 @@ ...@@ -113,30 +110,30 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,gianfar-mdio"; compatible = "fsl,gianfar-mdio";
reg = <24520 20>; reg = <0x24520 0x20>;
phy0: ethernet-phy@7 { phy0: ethernet-phy@7 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1 1>; interrupts = <1 1>;
reg = <7>; reg = <0x7>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy1: ethernet-phy@1 { phy1: ethernet-phy@1 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <2 1>; interrupts = <2 1>;
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy2: ethernet-phy@2 { phy2: ethernet-phy@2 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1 1>; interrupts = <1 1>;
reg = <2>; reg = <0x2>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
phy3: ethernet-phy@3 { phy3: ethernet-phy@3 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <2 1>; interrupts = <2 1>;
reg = <3>; reg = <0x3>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -146,9 +143,9 @@ ...@@ -146,9 +143,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <24000 1000>; reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1d 2 1e 2 22 2>; interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy2>; phy-handle = <&phy2>;
}; };
...@@ -158,9 +155,9 @@ ...@@ -158,9 +155,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <25000 1000>; reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <23 2 24 2 28 2>; interrupts = <35 2 36 2 40 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy3>; phy-handle = <&phy3>;
}; };
...@@ -169,15 +166,15 @@ ...@@ -169,15 +166,15 @@
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4500 100>; reg = <0x4500 0x100>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
global-utilities@e0000 { //global utilities block global-utilities@e0000 { //global utilities block
compatible = "fsl,mpc8548-guts"; compatible = "fsl,mpc8548-guts";
reg = <e0000 1000>; reg = <0xe0000 0x1000>;
fsl,has-rstcr; fsl,has-rstcr;
}; };
...@@ -185,9 +182,9 @@ ...@@ -185,9 +182,9 @@
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4600 100>; reg = <0x4600 0x100>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -195,13 +192,13 @@ ...@@ -195,13 +192,13 @@
device_type = "crypto"; device_type = "crypto";
model = "SEC2"; model = "SEC2";
compatible = "talitos"; compatible = "talitos";
reg = <30000 f000>; reg = <0x30000 0xf000>;
interrupts = <2d 2>; interrupts = <45 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
num-channels = <4>; num-channels = <4>;
channel-fifo-len = <18>; channel-fifo-len = <24>;
exec-units-mask = <000000fe>; exec-units-mask = <0xfe>;
descriptor-types-mask = <012b0ebf>; descriptor-types-mask = <0x12b0ebf>;
}; };
mpic: pic@40000 { mpic: pic@40000 {
...@@ -209,73 +206,73 @@ ...@@ -209,73 +206,73 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <40000 40000>; reg = <0x40000 0x40000>;
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
device_type = "open-pic"; device_type = "open-pic";
big-endian; big-endian;
}; };
par_io@e0100 { par_io@e0100 {
reg = <e0100 100>; reg = <0xe0100 0x100>;
device_type = "par_io"; device_type = "par_io";
num-ports = <7>; num-ports = <7>;
pio1: ucc_pin@01 { pio1: ucc_pin@01 {
pio-map = < pio-map = <
/* port pin dir open_drain assignment has_irq */ /* port pin dir open_drain assignment has_irq */
4 0a 1 0 2 0 /* TxD0 */ 0x4 0xa 0x1 0x0 0x2 0x0 /* TxD0 */
4 09 1 0 2 0 /* TxD1 */ 0x4 0x9 0x1 0x0 0x2 0x0 /* TxD1 */
4 08 1 0 2 0 /* TxD2 */ 0x4 0x8 0x1 0x0 0x2 0x0 /* TxD2 */
4 07 1 0 2 0 /* TxD3 */ 0x4 0x7 0x1 0x0 0x2 0x0 /* TxD3 */
4 17 1 0 2 0 /* TxD4 */ 0x4 0x17 0x1 0x0 0x2 0x0 /* TxD4 */
4 16 1 0 2 0 /* TxD5 */ 0x4 0x16 0x1 0x0 0x2 0x0 /* TxD5 */
4 15 1 0 2 0 /* TxD6 */ 0x4 0x15 0x1 0x0 0x2 0x0 /* TxD6 */
4 14 1 0 2 0 /* TxD7 */ 0x4 0x14 0x1 0x0 0x2 0x0 /* TxD7 */
4 0f 2 0 2 0 /* RxD0 */ 0x4 0xf 0x2 0x0 0x2 0x0 /* RxD0 */
4 0e 2 0 2 0 /* RxD1 */ 0x4 0xe 0x2 0x0 0x2 0x0 /* RxD1 */
4 0d 2 0 2 0 /* RxD2 */ 0x4 0xd 0x2 0x0 0x2 0x0 /* RxD2 */
4 0c 2 0 2 0 /* RxD3 */ 0x4 0xc 0x2 0x0 0x2 0x0 /* RxD3 */
4 1d 2 0 2 0 /* RxD4 */ 0x4 0x1d 0x2 0x0 0x2 0x0 /* RxD4 */
4 1c 2 0 2 0 /* RxD5 */ 0x4 0x1c 0x2 0x0 0x2 0x0 /* RxD5 */
4 1b 2 0 2 0 /* RxD6 */ 0x4 0x1b 0x2 0x0 0x2 0x0 /* RxD6 */
4 1a 2 0 2 0 /* RxD7 */ 0x4 0x1a 0x2 0x0 0x2 0x0 /* RxD7 */
4 0b 1 0 2 0 /* TX_EN */ 0x4 0xb 0x1 0x0 0x2 0x0 /* TX_EN */
4 18 1 0 2 0 /* TX_ER */ 0x4 0x18 0x1 0x0 0x2 0x0 /* TX_ER */
4 10 2 0 2 0 /* RX_DV */ 0x4 0x10 0x2 0x0 0x2 0x0 /* RX_DV */
4 1e 2 0 2 0 /* RX_ER */ 0x4 0x1e 0x2 0x0 0x2 0x0 /* RX_ER */
4 11 2 0 2 0 /* RX_CLK */ 0x4 0x11 0x2 0x0 0x2 0x0 /* RX_CLK */
4 13 1 0 2 0 /* GTX_CLK */ 0x4 0x13 0x1 0x0 0x2 0x0 /* GTX_CLK */
1 1f 2 0 3 0>; /* GTX125 */ 0x1 0x1f 0x2 0x0 0x3 0x0>; /* GTX125 */
}; };
pio2: ucc_pin@02 { pio2: ucc_pin@02 {
pio-map = < pio-map = <
/* port pin dir open_drain assignment has_irq */ /* port pin dir open_drain assignment has_irq */
5 0a 1 0 2 0 /* TxD0 */ 0x5 0xa 0x1 0x0 0x2 0x0 /* TxD0 */
5 09 1 0 2 0 /* TxD1 */ 0x5 0x9 0x1 0x0 0x2 0x0 /* TxD1 */
5 08 1 0 2 0 /* TxD2 */ 0x5 0x8 0x1 0x0 0x2 0x0 /* TxD2 */
5 07 1 0 2 0 /* TxD3 */ 0x5 0x7 0x1 0x0 0x2 0x0 /* TxD3 */
5 17 1 0 2 0 /* TxD4 */ 0x5 0x17 0x1 0x0 0x2 0x0 /* TxD4 */
5 16 1 0 2 0 /* TxD5 */ 0x5 0x16 0x1 0x0 0x2 0x0 /* TxD5 */
5 15 1 0 2 0 /* TxD6 */ 0x5 0x15 0x1 0x0 0x2 0x0 /* TxD6 */
5 14 1 0 2 0 /* TxD7 */ 0x5 0x14 0x1 0x0 0x2 0x0 /* TxD7 */
5 0f 2 0 2 0 /* RxD0 */ 0x5 0xf 0x2 0x0 0x2 0x0 /* RxD0 */
5 0e 2 0 2 0 /* RxD1 */ 0x5 0xe 0x2 0x0 0x2 0x0 /* RxD1 */
5 0d 2 0 2 0 /* RxD2 */ 0x5 0xd 0x2 0x0 0x2 0x0 /* RxD2 */
5 0c 2 0 2 0 /* RxD3 */ 0x5 0xc 0x2 0x0 0x2 0x0 /* RxD3 */
5 1d 2 0 2 0 /* RxD4 */ 0x5 0x1d 0x2 0x0 0x2 0x0 /* RxD4 */
5 1c 2 0 2 0 /* RxD5 */ 0x5 0x1c 0x2 0x0 0x2 0x0 /* RxD5 */
5 1b 2 0 2 0 /* RxD6 */ 0x5 0x1b 0x2 0x0 0x2 0x0 /* RxD6 */
5 1a 2 0 2 0 /* RxD7 */ 0x5 0x1a 0x2 0x0 0x2 0x0 /* RxD7 */
5 0b 1 0 2 0 /* TX_EN */ 0x5 0xb 0x1 0x0 0x2 0x0 /* TX_EN */
5 18 1 0 2 0 /* TX_ER */ 0x5 0x18 0x1 0x0 0x2 0x0 /* TX_ER */
5 10 2 0 2 0 /* RX_DV */ 0x5 0x10 0x2 0x0 0x2 0x0 /* RX_DV */
5 1e 2 0 2 0 /* RX_ER */ 0x5 0x1e 0x2 0x0 0x2 0x0 /* RX_ER */
5 11 2 0 2 0 /* RX_CLK */ 0x5 0x11 0x2 0x0 0x2 0x0 /* RX_CLK */
5 13 1 0 2 0 /* GTX_CLK */ 0x5 0x13 0x1 0x0 0x2 0x0 /* GTX_CLK */
1 1f 2 0 3 0 /* GTX125 */ 0x1 0x1f 0x2 0x0 0x3 0x0 /* GTX125 */
4 06 3 0 2 0 /* MDIO */ 0x4 0x6 0x3 0x0 0x2 0x0 /* MDIO */
4 05 1 0 2 0>; /* MDC */ 0x4 0x5 0x1 0x0 0x2 0x0>; /* MDC */
}; };
}; };
}; };
...@@ -285,28 +282,28 @@ ...@@ -285,28 +282,28 @@
#size-cells = <1>; #size-cells = <1>;
device_type = "qe"; device_type = "qe";
compatible = "fsl,qe"; compatible = "fsl,qe";
ranges = <0 e0080000 00040000>; ranges = <0x0 0xe0080000 0x40000>;
reg = <e0080000 480>; reg = <0xe0080000 0x480>;
brg-frequency = <0>; brg-frequency = <0>;
bus-frequency = <179A7B00>; bus-frequency = <396000000>;
muram@10000 { muram@10000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
compatible = "fsl,qe-muram", "fsl,cpm-muram"; compatible = "fsl,qe-muram", "fsl,cpm-muram";
ranges = <0 00010000 0000c000>; ranges = <0x0 0x10000 0x10000>;
data-only@0 { data-only@0 {
compatible = "fsl,qe-muram-data", compatible = "fsl,qe-muram-data",
"fsl,cpm-muram-data"; "fsl,cpm-muram-data";
reg = <0 c000>; reg = <0x0 0x10000>;
}; };
}; };
spi@4c0 { spi@4c0 {
cell-index = <0>; cell-index = <0>;
compatible = "fsl,spi"; compatible = "fsl,spi";
reg = <4c0 40>; reg = <0x4c0 0x40>;
interrupts = <2>; interrupts = <2>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
mode = "cpu"; mode = "cpu";
...@@ -315,7 +312,7 @@ ...@@ -315,7 +312,7 @@
spi@500 { spi@500 {
cell-index = <1>; cell-index = <1>;
compatible = "fsl,spi"; compatible = "fsl,spi";
reg = <500 40>; reg = <0x500 0x40>;
interrupts = <1>; interrupts = <1>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
mode = "cpu"; mode = "cpu";
...@@ -324,11 +321,9 @@ ...@@ -324,11 +321,9 @@
enet2: ucc@2000 { enet2: ucc@2000 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC";
cell-index = <1>; cell-index = <1>;
device-id = <1>; reg = <0x2000 0x200>;
reg = <2000 200>; interrupts = <32>;
interrupts = <20>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
rx-clock-name = "none"; rx-clock-name = "none";
...@@ -341,11 +336,9 @@ ...@@ -341,11 +336,9 @@
enet3: ucc@3000 { enet3: ucc@3000 {
device_type = "network"; device_type = "network";
compatible = "ucc_geth"; compatible = "ucc_geth";
model = "UCC";
cell-index = <2>; cell-index = <2>;
device-id = <2>; reg = <0x3000 0x200>;
reg = <3000 200>; interrupts = <33>;
interrupts = <21>;
interrupt-parent = <&qeic>; interrupt-parent = <&qeic>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
rx-clock-name = "none"; rx-clock-name = "none";
...@@ -358,7 +351,7 @@ ...@@ -358,7 +351,7 @@
mdio@2120 { mdio@2120 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <2120 18>; reg = <0x2120 0x18>;
compatible = "fsl,ucc-mdio"; compatible = "fsl,ucc-mdio";
/* These are the same PHYs as on /* These are the same PHYs as on
...@@ -366,25 +359,25 @@ ...@@ -366,25 +359,25 @@
qe_phy0: ethernet-phy@07 { qe_phy0: ethernet-phy@07 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1 1>; interrupts = <1 1>;
reg = <7>; reg = <0x7>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
qe_phy1: ethernet-phy@01 { qe_phy1: ethernet-phy@01 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <2 1>; interrupts = <2 1>;
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
qe_phy2: ethernet-phy@02 { qe_phy2: ethernet-phy@02 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1 1>; interrupts = <1 1>;
reg = <2>; reg = <0x2>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
qe_phy3: ethernet-phy@03 { qe_phy3: ethernet-phy@03 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <2 1>; interrupts = <2 1>;
reg = <3>; reg = <0x3>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -394,9 +387,9 @@ ...@@ -394,9 +387,9 @@
compatible = "fsl,qe-ic"; compatible = "fsl,qe-ic";
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
reg = <80 80>; reg = <0x80 0x80>;
big-endian; big-endian;
interrupts = <2e 2 2e 2>; //high:30 low:30 interrupts = <46 2 46 2>; //high:30 low:30
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -404,30 +397,30 @@ ...@@ -404,30 +397,30 @@
pci0: pci@e0008000 { pci0: pci@e0008000 {
cell-index = <0>; cell-index = <0>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x12 AD18 */ /* IDSEL 0x12 AD18 */
9000 0 0 1 &mpic 5 1 0x9000 0x0 0x0 0x1 &mpic 0x5 0x1
9000 0 0 2 &mpic 6 1 0x9000 0x0 0x0 0x2 &mpic 0x6 0x1
9000 0 0 3 &mpic 7 1 0x9000 0x0 0x0 0x3 &mpic 0x7 0x1
9000 0 0 4 &mpic 4 1 0x9000 0x0 0x0 0x4 &mpic 0x4 0x1
/* IDSEL 0x13 AD19 */ /* IDSEL 0x13 AD19 */
9800 0 0 1 &mpic 6 1 0x9800 0x0 0x0 0x1 &mpic 0x6 0x1
9800 0 0 2 &mpic 7 1 0x9800 0x0 0x0 0x2 &mpic 0x7 0x1
9800 0 0 3 &mpic 4 1 0x9800 0x0 0x0 0x3 &mpic 0x4 0x1
9800 0 0 4 &mpic 5 1>; 0x9800 0x0 0x0 0x4 &mpic 0x5 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <18 2>; interrupts = <24 2>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 80000000 80000000 0 20000000 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
01000000 0 00000000 e2000000 0 00800000>; 0x1000000 0x0 0x0 0xe2000000 0x0 0x800000>;
clock-frequency = <3f940aa>; clock-frequency = <66666666>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e0008000 1000>; reg = <0xe0008000 0x1000>;
compatible = "fsl,mpc8540-pci"; compatible = "fsl,mpc8540-pci";
device_type = "pci"; device_type = "pci";
}; };
...@@ -435,39 +428,39 @@ ...@@ -435,39 +428,39 @@
/* PCI Express */ /* PCI Express */
pci1: pcie@e000a000 { pci1: pcie@e000a000 {
cell-index = <2>; cell-index = <2>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x0 (PEX) */ /* IDSEL 0x0 (PEX) */
00000 0 0 1 &mpic 0 1 00000 0x0 0x0 0x1 &mpic 0x0 0x1
00000 0 0 2 &mpic 1 1 00000 0x0 0x0 0x2 &mpic 0x1 0x1
00000 0 0 3 &mpic 2 1 00000 0x0 0x0 0x3 &mpic 0x2 0x1
00000 0 0 4 &mpic 3 1>; 00000 0x0 0x0 0x4 &mpic 0x3 0x1>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1a 2>; interrupts = <26 2>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 a0000000 a0000000 0 10000000 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
01000000 0 00000000 e2800000 0 00800000>; 0x1000000 0x0 0x0 0xe2800000 0x0 0x800000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <e000a000 1000>; reg = <0xe000a000 0x1000>;
compatible = "fsl,mpc8548-pcie"; compatible = "fsl,mpc8548-pcie";
device_type = "pci"; device_type = "pci";
pcie@0 { pcie@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
device_type = "pci"; device_type = "pci";
ranges = <02000000 0 a0000000 ranges = <0x2000000 0x0 0xa0000000
02000000 0 a0000000 0x2000000 0x0 0xa0000000
0 10000000 0x0 0x10000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00800000>; 0x0 0x800000>;
}; };
}; };
}; };
/* /*
* MPC8572 DS Device Tree Source * MPC8572 DS Device Tree Source
* *
* Copyright 2007 Freescale Semiconductor Inc. * Copyright 2007, 2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "fsl,MPC8572DS"; model = "fsl,MPC8572DS";
compatible = "fsl,MPC8572DS"; compatible = "fsl,MPC8572DS";
...@@ -33,11 +34,11 @@ ...@@ -33,11 +34,11 @@
PowerPC,8572@0 { PowerPC,8572@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
...@@ -45,11 +46,11 @@ ...@@ -45,11 +46,11 @@
PowerPC,8572@1 { PowerPC,8572@1 {
device_type = "cpu"; device_type = "cpu";
reg = <1>; reg = <0x1>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <32>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <32>; // 32 bytes
d-cache-size = <8000>; // L1, 32K d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <8000>; // L1, 32K i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
...@@ -58,38 +59,38 @@ ...@@ -58,38 +59,38 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 00000000>; // Filled by U-Boot reg = <0x0 0x0>; // Filled by U-Boot
}; };
soc8572@ffe00000 { soc8572@ffe00000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <00000000 ffe00000 00100000>; ranges = <0x0 0xffe00000 0x100000>;
reg = <ffe00000 00001000>; // CCSRBAR & soc regs, remove once parse code for immrbase fixed reg = <0xffe00000 0x1000>; // CCSRBAR & soc regs, remove once parse code for immrbase fixed
bus-frequency = <0>; // Filled out by uboot. bus-frequency = <0>; // Filled out by uboot.
memory-controller@2000 { memory-controller@2000 {
compatible = "fsl,mpc8572-memory-controller"; compatible = "fsl,mpc8572-memory-controller";
reg = <2000 1000>; reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
memory-controller@6000 { memory-controller@6000 {
compatible = "fsl,mpc8572-memory-controller"; compatible = "fsl,mpc8572-memory-controller";
reg = <6000 1000>; reg = <0x6000 0x1000>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <12 2>; interrupts = <18 2>;
}; };
l2-cache-controller@20000 { l2-cache-controller@20000 {
compatible = "fsl,mpc8572-l2-cache-controller"; compatible = "fsl,mpc8572-l2-cache-controller";
reg = <20000 1000>; reg = <0x20000 0x1000>;
cache-line-size = <20>; // 32 bytes cache-line-size = <32>; // 32 bytes
cache-size = <80000>; // L2, 512K cache-size = <0x80000>; // L2, 512K
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <10 2>; interrupts = <16 2>;
}; };
i2c@3000 { i2c@3000 {
...@@ -97,8 +98,8 @@ ...@@ -97,8 +98,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <0>; cell-index = <0>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3000 100>; reg = <0x3000 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -108,8 +109,8 @@ ...@@ -108,8 +109,8 @@
#size-cells = <0>; #size-cells = <0>;
cell-index = <1>; cell-index = <1>;
compatible = "fsl-i2c"; compatible = "fsl-i2c";
reg = <3100 100>; reg = <0x3100 0x100>;
interrupts = <2b 2>; interrupts = <43 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
dfsrr; dfsrr;
}; };
...@@ -118,27 +119,27 @@ ...@@ -118,27 +119,27 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,gianfar-mdio"; compatible = "fsl,gianfar-mdio";
reg = <24520 20>; reg = <0x24520 0x20>;
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <a 1>; interrupts = <10 1>;
reg = <0>; reg = <0x0>;
}; };
phy1: ethernet-phy@1 { phy1: ethernet-phy@1 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <a 1>; interrupts = <10 1>;
reg = <1>; reg = <0x1>;
}; };
phy2: ethernet-phy@2 { phy2: ethernet-phy@2 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <a 1>; interrupts = <10 1>;
reg = <2>; reg = <0x2>;
}; };
phy3: ethernet-phy@3 { phy3: ethernet-phy@3 {
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <a 1>; interrupts = <10 1>;
reg = <3>; reg = <0x3>;
}; };
}; };
...@@ -147,9 +148,9 @@ ...@@ -147,9 +148,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <24000 1000>; reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1d 2 1e 2 22 2>; interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy0>; phy-handle = <&phy0>;
phy-connection-type = "rgmii-id"; phy-connection-type = "rgmii-id";
...@@ -160,9 +161,9 @@ ...@@ -160,9 +161,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <25000 1000>; reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <23 2 24 2 28 2>; interrupts = <35 2 36 2 40 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy1>; phy-handle = <&phy1>;
phy-connection-type = "rgmii-id"; phy-connection-type = "rgmii-id";
...@@ -173,9 +174,9 @@ ...@@ -173,9 +174,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <26000 1000>; reg = <0x26000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1f 2 20 2 21 2>; interrupts = <31 2 32 2 33 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy2>; phy-handle = <&phy2>;
phy-connection-type = "rgmii-id"; phy-connection-type = "rgmii-id";
...@@ -186,9 +187,9 @@ ...@@ -186,9 +187,9 @@
device_type = "network"; device_type = "network";
model = "eTSEC"; model = "eTSEC";
compatible = "gianfar"; compatible = "gianfar";
reg = <27000 1000>; reg = <0x27000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <25 2 26 2 27 2>; interrupts = <37 2 38 2 39 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
phy-handle = <&phy3>; phy-handle = <&phy3>;
phy-connection-type = "rgmii-id"; phy-connection-type = "rgmii-id";
...@@ -198,9 +199,9 @@ ...@@ -198,9 +199,9 @@
cell-index = <0>; cell-index = <0>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4500 100>; reg = <0x4500 0x100>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
...@@ -208,15 +209,15 @@ ...@@ -208,15 +209,15 @@
cell-index = <1>; cell-index = <1>;
device_type = "serial"; device_type = "serial";
compatible = "ns16550"; compatible = "ns16550";
reg = <4600 100>; reg = <0x4600 0x100>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <2a 2>; interrupts = <42 2>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
}; };
global-utilities@e0000 { //global utilities block global-utilities@e0000 { //global utilities block
compatible = "fsl,mpc8572-guts"; compatible = "fsl,mpc8572-guts";
reg = <e0000 1000>; reg = <0xe0000 0x1000>;
fsl,has-rstcr; fsl,has-rstcr;
}; };
...@@ -225,7 +226,7 @@ ...@@ -225,7 +226,7 @@
interrupt-controller; interrupt-controller;
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <40000 40000>; reg = <0x40000 0x40000>;
compatible = "chrp,open-pic"; compatible = "chrp,open-pic";
device_type = "open-pic"; device_type = "open-pic";
big-endian; big-endian;
...@@ -239,167 +240,167 @@ ...@@ -239,167 +240,167 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <ffe08000 1000>; reg = <0xffe08000 0x1000>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 80000000 80000000 0 20000000 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
01000000 0 00000000 ffc00000 0 00010000>; 0x1000000 0x0 0x0 0xffc00000 0x0 0x10000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <18 2>; interrupts = <24 2>;
interrupt-map-mask = <ff00 0 0 7>; interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x11 func 0 - PCI slot 1 */ /* IDSEL 0x11 func 0 - PCI slot 1 */
8800 0 0 1 &mpic 2 1 0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
8800 0 0 2 &mpic 3 1 0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
8800 0 0 3 &mpic 4 1 0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
8800 0 0 4 &mpic 1 1 0x8800 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x11 func 1 - PCI slot 1 */ /* IDSEL 0x11 func 1 - PCI slot 1 */
8900 0 0 1 &mpic 2 1 0x8900 0x0 0x0 0x1 &mpic 0x2 0x1
8900 0 0 2 &mpic 3 1 0x8900 0x0 0x0 0x2 &mpic 0x3 0x1
8900 0 0 3 &mpic 4 1 0x8900 0x0 0x0 0x3 &mpic 0x4 0x1
8900 0 0 4 &mpic 1 1 0x8900 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x11 func 2 - PCI slot 1 */ /* IDSEL 0x11 func 2 - PCI slot 1 */
8a00 0 0 1 &mpic 2 1 0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1
8a00 0 0 2 &mpic 3 1 0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1
8a00 0 0 3 &mpic 4 1 0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1
8a00 0 0 4 &mpic 1 1 0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x11 func 3 - PCI slot 1 */ /* IDSEL 0x11 func 3 - PCI slot 1 */
8b00 0 0 1 &mpic 2 1 0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1
8b00 0 0 2 &mpic 3 1 0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1
8b00 0 0 3 &mpic 4 1 0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1
8b00 0 0 4 &mpic 1 1 0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x11 func 4 - PCI slot 1 */ /* IDSEL 0x11 func 4 - PCI slot 1 */
8c00 0 0 1 &mpic 2 1 0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1
8c00 0 0 2 &mpic 3 1 0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1
8c00 0 0 3 &mpic 4 1 0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1
8c00 0 0 4 &mpic 1 1 0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x11 func 5 - PCI slot 1 */ /* IDSEL 0x11 func 5 - PCI slot 1 */
8d00 0 0 1 &mpic 2 1 0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1
8d00 0 0 2 &mpic 3 1 0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1
8d00 0 0 3 &mpic 4 1 0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1
8d00 0 0 4 &mpic 1 1 0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x11 func 6 - PCI slot 1 */ /* IDSEL 0x11 func 6 - PCI slot 1 */
8e00 0 0 1 &mpic 2 1 0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1
8e00 0 0 2 &mpic 3 1 0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1
8e00 0 0 3 &mpic 4 1 0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1
8e00 0 0 4 &mpic 1 1 0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x11 func 7 - PCI slot 1 */ /* IDSEL 0x11 func 7 - PCI slot 1 */
8f00 0 0 1 &mpic 2 1 0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1
8f00 0 0 2 &mpic 3 1 0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1
8f00 0 0 3 &mpic 4 1 0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1
8f00 0 0 4 &mpic 1 1 0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1
/* IDSEL 0x12 func 0 - PCI slot 2 */ /* IDSEL 0x12 func 0 - PCI slot 2 */
9000 0 0 1 &mpic 3 1 0x9000 0x0 0x0 0x1 &mpic 0x3 0x1
9000 0 0 2 &mpic 4 1 0x9000 0x0 0x0 0x2 &mpic 0x4 0x1
9000 0 0 3 &mpic 1 1 0x9000 0x0 0x0 0x3 &mpic 0x1 0x1
9000 0 0 4 &mpic 2 1 0x9000 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x12 func 1 - PCI slot 2 */ /* IDSEL 0x12 func 1 - PCI slot 2 */
9100 0 0 1 &mpic 3 1 0x9100 0x0 0x0 0x1 &mpic 0x3 0x1
9100 0 0 2 &mpic 4 1 0x9100 0x0 0x0 0x2 &mpic 0x4 0x1
9100 0 0 3 &mpic 1 1 0x9100 0x0 0x0 0x3 &mpic 0x1 0x1
9100 0 0 4 &mpic 2 1 0x9100 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x12 func 2 - PCI slot 2 */ /* IDSEL 0x12 func 2 - PCI slot 2 */
9200 0 0 1 &mpic 3 1 0x9200 0x0 0x0 0x1 &mpic 0x3 0x1
9200 0 0 2 &mpic 4 1 0x9200 0x0 0x0 0x2 &mpic 0x4 0x1
9200 0 0 3 &mpic 1 1 0x9200 0x0 0x0 0x3 &mpic 0x1 0x1
9200 0 0 4 &mpic 2 1 0x9200 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x12 func 3 - PCI slot 2 */ /* IDSEL 0x12 func 3 - PCI slot 2 */
9300 0 0 1 &mpic 3 1 0x9300 0x0 0x0 0x1 &mpic 0x3 0x1
9300 0 0 2 &mpic 4 1 0x9300 0x0 0x0 0x2 &mpic 0x4 0x1
9300 0 0 3 &mpic 1 1 0x9300 0x0 0x0 0x3 &mpic 0x1 0x1
9300 0 0 4 &mpic 2 1 0x9300 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x12 func 4 - PCI slot 2 */ /* IDSEL 0x12 func 4 - PCI slot 2 */
9400 0 0 1 &mpic 3 1 0x9400 0x0 0x0 0x1 &mpic 0x3 0x1
9400 0 0 2 &mpic 4 1 0x9400 0x0 0x0 0x2 &mpic 0x4 0x1
9400 0 0 3 &mpic 1 1 0x9400 0x0 0x0 0x3 &mpic 0x1 0x1
9400 0 0 4 &mpic 2 1 0x9400 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x12 func 5 - PCI slot 2 */ /* IDSEL 0x12 func 5 - PCI slot 2 */
9500 0 0 1 &mpic 3 1 0x9500 0x0 0x0 0x1 &mpic 0x3 0x1
9500 0 0 2 &mpic 4 1 0x9500 0x0 0x0 0x2 &mpic 0x4 0x1
9500 0 0 3 &mpic 1 1 0x9500 0x0 0x0 0x3 &mpic 0x1 0x1
9500 0 0 4 &mpic 2 1 0x9500 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x12 func 6 - PCI slot 2 */ /* IDSEL 0x12 func 6 - PCI slot 2 */
9600 0 0 1 &mpic 3 1 0x9600 0x0 0x0 0x1 &mpic 0x3 0x1
9600 0 0 2 &mpic 4 1 0x9600 0x0 0x0 0x2 &mpic 0x4 0x1
9600 0 0 3 &mpic 1 1 0x9600 0x0 0x0 0x3 &mpic 0x1 0x1
9600 0 0 4 &mpic 2 1 0x9600 0x0 0x0 0x4 &mpic 0x2 0x1
/* IDSEL 0x12 func 7 - PCI slot 2 */ /* IDSEL 0x12 func 7 - PCI slot 2 */
9700 0 0 1 &mpic 3 1 0x9700 0x0 0x0 0x1 &mpic 0x3 0x1
9700 0 0 2 &mpic 4 1 0x9700 0x0 0x0 0x2 &mpic 0x4 0x1
9700 0 0 3 &mpic 1 1 0x9700 0x0 0x0 0x3 &mpic 0x1 0x1
9700 0 0 4 &mpic 2 1 0x9700 0x0 0x0 0x4 &mpic 0x2 0x1
// IDSEL 0x1c USB // IDSEL 0x1c USB
e000 0 0 1 &i8259 c 2 0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
e100 0 0 2 &i8259 9 2 0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
e200 0 0 3 &i8259 a 2 0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
e300 0 0 4 &i8259 b 2 0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
// IDSEL 0x1d Audio // IDSEL 0x1d Audio
e800 0 0 1 &i8259 6 2 0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
// IDSEL 0x1e Legacy // IDSEL 0x1e Legacy
f000 0 0 1 &i8259 7 2 0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
f100 0 0 1 &i8259 7 2 0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
// IDSEL 0x1f IDE/SATA // IDSEL 0x1f IDE/SATA
f800 0 0 1 &i8259 e 2 0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
f900 0 0 1 &i8259 5 2 0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
>; >;
pcie@0 { pcie@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
device_type = "pci"; device_type = "pci";
ranges = <02000000 0 80000000 ranges = <0x2000000 0x0 0x80000000
02000000 0 80000000 0x2000000 0x0 0x80000000
0 20000000 0x0 0x20000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00100000>; 0x0 0x100000>;
uli1575@0 { uli1575@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
ranges = <02000000 0 80000000 ranges = <0x2000000 0x0 0x80000000
02000000 0 80000000 0x2000000 0x0 0x80000000
0 20000000 0x0 0x20000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00100000>; 0x0 0x100000>;
isa@1e { isa@1e {
device_type = "isa"; device_type = "isa";
#interrupt-cells = <2>; #interrupt-cells = <2>;
#size-cells = <1>; #size-cells = <1>;
#address-cells = <2>; #address-cells = <2>;
reg = <f000 0 0 0 0>; reg = <0xf000 0x0 0x0 0x0 0x0>;
ranges = <1 0 01000000 0 0 ranges = <0x1 0x0 0x1000000 0x0 0x0
00001000>; 0x1000>;
interrupt-parent = <&i8259>; interrupt-parent = <&i8259>;
i8259: interrupt-controller@20 { i8259: interrupt-controller@20 {
reg = <1 20 2 reg = <0x1 0x20 0x2
1 a0 2 0x1 0xa0 0x2
1 4d0 2>; 0x1 0x4d0 0x2>;
interrupt-controller; interrupt-controller;
device_type = "interrupt-controller"; device_type = "interrupt-controller";
#address-cells = <0>; #address-cells = <0>;
...@@ -412,29 +413,29 @@ ...@@ -412,29 +413,29 @@
i8042@60 { i8042@60 {
#size-cells = <0>; #size-cells = <0>;
#address-cells = <1>; #address-cells = <1>;
reg = <1 60 1 1 64 1>; reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
interrupts = <1 3 c 3>; interrupts = <1 3 12 3>;
interrupt-parent = interrupt-parent =
<&i8259>; <&i8259>;
keyboard@0 { keyboard@0 {
reg = <0>; reg = <0x0>;
compatible = "pnpPNP,303"; compatible = "pnpPNP,303";
}; };
mouse@1 { mouse@1 {
reg = <1>; reg = <0x1>;
compatible = "pnpPNP,f03"; compatible = "pnpPNP,f03";
}; };
}; };
rtc@70 { rtc@70 {
compatible = "pnpPNP,b00"; compatible = "pnpPNP,b00";
reg = <1 70 2>; reg = <0x1 0x70 0x2>;
}; };
gpio@400 { gpio@400 {
reg = <1 400 80>; reg = <0x1 0x400 0x80>;
}; };
}; };
}; };
...@@ -449,33 +450,33 @@ ...@@ -449,33 +450,33 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <ffe09000 1000>; reg = <0xffe09000 0x1000>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 a0000000 a0000000 0 20000000 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
01000000 0 00000000 ffc10000 0 00010000>; 0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1a 2>; interrupts = <26 2>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x0 */ /* IDSEL 0x0 */
0000 0 0 1 &mpic 4 1 0000 0x0 0x0 0x1 &mpic 0x4 0x1
0000 0 0 2 &mpic 5 1 0000 0x0 0x0 0x2 &mpic 0x5 0x1
0000 0 0 3 &mpic 6 1 0000 0x0 0x0 0x3 &mpic 0x6 0x1
0000 0 0 4 &mpic 7 1 0000 0x0 0x0 0x4 &mpic 0x7 0x1
>; >;
pcie@0 { pcie@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
device_type = "pci"; device_type = "pci";
ranges = <02000000 0 a0000000 ranges = <0x2000000 0x0 0xa0000000
02000000 0 a0000000 0x2000000 0x0 0xa0000000
0 20000000 0x0 0x20000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00100000>; 0x0 0x100000>;
}; };
}; };
...@@ -486,33 +487,33 @@ ...@@ -486,33 +487,33 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
reg = <ffe0a000 1000>; reg = <0xffe0a000 0x1000>;
bus-range = <0 ff>; bus-range = <0 255>;
ranges = <02000000 0 c0000000 c0000000 0 20000000 ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000
01000000 0 00000000 ffc20000 0 00010000>; 0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>;
clock-frequency = <1fca055>; clock-frequency = <33333333>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <1b 2>; interrupts = <27 2>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x0 */ /* IDSEL 0x0 */
0000 0 0 1 &mpic 0 1 0000 0x0 0x0 0x1 &mpic 0x0 0x1
0000 0 0 2 &mpic 1 1 0000 0x0 0x0 0x2 &mpic 0x1 0x1
0000 0 0 3 &mpic 2 1 0000 0x0 0x0 0x3 &mpic 0x2 0x1
0000 0 0 4 &mpic 3 1 0000 0x0 0x0 0x4 &mpic 0x3 0x1
>; >;
pcie@0 { pcie@0 {
reg = <0 0 0 0 0>; reg = <0x0 0x0 0x0 0x0 0x0>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
device_type = "pci"; device_type = "pci";
ranges = <02000000 0 c0000000 ranges = <0x2000000 0x0 0xc0000000
02000000 0 c0000000 0x2000000 0x0 0xc0000000
0 20000000 0x0 0x20000000
01000000 0 00000000 0x1000000 0x0 0x0
01000000 0 00000000 0x1000000 0x0 0x0
0 00100000>; 0x0 0x100000>;
}; };
}; };
}; };
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
/ { / {
model = "MPC8641HPCN"; model = "MPC8641HPCN";
compatible = "mpc86xx"; compatible = "fsl,mpc8641hpcn";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* MPC866 ADS Device Tree Source * MPC866 ADS Device Tree Source
* *
* Copyright 2006 MontaVista Software, Inc. * Copyright 2006 MontaVista Software, Inc.
* Copyright 2008 Freescale Semiconductor, Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +10,7 @@ ...@@ -9,6 +10,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC866ADS"; model = "MPC866ADS";
...@@ -22,37 +24,37 @@ ...@@ -22,37 +24,37 @@
PowerPC,866@0 { PowerPC,866@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <10>; // 16 bytes d-cache-line-size = <16>; // 16 bytes
i-cache-line-size = <10>; // 16 bytes i-cache-line-size = <16>; // 16 bytes
d-cache-size = <2000>; // L1, 8K d-cache-size = <0x2000>; // L1, 8K
i-cache-size = <4000>; // L1, 16K i-cache-size = <0x4000>; // L1, 16K
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <f 2>; // decrementer interrupt interrupts = <15 2>; // decrementer interrupt
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
}; };
}; };
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 800000>; reg = <0x0 0x800000>;
}; };
localbus@ff000100 { localbus@ff000100 {
compatible = "fsl,mpc866-localbus", "fsl,pq1-localbus"; compatible = "fsl,mpc866-localbus", "fsl,pq1-localbus";
#address-cells = <2>; #address-cells = <2>;
#size-cells = <1>; #size-cells = <1>;
reg = <ff000100 40>; reg = <0xff000100 0x40>;
ranges = < ranges = <
1 0 ff080000 00008000 0x1 0x0 0xff080000 0x8000
5 0 ff0a0000 00008000 0x5 0x0 0xff0a0000 0x8000
>; >;
board-control@1,0 { board-control@1,0 {
reg = <1 0 20 5 300 4>; reg = <0x1 0x0 0x20 0x5 0x300 0x4>;
compatible = "fsl,mpc866ads-bcsr"; compatible = "fsl,mpc866ads-bcsr";
}; };
}; };
...@@ -61,17 +63,17 @@ ...@@ -61,17 +63,17 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 ff000000 00100000>; ranges = <0x0 0xff000000 0x100000>;
reg = <ff000000 00000200>; reg = <0xff000000 0x200>;
bus-frequency = <0>; bus-frequency = <0>;
mdio@e00 { mdio@e00 {
compatible = "fsl,mpc866-fec-mdio", "fsl,pq1-fec-mdio"; compatible = "fsl,mpc866-fec-mdio", "fsl,pq1-fec-mdio";
reg = <e00 188>; reg = <0xe00 0x188>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
PHY: ethernet-phy@f { PHY: ethernet-phy@f {
reg = <f>; reg = <0xf>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -80,7 +82,7 @@ ...@@ -80,7 +82,7 @@
device_type = "network"; device_type = "network";
compatible = "fsl,mpc866-fec-enet", compatible = "fsl,mpc866-fec-enet",
"fsl,pq1-fec-enet"; "fsl,pq1-fec-enet";
reg = <e00 188>; reg = <0xe00 0x188>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <3 1>; interrupts = <3 1>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
...@@ -91,7 +93,7 @@ ...@@ -91,7 +93,7 @@
PIC: pic@0 { PIC: pic@0 {
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <0 24>; reg = <0x0 0x24>;
compatible = "fsl,mpc866-pic", "fsl,pq1-pic"; compatible = "fsl,mpc866-pic", "fsl,pq1-pic";
}; };
...@@ -100,7 +102,7 @@ ...@@ -100,7 +102,7 @@
#size-cells = <1>; #size-cells = <1>;
compatible = "fsl,mpc866-cpm", "fsl,cpm1"; compatible = "fsl,mpc866-cpm", "fsl,cpm1";
ranges; ranges;
reg = <9c0 40>; reg = <0x9c0 0x40>;
brg-frequency = <0>; brg-frequency = <0>;
interrupts = <0 2>; // cpm error interrupt interrupts = <0 2>; // cpm error interrupt
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
...@@ -108,11 +110,11 @@ ...@@ -108,11 +110,11 @@
muram@2000 { muram@2000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 2000 2000>; ranges = <0x0 0x2000 0x2000>;
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 1c00>; reg = <0x0 0x1c00>;
}; };
}; };
...@@ -120,7 +122,7 @@ ...@@ -120,7 +122,7 @@
compatible = "fsl,mpc866-brg", compatible = "fsl,mpc866-brg",
"fsl,cpm1-brg", "fsl,cpm1-brg",
"fsl,cpm-brg"; "fsl,cpm-brg";
reg = <9f0 10>; reg = <0x9f0 0x10>;
clock-frequency = <0>; clock-frequency = <0>;
}; };
...@@ -130,7 +132,7 @@ ...@@ -130,7 +132,7 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupts = <5 2 0 2>; interrupts = <5 2 0 2>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
reg = <930 20>; reg = <0x930 0x20>;
compatible = "fsl,mpc866-cpm-pic", compatible = "fsl,mpc866-cpm-pic",
"fsl,cpm1-pic"; "fsl,cpm1-pic";
}; };
...@@ -140,31 +142,31 @@ ...@@ -140,31 +142,31 @@
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc866-smc-uart", compatible = "fsl,mpc866-smc-uart",
"fsl,cpm1-smc-uart"; "fsl,cpm1-smc-uart";
reg = <a80 10 3e80 40>; reg = <0xa80 0x10 0x3e80 0x40>;
interrupts = <4>; interrupts = <4>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
fsl,cpm-brg = <1>; fsl,cpm-brg = <1>;
fsl,cpm-command = <0090>; fsl,cpm-command = <0x90>;
}; };
serial@a90 { serial@a90 {
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc866-smc-uart", compatible = "fsl,mpc866-smc-uart",
"fsl,cpm1-smc-uart"; "fsl,cpm1-smc-uart";
reg = <a90 10 3f80 40>; reg = <0xa90 0x10 0x3f80 0x40>;
interrupts = <3>; interrupts = <3>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
fsl,cpm-brg = <2>; fsl,cpm-brg = <2>;
fsl,cpm-command = <00d0>; fsl,cpm-command = <0xd0>;
}; };
ethernet@a00 { ethernet@a00 {
device_type = "network"; device_type = "network";
compatible = "fsl,mpc866-scc-enet", compatible = "fsl,mpc866-scc-enet",
"fsl,cpm1-scc-enet"; "fsl,cpm1-scc-enet";
reg = <a00 18 3c00 100>; reg = <0xa00 0x18 0x3c00 0x100>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1e>; interrupts = <30>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
fsl,cpm-command = <0000>; fsl,cpm-command = <0000>;
linux,network-index = <1>; linux,network-index = <1>;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* MPC885 ADS Device Tree Source * MPC885 ADS Device Tree Source
* *
* Copyright 2006 MontaVista Software, Inc. * Copyright 2006 MontaVista Software, Inc.
* Copyright 2007 Freescale Semiconductor, Inc. * Copyright 2007,2008 Freescale Semiconductor, Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "MPC885ADS"; model = "MPC885ADS";
...@@ -23,45 +24,45 @@ ...@@ -23,45 +24,45 @@
PowerPC,885@0 { PowerPC,885@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <d#16>; d-cache-line-size = <16>;
i-cache-line-size = <d#16>; i-cache-line-size = <16>;
d-cache-size = <d#8192>; d-cache-size = <8192>;
i-cache-size = <d#8192>; i-cache-size = <8192>;
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <f 2>; // decrementer interrupt interrupts = <15 2>; // decrementer interrupt
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
}; };
}; };
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <0 0>; reg = <0x0 0x0>;
}; };
localbus@ff000100 { localbus@ff000100 {
compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus"; compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus";
#address-cells = <2>; #address-cells = <2>;
#size-cells = <1>; #size-cells = <1>;
reg = <ff000100 40>; reg = <0xff000100 0x40>;
ranges = < ranges = <
0 0 fe000000 00800000 0x0 0x0 0xfe000000 0x800000
1 0 ff080000 00008000 0x1 0x0 0xff080000 0x8000
5 0 ff0a0000 00008000 0x5 0x0 0xff0a0000 0x8000
>; >;
flash@0,0 { flash@0,0 {
compatible = "jedec-flash"; compatible = "jedec-flash";
reg = <0 0 800000>; reg = <0x0 0x0 0x800000>;
bank-width = <4>; bank-width = <4>;
device-width = <1>; device-width = <1>;
}; };
board-control@1,0 { board-control@1,0 {
reg = <1 0 20 5 300 4>; reg = <0x1 0x0 0x20 0x5 0x300 0x4>;
compatible = "fsl,mpc885ads-bcsr"; compatible = "fsl,mpc885ads-bcsr";
}; };
}; };
...@@ -71,30 +72,30 @@ ...@@ -71,30 +72,30 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 ff000000 00004000>; ranges = <0x0 0xff000000 0x4000>;
bus-frequency = <0>; bus-frequency = <0>;
// Temporary -- will go away once kernel uses ranges for get_immrbase(). // Temporary -- will go away once kernel uses ranges for get_immrbase().
reg = <ff000000 4000>; reg = <0xff000000 0x4000>;
mdio@e00 { mdio@e00 {
compatible = "fsl,mpc885-fec-mdio", "fsl,pq1-fec-mdio"; compatible = "fsl,mpc885-fec-mdio", "fsl,pq1-fec-mdio";
reg = <e00 188>; reg = <0xe00 0x188>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
PHY0: ethernet-phy@0 { PHY0: ethernet-phy@0 {
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
PHY1: ethernet-phy@1 { PHY1: ethernet-phy@1 {
reg = <1>; reg = <0x1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
PHY2: ethernet-phy@2 { PHY2: ethernet-phy@2 {
reg = <2>; reg = <0x2>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -103,7 +104,7 @@ ...@@ -103,7 +104,7 @@
device_type = "network"; device_type = "network";
compatible = "fsl,mpc885-fec-enet", compatible = "fsl,mpc885-fec-enet",
"fsl,pq1-fec-enet"; "fsl,pq1-fec-enet";
reg = <e00 188>; reg = <0xe00 0x188>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <3 1>; interrupts = <3 1>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
...@@ -115,7 +116,7 @@ ...@@ -115,7 +116,7 @@
device_type = "network"; device_type = "network";
compatible = "fsl,mpc885-fec-enet", compatible = "fsl,mpc885-fec-enet",
"fsl,pq1-fec-enet"; "fsl,pq1-fec-enet";
reg = <1e00 188>; reg = <0x1e00 0x188>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <7 1>; interrupts = <7 1>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
...@@ -126,7 +127,7 @@ ...@@ -126,7 +127,7 @@
PIC: interrupt-controller@0 { PIC: interrupt-controller@0 {
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <0 24>; reg = <0x0 0x24>;
compatible = "fsl,mpc885-pic", "fsl,pq1-pic"; compatible = "fsl,mpc885-pic", "fsl,pq1-pic";
}; };
...@@ -136,29 +137,29 @@ ...@@ -136,29 +137,29 @@
#size-cells = <2>; #size-cells = <2>;
compatible = "fsl,pq-pcmcia"; compatible = "fsl,pq-pcmcia";
device_type = "pcmcia"; device_type = "pcmcia";
reg = <80 80>; reg = <0x80 0x80>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <d 1>; interrupts = <13 1>;
}; };
cpm@9c0 { cpm@9c0 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
compatible = "fsl,mpc885-cpm", "fsl,cpm1"; compatible = "fsl,mpc885-cpm", "fsl,cpm1";
command-proc = <9c0>; command-proc = <0x9c0>;
interrupts = <0>; // cpm error interrupt interrupts = <0>; // cpm error interrupt
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
reg = <9c0 40>; reg = <0x9c0 0x40>;
ranges; ranges;
muram@2000 { muram@2000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 2000 2000>; ranges = <0x0 0x2000 0x2000>;
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 1c00>; reg = <0x0 0x1c00>;
}; };
}; };
...@@ -167,7 +168,7 @@ ...@@ -167,7 +168,7 @@
"fsl,cpm1-brg", "fsl,cpm1-brg",
"fsl,cpm-brg"; "fsl,cpm-brg";
clock-frequency = <0>; clock-frequency = <0>;
reg = <9f0 10>; reg = <0x9f0 0x10>;
}; };
CPM_PIC: interrupt-controller@930 { CPM_PIC: interrupt-controller@930 {
...@@ -175,7 +176,7 @@ ...@@ -175,7 +176,7 @@
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupts = <5 2 0 2>; interrupts = <5 2 0 2>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
reg = <930 20>; reg = <0x930 0x20>;
compatible = "fsl,mpc885-cpm-pic", compatible = "fsl,mpc885-cpm-pic",
"fsl,cpm1-pic"; "fsl,cpm1-pic";
}; };
...@@ -184,34 +185,34 @@ ...@@ -184,34 +185,34 @@
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc885-smc-uart", compatible = "fsl,mpc885-smc-uart",
"fsl,cpm1-smc-uart"; "fsl,cpm1-smc-uart";
reg = <a80 10 3e80 40>; reg = <0xa80 0x10 0x3e80 0x40>;
interrupts = <4>; interrupts = <4>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
fsl,cpm-brg = <1>; fsl,cpm-brg = <1>;
fsl,cpm-command = <0090>; fsl,cpm-command = <0x90>;
}; };
serial@a90 { serial@a90 {
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc885-smc-uart", compatible = "fsl,mpc885-smc-uart",
"fsl,cpm1-smc-uart"; "fsl,cpm1-smc-uart";
reg = <a90 10 3f80 40>; reg = <0xa90 0x10 0x3f80 0x40>;
interrupts = <3>; interrupts = <3>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
fsl,cpm-brg = <2>; fsl,cpm-brg = <2>;
fsl,cpm-command = <00d0>; fsl,cpm-command = <0xd0>;
}; };
ethernet@a40 { ethernet@a40 {
device_type = "network"; device_type = "network";
compatible = "fsl,mpc885-scc-enet", compatible = "fsl,mpc885-scc-enet",
"fsl,cpm1-scc-enet"; "fsl,cpm1-scc-enet";
reg = <a40 18 3e00 100>; reg = <0xa40 0x18 0x3e00 0x100>;
local-mac-address = [ 00 00 00 00 00 00 ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <1c>; interrupts = <28>;
interrupt-parent = <&CPM_PIC>; interrupt-parent = <&CPM_PIC>;
phy-handle = <&PHY2>; phy-handle = <&PHY2>;
fsl,cpm-command = <0080>; fsl,cpm-command = <0x80>;
linux,network-index = <2>; linux,network-index = <2>;
}; };
}; };
......
/* /*
* Device Tree for the PQ2FADS-ZU board with an MPC8280 chip. * Device Tree for the PQ2FADS-ZU board with an MPC8280 chip.
* *
* Copyright 2007 Freescale Semiconductor Inc. * Copyright 2007,2008 Freescale Semiconductor Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
* option) any later version. * option) any later version.
*/ */
/dts-v1/;
/ { / {
model = "pq2fads"; model = "pq2fads";
compatible = "fsl,pq2fads"; compatible = "fsl,pq2fads";
...@@ -21,11 +23,11 @@ ...@@ -21,11 +23,11 @@
cpu@0 { cpu@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0x0>;
d-cache-line-size = <d#32>; d-cache-line-size = <32>;
i-cache-line-size = <d#32>; i-cache-line-size = <32>;
d-cache-size = <d#16384>; d-cache-size = <16384>;
i-cache-size = <d#16384>; i-cache-size = <16384>;
timebase-frequency = <0>; timebase-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
}; };
...@@ -33,7 +35,7 @@ ...@@ -33,7 +35,7 @@
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <0 0>; reg = <0x0 0x0>;
}; };
localbus@f0010100 { localbus@f0010100 {
...@@ -41,67 +43,67 @@ ...@@ -41,67 +43,67 @@
"fsl,pq2-localbus"; "fsl,pq2-localbus";
#address-cells = <2>; #address-cells = <2>;
#size-cells = <1>; #size-cells = <1>;
reg = <f0010100 60>; reg = <0xf0010100 0x60>;
ranges = <0 0 fe000000 00800000 ranges = <0x0 0x0 0xfe000000 0x800000
1 0 f4500000 00008000 0x1 0x0 0xf4500000 0x8000
8 0 f8200000 00008000>; 0x8 0x0 0xf8200000 0x8000>;
flash@0,0 { flash@0,0 {
compatible = "jedec-flash"; compatible = "jedec-flash";
reg = <0 0 800000>; reg = <0x0 0x0 0x800000>;
bank-width = <4>; bank-width = <4>;
device-width = <1>; device-width = <1>;
}; };
bcsr@1,0 { bcsr@1,0 {
reg = <1 0 20>; reg = <0x1 0x0 0x20>;
compatible = "fsl,pq2fads-bcsr"; compatible = "fsl,pq2fads-bcsr";
}; };
PCI_PIC: pic@8,0 { PCI_PIC: pic@8,0 {
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupt-controller; interrupt-controller;
reg = <8 0 8>; reg = <0x8 0x0 0x8>;
compatible = "fsl,pq2ads-pci-pic"; compatible = "fsl,pq2ads-pci-pic";
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <18 8>; interrupts = <24 8>;
}; };
}; };
pci@f0010800 { pci@f0010800 {
device_type = "pci"; device_type = "pci";
reg = <f0010800 10c f00101ac 8 f00101c4 8>; reg = <0xf0010800 0x10c 0xf00101ac 0x8 0xf00101c4 0x8>;
compatible = "fsl,mpc8280-pci", "fsl,pq2-pci"; compatible = "fsl,mpc8280-pci", "fsl,pq2-pci";
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
#address-cells = <3>; #address-cells = <3>;
clock-frequency = <d#66000000>; clock-frequency = <66000000>;
interrupt-map-mask = <f800 0 0 7>; interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = < interrupt-map = <
/* IDSEL 0x16 */ /* IDSEL 0x16 */
b000 0 0 1 &PCI_PIC 0 0xb000 0x0 0x0 0x1 &PCI_PIC 0
b000 0 0 2 &PCI_PIC 1 0xb000 0x0 0x0 0x2 &PCI_PIC 1
b000 0 0 3 &PCI_PIC 2 0xb000 0x0 0x0 0x3 &PCI_PIC 2
b000 0 0 4 &PCI_PIC 3 0xb000 0x0 0x0 0x4 &PCI_PIC 3
/* IDSEL 0x17 */ /* IDSEL 0x17 */
b800 0 0 1 &PCI_PIC 4 0xb800 0x0 0x0 0x1 &PCI_PIC 4
b800 0 0 2 &PCI_PIC 5 0xb800 0x0 0x0 0x2 &PCI_PIC 5
b800 0 0 3 &PCI_PIC 6 0xb800 0x0 0x0 0x3 &PCI_PIC 6
b800 0 0 4 &PCI_PIC 7 0xb800 0x0 0x0 0x4 &PCI_PIC 7
/* IDSEL 0x18 */ /* IDSEL 0x18 */
c000 0 0 1 &PCI_PIC 8 0xc000 0x0 0x0 0x1 &PCI_PIC 8
c000 0 0 2 &PCI_PIC 9 0xc000 0x0 0x0 0x2 &PCI_PIC 9
c000 0 0 3 &PCI_PIC a 0xc000 0x0 0x0 0x3 &PCI_PIC 10
c000 0 0 4 &PCI_PIC b>; 0xc000 0x0 0x0 0x4 &PCI_PIC 11>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <12 8>; interrupts = <18 8>;
ranges = <42000000 0 80000000 80000000 0 20000000 ranges = <0x42000000 0x0 0x80000000 0x80000000 0x0 0x20000000
02000000 0 a0000000 a0000000 0 20000000 0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
01000000 0 00000000 f6000000 0 02000000>; 0x1000000 0x0 0x0 0xf6000000 0x0 0x2000000>;
}; };
soc@f0000000 { soc@f0000000 {
...@@ -109,27 +111,27 @@ ...@@ -109,27 +111,27 @@
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
compatible = "fsl,mpc8280", "fsl,pq2-soc"; compatible = "fsl,mpc8280", "fsl,pq2-soc";
ranges = <00000000 f0000000 00053000>; ranges = <0x0 0xf0000000 0x53000>;
// Temporary -- will go away once kernel uses ranges for get_immrbase(). // Temporary -- will go away once kernel uses ranges for get_immrbase().
reg = <f0000000 00053000>; reg = <0xf0000000 0x53000>;
cpm@119c0 { cpm@119c0 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
compatible = "fsl,mpc8280-cpm", "fsl,cpm2"; compatible = "fsl,mpc8280-cpm", "fsl,cpm2";
reg = <119c0 30>; reg = <0x119c0 0x30>;
ranges; ranges;
muram@0 { muram@0 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0 10000>; ranges = <0x0 0x0 0x10000>;
data@0 { data@0 {
compatible = "fsl,cpm-muram-data"; compatible = "fsl,cpm-muram-data";
reg = <0 2000 9800 800>; reg = <0x0 0x2000 0x9800 0x800>;
}; };
}; };
...@@ -137,53 +139,53 @@ ...@@ -137,53 +139,53 @@
compatible = "fsl,mpc8280-brg", compatible = "fsl,mpc8280-brg",
"fsl,cpm2-brg", "fsl,cpm2-brg",
"fsl,cpm-brg"; "fsl,cpm-brg";
reg = <119f0 10 115f0 10>; reg = <0x119f0 0x10 0x115f0 0x10>;
}; };
serial@11a00 { serial@11a00 {
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc8280-scc-uart", compatible = "fsl,mpc8280-scc-uart",
"fsl,cpm2-scc-uart"; "fsl,cpm2-scc-uart";
reg = <11a00 20 8000 100>; reg = <0x11a00 0x20 0x8000 0x100>;
interrupts = <28 8>; interrupts = <40 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
fsl,cpm-brg = <1>; fsl,cpm-brg = <1>;
fsl,cpm-command = <00800000>; fsl,cpm-command = <0x800000>;
}; };
serial@11a20 { serial@11a20 {
device_type = "serial"; device_type = "serial";
compatible = "fsl,mpc8280-scc-uart", compatible = "fsl,mpc8280-scc-uart",
"fsl,cpm2-scc-uart"; "fsl,cpm2-scc-uart";
reg = <11a20 20 8100 100>; reg = <0x11a20 0x20 0x8100 0x100>;
interrupts = <29 8>; interrupts = <41 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
fsl,cpm-brg = <2>; fsl,cpm-brg = <2>;
fsl,cpm-command = <04a00000>; fsl,cpm-command = <0x4a00000>;
}; };
ethernet@11320 { ethernet@11320 {
device_type = "network"; device_type = "network";
compatible = "fsl,mpc8280-fcc-enet", compatible = "fsl,mpc8280-fcc-enet",
"fsl,cpm2-fcc-enet"; "fsl,cpm2-fcc-enet";
reg = <11320 20 8500 100 113b0 1>; reg = <0x11320 0x20 0x8500 0x100 0x113b0 0x1>;
interrupts = <21 8>; interrupts = <33 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
phy-handle = <&PHY0>; phy-handle = <&PHY0>;
linux,network-index = <0>; linux,network-index = <0>;
fsl,cpm-command = <16200300>; fsl,cpm-command = <0x16200300>;
}; };
ethernet@11340 { ethernet@11340 {
device_type = "network"; device_type = "network";
compatible = "fsl,mpc8280-fcc-enet", compatible = "fsl,mpc8280-fcc-enet",
"fsl,cpm2-fcc-enet"; "fsl,cpm2-fcc-enet";
reg = <11340 20 8600 100 113d0 1>; reg = <0x11340 0x20 0x8600 0x100 0x113d0 0x1>;
interrupts = <22 8>; interrupts = <34 8>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
phy-handle = <&PHY1>; phy-handle = <&PHY1>;
linux,network-index = <1>; linux,network-index = <1>;
fsl,cpm-command = <1a400300>; fsl,cpm-command = <0x1a400300>;
local-mac-address = [00 e0 0c 00 79 01]; local-mac-address = [00 e0 0c 00 79 01];
}; };
...@@ -194,21 +196,21 @@ ...@@ -194,21 +196,21 @@
"fsl,cpm2-mdio-bitbang"; "fsl,cpm2-mdio-bitbang";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <10d40 14>; reg = <0x10d40 0x14>;
fsl,mdio-pin = <9>; fsl,mdio-pin = <9>;
fsl,mdc-pin = <a>; fsl,mdc-pin = <10>;
PHY0: ethernet-phy@0 { PHY0: ethernet-phy@0 {
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <19 2>; interrupts = <25 2>;
reg = <0>; reg = <0x0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
PHY1: ethernet-phy@1 { PHY1: ethernet-phy@1 {
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <19 2>; interrupts = <25 2>;
reg = <3>; reg = <0x3>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
...@@ -218,17 +220,17 @@ ...@@ -218,17 +220,17 @@
#size-cells = <0>; #size-cells = <0>;
compatible = "fsl,mpc8280-usb", compatible = "fsl,mpc8280-usb",
"fsl,cpm2-usb"; "fsl,cpm2-usb";
reg = <11b60 18 8b00 100>; reg = <0x11b60 0x18 0x8b00 0x100>;
interrupt-parent = <&PIC>; interrupt-parent = <&PIC>;
interrupts = <b 8>; interrupts = <11 8>;
fsl,cpm-command = <2e600000>; fsl,cpm-command = <0x2e600000>;
}; };
}; };
PIC: interrupt-controller@10c00 { PIC: interrupt-controller@10c00 {
#interrupt-cells = <2>; #interrupt-cells = <2>;
interrupt-controller; interrupt-controller;
reg = <10c00 80>; reg = <0x10c00 0x80>;
compatible = "fsl,mpc8280-pic", "fsl,cpm2-pic"; compatible = "fsl,mpc8280-pic", "fsl,cpm2-pic";
}; };
......
/*
* SBC8641D Device Tree Source
*
* Copyright 2008 Wind River Systems Inc.
*
* Paul Gortmaker (see MAINTAINERS for contact information)
*
* Based largely on the mpc8641_hpcn.dts by Freescale Semiconductor Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
/dts-v1/;
/ {
model = "SBC8641D";
compatible = "wind,sbc8641";
#address-cells = <1>;
#size-cells = <1>;
aliases {
ethernet0 = &enet0;
ethernet1 = &enet1;
ethernet2 = &enet2;
ethernet3 = &enet3;
serial0 = &serial0;
serial1 = &serial1;
pci0 = &pci0;
pci1 = &pci1;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
PowerPC,8641@0 {
device_type = "cpu";
reg = <0>;
d-cache-line-size = <32>;
i-cache-line-size = <32>;
d-cache-size = <32768>; // L1
i-cache-size = <32768>; // L1
timebase-frequency = <0>; // From uboot
bus-frequency = <0>; // From uboot
clock-frequency = <0>; // From uboot
};
PowerPC,8641@1 {
device_type = "cpu";
reg = <1>;
d-cache-line-size = <32>;
i-cache-line-size = <32>;
d-cache-size = <32768>;
i-cache-size = <32768>;
timebase-frequency = <0>; // From uboot
bus-frequency = <0>; // From uboot
clock-frequency = <0>; // From uboot
};
};
memory {
device_type = "memory";
reg = <0x00000000 0x20000000>; // 512M at 0x0
};
localbus@f8005000 {
#address-cells = <2>;
#size-cells = <1>;
compatible = "fsl,mpc8641-localbus", "simple-bus";
reg = <0xf8005000 0x1000>;
interrupts = <19 2>;
interrupt-parent = <&mpic>;
ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash
1 0 0xf0000000 0x00010000 // 64KB EEPROM
2 0 0xf1000000 0x00100000 // EPLD (1MB)
3 0 0xe0000000 0x04000000 // 64MB LB SDRAM (CS3)
4 0 0xe4000000 0x04000000 // 64MB LB SDRAM (CS4)
6 0 0xf4000000 0x00100000 // LCD display (1MB)
7 0 0xe8000000 0x04000000>; // 64MB OneNAND
flash@0,0 {
compatible = "cfi-flash";
reg = <0 0 0x01000000>;
bank-width = <2>;
device-width = <2>;
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "dtb";
reg = <0x00000000 0x00100000>;
read-only;
};
partition@300000 {
label = "kernel";
reg = <0x00100000 0x00400000>;
read-only;
};
partition@400000 {
label = "fs";
reg = <0x00500000 0x00a00000>;
};
partition@700000 {
label = "firmware";
reg = <0x00f00000 0x00100000>;
read-only;
};
};
epld@2,0 {
compatible = "wrs,epld-localbus";
#address-cells = <2>;
#size-cells = <1>;
reg = <2 0 0x100000>;
ranges = <0 0 5 0 1 // User switches
1 0 5 1 1 // Board ID/Rev
3 0 5 3 1>; // LEDs
};
};
soc@f8000000 {
#address-cells = <1>;
#size-cells = <1>;
device_type = "soc";
compatible = "simple-bus";
ranges = <0x00000000 0xf8000000 0x00100000>;
reg = <0xf8000000 0x00001000>; // CCSRBAR
bus-frequency = <0>;
i2c@3000 {
#address-cells = <1>;
#size-cells = <0>;
cell-index = <0>;
compatible = "fsl-i2c";
reg = <0x3000 0x100>;
interrupts = <43 2>;
interrupt-parent = <&mpic>;
dfsrr;
};
i2c@3100 {
#address-cells = <1>;
#size-cells = <0>;
cell-index = <1>;
compatible = "fsl-i2c";
reg = <0x3100 0x100>;
interrupts = <43 2>;
interrupt-parent = <&mpic>;
dfsrr;
};
mdio@24520 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,gianfar-mdio";
reg = <0x24520 0x20>;
phy0: ethernet-phy@1f {
interrupt-parent = <&mpic>;
interrupts = <10 1>;
reg = <0x1f>;
device_type = "ethernet-phy";
};
phy1: ethernet-phy@0 {
interrupt-parent = <&mpic>;
interrupts = <10 1>;
reg = <0>;
device_type = "ethernet-phy";
};
phy2: ethernet-phy@1 {
interrupt-parent = <&mpic>;
interrupts = <10 1>;
reg = <1>;
device_type = "ethernet-phy";
};
phy3: ethernet-phy@2 {
interrupt-parent = <&mpic>;
interrupts = <10 1>;
reg = <2>;
device_type = "ethernet-phy";
};
};
enet0: ethernet@24000 {
cell-index = <0>;
device_type = "network";
model = "TSEC";
compatible = "gianfar";
reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <29 2 30 2 34 2>;
interrupt-parent = <&mpic>;
phy-handle = <&phy0>;
phy-connection-type = "rgmii-id";
};
enet1: ethernet@25000 {
cell-index = <1>;
device_type = "network";
model = "TSEC";
compatible = "gianfar";
reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <35 2 36 2 40 2>;
interrupt-parent = <&mpic>;
phy-handle = <&phy1>;
phy-connection-type = "rgmii-id";
};
enet2: ethernet@26000 {
cell-index = <2>;
device_type = "network";
model = "TSEC";
compatible = "gianfar";
reg = <0x26000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <31 2 32 2 33 2>;
interrupt-parent = <&mpic>;
phy-handle = <&phy2>;
phy-connection-type = "rgmii-id";
};
enet3: ethernet@27000 {
cell-index = <3>;
device_type = "network";
model = "TSEC";
compatible = "gianfar";
reg = <0x27000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <37 2 38 2 39 2>;
interrupt-parent = <&mpic>;
phy-handle = <&phy3>;
phy-connection-type = "rgmii-id";
};
serial0: serial@4500 {
cell-index = <0>;
device_type = "serial";
compatible = "ns16550";
reg = <0x4500 0x100>;
clock-frequency = <0>;
interrupts = <42 2>;
interrupt-parent = <&mpic>;
};
serial1: serial@4600 {
cell-index = <1>;
device_type = "serial";
compatible = "ns16550";
reg = <0x4600 0x100>;
clock-frequency = <0>;
interrupts = <28 2>;
interrupt-parent = <&mpic>;
};
mpic: pic@40000 {
clock-frequency = <0>;
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <2>;
reg = <0x40000 0x40000>;
compatible = "chrp,open-pic";
device_type = "open-pic";
big-endian;
};
global-utilities@e0000 {
compatible = "fsl,mpc8641-guts";
reg = <0xe0000 0x1000>;
fsl,has-rstcr;
};
};
pci0: pcie@f8008000 {
cell-index = <0>;
compatible = "fsl,mpc8641-pcie";
device_type = "pci";
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
reg = <0xf8008000 0x1000>;
bus-range = <0x0 0xff>;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000
0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00100000>;
clock-frequency = <33333333>;
interrupt-parent = <&mpic>;
interrupts = <24 2>;
interrupt-map-mask = <0xff00 0 0 7>;
interrupt-map = <
/* IDSEL 0x0 */
0x0000 0 0 1 &mpic 0 1
0x0000 0 0 2 &mpic 1 1
0x0000 0 0 3 &mpic 2 1
0x0000 0 0 4 &mpic 3 1
>;
pcie@0 {
reg = <0 0 0 0 0>;
#size-cells = <2>;
#address-cells = <3>;
device_type = "pci";
ranges = <0x02000000 0x0 0x80000000
0x02000000 0x0 0x80000000
0x0 0x20000000
0x01000000 0x0 0x00000000
0x01000000 0x0 0x00000000
0x0 0x00100000>;
};
};
pci1: pcie@f8009000 {
cell-index = <1>;
compatible = "fsl,mpc8641-pcie";
device_type = "pci";
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
reg = <0xf8009000 0x1000>;
bus-range = <0 0xff>;
ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
0x01000000 0x0 0x00000000 0xe3000000 0x0 0x00100000>;
clock-frequency = <33333333>;
interrupt-parent = <&mpic>;
interrupts = <25 2>;
interrupt-map-mask = <0xf800 0 0 7>;
interrupt-map = <
/* IDSEL 0x0 */
0x0000 0 0 1 &mpic 4 1
0x0000 0 0 2 &mpic 5 1
0x0000 0 0 3 &mpic 6 1
0x0000 0 0 4 &mpic 7 1
>;
pcie@0 {
reg = <0 0 0 0 0>;
#size-cells = <2>;
#address-cells = <3>;
device_type = "pci";
ranges = <0x02000000 0x0 0xa0000000
0x02000000 0x0 0xa0000000
0x0 0x20000000
0x01000000 0x0 0x00000000
0x01000000 0x0 0x00000000
0x0 0x00100000>;
};
};
};
...@@ -51,14 +51,9 @@ static unsigned char psc_getc(void) ...@@ -51,14 +51,9 @@ static unsigned char psc_getc(void)
int mpc5200_psc_console_init(void *devp, struct serial_console_data *scdp) int mpc5200_psc_console_init(void *devp, struct serial_console_data *scdp)
{ {
int n;
/* Get the base address of the psc registers */ /* Get the base address of the psc registers */
n = getprop(devp, "virtual-reg", &psc, sizeof(psc)); if (dt_get_virtual_reg(devp, &psc, 1) < 1)
if (n != sizeof(psc)) { return -1;
if (!dt_xlate_reg(devp, 0, (void *)&psc, NULL))
return -1;
}
scdp->open = psc_open; scdp->open = psc_open;
scdp->putc = psc_putc; scdp->putc = psc_putc;
......
...@@ -55,15 +55,9 @@ static u8 ns16550_tstc(void) ...@@ -55,15 +55,9 @@ static u8 ns16550_tstc(void)
int ns16550_console_init(void *devp, struct serial_console_data *scdp) int ns16550_console_init(void *devp, struct serial_console_data *scdp)
{ {
int n; int n;
unsigned long reg_phys;
n = getprop(devp, "virtual-reg", &reg_base, sizeof(reg_base)); if (dt_get_virtual_reg(devp, (void **)&reg_base, 1) < 1)
if (n != sizeof(reg_base)) { return -1;
if (!dt_xlate_reg(devp, 0, &reg_phys, NULL))
return -1;
reg_base = (void *)reg_phys;
}
n = getprop(devp, "reg-shift", &reg_shift, sizeof(reg_shift)); n = getprop(devp, "reg-shift", &reg_shift, sizeof(reg_shift));
if (n != sizeof(reg_shift)) if (n != sizeof(reg_shift))
......
...@@ -95,6 +95,7 @@ int dt_xlate_reg(void *node, int res, unsigned long *addr, unsigned long *size); ...@@ -95,6 +95,7 @@ int dt_xlate_reg(void *node, int res, unsigned long *addr, unsigned long *size);
int dt_xlate_addr(void *node, u32 *buf, int buflen, unsigned long *xlated_addr); int dt_xlate_addr(void *node, u32 *buf, int buflen, unsigned long *xlated_addr);
int dt_is_compatible(void *node, const char *compat); int dt_is_compatible(void *node, const char *compat);
void dt_get_reg_format(void *node, u32 *naddr, u32 *nsize); void dt_get_reg_format(void *node, u32 *naddr, u32 *nsize);
int dt_get_virtual_reg(void *node, void **addr, int nres);
static inline void *finddevice(const char *name) static inline void *finddevice(const char *name)
{ {
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.25-rc6 # Linux kernel version: 2.6.25-rc6
# Mon Mar 24 08:48:14 2008 # Fri Apr 11 11:10:09 2008
# #
# CONFIG_PPC64 is not set # CONFIG_PPC64 is not set
...@@ -196,6 +196,7 @@ CONFIG_PREEMPT_NONE=y ...@@ -196,6 +196,7 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT is not set # CONFIG_PREEMPT is not set
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set # CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=11
# CONFIG_IOMMU_HELPER is not set # CONFIG_IOMMU_HELPER is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_HAS_WALK_MEMORY=y CONFIG_ARCH_HAS_WALK_MEMORY=y
...@@ -360,7 +361,7 @@ CONFIG_MTD=y ...@@ -360,7 +361,7 @@ CONFIG_MTD=y
CONFIG_MTD_PARTITIONS=y CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_OF_PARTS is not set CONFIG_MTD_OF_PARTS=y
# #
# User Modules And Translation Layers # User Modules And Translation Layers
...@@ -436,7 +437,7 @@ CONFIG_MTD_NAND_IDS=y ...@@ -436,7 +437,7 @@ CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_NANDSIM is not set # CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set # CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set # CONFIG_MTD_ALAUDA is not set
# CONFIG_MTD_NAND_FSL_ELBC is not set CONFIG_MTD_NAND_FSL_ELBC=y
# CONFIG_MTD_ONENAND is not set # CONFIG_MTD_ONENAND is not set
# #
...@@ -1293,6 +1294,7 @@ CONFIG_PLIST=y ...@@ -1293,6 +1294,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y CONFIG_HAS_DMA=y
CONFIG_HAVE_LMB=y
# #
# Kernel hacking # Kernel hacking
......
...@@ -162,6 +162,7 @@ CONFIG_MPC85xx=y ...@@ -162,6 +162,7 @@ CONFIG_MPC85xx=y
# CONFIG_MPC85xx_CDS is not set # CONFIG_MPC85xx_CDS is not set
# CONFIG_MPC85xx_MDS is not set # CONFIG_MPC85xx_MDS is not set
CONFIG_MPC85xx_DS=y CONFIG_MPC85xx_DS=y
# CONFIG_KSI8560 is not set
# CONFIG_STX_GP3 is not set # CONFIG_STX_GP3 is not set
# CONFIG_TQM8540 is not set # CONFIG_TQM8540 is not set
# CONFIG_TQM8541 is not set # CONFIG_TQM8541 is not set
...@@ -202,6 +203,7 @@ CONFIG_PREEMPT_NONE=y ...@@ -202,6 +203,7 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT is not set # CONFIG_PREEMPT is not set
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m CONFIG_BINFMT_MISC=m
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_MATH_EMULATION=y CONFIG_MATH_EMULATION=y
# CONFIG_IOMMU_HELPER is not set # CONFIG_IOMMU_HELPER is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
...@@ -1255,7 +1257,19 @@ CONFIG_RTC_DRV_CMOS=y ...@@ -1255,7 +1257,19 @@ CONFIG_RTC_DRV_CMOS=y
# #
# on-CPU RTC drivers # on-CPU RTC drivers
# #
# CONFIG_DMADEVICES is not set CONFIG_DMADEVICES=y
#
# DMA Devices
#
CONFIG_FSL_DMA=y
# CONFIG_FSL_DMA_SELFTEST is not set
CONFIG_DMA_ENGINE=y
#
# DMA Clients
#
# CONFIG_NET_DMA is not set
# #
# Userspace I/O # Userspace I/O
...@@ -1447,6 +1461,7 @@ CONFIG_PLIST=y ...@@ -1447,6 +1461,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y CONFIG_HAS_DMA=y
CONFIG_HAVE_LMB=y
# #
# Kernel hacking # Kernel hacking
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.25-rc6 # Linux kernel version: 2.6.25-rc9
# Mon Mar 24 08:48:25 2008 # Tue Apr 15 18:07:36 2008
# #
# CONFIG_PPC64 is not set # CONFIG_PPC64 is not set
...@@ -201,6 +201,7 @@ CONFIG_PREEMPT_NONE=y ...@@ -201,6 +201,7 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT is not set # CONFIG_PREEMPT is not set
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set # CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_MATH_EMULATION=y CONFIG_MATH_EMULATION=y
# CONFIG_IOMMU_HELPER is not set # CONFIG_IOMMU_HELPER is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
...@@ -353,7 +354,90 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y ...@@ -353,7 +354,90 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set # CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set # CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set # CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
CONFIG_MTD_OF_PARTS=y
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_MTD_OOPS is not set
#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_CFI_INTELEXT is not set
CONFIG_MTD_CFI_AMDSTD=y
# CONFIG_MTD_CFI_STAA is not set
CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_VERIFY_WRITE=y
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
CONFIG_MTD_NAND_FSL_ELBC=y
# CONFIG_MTD_ONENAND is not set
#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
CONFIG_OF_DEVICE=y CONFIG_OF_DEVICE=y
# CONFIG_PARPORT is not set # CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y CONFIG_BLK_DEV=y
...@@ -362,6 +446,7 @@ CONFIG_BLK_DEV=y ...@@ -362,6 +446,7 @@ CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=32768 CONFIG_BLK_DEV_RAM_SIZE=32768
...@@ -469,6 +554,15 @@ CONFIG_NETDEV_10000=y ...@@ -469,6 +554,15 @@ CONFIG_NETDEV_10000=y
# #
# CONFIG_WLAN_PRE80211 is not set # CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set # CONFIG_WLAN_80211 is not set
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set # CONFIG_WAN is not set
# CONFIG_PPP is not set # CONFIG_PPP is not set
# CONFIG_SLIP is not set # CONFIG_SLIP is not set
...@@ -563,6 +657,7 @@ CONFIG_I2C_MPC=y ...@@ -563,6 +657,7 @@ CONFIG_I2C_MPC=y
# CONFIG_I2C_SIMTEC is not set # CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set # CONFIG_I2C_STUB is not set
# CONFIG_I2C_TINY_USB is not set
# #
# Miscellaneous I2C Chip support # Miscellaneous I2C Chip support
...@@ -647,6 +742,11 @@ CONFIG_WATCHDOG=y ...@@ -647,6 +742,11 @@ CONFIG_WATCHDOG=y
# CONFIG_SOFT_WATCHDOG is not set # CONFIG_SOFT_WATCHDOG is not set
CONFIG_83xx_WDT=y CONFIG_83xx_WDT=y
#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set
# #
# Sonics Silicon Backplane # Sonics Silicon Backplane
# #
...@@ -664,6 +764,7 @@ CONFIG_SSB_POSSIBLE=y ...@@ -664,6 +764,7 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_VIDEO_DEV is not set # CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set # CONFIG_DVB_CORE is not set
CONFIG_DAB=y CONFIG_DAB=y
# CONFIG_USB_DABUSB is not set
# #
# Graphics support # Graphics support
...@@ -686,6 +787,14 @@ CONFIG_HID_SUPPORT=y ...@@ -686,6 +787,14 @@ CONFIG_HID_SUPPORT=y
CONFIG_HID=y CONFIG_HID=y
# CONFIG_HID_DEBUG is not set # CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set # CONFIG_HIDRAW is not set
#
# USB Input Devices
#
CONFIG_USB_HID=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set
CONFIG_USB_SUPPORT=y CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_OHCI is not set
...@@ -714,9 +823,56 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y ...@@ -714,9 +823,56 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
# CONFIG_USB_SL811_HCD is not set # CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_R8A66597_HCD is not set
#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
# #
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
# #
#
# may also be needed; see USB_STORAGE Help for more information
#
# CONFIG_USB_STORAGE is not set
# CONFIG_USB_LIBUSUAL is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
CONFIG_USB_MON=y
#
# USB port drivers
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_GADGET is not set # CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set # CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set # CONFIG_MEMSTICK is not set
...@@ -792,6 +948,7 @@ CONFIG_TMPFS=y ...@@ -792,6 +948,7 @@ CONFIG_TMPFS=y
# CONFIG_BEFS_FS is not set # CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set # CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set # CONFIG_EFS_FS is not set
# CONFIG_JFFS2_FS is not set
# CONFIG_CRAMFS is not set # CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set # CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set # CONFIG_MINIX_FS is not set
...@@ -862,6 +1019,7 @@ CONFIG_PLIST=y ...@@ -862,6 +1019,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y CONFIG_HAS_DMA=y
CONFIG_HAVE_LMB=y
# #
# Kernel hacking # Kernel hacking
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.25-rc6
# Thu Apr 10 18:03:25 2008
#
# CONFIG_PPC64 is not set
#
# Processor support
#
CONFIG_6xx=y
# CONFIG_PPC_85xx is not set
# CONFIG_PPC_8xx is not set
# CONFIG_40x is not set
# CONFIG_44x is not set
# CONFIG_E200 is not set
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
CONFIG_PPC_STD_MMU=y
CONFIG_PPC_STD_MMU_32=y
# CONFIG_PPC_MM_SLICES is not set
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_PPC32=y
CONFIG_WORD_SIZE=32
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_HARDIRQS=y
# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_LOCKBREAK=y
CONFIG_ARCH_HAS_ILOG2_U32=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y
CONFIG_GENERIC_NVRAM=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_PPC_OF=y
CONFIG_OF=y
CONFIG_PPC_UDBG_16550=y
CONFIG_GENERIC_TBSYNC=y
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
CONFIG_DEFAULT_UIMAGE=y
# CONFIG_PPC_DCR_NATIVE is not set
# CONFIG_PPC_DCR_MMIO is not set
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CGROUPS is not set
CONFIG_GROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_RELAY=y
# CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_COMPAT_BRK=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_CLASSIC_RCU=y
#
# Platform support
#
# CONFIG_PPC_MULTIPLATFORM is not set
# CONFIG_PPC_82xx is not set
# CONFIG_PPC_83xx is not set
CONFIG_PPC_86xx=y
# CONFIG_PPC_MPC512x is not set
# CONFIG_PPC_MPC5121 is not set
# CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_PQ2ADS is not set
# CONFIG_MPC8641_HPCN is not set
CONFIG_SBC8641D=y
# CONFIG_MPC8610_HPCD is not set
CONFIG_MPC8641=y
# CONFIG_IPIC is not set
CONFIG_MPIC=y
# CONFIG_MPIC_WEIRD is not set
# CONFIG_PPC_I8259 is not set
# CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set
# CONFIG_PPC_MPC106 is not set
# CONFIG_PPC_970_NAP is not set
# CONFIG_PPC_INDIRECT_IO is not set
# CONFIG_GENERIC_IOMAP is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_FSL_ULI1575 is not set
#
# Kernel options
#
# CONFIG_HIGHMEM is not set
CONFIG_TICK_ONESHOT=y
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
# CONFIG_PREEMPT_RCU is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
CONFIG_FORCE_MAX_ZONEORDER=11
# CONFIG_IOMMU_HELPER is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_HAS_WALK_MEMORY=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_IRQ_ALL_CPUS=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
# CONFIG_PROC_DEVICETREE is not set
# CONFIG_CMDLINE_BOOL is not set
# CONFIG_PM is not set
CONFIG_SECCOMP=y
CONFIG_ISA_DMA_API=y
#
# Bus options
#
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_PPC_INDIRECT_PCI=y
CONFIG_FSL_SOC=y
CONFIG_FSL_PCI=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
#
# Advanced setup
#
# CONFIG_ADVANCED_OPTIONS is not set
#
# Default settings for advanced configuration options are used
#
CONFIG_HIGHMEM_START=0xfe000000
CONFIG_LOWMEM_SIZE=0x30000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_TASK_SIZE=0xc0000000
CONFIG_BOOT_LOAD=0x00800000
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IP_VS is not set
CONFIG_IPV6=m
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
# CONFIG_IPV6_MIP6 is not set
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=m
CONFIG_IPV6_TUNNEL=m
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETLABEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
# CONFIG_NETFILTER_NETLINK_LOG is not set
# CONFIG_NF_CONNTRACK is not set
CONFIG_NETFILTER_XTABLES=m
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
# CONFIG_IP_NF_MATCH_AH is not set
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_ECN=m
# CONFIG_IP_NF_TARGET_TTL is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#
CONFIG_IP6_NF_QUEUE=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_MH is not set
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
# CONFIG_IP6_NF_TARGET_REJECT is not set
CONFIG_IP6_NF_MANGLE=m
# CONFIG_IP6_NF_TARGET_HL is not set
CONFIG_IP6_NF_RAW=m
#
# Bridge: Netfilter Configuration
#
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
CONFIG_TIPC=m
# CONFIG_TIPC_ADVANCED is not set
# CONFIG_TIPC_DEBUG is not set
CONFIG_ATM=m
CONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not set
CONFIG_ATM_LANE=m
CONFIG_ATM_MPOA=m
CONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
CONFIG_LLC=m
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
CONFIG_WAN_ROUTER=m
CONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
# CONFIG_NET_SCH_RR is not set
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
#
# Classification
#
CONFIG_NET_CLS=y
# CONFIG_NET_CLS_BASIC is not set
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
# CONFIG_CLS_U32_PERF is not set
# CONFIG_CLS_U32_MARK is not set
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
# CONFIG_NET_CLS_FLOW is not set
# CONFIG_NET_EMATCH is not set
# CONFIG_NET_CLS_ACT is not set
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_SCH_FIFO=y
#
# Network testing
#
CONFIG_NET_PKTGEN=m
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_CONCAT=y
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_OF_PARTS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_MTD_OOPS is not set
#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
# CONFIG_MTD_CFI_NOSWAP is not set
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
CONFIG_MTD_CFI_LE_BYTE_SWAP=y
# CONFIG_MTD_CFI_GEOMETRY is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_OTP is not set
CONFIG_MTD_CFI_INTELEXT=y
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_CFI_STAA is not set
CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_NAND is not set
# CONFIG_MTD_ONENAND is not set
#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
CONFIG_OF_DEVICE=y
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_BLK_DEV_XIP is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_PHANTOM is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ENCLOSURE_SERVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=y
# CONFIG_MD_RAID456 is not set
CONFIG_MD_MULTIPATH=y
CONFIG_MD_FAULTY=y
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
CONFIG_DM_CRYPT=y
CONFIG_DM_SNAPSHOT=y
CONFIG_DM_MIRROR=y
CONFIG_DM_ZERO=y
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
# CONFIG_DM_UEVENT is not set
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
CONFIG_DUMMY=m
CONFIG_BONDING=m
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_VETH is not set
# CONFIG_ARCNET is not set
CONFIG_PHYLIB=y
#
# MII PHY device drivers
#
# CONFIG_MARVELL_PHY is not set
# CONFIG_DAVICOM_PHY is not set
# CONFIG_QSEMI_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_CICADA_PHY is not set
# CONFIG_VITESSE_PHY is not set
# CONFIG_SMSC_PHY is not set
CONFIG_BROADCOM_PHY=y
# CONFIG_ICPLUS_PHY is not set
# CONFIG_REALTEK_PHY is not set
# CONFIG_FIXED_PHY is not set
# CONFIG_MDIO_BITBANG is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
# CONFIG_NET_PCI is not set
# CONFIG_B44 is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_E1000E is not set
# CONFIG_E1000E_ENABLED is not set
# CONFIG_IP1000 is not set
# CONFIG_IGB is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
CONFIG_GIANFAR=y
# CONFIG_GFAR_NAPI is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
CONFIG_ATM_DRIVERS=y
# CONFIG_ATM_DUMMY is not set
# CONFIG_ATM_TCP is not set
# CONFIG_ATM_LANAI is not set
# CONFIG_ATM_ENI is not set
# CONFIG_ATM_FIRESTREAM is not set
# CONFIG_ATM_ZATM is not set
# CONFIG_ATM_NICSTAR is not set
# CONFIG_ATM_IDT77252 is not set
# CONFIG_ATM_AMBASSADOR is not set
# CONFIG_ATM_HORIZON is not set
# CONFIG_ATM_IA is not set
# CONFIG_ATM_FORE200E_MAYBE is not set
# CONFIG_ATM_HE is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m
CONFIG_PPPOATM=m
# CONFIG_PPPOL2TP is not set
CONFIG_SLIP=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLHC=m
CONFIG_SLIP_SMART=y
CONFIG_SLIP_MODE_SLIP6=y
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
# CONFIG_SERIO is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_SERIAL_8250_PCI is not set
CONFIG_SERIAL_8250_NR_UARTS=2
CONFIG_SERIAL_8250_RUNTIME_UARTS=2
# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
#
# CONFIG_SERIAL_UARTLITE is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_OF_PLATFORM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=m
# CONFIG_NVRAM is not set
# CONFIG_GEN_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y
#
# I2C Algorithms
#
# CONFIG_I2C_ALGOBIT is not set
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set
#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
CONFIG_I2C_MPC=y
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
#
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_PCF8575 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_TPS65010 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7473 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
# CONFIG_SSB is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
#
# Graphics support
#
# CONFIG_AGP is not set
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
# CONFIG_SOUND is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
#
# Userspace I/O
#
# CONFIG_UIO is not set
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_EXT2_FS_SECURITY is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
# CONFIG_REISERFS_FS_SECURITY is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
CONFIG_OCFS2_FS=m
CONFIG_OCFS2_DEBUG_MASKLOG=y
# CONFIG_OCFS2_DEBUG_FS is not set
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_CONFIGFS_FS=m
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_JFFS2_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
CONFIG_MINIX_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
CONFIG_ROMFS_FS=m
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
# CONFIG_NFSD is not set
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
# CONFIG_SUNRPC_BIND34 is not set
CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp437"
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=m
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAVE_LMB=y
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_DEBUGGER=y
# CONFIG_XMON is not set
# CONFIG_VIRQ_DEBUG is not set
# CONFIG_BDI_SWITCH is not set
# CONFIG_PPC_EARLY_DEBUG is not set
#
# Security options
#
# CONFIG_KEYS is not set
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
CONFIG_SECURITY_CAPABILITIES=y
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_BLKCIPHER=y
# CONFIG_CRYPTO_SEQIV is not set
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SALSA20 is not set
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
# CONFIG_CRYPTO_CAMELLIA is not set
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_AUTHENC=m
# CONFIG_CRYPTO_LZO is not set
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
# CONFIG_PPC_CLOCK is not set
...@@ -110,9 +110,9 @@ transfer_to_handler: ...@@ -110,9 +110,9 @@ transfer_to_handler:
stw r11,PT_REGS(r12) stw r11,PT_REGS(r12)
#if defined(CONFIG_40x) || defined(CONFIG_BOOKE) #if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
/* Check to see if the dbcr0 register is set up to debug. Use the /* Check to see if the dbcr0 register is set up to debug. Use the
single-step bit to do this. */ internal debug mode bit to do this. */
lwz r12,THREAD_DBCR0(r12) lwz r12,THREAD_DBCR0(r12)
andis. r12,r12,DBCR0_IC@h andis. r12,r12,DBCR0_IDM@h
beq+ 3f beq+ 3f
/* From user and task is ptraced - load up global dbcr0 */ /* From user and task is ptraced - load up global dbcr0 */
li r12,-1 /* clear all pending debug events */ li r12,-1 /* clear all pending debug events */
...@@ -120,6 +120,12 @@ transfer_to_handler: ...@@ -120,6 +120,12 @@ transfer_to_handler:
lis r11,global_dbcr0@ha lis r11,global_dbcr0@ha
tophys(r11,r11) tophys(r11,r11)
addi r11,r11,global_dbcr0@l addi r11,r11,global_dbcr0@l
#ifdef CONFIG_SMP
rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
lwz r9,TI_CPU(r9)
slwi r9,r9,3
add r11,r11,r9
#endif
lwz r12,0(r11) lwz r12,0(r11)
mtspr SPRN_DBCR0,r12 mtspr SPRN_DBCR0,r12
lwz r12,4(r11) lwz r12,4(r11)
...@@ -238,10 +244,10 @@ ret_from_syscall: ...@@ -238,10 +244,10 @@ ret_from_syscall:
stw r11,_CCR(r1) stw r11,_CCR(r1)
syscall_exit_cont: syscall_exit_cont:
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE) #if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
/* If the process has its own DBCR0 value, load it up. The single /* If the process has its own DBCR0 value, load it up. The internal
step bit tells us that dbcr0 should be loaded. */ debug mode bit tells us that dbcr0 should be loaded. */
lwz r0,THREAD+THREAD_DBCR0(r2) lwz r0,THREAD+THREAD_DBCR0(r2)
andis. r10,r0,DBCR0_IC@h andis. r10,r0,DBCR0_IDM@h
bnel- load_dbcr0 bnel- load_dbcr0
#endif #endif
#ifdef CONFIG_44x #ifdef CONFIG_44x
...@@ -666,10 +672,10 @@ user_exc_return: /* r10 contains MSR_KERNEL here */ ...@@ -666,10 +672,10 @@ user_exc_return: /* r10 contains MSR_KERNEL here */
restore_user: restore_user:
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE) #if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
/* Check whether this process has its own DBCR0 value. The single /* Check whether this process has its own DBCR0 value. The internal
step bit tells us that dbcr0 should be loaded. */ debug mode bit tells us that dbcr0 should be loaded. */
lwz r0,THREAD+THREAD_DBCR0(r2) lwz r0,THREAD+THREAD_DBCR0(r2)
andis. r10,r0,DBCR0_IC@h andis. r10,r0,DBCR0_IDM@h
bnel- load_dbcr0 bnel- load_dbcr0
#endif #endif
...@@ -879,6 +885,12 @@ load_dbcr0: ...@@ -879,6 +885,12 @@ load_dbcr0:
mfspr r10,SPRN_DBCR0 mfspr r10,SPRN_DBCR0
lis r11,global_dbcr0@ha lis r11,global_dbcr0@ha
addi r11,r11,global_dbcr0@l addi r11,r11,global_dbcr0@l
#ifdef CONFIG_SMP
rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
lwz r9,TI_CPU(r9)
slwi r9,r9,3
add r11,r11,r9
#endif
stw r10,0(r11) stw r10,0(r11)
mtspr SPRN_DBCR0,r0 mtspr SPRN_DBCR0,r0
lwz r10,4(r11) lwz r10,4(r11)
...@@ -891,7 +903,7 @@ load_dbcr0: ...@@ -891,7 +903,7 @@ load_dbcr0:
.section .bss .section .bss
.align 4 .align 4
global_dbcr0: global_dbcr0:
.space 8 .space 8*NR_CPUS
.previous .previous
#endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */
......
...@@ -211,7 +211,7 @@ skpinv: addi r4,r4,1 /* Increment */ ...@@ -211,7 +211,7 @@ skpinv: addi r4,r4,1 /* Increment */
SET_IVOR(12, WatchdogTimer); SET_IVOR(12, WatchdogTimer);
SET_IVOR(13, DataTLBError); SET_IVOR(13, DataTLBError);
SET_IVOR(14, InstructionTLBError); SET_IVOR(14, InstructionTLBError);
SET_IVOR(15, Debug); SET_IVOR(15, DebugCrit);
/* Establish the interrupt vector base */ /* Establish the interrupt vector base */
lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */ lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
...@@ -578,7 +578,7 @@ interrupt_base: ...@@ -578,7 +578,7 @@ interrupt_base:
b InstructionStorage b InstructionStorage
/* Debug Interrupt */ /* Debug Interrupt */
DEBUG_EXCEPTION DEBUG_CRIT_EXCEPTION
/* /*
* Local functions * Local functions
......
...@@ -56,8 +56,17 @@ ...@@ -56,8 +56,17 @@
* is necessary since the MMU is always on, for Book-E parts, and the stacks * is necessary since the MMU is always on, for Book-E parts, and the stacks
* are offset from KERNELBASE. * are offset from KERNELBASE.
* *
* There is some space optimization to be had here if desired. However
* to allow for a common kernel with support for debug exceptions either
* going to critical or their own debug level we aren't currently
* providing configurations that micro-optimize space usage.
*/ */
#define BOOKE_EXCEPTION_STACK_SIZE (8192) #ifdef CONFIG_44x
#define NUM_EXCEPTION_LVLS 2
#else
#define NUM_EXCEPTION_LVLS 3
#endif
#define BOOKE_EXCEPTION_STACK_SIZE (4096 * NUM_EXCEPTION_LVLS)
/* CRIT_SPRG only used in critical exception handling */ /* CRIT_SPRG only used in critical exception handling */
#define CRIT_SPRG SPRN_SPRG2 #define CRIT_SPRG SPRN_SPRG2
...@@ -68,7 +77,7 @@ ...@@ -68,7 +77,7 @@
#define CRIT_STACK_TOP (exception_stack_top) #define CRIT_STACK_TOP (exception_stack_top)
/* only on e200 for now */ /* only on e200 for now */
#define DEBUG_STACK_TOP (exception_stack_top - 4096) #define DEBUG_STACK_TOP (exception_stack_top - 8192)
#define DEBUG_SPRG SPRN_SPRG6W #define DEBUG_SPRG SPRN_SPRG6W
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
...@@ -212,9 +221,8 @@ ...@@ -212,9 +221,8 @@
* save (and later restore) the MSR via SPRN_CSRR1, which will still have * save (and later restore) the MSR via SPRN_CSRR1, which will still have
* the MSR_DE bit set. * the MSR_DE bit set.
*/ */
#ifdef CONFIG_E200 #define DEBUG_DEBUG_EXCEPTION \
#define DEBUG_EXCEPTION \ START_EXCEPTION(DebugDebug); \
START_EXCEPTION(Debug); \
DEBUG_EXCEPTION_PROLOG; \ DEBUG_EXCEPTION_PROLOG; \
\ \
/* \ /* \
...@@ -234,8 +242,8 @@ ...@@ -234,8 +242,8 @@
cmplw r12,r10; \ cmplw r12,r10; \
blt+ 2f; /* addr below exception vectors */ \ blt+ 2f; /* addr below exception vectors */ \
\ \
lis r10,Debug@h; \ lis r10,DebugDebug@h; \
ori r10,r10,Debug@l; \ ori r10,r10,DebugDebug@l; \
cmplw r12,r10; \ cmplw r12,r10; \
bgt+ 2f; /* addr above exception vectors */ \ bgt+ 2f; /* addr above exception vectors */ \
\ \
...@@ -265,9 +273,9 @@ ...@@ -265,9 +273,9 @@
2: mfspr r4,SPRN_DBSR; \ 2: mfspr r4,SPRN_DBSR; \
addi r3,r1,STACK_FRAME_OVERHEAD; \ addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, debug_transfer_to_handler, ret_from_debug_exc) EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, debug_transfer_to_handler, ret_from_debug_exc)
#else
#define DEBUG_EXCEPTION \ #define DEBUG_CRIT_EXCEPTION \
START_EXCEPTION(Debug); \ START_EXCEPTION(DebugCrit); \
CRITICAL_EXCEPTION_PROLOG; \ CRITICAL_EXCEPTION_PROLOG; \
\ \
/* \ /* \
...@@ -287,8 +295,8 @@ ...@@ -287,8 +295,8 @@
cmplw r12,r10; \ cmplw r12,r10; \
blt+ 2f; /* addr below exception vectors */ \ blt+ 2f; /* addr below exception vectors */ \
\ \
lis r10,Debug@h; \ lis r10,DebugCrit@h; \
ori r10,r10,Debug@l; \ ori r10,r10,DebugCrit@l; \
cmplw r12,r10; \ cmplw r12,r10; \
bgt+ 2f; /* addr above exception vectors */ \ bgt+ 2f; /* addr above exception vectors */ \
\ \
...@@ -318,7 +326,6 @@ ...@@ -318,7 +326,6 @@
2: mfspr r4,SPRN_DBSR; \ 2: mfspr r4,SPRN_DBSR; \
addi r3,r1,STACK_FRAME_OVERHEAD; \ addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, crit_transfer_to_handler, ret_from_crit_exc) EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)
#endif
#define INSTRUCTION_STORAGE_EXCEPTION \ #define INSTRUCTION_STORAGE_EXCEPTION \
START_EXCEPTION(InstructionStorage) \ START_EXCEPTION(InstructionStorage) \
......
...@@ -303,7 +303,10 @@ skpinv: addi r6,r6,1 /* Increment */ ...@@ -303,7 +303,10 @@ skpinv: addi r6,r6,1 /* Increment */
SET_IVOR(12, WatchdogTimer); SET_IVOR(12, WatchdogTimer);
SET_IVOR(13, DataTLBError); SET_IVOR(13, DataTLBError);
SET_IVOR(14, InstructionTLBError); SET_IVOR(14, InstructionTLBError);
SET_IVOR(15, Debug); SET_IVOR(15, DebugDebug);
#if defined(CONFIG_E500)
SET_IVOR(15, DebugCrit);
#endif
SET_IVOR(32, SPEUnavailable); SET_IVOR(32, SPEUnavailable);
SET_IVOR(33, SPEFloatingPointData); SET_IVOR(33, SPEFloatingPointData);
SET_IVOR(34, SPEFloatingPointRound); SET_IVOR(34, SPEFloatingPointRound);
...@@ -738,7 +741,10 @@ interrupt_base: ...@@ -738,7 +741,10 @@ interrupt_base:
/* Debug Interrupt */ /* Debug Interrupt */
DEBUG_EXCEPTION DEBUG_DEBUG_EXCEPTION
#if defined(CONFIG_E500)
DEBUG_CRIT_EXCEPTION
#endif
/* /*
* Local functions * Local functions
......
...@@ -54,7 +54,7 @@ static int grow(rh_info_t * info, int max_blocks) ...@@ -54,7 +54,7 @@ static int grow(rh_info_t * info, int max_blocks)
new_blocks = max_blocks - info->max_blocks; new_blocks = max_blocks - info->max_blocks;
block = kmalloc(sizeof(rh_block_t) * max_blocks, GFP_KERNEL); block = kmalloc(sizeof(rh_block_t) * max_blocks, GFP_ATOMIC);
if (block == NULL) if (block == NULL)
return -ENOMEM; return -ENOMEM;
...@@ -258,7 +258,7 @@ rh_info_t *rh_create(unsigned int alignment) ...@@ -258,7 +258,7 @@ rh_info_t *rh_create(unsigned int alignment)
if ((alignment & (alignment - 1)) != 0) if ((alignment & (alignment - 1)) != 0)
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
info = kmalloc(sizeof(*info), GFP_KERNEL); info = kmalloc(sizeof(*info), GFP_ATOMIC);
if (info == NULL) if (info == NULL)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
......
...@@ -11,7 +11,6 @@ config MPC8272_ADS ...@@ -11,7 +11,6 @@ config MPC8272_ADS
select 8260 select 8260
select FSL_SOC select FSL_SOC
select PQ2_ADS_PCI_PIC if PCI select PQ2_ADS_PCI_PIC if PCI
select PPC_CPM_NEW_BINDING
help help
This option enables support for the MPC8272 ADS board This option enables support for the MPC8272 ADS board
...@@ -22,7 +21,6 @@ config PQ2FADS ...@@ -22,7 +21,6 @@ config PQ2FADS
select 8260 select 8260
select FSL_SOC select FSL_SOC
select PQ2_ADS_PCI_PIC if PCI select PQ2_ADS_PCI_PIC if PCI
select PPC_CPM_NEW_BINDING
help help
This option enables support for the PQ2FADS board This option enables support for the PQ2FADS board
...@@ -31,7 +29,6 @@ config EP8248E ...@@ -31,7 +29,6 @@ config EP8248E
select 8272 select 8272
select 8260 select 8260
select FSL_SOC select FSL_SOC
select PPC_CPM_NEW_BINDING
select MDIO_BITBANG select MDIO_BITBANG
help help
This enables support for the Embedded Planet EP8248E board. This enables support for the Embedded Planet EP8248E board.
......
...@@ -46,6 +46,7 @@ static void __init mpc837x_rdb_setup_arch(void) ...@@ -46,6 +46,7 @@ static void __init mpc837x_rdb_setup_arch(void)
static struct of_device_id mpc837x_ids[] = { static struct of_device_id mpc837x_ids[] = {
{ .type = "soc", }, { .type = "soc", },
{ .compatible = "soc", }, { .compatible = "soc", },
{ .compatible = "simple-bus", },
{}, {},
}; };
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#define MPC83XX_SCCR_USB_DRCM_10 0x00200000 #define MPC83XX_SCCR_USB_DRCM_10 0x00200000
#define MPC8315_SCCR_USB_MASK 0x00c00000 #define MPC8315_SCCR_USB_MASK 0x00c00000
#define MPC8315_SCCR_USB_DRCM_11 0x00c00000 #define MPC8315_SCCR_USB_DRCM_11 0x00c00000
#define MPC8315_SCCR_USB_DRCM_01 0x00400000
#define MPC837X_SCCR_USB_DRCM_11 0x00c00000 #define MPC837X_SCCR_USB_DRCM_11 0x00c00000
/* system i/o configuration register low */ /* system i/o configuration register low */
...@@ -37,6 +38,7 @@ ...@@ -37,6 +38,7 @@
/* USB Control Register */ /* USB Control Register */
#define FSL_USB2_CONTROL_OFFS 0x500 #define FSL_USB2_CONTROL_OFFS 0x500
#define CONTROL_UTMI_PHY_EN 0x00000200 #define CONTROL_UTMI_PHY_EN 0x00000200
#define CONTROL_REFSEL_24MHZ 0x00000040
#define CONTROL_REFSEL_48MHZ 0x00000080 #define CONTROL_REFSEL_48MHZ 0x00000080
#define CONTROL_PHY_CLK_SEL_ULPI 0x00000400 #define CONTROL_PHY_CLK_SEL_ULPI 0x00000400
#define CONTROL_OTG_PORT 0x00000020 #define CONTROL_OTG_PORT 0x00000020
......
...@@ -129,7 +129,7 @@ int mpc831x_usb_cfg(void) ...@@ -129,7 +129,7 @@ int mpc831x_usb_cfg(void)
if (immr_node && of_device_is_compatible(immr_node, "fsl,mpc8315-immr")) if (immr_node && of_device_is_compatible(immr_node, "fsl,mpc8315-immr"))
clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, clrsetbits_be32(immap + MPC83XX_SCCR_OFFS,
MPC8315_SCCR_USB_MASK, MPC8315_SCCR_USB_MASK,
MPC8315_SCCR_USB_DRCM_11); MPC8315_SCCR_USB_DRCM_01);
else else
clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, clrsetbits_be32(immap + MPC83XX_SCCR_OFFS,
MPC83XX_SCCR_USB_MASK, MPC83XX_SCCR_USB_MASK,
...@@ -164,9 +164,15 @@ int mpc831x_usb_cfg(void) ...@@ -164,9 +164,15 @@ int mpc831x_usb_cfg(void)
/* Using on-chip PHY */ /* Using on-chip PHY */
if (prop && (!strcmp(prop, "utmi_wide") || if (prop && (!strcmp(prop, "utmi_wide") ||
!strcmp(prop, "utmi"))) { !strcmp(prop, "utmi"))) {
/* Set UTMI_PHY_EN, REFSEL to 48MHZ */ u32 refsel;
if (of_device_is_compatible(immr_node, "fsl,mpc8315-immr"))
refsel = CONTROL_REFSEL_24MHZ;
else
refsel = CONTROL_REFSEL_48MHZ;
/* Set UTMI_PHY_EN and REFSEL */
out_be32(usb_regs + FSL_USB2_CONTROL_OFFS, out_be32(usb_regs + FSL_USB2_CONTROL_OFFS,
CONTROL_UTMI_PHY_EN | CONTROL_REFSEL_48MHZ); CONTROL_UTMI_PHY_EN | refsel);
/* Using external UPLI PHY */ /* Using external UPLI PHY */
} else if (prop && !strcmp(prop, "ulpi")) { } else if (prop && !strcmp(prop, "ulpi")) {
/* Set PHY_CLK_SEL to ULPI */ /* Set PHY_CLK_SEL to ULPI */
......
...@@ -19,7 +19,6 @@ config MPC8540_ADS ...@@ -19,7 +19,6 @@ config MPC8540_ADS
config MPC8560_ADS config MPC8560_ADS
bool "Freescale MPC8560 ADS" bool "Freescale MPC8560 ADS"
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
select PPC_CPM_NEW_BINDING
select CPM2 select CPM2
help help
This option enables support for the MPC 8560 ADS board This option enables support for the MPC 8560 ADS board
...@@ -48,7 +47,6 @@ config MPC85xx_DS ...@@ -48,7 +47,6 @@ config MPC85xx_DS
config KSI8560 config KSI8560
bool "Emerson KSI8560" bool "Emerson KSI8560"
select PPC_CPM_NEW_BINDING
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
help help
This option enables support for the Emerson KSI8560 board This option enables support for the Emerson KSI8560 board
...@@ -60,14 +58,12 @@ config STX_GP3 ...@@ -60,14 +58,12 @@ config STX_GP3
board. board.
select CPM2 select CPM2
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
select PPC_CPM_NEW_BINDING
config TQM8540 config TQM8540
bool "TQ Components TQM8540" bool "TQ Components TQM8540"
help help
This option enables support for the TQ Components TQM8540 board. This option enables support for the TQ Components TQM8540 board.
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
select PPC_CPM_NEW_BINDING
select TQM85xx select TQM85xx
config TQM8541 config TQM8541
...@@ -75,7 +71,6 @@ config TQM8541 ...@@ -75,7 +71,6 @@ config TQM8541
help help
This option enables support for the TQ Components TQM8541 board. This option enables support for the TQ Components TQM8541 board.
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
select PPC_CPM_NEW_BINDING
select TQM85xx select TQM85xx
select CPM2 select CPM2
...@@ -84,7 +79,6 @@ config TQM8555 ...@@ -84,7 +79,6 @@ config TQM8555
help help
This option enables support for the TQ Components TQM8555 board. This option enables support for the TQ Components TQM8555 board.
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
select PPC_CPM_NEW_BINDING
select TQM85xx select TQM85xx
select CPM2 select CPM2
...@@ -93,7 +87,6 @@ config TQM8560 ...@@ -93,7 +87,6 @@ config TQM8560
help help
This option enables support for the TQ Components TQM8560 board. This option enables support for the TQ Components TQM8560 board.
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
select PPC_CPM_NEW_BINDING
select TQM85xx select TQM85xx
select CPM2 select CPM2
...@@ -106,7 +99,6 @@ config SBC8548 ...@@ -106,7 +99,6 @@ config SBC8548
config SBC8560 config SBC8560
bool "Wind River SBC8560" bool "Wind River SBC8560"
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
select PPC_CPM_NEW_BINDING if CPM2
help help
This option enables support for the Wind River SBC8560 board This option enables support for the Wind River SBC8560 board
......
...@@ -165,7 +165,7 @@ static void __init init_ioports(void) ...@@ -165,7 +165,7 @@ static void __init init_ioports(void)
int i; int i;
for (i = 0; i < ARRAY_SIZE(mpc8560_ads_pins); i++) { for (i = 0; i < ARRAY_SIZE(mpc8560_ads_pins); i++) {
struct cpm_pin *pin = &mpc8560_ads_pins[i]; const struct cpm_pin *pin = &mpc8560_ads_pins[i];
cpm2_set_pin(pin->port, pin->pin, pin->flags); cpm2_set_pin(pin->port, pin->pin, pin->flags);
} }
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/of_platform.h>
#include <asm/system.h> #include <asm/system.h>
#include <asm/time.h> #include <asm/time.h>
...@@ -183,6 +184,18 @@ static int __init mpc8544_ds_probe(void) ...@@ -183,6 +184,18 @@ static int __init mpc8544_ds_probe(void)
} }
} }
static struct of_device_id mpc85xxds_ids[] = {
{ .type = "soc", },
{ .compatible = "soc", },
{},
};
static int __init mpc85xxds_publish_devices(void)
{
return of_platform_bus_probe(NULL, mpc85xxds_ids, NULL);
}
machine_device_initcall(mpc8544_ds, mpc85xxds_publish_devices);
/* /*
* Called very early, device-tree isn't unflattened * Called very early, device-tree isn't unflattened
*/ */
......
...@@ -11,6 +11,12 @@ config MPC8641_HPCN ...@@ -11,6 +11,12 @@ config MPC8641_HPCN
help help
This option enables support for the MPC8641 HPCN board. This option enables support for the MPC8641 HPCN board.
config SBC8641D
bool "Wind River SBC8641D"
select DEFAULT_UIMAGE
help
This option enables support for the WRS SBC8641D board.
config MPC8610_HPCD config MPC8610_HPCD
bool "Freescale MPC8610 HPCD" bool "Freescale MPC8610 HPCD"
select DEFAULT_UIMAGE select DEFAULT_UIMAGE
...@@ -24,7 +30,7 @@ config MPC8641 ...@@ -24,7 +30,7 @@ config MPC8641
select FSL_PCI if PCI select FSL_PCI if PCI
select PPC_UDBG_16550 select PPC_UDBG_16550
select MPIC select MPIC
default y if MPC8641_HPCN default y if MPC8641_HPCN || SBC8641D
config MPC8610 config MPC8610
bool bool
......
...@@ -4,4 +4,5 @@ ...@@ -4,4 +4,5 @@
obj-$(CONFIG_SMP) += mpc86xx_smp.o obj-$(CONFIG_SMP) += mpc86xx_smp.o
obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o
obj-$(CONFIG_SBC8641D) += sbc8641d.o
obj-$(CONFIG_MPC8610_HPCD) += mpc8610_hpcd.o obj-$(CONFIG_MPC8610_HPCD) += mpc8610_hpcd.o
...@@ -52,7 +52,7 @@ static int __init mpc8610_declare_of_platform_devices(void) ...@@ -52,7 +52,7 @@ static int __init mpc8610_declare_of_platform_devices(void)
} }
machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices); machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices);
void __init static void __init
mpc86xx_hpcd_init_irq(void) mpc86xx_hpcd_init_irq(void)
{ {
struct mpic *mpic1; struct mpic *mpic1;
...@@ -200,7 +200,7 @@ static int __init mpc86xx_hpcd_probe(void) ...@@ -200,7 +200,7 @@ static int __init mpc86xx_hpcd_probe(void)
return 0; return 0;
} }
long __init static long __init
mpc86xx_time_init(void) mpc86xx_time_init(void)
{ {
unsigned int temp; unsigned int temp;
......
...@@ -55,7 +55,7 @@ static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc) ...@@ -55,7 +55,7 @@ static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc)
} }
#endif /* CONFIG_PCI */ #endif /* CONFIG_PCI */
void __init static void __init
mpc86xx_hpcn_init_irq(void) mpc86xx_hpcn_init_irq(void)
{ {
struct mpic *mpic1; struct mpic *mpic1;
...@@ -162,7 +162,7 @@ mpc86xx_hpcn_setup_arch(void) ...@@ -162,7 +162,7 @@ mpc86xx_hpcn_setup_arch(void)
} }
void static void
mpc86xx_hpcn_show_cpuinfo(struct seq_file *m) mpc86xx_hpcn_show_cpuinfo(struct seq_file *m)
{ {
struct device_node *root; struct device_node *root;
...@@ -190,13 +190,19 @@ static int __init mpc86xx_hpcn_probe(void) ...@@ -190,13 +190,19 @@ static int __init mpc86xx_hpcn_probe(void)
{ {
unsigned long root = of_get_flat_dt_root(); unsigned long root = of_get_flat_dt_root();
if (of_flat_dt_is_compatible(root, "mpc86xx")) if (of_flat_dt_is_compatible(root, "fsl,mpc8641hpcn"))
return 1; /* Looks good */ return 1; /* Looks good */
/* Be nice and don't give silent boot death. Delete this in 2.6.27 */
if (of_flat_dt_is_compatible(root, "mpc86xx")) {
pr_warning("WARNING: your dts/dtb is old. You must update before the next kernel release\n");
return 1;
}
return 0; return 0;
} }
long __init static long __init
mpc86xx_time_init(void) mpc86xx_time_init(void)
{ {
unsigned int temp; unsigned int temp;
......
/*
* SBC8641D board specific routines
*
* Copyright 2008 Wind River Systems Inc.
*
* By Paul Gortmaker (see MAINTAINERS for contact information)
*
* Based largely on the 8641 HPCN support by Freescale Semiconductor Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#include <linux/stddef.h>
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/kdev_t.h>
#include <linux/delay.h>
#include <linux/seq_file.h>
#include <linux/of_platform.h>
#include <asm/system.h>
#include <asm/time.h>
#include <asm/machdep.h>
#include <asm/pci-bridge.h>
#include <asm/mpc86xx.h>
#include <asm/prom.h>
#include <mm/mmu_decl.h>
#include <asm/udbg.h>
#include <asm/mpic.h>
#include <sysdev/fsl_pci.h>
#include <sysdev/fsl_soc.h>
#include "mpc86xx.h"
static void __init
sbc8641_init_irq(void)
{
struct mpic *mpic1;
struct device_node *np;
struct resource res;
/* Determine PIC address. */
np = of_find_node_by_type(NULL, "open-pic");
if (np == NULL)
return;
of_address_to_resource(np, 0, &res);
/* Alloc mpic structure and per isu has 16 INT entries. */
mpic1 = mpic_alloc(np, res.start,
MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
0, 256, " MPIC ");
of_node_put(np);
BUG_ON(mpic1 == NULL);
mpic_init(mpic1);
}
static void __init
sbc8641_setup_arch(void)
{
#ifdef CONFIG_PCI
struct device_node *np;
#endif
if (ppc_md.progress)
ppc_md.progress("sbc8641_setup_arch()", 0);
#ifdef CONFIG_PCI
for_each_compatible_node(np, "pci", "fsl,mpc8641-pcie")
fsl_add_bridge(np, 0);
#endif
printk("SBC8641 board from Wind River\n");
#ifdef CONFIG_SMP
mpc86xx_smp_init();
#endif
}
static void
sbc8641_show_cpuinfo(struct seq_file *m)
{
struct device_node *root;
uint memsize = total_memory;
const char *model = "";
uint svid = mfspr(SPRN_SVR);
seq_printf(m, "Vendor\t\t: Wind River Systems\n");
root = of_find_node_by_path("/");
if (root)
model = of_get_property(root, "model", NULL);
seq_printf(m, "Machine\t\t: %s\n", model);
of_node_put(root);
seq_printf(m, "SVR\t\t: 0x%x\n", svid);
seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024));
}
/*
* Called very early, device-tree isn't unflattened
*/
static int __init sbc8641_probe(void)
{
unsigned long root = of_get_flat_dt_root();
if (of_flat_dt_is_compatible(root, "wind,sbc8641"))
return 1; /* Looks good */
return 0;
}
static long __init
mpc86xx_time_init(void)
{
unsigned int temp;
/* Set the time base to zero */
mtspr(SPRN_TBWL, 0);
mtspr(SPRN_TBWU, 0);
temp = mfspr(SPRN_HID0);
temp |= HID0_TBEN;
mtspr(SPRN_HID0, temp);
asm volatile("isync");
return 0;
}
static __initdata struct of_device_id of_bus_ids[] = {
{ .compatible = "simple-bus", },
{},
};
static int __init declare_of_platform_devices(void)
{
of_platform_bus_probe(NULL, of_bus_ids, NULL);
return 0;
}
machine_device_initcall(sbc8641, declare_of_platform_devices);
define_machine(sbc8641) {
.name = "SBC8641D",
.probe = sbc8641_probe,
.setup_arch = sbc8641_setup_arch,
.init_IRQ = sbc8641_init_irq,
.show_cpuinfo = sbc8641_show_cpuinfo,
.get_irq = mpic_get_irq,
.restart = fsl_rstcr_restart,
.time_init = mpc86xx_time_init,
.calibrate_decr = generic_calibrate_decr,
.progress = udbg_progress,
#ifdef CONFIG_PCI
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
#endif
};
...@@ -18,7 +18,6 @@ config MPC8XXFADS ...@@ -18,7 +18,6 @@ config MPC8XXFADS
config MPC86XADS config MPC86XADS
bool "MPC86XADS" bool "MPC86XADS"
select CPM1 select CPM1
select PPC_CPM_NEW_BINDING
help help
MPC86x Application Development System by Freescale Semiconductor. MPC86x Application Development System by Freescale Semiconductor.
The MPC86xADS is meant to serve as a platform for s/w and h/w The MPC86xADS is meant to serve as a platform for s/w and h/w
...@@ -27,7 +26,6 @@ config MPC86XADS ...@@ -27,7 +26,6 @@ config MPC86XADS
config MPC885ADS config MPC885ADS
bool "MPC885ADS" bool "MPC885ADS"
select CPM1 select CPM1
select PPC_CPM_NEW_BINDING
help help
Freescale Semiconductor MPC885 Application Development System (ADS). Freescale Semiconductor MPC885 Application Development System (ADS).
Also known as DUET. Also known as DUET.
...@@ -37,7 +35,6 @@ config MPC885ADS ...@@ -37,7 +35,6 @@ config MPC885ADS
config PPC_EP88XC config PPC_EP88XC
bool "Embedded Planet EP88xC (a.k.a. CWH-PPC-885XN-VE)" bool "Embedded Planet EP88xC (a.k.a. CWH-PPC-885XN-VE)"
select CPM1 select CPM1
select PPC_CPM_NEW_BINDING
help help
This enables support for the Embedded Planet EP88xC board. This enables support for the Embedded Planet EP88xC board.
...@@ -47,7 +44,6 @@ config PPC_EP88XC ...@@ -47,7 +44,6 @@ config PPC_EP88XC
config PPC_ADDER875 config PPC_ADDER875
bool "Analogue & Micro Adder 875" bool "Analogue & Micro Adder 875"
select CPM1 select CPM1
select PPC_CPM_NEW_BINDING
select REDBOOT select REDBOOT
help help
This enables support for the Analogue & Micro Adder 875 This enables support for the Analogue & Micro Adder 875
......
...@@ -290,13 +290,7 @@ config CPM2 ...@@ -290,13 +290,7 @@ config CPM2
config PPC_CPM_NEW_BINDING config PPC_CPM_NEW_BINDING
bool bool
depends on CPM1 || CPM2 depends on CPM1 || CPM2
help default y
Select this if your board has been converted to use the new
device tree bindings for CPM, and no longer needs the
ioport callbacks or the platform device glue code.
The fs_enet and cpm_uart drivers will be built as
of_platform devices.
config AXON_RAM config AXON_RAM
tristate "Axon DDR2 memory device driver" tristate "Axon DDR2 memory device driver"
......
...@@ -12,6 +12,7 @@ obj-$(CONFIG_U3_DART) += dart_iommu.o ...@@ -12,6 +12,7 @@ obj-$(CONFIG_U3_DART) += dart_iommu.o
obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o
obj-$(CONFIG_FSL_SOC) += fsl_soc.o obj-$(CONFIG_FSL_SOC) += fsl_soc.o
obj-$(CONFIG_FSL_PCI) += fsl_pci.o obj-$(CONFIG_FSL_PCI) += fsl_pci.o
obj-$(CONFIG_FSL_LBC) += fsl_lbc.o
obj-$(CONFIG_RAPIDIO) += fsl_rio.o obj-$(CONFIG_RAPIDIO) += fsl_rio.o
obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o
obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ obj-$(CONFIG_QUICC_ENGINE) += qe_lib/
......
...@@ -44,9 +44,6 @@ ...@@ -44,9 +44,6 @@
#define CPM_MAP_SIZE (0x4000) #define CPM_MAP_SIZE (0x4000)
#ifndef CONFIG_PPC_CPM_NEW_BINDING
static void m8xx_cpm_dpinit(void);
#endif
cpm8xx_t __iomem *cpmp; /* Pointer to comm processor space */ cpm8xx_t __iomem *cpmp; /* Pointer to comm processor space */
immap_t __iomem *mpc8xx_immr; immap_t __iomem *mpc8xx_immr;
static cpic8xx_t __iomem *cpic_reg; static cpic8xx_t __iomem *cpic_reg;
...@@ -229,12 +226,7 @@ void __init cpm_reset(void) ...@@ -229,12 +226,7 @@ void __init cpm_reset(void)
out_be32(&siu_conf->sc_sdcr, 1); out_be32(&siu_conf->sc_sdcr, 1);
immr_unmap(siu_conf); immr_unmap(siu_conf);
#ifdef CONFIG_PPC_CPM_NEW_BINDING
cpm_muram_init(); cpm_muram_init();
#else
/* Reclaim the DP memory for our use. */
m8xx_cpm_dpinit();
#endif
} }
static DEFINE_SPINLOCK(cmd_lock); static DEFINE_SPINLOCK(cmd_lock);
...@@ -293,110 +285,6 @@ cpm_setbrg(uint brg, uint rate) ...@@ -293,110 +285,6 @@ cpm_setbrg(uint brg, uint rate)
CPM_BRG_EN | CPM_BRG_DIV16); CPM_BRG_EN | CPM_BRG_DIV16);
} }
#ifndef CONFIG_PPC_CPM_NEW_BINDING
/*
* dpalloc / dpfree bits.
*/
static spinlock_t cpm_dpmem_lock;
/*
* 16 blocks should be enough to satisfy all requests
* until the memory subsystem goes up...
*/
static rh_block_t cpm_boot_dpmem_rh_block[16];
static rh_info_t cpm_dpmem_info;
#define CPM_DPMEM_ALIGNMENT 8
static u8 __iomem *dpram_vbase;
static phys_addr_t dpram_pbase;
static void m8xx_cpm_dpinit(void)
{
spin_lock_init(&cpm_dpmem_lock);
dpram_vbase = cpmp->cp_dpmem;
dpram_pbase = get_immrbase() + offsetof(immap_t, im_cpm.cp_dpmem);
/* Initialize the info header */
rh_init(&cpm_dpmem_info, CPM_DPMEM_ALIGNMENT,
sizeof(cpm_boot_dpmem_rh_block) /
sizeof(cpm_boot_dpmem_rh_block[0]),
cpm_boot_dpmem_rh_block);
/*
* Attach the usable dpmem area.
* XXX: This is actually crap. CPM_DATAONLY_BASE and
* CPM_DATAONLY_SIZE are a subset of the available dparm. It varies
* with the processor and the microcode patches applied / activated.
* But the following should be at least safe.
*/
rh_attach_region(&cpm_dpmem_info, CPM_DATAONLY_BASE, CPM_DATAONLY_SIZE);
}
/*
* Allocate the requested size worth of DP memory.
* This function returns an offset into the DPRAM area.
* Use cpm_dpram_addr() to get the virtual address of the area.
*/
unsigned long cpm_dpalloc(uint size, uint align)
{
unsigned long start;
unsigned long flags;
spin_lock_irqsave(&cpm_dpmem_lock, flags);
cpm_dpmem_info.alignment = align;
start = rh_alloc(&cpm_dpmem_info, size, "commproc");
spin_unlock_irqrestore(&cpm_dpmem_lock, flags);
return (uint)start;
}
EXPORT_SYMBOL(cpm_dpalloc);
int cpm_dpfree(unsigned long offset)
{
int ret;
unsigned long flags;
spin_lock_irqsave(&cpm_dpmem_lock, flags);
ret = rh_free(&cpm_dpmem_info, offset);
spin_unlock_irqrestore(&cpm_dpmem_lock, flags);
return ret;
}
EXPORT_SYMBOL(cpm_dpfree);
unsigned long cpm_dpalloc_fixed(unsigned long offset, uint size, uint align)
{
unsigned long start;
unsigned long flags;
spin_lock_irqsave(&cpm_dpmem_lock, flags);
cpm_dpmem_info.alignment = align;
start = rh_alloc_fixed(&cpm_dpmem_info, offset, size, "commproc");
spin_unlock_irqrestore(&cpm_dpmem_lock, flags);
return start;
}
EXPORT_SYMBOL(cpm_dpalloc_fixed);
void cpm_dpdump(void)
{
rh_dump(&cpm_dpmem_info);
}
EXPORT_SYMBOL(cpm_dpdump);
void *cpm_dpram_addr(unsigned long offset)
{
return (void *)(dpram_vbase + offset);
}
EXPORT_SYMBOL(cpm_dpram_addr);
uint cpm_dpram_phys(u8 *addr)
{
return (dpram_pbase + (uint)(addr - dpram_vbase));
}
EXPORT_SYMBOL(cpm_dpram_phys);
#endif /* !CONFIG_PPC_CPM_NEW_BINDING */
struct cpm_ioport16 { struct cpm_ioport16 {
__be16 dir, par, odr_sor, dat, intr; __be16 dir, par, odr_sor, dat, intr;
__be16 res[3]; __be16 res[3];
......
...@@ -46,10 +46,6 @@ ...@@ -46,10 +46,6 @@
#include <sysdev/fsl_soc.h> #include <sysdev/fsl_soc.h>
#ifndef CONFIG_PPC_CPM_NEW_BINDING
static void cpm2_dpinit(void);
#endif
cpm_cpm2_t __iomem *cpmp; /* Pointer to comm processor space */ cpm_cpm2_t __iomem *cpmp; /* Pointer to comm processor space */
/* We allocate this here because it is used almost exclusively for /* We allocate this here because it is used almost exclusively for
...@@ -71,15 +67,17 @@ void __init cpm2_reset(void) ...@@ -71,15 +67,17 @@ void __init cpm2_reset(void)
/* Reclaim the DP memory for our use. /* Reclaim the DP memory for our use.
*/ */
#ifdef CONFIG_PPC_CPM_NEW_BINDING
cpm_muram_init(); cpm_muram_init();
#else
cpm2_dpinit();
#endif
/* Tell everyone where the comm processor resides. /* Tell everyone where the comm processor resides.
*/ */
cpmp = &cpm2_immr->im_cpm; cpmp = &cpm2_immr->im_cpm;
#ifndef CONFIG_PPC_EARLY_DEBUG_CPM
/* Reset the CPM.
*/
cpm_command(CPM_CR_RST, 0);
#endif
} }
static DEFINE_SPINLOCK(cmd_lock); static DEFINE_SPINLOCK(cmd_lock);
...@@ -347,95 +345,6 @@ int cpm2_smc_clk_setup(enum cpm_clk_target target, int clock) ...@@ -347,95 +345,6 @@ int cpm2_smc_clk_setup(enum cpm_clk_target target, int clock)
return ret; return ret;
} }
#ifndef CONFIG_PPC_CPM_NEW_BINDING
/*
* dpalloc / dpfree bits.
*/
static spinlock_t cpm_dpmem_lock;
/* 16 blocks should be enough to satisfy all requests
* until the memory subsystem goes up... */
static rh_block_t cpm_boot_dpmem_rh_block[16];
static rh_info_t cpm_dpmem_info;
static u8 __iomem *im_dprambase;
static void cpm2_dpinit(void)
{
spin_lock_init(&cpm_dpmem_lock);
/* initialize the info header */
rh_init(&cpm_dpmem_info, 1,
sizeof(cpm_boot_dpmem_rh_block) /
sizeof(cpm_boot_dpmem_rh_block[0]),
cpm_boot_dpmem_rh_block);
im_dprambase = cpm2_immr;
/* Attach the usable dpmem area */
/* XXX: This is actually crap. CPM_DATAONLY_BASE and
* CPM_DATAONLY_SIZE is only a subset of the available dpram. It
* varies with the processor and the microcode patches activated.
* But the following should be at least safe.
*/
rh_attach_region(&cpm_dpmem_info, CPM_DATAONLY_BASE, CPM_DATAONLY_SIZE);
}
/* This function returns an index into the DPRAM area.
*/
unsigned long cpm_dpalloc(uint size, uint align)
{
unsigned long start;
unsigned long flags;
spin_lock_irqsave(&cpm_dpmem_lock, flags);
cpm_dpmem_info.alignment = align;
start = rh_alloc(&cpm_dpmem_info, size, "commproc");
spin_unlock_irqrestore(&cpm_dpmem_lock, flags);
return (uint)start;
}
EXPORT_SYMBOL(cpm_dpalloc);
int cpm_dpfree(unsigned long offset)
{
int ret;
unsigned long flags;
spin_lock_irqsave(&cpm_dpmem_lock, flags);
ret = rh_free(&cpm_dpmem_info, offset);
spin_unlock_irqrestore(&cpm_dpmem_lock, flags);
return ret;
}
EXPORT_SYMBOL(cpm_dpfree);
/* not sure if this is ever needed */
unsigned long cpm_dpalloc_fixed(unsigned long offset, uint size, uint align)
{
unsigned long start;
unsigned long flags;
spin_lock_irqsave(&cpm_dpmem_lock, flags);
cpm_dpmem_info.alignment = align;
start = rh_alloc_fixed(&cpm_dpmem_info, offset, size, "commproc");
spin_unlock_irqrestore(&cpm_dpmem_lock, flags);
return start;
}
EXPORT_SYMBOL(cpm_dpalloc_fixed);
void cpm_dpdump(void)
{
rh_dump(&cpm_dpmem_info);
}
EXPORT_SYMBOL(cpm_dpdump);
void *cpm_dpram_addr(unsigned long offset)
{
return (void *)(im_dprambase + offset);
}
EXPORT_SYMBOL(cpm_dpram_addr);
#endif /* !CONFIG_PPC_CPM_NEW_BINDING */
struct cpm2_ioports { struct cpm2_ioports {
u32 dir, par, sor, odr, dat; u32 dir, par, sor, odr, dat;
u32 res[3]; u32 res[3];
......
...@@ -58,7 +58,6 @@ void __init udbg_init_cpm(void) ...@@ -58,7 +58,6 @@ void __init udbg_init_cpm(void)
} }
#endif #endif
#ifdef CONFIG_PPC_CPM_NEW_BINDING
static spinlock_t cpm_muram_lock; static spinlock_t cpm_muram_lock;
static rh_block_t cpm_boot_muram_rh_block[16]; static rh_block_t cpm_boot_muram_rh_block[16];
static rh_info_t cpm_muram_info; static rh_info_t cpm_muram_info;
...@@ -199,5 +198,3 @@ dma_addr_t cpm_muram_dma(void __iomem *addr) ...@@ -199,5 +198,3 @@ dma_addr_t cpm_muram_dma(void __iomem *addr)
return muram_pbase + ((u8 __iomem *)addr - muram_vbase); return muram_pbase + ((u8 __iomem *)addr - muram_vbase);
} }
EXPORT_SYMBOL(cpm_muram_dma); EXPORT_SYMBOL(cpm_muram_dma);
#endif /* CONFIG_PPC_CPM_NEW_BINDING */
/*
* Freescale LBC and UPM routines.
*
* Copyright (c) 2007-2008 MontaVista Software, Inc.
*
* Author: Anton Vorontsov <avorontsov@ru.mvista.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#include <linux/kernel.h>
#include <linux/of.h>
#include <asm/fsl_lbc.h>
spinlock_t fsl_lbc_lock = __SPIN_LOCK_UNLOCKED(fsl_lbc_lock);
struct fsl_lbc_regs __iomem *fsl_lbc_regs;
EXPORT_SYMBOL(fsl_lbc_regs);
static char __initdata *compat_lbc[] = {
"fsl,pq2-localbus",
"fsl,pq2pro-localbus",
"fsl,pq3-localbus",
"fsl,elbc",
};
static int __init fsl_lbc_init(void)
{
struct device_node *lbus;
int i;
for (i = 0; i < ARRAY_SIZE(compat_lbc); i++) {
lbus = of_find_compatible_node(NULL, NULL, compat_lbc[i]);
if (lbus)
goto found;
}
return -ENODEV;
found:
fsl_lbc_regs = of_iomap(lbus, 0);
of_node_put(lbus);
if (!fsl_lbc_regs)
return -ENOMEM;
return 0;
}
arch_initcall(fsl_lbc_init);
/**
* fsl_lbc_find - find Localbus bank
* @addr_base: base address of the memory bank
*
* This function walks LBC banks comparing "Base address" field of the BR
* registers with the supplied addr_base argument. When bases match this
* function returns bank number (starting with 0), otherwise it returns
* appropriate errno value.
*/
int fsl_lbc_find(phys_addr_t addr_base)
{
int i;
if (!fsl_lbc_regs)
return -ENODEV;
for (i = 0; i < ARRAY_SIZE(fsl_lbc_regs->bank); i++) {
__be32 br = in_be32(&fsl_lbc_regs->bank[i].br);
__be32 or = in_be32(&fsl_lbc_regs->bank[i].or);
if (br & BR_V && (br & or & BR_BA) == addr_base)
return i;
}
return -ENOENT;
}
EXPORT_SYMBOL(fsl_lbc_find);
/**
* fsl_upm_find - find pre-programmed UPM via base address
* @addr_base: base address of the memory bank controlled by the UPM
* @upm: pointer to the allocated fsl_upm structure
*
* This function fills fsl_upm structure so you can use it with the rest of
* UPM API. On success this function returns 0, otherwise it returns
* appropriate errno value.
*/
int fsl_upm_find(phys_addr_t addr_base, struct fsl_upm *upm)
{
int bank;
__be32 br;
bank = fsl_lbc_find(addr_base);
if (bank < 0)
return bank;
br = in_be32(&fsl_lbc_regs->bank[bank].br);
switch (br & BR_MSEL) {
case BR_MS_UPMA:
upm->mxmr = &fsl_lbc_regs->mamr;
break;
case BR_MS_UPMB:
upm->mxmr = &fsl_lbc_regs->mbmr;
break;
case BR_MS_UPMC:
upm->mxmr = &fsl_lbc_regs->mcmr;
break;
default:
return -EINVAL;
}
switch (br & BR_PS) {
case BR_PS_8:
upm->width = 8;
break;
case BR_PS_16:
upm->width = 16;
break;
case BR_PS_32:
upm->width = 32;
break;
default:
return -EINVAL;
}
return 0;
}
EXPORT_SYMBOL(fsl_upm_find);
...@@ -75,6 +75,33 @@ phys_addr_t get_immrbase(void) ...@@ -75,6 +75,33 @@ phys_addr_t get_immrbase(void)
EXPORT_SYMBOL(get_immrbase); EXPORT_SYMBOL(get_immrbase);
static u32 sysfreq = -1;
u32 fsl_get_sys_freq(void)
{
struct device_node *soc;
const u32 *prop;
int size;
if (sysfreq != -1)
return sysfreq;
soc = of_find_node_by_type(NULL, "soc");
if (!soc)
return -1;
prop = of_get_property(soc, "clock-frequency", &size);
if (!prop || size != sizeof(*prop) || *prop == 0)
prop = of_get_property(soc, "bus-frequency", &size);
if (prop && size == sizeof(*prop))
sysfreq = *prop;
of_node_put(soc);
return sysfreq;
}
EXPORT_SYMBOL(fsl_get_sys_freq);
#if defined(CONFIG_CPM2) || defined(CONFIG_QUICC_ENGINE) || defined(CONFIG_8xx) #if defined(CONFIG_CPM2) || defined(CONFIG_QUICC_ENGINE) || defined(CONFIG_8xx)
static u32 brgfreq = -1; static u32 brgfreq = -1;
...@@ -516,9 +543,9 @@ arch_initcall(fsl_i2c_of_init); ...@@ -516,9 +543,9 @@ arch_initcall(fsl_i2c_of_init);
static int __init mpc83xx_wdt_init(void) static int __init mpc83xx_wdt_init(void)
{ {
struct resource r; struct resource r;
struct device_node *soc, *np; struct device_node *np;
struct platform_device *dev; struct platform_device *dev;
const unsigned int *freq; u32 freq = fsl_get_sys_freq();
int ret; int ret;
np = of_find_compatible_node(NULL, "watchdog", "mpc83xx_wdt"); np = of_find_compatible_node(NULL, "watchdog", "mpc83xx_wdt");
...@@ -528,19 +555,6 @@ static int __init mpc83xx_wdt_init(void) ...@@ -528,19 +555,6 @@ static int __init mpc83xx_wdt_init(void)
goto nodev; goto nodev;
} }
soc = of_find_node_by_type(NULL, "soc");
if (!soc) {
ret = -ENODEV;
goto nosoc;
}
freq = of_get_property(soc, "bus-frequency", NULL);
if (!freq) {
ret = -ENODEV;
goto err;
}
memset(&r, 0, sizeof(r)); memset(&r, 0, sizeof(r));
ret = of_address_to_resource(np, 0, &r); ret = of_address_to_resource(np, 0, &r);
...@@ -553,20 +567,16 @@ static int __init mpc83xx_wdt_init(void) ...@@ -553,20 +567,16 @@ static int __init mpc83xx_wdt_init(void)
goto err; goto err;
} }
ret = platform_device_add_data(dev, freq, sizeof(int)); ret = platform_device_add_data(dev, &freq, sizeof(freq));
if (ret) if (ret)
goto unreg; goto unreg;
of_node_put(soc);
of_node_put(np); of_node_put(np);
return 0; return 0;
unreg: unreg:
platform_device_unregister(dev); platform_device_unregister(dev);
err: err:
of_node_put(soc);
nosoc:
of_node_put(np); of_node_put(np);
nodev: nodev:
return ret; return ret;
...@@ -735,547 +745,6 @@ static int __init fsl_usb_of_init(void) ...@@ -735,547 +745,6 @@ static int __init fsl_usb_of_init(void)
arch_initcall(fsl_usb_of_init); arch_initcall(fsl_usb_of_init);
#ifndef CONFIG_PPC_CPM_NEW_BINDING
#ifdef CONFIG_CPM2
extern void init_scc_ioports(struct fs_uart_platform_info*);
static const char fcc_regs[] = "fcc_regs";
static const char fcc_regs_c[] = "fcc_regs_c";
static const char fcc_pram[] = "fcc_pram";
static char bus_id[9][BUS_ID_SIZE];
static int __init fs_enet_of_init(void)
{
struct device_node *np;
unsigned int i;
struct platform_device *fs_enet_dev;
struct resource res;
int ret;
for (np = NULL, i = 0;
(np = of_find_compatible_node(np, "network", "fs_enet")) != NULL;
i++) {
struct resource r[4];
struct device_node *phy, *mdio;
struct fs_platform_info fs_enet_data;
const unsigned int *id, *phy_addr, *phy_irq;
const void *mac_addr;
const phandle *ph;
const char *model;
memset(r, 0, sizeof(r));
memset(&fs_enet_data, 0, sizeof(fs_enet_data));
ret = of_address_to_resource(np, 0, &r[0]);
if (ret)
goto err;
r[0].name = fcc_regs;
ret = of_address_to_resource(np, 1, &r[1]);
if (ret)
goto err;
r[1].name = fcc_pram;
ret = of_address_to_resource(np, 2, &r[2]);
if (ret)
goto err;
r[2].name = fcc_regs_c;
fs_enet_data.fcc_regs_c = r[2].start;
of_irq_to_resource(np, 0, &r[3]);
fs_enet_dev =
platform_device_register_simple("fsl-cpm-fcc", i, &r[0], 4);
if (IS_ERR(fs_enet_dev)) {
ret = PTR_ERR(fs_enet_dev);
goto err;
}
model = of_get_property(np, "model", NULL);
if (model == NULL) {
ret = -ENODEV;
goto unreg;
}
mac_addr = of_get_mac_address(np);
if (mac_addr)
memcpy(fs_enet_data.macaddr, mac_addr, 6);
ph = of_get_property(np, "phy-handle", NULL);
phy = of_find_node_by_phandle(*ph);
if (phy == NULL) {
ret = -ENODEV;
goto unreg;
}
phy_addr = of_get_property(phy, "reg", NULL);
fs_enet_data.phy_addr = *phy_addr;
phy_irq = of_get_property(phy, "interrupts", NULL);
id = of_get_property(np, "device-id", NULL);
fs_enet_data.fs_no = *id;
strcpy(fs_enet_data.fs_type, model);
mdio = of_get_parent(phy);
ret = of_address_to_resource(mdio, 0, &res);
if (ret) {
of_node_put(phy);
of_node_put(mdio);
goto unreg;
}
fs_enet_data.clk_rx = *((u32 *)of_get_property(np,
"rx-clock", NULL));
fs_enet_data.clk_tx = *((u32 *)of_get_property(np,
"tx-clock", NULL));
if (strstr(model, "FCC")) {
int fcc_index = *id - 1;
const unsigned char *mdio_bb_prop;
fs_enet_data.dpram_offset = (u32)cpm_dpram_addr(0);
fs_enet_data.rx_ring = 32;
fs_enet_data.tx_ring = 32;
fs_enet_data.rx_copybreak = 240;
fs_enet_data.use_napi = 0;
fs_enet_data.napi_weight = 17;
fs_enet_data.mem_offset = FCC_MEM_OFFSET(fcc_index);
fs_enet_data.cp_page = CPM_CR_FCC_PAGE(fcc_index);
fs_enet_data.cp_block = CPM_CR_FCC_SBLOCK(fcc_index);
snprintf((char*)&bus_id[(*id)], BUS_ID_SIZE, "%x:%02x",
(u32)res.start, fs_enet_data.phy_addr);
fs_enet_data.bus_id = (char*)&bus_id[(*id)];
fs_enet_data.init_ioports = init_fcc_ioports;
mdio_bb_prop = of_get_property(phy, "bitbang", NULL);
if (mdio_bb_prop) {
struct platform_device *fs_enet_mdio_bb_dev;
struct fs_mii_bb_platform_info fs_enet_mdio_bb_data;
fs_enet_mdio_bb_dev =
platform_device_register_simple("fsl-bb-mdio",
i, NULL, 0);
memset(&fs_enet_mdio_bb_data, 0,
sizeof(struct fs_mii_bb_platform_info));
fs_enet_mdio_bb_data.mdio_dat.bit =
mdio_bb_prop[0];
fs_enet_mdio_bb_data.mdio_dir.bit =
mdio_bb_prop[1];
fs_enet_mdio_bb_data.mdc_dat.bit =
mdio_bb_prop[2];
fs_enet_mdio_bb_data.mdio_port =
mdio_bb_prop[3];
fs_enet_mdio_bb_data.mdc_port =
mdio_bb_prop[4];
fs_enet_mdio_bb_data.delay =
mdio_bb_prop[5];
fs_enet_mdio_bb_data.irq[0] = phy_irq[0];
fs_enet_mdio_bb_data.irq[1] = -1;
fs_enet_mdio_bb_data.irq[2] = -1;
fs_enet_mdio_bb_data.irq[3] = phy_irq[0];
fs_enet_mdio_bb_data.irq[31] = -1;
fs_enet_mdio_bb_data.mdio_dat.offset =
(u32)&cpm2_immr->im_ioport.iop_pdatc;
fs_enet_mdio_bb_data.mdio_dir.offset =
(u32)&cpm2_immr->im_ioport.iop_pdirc;
fs_enet_mdio_bb_data.mdc_dat.offset =
(u32)&cpm2_immr->im_ioport.iop_pdatc;
ret = platform_device_add_data(
fs_enet_mdio_bb_dev,
&fs_enet_mdio_bb_data,
sizeof(struct fs_mii_bb_platform_info));
if (ret)
goto unreg;
}
of_node_put(phy);
of_node_put(mdio);
ret = platform_device_add_data(fs_enet_dev, &fs_enet_data,
sizeof(struct
fs_platform_info));
if (ret)
goto unreg;
}
}
return 0;
unreg:
platform_device_unregister(fs_enet_dev);
err:
return ret;
}
arch_initcall(fs_enet_of_init);
static const char scc_regs[] = "regs";
static const char scc_pram[] = "pram";
static int __init cpm_uart_of_init(void)
{
struct device_node *np;
unsigned int i;
struct platform_device *cpm_uart_dev;
int ret;
for (np = NULL, i = 0;
(np = of_find_compatible_node(np, "serial", "cpm_uart")) != NULL;
i++) {
struct resource r[3];
struct fs_uart_platform_info cpm_uart_data;
const int *id;
const char *model;
memset(r, 0, sizeof(r));
memset(&cpm_uart_data, 0, sizeof(cpm_uart_data));
ret = of_address_to_resource(np, 0, &r[0]);
if (ret)
goto err;
r[0].name = scc_regs;
ret = of_address_to_resource(np, 1, &r[1]);
if (ret)
goto err;
r[1].name = scc_pram;
of_irq_to_resource(np, 0, &r[2]);
cpm_uart_dev =
platform_device_register_simple("fsl-cpm-scc:uart", i, &r[0], 3);
if (IS_ERR(cpm_uart_dev)) {
ret = PTR_ERR(cpm_uart_dev);
goto err;
}
id = of_get_property(np, "device-id", NULL);
cpm_uart_data.fs_no = *id;
model = of_get_property(np, "model", NULL);
strcpy(cpm_uart_data.fs_type, model);
cpm_uart_data.uart_clk = ppc_proc_freq;
cpm_uart_data.tx_num_fifo = 4;
cpm_uart_data.tx_buf_size = 32;
cpm_uart_data.rx_num_fifo = 4;
cpm_uart_data.rx_buf_size = 32;
cpm_uart_data.clk_rx = *((u32 *)of_get_property(np,
"rx-clock", NULL));
cpm_uart_data.clk_tx = *((u32 *)of_get_property(np,
"tx-clock", NULL));
ret =
platform_device_add_data(cpm_uart_dev, &cpm_uart_data,
sizeof(struct
fs_uart_platform_info));
if (ret)
goto unreg;
}
return 0;
unreg:
platform_device_unregister(cpm_uart_dev);
err:
return ret;
}
arch_initcall(cpm_uart_of_init);
#endif /* CONFIG_CPM2 */
#ifdef CONFIG_8xx
extern void init_scc_ioports(struct fs_platform_info*);
extern int platform_device_skip(const char *model, int id);
static int __init fs_enet_mdio_of_init(void)
{
struct device_node *np;
unsigned int i;
struct platform_device *mdio_dev;
struct resource res;
int ret;
for (np = NULL, i = 0;
(np = of_find_compatible_node(np, "mdio", "fs_enet")) != NULL;
i++) {
struct fs_mii_fec_platform_info mdio_data;
memset(&res, 0, sizeof(res));
memset(&mdio_data, 0, sizeof(mdio_data));
ret = of_address_to_resource(np, 0, &res);
if (ret)
goto err;
mdio_dev =
platform_device_register_simple("fsl-cpm-fec-mdio",
res.start, &res, 1);
if (IS_ERR(mdio_dev)) {
ret = PTR_ERR(mdio_dev);
goto err;
}
mdio_data.mii_speed = ((((ppc_proc_freq + 4999999) / 2500000) / 2) & 0x3F) << 1;
ret =
platform_device_add_data(mdio_dev, &mdio_data,
sizeof(struct fs_mii_fec_platform_info));
if (ret)
goto unreg;
}
return 0;
unreg:
platform_device_unregister(mdio_dev);
err:
return ret;
}
arch_initcall(fs_enet_mdio_of_init);
static const char *enet_regs = "regs";
static const char *enet_pram = "pram";
static const char *enet_irq = "interrupt";
static char bus_id[9][BUS_ID_SIZE];
static int __init fs_enet_of_init(void)
{
struct device_node *np;
unsigned int i;
struct platform_device *fs_enet_dev = NULL;
struct resource res;
int ret;
for (np = NULL, i = 0;
(np = of_find_compatible_node(np, "network", "fs_enet")) != NULL;
i++) {
struct resource r[4];
struct device_node *phy = NULL, *mdio = NULL;
struct fs_platform_info fs_enet_data;
const unsigned int *id;
const unsigned int *phy_addr;
const void *mac_addr;
const phandle *ph;
const char *model;
memset(r, 0, sizeof(r));
memset(&fs_enet_data, 0, sizeof(fs_enet_data));
model = of_get_property(np, "model", NULL);
if (model == NULL) {
ret = -ENODEV;
goto unreg;
}
id = of_get_property(np, "device-id", NULL);
fs_enet_data.fs_no = *id;
if (platform_device_skip(model, *id))
continue;
ret = of_address_to_resource(np, 0, &r[0]);
if (ret)
goto err;
r[0].name = enet_regs;
mac_addr = of_get_mac_address(np);
if (mac_addr)
memcpy(fs_enet_data.macaddr, mac_addr, 6);
ph = of_get_property(np, "phy-handle", NULL);
if (ph != NULL)
phy = of_find_node_by_phandle(*ph);
if (phy != NULL) {
phy_addr = of_get_property(phy, "reg", NULL);
fs_enet_data.phy_addr = *phy_addr;
fs_enet_data.has_phy = 1;
mdio = of_get_parent(phy);
ret = of_address_to_resource(mdio, 0, &res);
if (ret) {
of_node_put(phy);
of_node_put(mdio);
goto unreg;
}
}
model = of_get_property(np, "model", NULL);
strcpy(fs_enet_data.fs_type, model);
if (strstr(model, "FEC")) {
r[1].start = r[1].end = irq_of_parse_and_map(np, 0);
r[1].flags = IORESOURCE_IRQ;
r[1].name = enet_irq;
fs_enet_dev =
platform_device_register_simple("fsl-cpm-fec", i, &r[0], 2);
if (IS_ERR(fs_enet_dev)) {
ret = PTR_ERR(fs_enet_dev);
goto err;
}
fs_enet_data.rx_ring = 128;
fs_enet_data.tx_ring = 16;
fs_enet_data.rx_copybreak = 240;
fs_enet_data.use_napi = 1;
fs_enet_data.napi_weight = 17;
snprintf((char*)&bus_id[i], BUS_ID_SIZE, "%x:%02x",
(u32)res.start, fs_enet_data.phy_addr);
fs_enet_data.bus_id = (char*)&bus_id[i];
fs_enet_data.init_ioports = init_fec_ioports;
}
if (strstr(model, "SCC")) {
ret = of_address_to_resource(np, 1, &r[1]);
if (ret)
goto err;
r[1].name = enet_pram;
r[2].start = r[2].end = irq_of_parse_and_map(np, 0);
r[2].flags = IORESOURCE_IRQ;
r[2].name = enet_irq;
fs_enet_dev =
platform_device_register_simple("fsl-cpm-scc", i, &r[0], 3);
if (IS_ERR(fs_enet_dev)) {
ret = PTR_ERR(fs_enet_dev);
goto err;
}
fs_enet_data.rx_ring = 64;
fs_enet_data.tx_ring = 8;
fs_enet_data.rx_copybreak = 240;
fs_enet_data.use_napi = 1;
fs_enet_data.napi_weight = 17;
snprintf((char*)&bus_id[i], BUS_ID_SIZE, "%s", "fixed@10:1");
fs_enet_data.bus_id = (char*)&bus_id[i];
fs_enet_data.init_ioports = init_scc_ioports;
}
of_node_put(phy);
of_node_put(mdio);
ret = platform_device_add_data(fs_enet_dev, &fs_enet_data,
sizeof(struct
fs_platform_info));
if (ret)
goto unreg;
}
return 0;
unreg:
platform_device_unregister(fs_enet_dev);
err:
return ret;
}
arch_initcall(fs_enet_of_init);
static int __init fsl_pcmcia_of_init(void)
{
struct device_node *np;
/*
* Register all the devices which type is "pcmcia"
*/
for_each_compatible_node(np, "pcmcia", "fsl,pq-pcmcia")
of_platform_device_create(np, "m8xx-pcmcia", NULL);
return 0;
}
arch_initcall(fsl_pcmcia_of_init);
static const char *smc_regs = "regs";
static const char *smc_pram = "pram";
static int __init cpm_smc_uart_of_init(void)
{
struct device_node *np;
unsigned int i;
struct platform_device *cpm_uart_dev;
int ret;
for (np = NULL, i = 0;
(np = of_find_compatible_node(np, "serial", "cpm_uart")) != NULL;
i++) {
struct resource r[3];
struct fs_uart_platform_info cpm_uart_data;
const int *id;
const char *model;
memset(r, 0, sizeof(r));
memset(&cpm_uart_data, 0, sizeof(cpm_uart_data));
ret = of_address_to_resource(np, 0, &r[0]);
if (ret)
goto err;
r[0].name = smc_regs;
ret = of_address_to_resource(np, 1, &r[1]);
if (ret)
goto err;
r[1].name = smc_pram;
r[2].start = r[2].end = irq_of_parse_and_map(np, 0);
r[2].flags = IORESOURCE_IRQ;
cpm_uart_dev =
platform_device_register_simple("fsl-cpm-smc:uart", i, &r[0], 3);
if (IS_ERR(cpm_uart_dev)) {
ret = PTR_ERR(cpm_uart_dev);
goto err;
}
model = of_get_property(np, "model", NULL);
strcpy(cpm_uart_data.fs_type, model);
id = of_get_property(np, "device-id", NULL);
cpm_uart_data.fs_no = *id;
cpm_uart_data.uart_clk = ppc_proc_freq;
cpm_uart_data.tx_num_fifo = 4;
cpm_uart_data.tx_buf_size = 32;
cpm_uart_data.rx_num_fifo = 4;
cpm_uart_data.rx_buf_size = 32;
ret =
platform_device_add_data(cpm_uart_dev, &cpm_uart_data,
sizeof(struct
fs_uart_platform_info));
if (ret)
goto unreg;
}
return 0;
unreg:
platform_device_unregister(cpm_uart_dev);
err:
return ret;
}
arch_initcall(cpm_smc_uart_of_init);
#endif /* CONFIG_8xx */
#endif /* CONFIG_PPC_CPM_NEW_BINDING */
static int __init of_fsl_spi_probe(char *type, char *compatible, u32 sysclk, static int __init of_fsl_spi_probe(char *type, char *compatible, u32 sysclk,
struct spi_board_info *board_infos, struct spi_board_info *board_infos,
unsigned int num_board_infos, unsigned int num_board_infos,
...@@ -1371,25 +840,9 @@ int __init fsl_spi_init(struct spi_board_info *board_infos, ...@@ -1371,25 +840,9 @@ int __init fsl_spi_init(struct spi_board_info *board_infos,
sysclk = get_brgfreq(); sysclk = get_brgfreq();
#endif #endif
if (sysclk == -1) { if (sysclk == -1) {
struct device_node *np; sysclk = fsl_get_sys_freq();
const u32 *freq; if (sysclk == -1)
int size;
np = of_find_node_by_type(NULL, "soc");
if (!np)
return -ENODEV; return -ENODEV;
freq = of_get_property(np, "clock-frequency", &size);
if (!freq || size != sizeof(*freq) || *freq == 0) {
freq = of_get_property(np, "bus-frequency", &size);
if (!freq || size != sizeof(*freq) || *freq == 0) {
of_node_put(np);
return -ENODEV;
}
}
sysclk = *freq;
of_node_put(np);
} }
ret = of_fsl_spi_probe(NULL, "fsl,spi", sysclk, board_infos, ret = of_fsl_spi_probe(NULL, "fsl,spi", sysclk, board_infos,
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
extern phys_addr_t get_immrbase(void); extern phys_addr_t get_immrbase(void);
extern u32 get_brgfreq(void); extern u32 get_brgfreq(void);
extern u32 get_baudrate(void); extern u32 get_baudrate(void);
extern u32 fsl_get_sys_freq(void);
struct spi_board_info; struct spi_board_info;
......
...@@ -55,7 +55,7 @@ struct qe_snum { ...@@ -55,7 +55,7 @@ struct qe_snum {
/* We allocate this here because it is used almost exclusively for /* We allocate this here because it is used almost exclusively for
* the communication processor devices. * the communication processor devices.
*/ */
struct qe_immap *qe_immr = NULL; struct qe_immap __iomem *qe_immr;
EXPORT_SYMBOL(qe_immr); EXPORT_SYMBOL(qe_immr);
static struct qe_snum snums[QE_NUM_OF_SNUM]; /* Dynamically allocated SNUMs */ static struct qe_snum snums[QE_NUM_OF_SNUM]; /* Dynamically allocated SNUMs */
...@@ -156,7 +156,7 @@ EXPORT_SYMBOL(qe_issue_cmd); ...@@ -156,7 +156,7 @@ EXPORT_SYMBOL(qe_issue_cmd);
*/ */
static unsigned int brg_clk = 0; static unsigned int brg_clk = 0;
unsigned int get_brg_clk(void) unsigned int qe_get_brg_clk(void)
{ {
struct device_node *qe; struct device_node *qe;
unsigned int size; unsigned int size;
...@@ -180,6 +180,7 @@ unsigned int get_brg_clk(void) ...@@ -180,6 +180,7 @@ unsigned int get_brg_clk(void)
return brg_clk; return brg_clk;
} }
EXPORT_SYMBOL(qe_get_brg_clk);
/* Program the BRG to the given sampling rate and multiplier /* Program the BRG to the given sampling rate and multiplier
* *
...@@ -197,7 +198,7 @@ int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier) ...@@ -197,7 +198,7 @@ int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier)
if ((brg < QE_BRG1) || (brg > QE_BRG16)) if ((brg < QE_BRG1) || (brg > QE_BRG16))
return -EINVAL; return -EINVAL;
divisor = get_brg_clk() / (rate * multiplier); divisor = qe_get_brg_clk() / (rate * multiplier);
if (divisor > QE_BRGC_DIVISOR_MAX + 1) { if (divisor > QE_BRGC_DIVISOR_MAX + 1) {
div16 = QE_BRGC_DIV16; div16 = QE_BRGC_DIV16;
...@@ -415,12 +416,6 @@ void qe_muram_dump(void) ...@@ -415,12 +416,6 @@ void qe_muram_dump(void)
} }
EXPORT_SYMBOL(qe_muram_dump); EXPORT_SYMBOL(qe_muram_dump);
void *qe_muram_addr(unsigned long offset)
{
return (void *)&qe_immr->muram[offset];
}
EXPORT_SYMBOL(qe_muram_addr);
/* The maximum number of RISCs we support */ /* The maximum number of RISCs we support */
#define MAX_QE_RISC 2 #define MAX_QE_RISC 2
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <linux/ioport.h> #include <linux/ioport.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/qe.h>
#include <asm/prom.h> #include <asm/prom.h>
#include <sysdev/fsl_soc.h> #include <sysdev/fsl_soc.h>
...@@ -41,7 +42,7 @@ struct port_regs { ...@@ -41,7 +42,7 @@ struct port_regs {
#endif #endif
}; };
static struct port_regs *par_io = NULL; static struct port_regs __iomem *par_io;
static int num_par_io_ports = 0; static int num_par_io_ports = 0;
int par_io_init(struct device_node *np) int par_io_init(struct device_node *np)
...@@ -165,7 +166,7 @@ int par_io_of_config(struct device_node *np) ...@@ -165,7 +166,7 @@ int par_io_of_config(struct device_node *np)
} }
ph = of_get_property(np, "pio-handle", NULL); ph = of_get_property(np, "pio-handle", NULL);
if (ph == 0) { if (ph == NULL) {
printk(KERN_ERR "pio-handle not available \n"); printk(KERN_ERR "pio-handle not available \n");
return -1; return -1;
} }
......
...@@ -36,207 +36,12 @@ ...@@ -36,207 +36,12 @@
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/fsl_lbc.h>
#define MAX_BANKS 8 #define MAX_BANKS 8
#define ERR_BYTE 0xFF /* Value returned for read bytes when read failed */ #define ERR_BYTE 0xFF /* Value returned for read bytes when read failed */
#define FCM_TIMEOUT_MSECS 500 /* Maximum number of mSecs to wait for FCM */ #define FCM_TIMEOUT_MSECS 500 /* Maximum number of mSecs to wait for FCM */
struct elbc_bank {
__be32 br; /**< Base Register */
#define BR_BA 0xFFFF8000
#define BR_BA_SHIFT 15
#define BR_PS 0x00001800
#define BR_PS_SHIFT 11
#define BR_PS_8 0x00000800 /* Port Size 8 bit */
#define BR_PS_16 0x00001000 /* Port Size 16 bit */
#define BR_PS_32 0x00001800 /* Port Size 32 bit */
#define BR_DECC 0x00000600
#define BR_DECC_SHIFT 9
#define BR_DECC_OFF 0x00000000 /* HW ECC checking and generation off */
#define BR_DECC_CHK 0x00000200 /* HW ECC checking on, generation off */
#define BR_DECC_CHK_GEN 0x00000400 /* HW ECC checking and generation on */
#define BR_WP 0x00000100
#define BR_WP_SHIFT 8
#define BR_MSEL 0x000000E0
#define BR_MSEL_SHIFT 5
#define BR_MS_GPCM 0x00000000 /* GPCM */
#define BR_MS_FCM 0x00000020 /* FCM */
#define BR_MS_SDRAM 0x00000060 /* SDRAM */
#define BR_MS_UPMA 0x00000080 /* UPMA */
#define BR_MS_UPMB 0x000000A0 /* UPMB */
#define BR_MS_UPMC 0x000000C0 /* UPMC */
#define BR_V 0x00000001
#define BR_V_SHIFT 0
#define BR_RES ~(BR_BA|BR_PS|BR_DECC|BR_WP|BR_MSEL|BR_V)
__be32 or; /**< Base Register */
#define OR0 0x5004
#define OR1 0x500C
#define OR2 0x5014
#define OR3 0x501C
#define OR4 0x5024
#define OR5 0x502C
#define OR6 0x5034
#define OR7 0x503C
#define OR_FCM_AM 0xFFFF8000
#define OR_FCM_AM_SHIFT 15
#define OR_FCM_BCTLD 0x00001000
#define OR_FCM_BCTLD_SHIFT 12
#define OR_FCM_PGS 0x00000400
#define OR_FCM_PGS_SHIFT 10
#define OR_FCM_CSCT 0x00000200
#define OR_FCM_CSCT_SHIFT 9
#define OR_FCM_CST 0x00000100
#define OR_FCM_CST_SHIFT 8
#define OR_FCM_CHT 0x00000080
#define OR_FCM_CHT_SHIFT 7
#define OR_FCM_SCY 0x00000070
#define OR_FCM_SCY_SHIFT 4
#define OR_FCM_SCY_1 0x00000010
#define OR_FCM_SCY_2 0x00000020
#define OR_FCM_SCY_3 0x00000030
#define OR_FCM_SCY_4 0x00000040
#define OR_FCM_SCY_5 0x00000050
#define OR_FCM_SCY_6 0x00000060
#define OR_FCM_SCY_7 0x00000070
#define OR_FCM_RST 0x00000008
#define OR_FCM_RST_SHIFT 3
#define OR_FCM_TRLX 0x00000004
#define OR_FCM_TRLX_SHIFT 2
#define OR_FCM_EHTR 0x00000002
#define OR_FCM_EHTR_SHIFT 1
};
struct elbc_regs {
struct elbc_bank bank[8];
u8 res0[0x28];
__be32 mar; /**< UPM Address Register */
u8 res1[0x4];
__be32 mamr; /**< UPMA Mode Register */
__be32 mbmr; /**< UPMB Mode Register */
__be32 mcmr; /**< UPMC Mode Register */
u8 res2[0x8];
__be32 mrtpr; /**< Memory Refresh Timer Prescaler Register */
__be32 mdr; /**< UPM Data Register */
u8 res3[0x4];
__be32 lsor; /**< Special Operation Initiation Register */
__be32 lsdmr; /**< SDRAM Mode Register */
u8 res4[0x8];
__be32 lurt; /**< UPM Refresh Timer */
__be32 lsrt; /**< SDRAM Refresh Timer */
u8 res5[0x8];
__be32 ltesr; /**< Transfer Error Status Register */
#define LTESR_BM 0x80000000
#define LTESR_FCT 0x40000000
#define LTESR_PAR 0x20000000
#define LTESR_WP 0x04000000
#define LTESR_ATMW 0x00800000
#define LTESR_ATMR 0x00400000
#define LTESR_CS 0x00080000
#define LTESR_CC 0x00000001
#define LTESR_NAND_MASK (LTESR_FCT | LTESR_PAR | LTESR_CC)
__be32 ltedr; /**< Transfer Error Disable Register */
__be32 lteir; /**< Transfer Error Interrupt Register */
__be32 lteatr; /**< Transfer Error Attributes Register */
__be32 ltear; /**< Transfer Error Address Register */
u8 res6[0xC];
__be32 lbcr; /**< Configuration Register */
#define LBCR_LDIS 0x80000000
#define LBCR_LDIS_SHIFT 31
#define LBCR_BCTLC 0x00C00000
#define LBCR_BCTLC_SHIFT 22
#define LBCR_AHD 0x00200000
#define LBCR_LPBSE 0x00020000
#define LBCR_LPBSE_SHIFT 17
#define LBCR_EPAR 0x00010000
#define LBCR_EPAR_SHIFT 16
#define LBCR_BMT 0x0000FF00
#define LBCR_BMT_SHIFT 8
#define LBCR_INIT 0x00040000
__be32 lcrr; /**< Clock Ratio Register */
#define LCRR_DBYP 0x80000000
#define LCRR_DBYP_SHIFT 31
#define LCRR_BUFCMDC 0x30000000
#define LCRR_BUFCMDC_SHIFT 28
#define LCRR_ECL 0x03000000
#define LCRR_ECL_SHIFT 24
#define LCRR_EADC 0x00030000
#define LCRR_EADC_SHIFT 16
#define LCRR_CLKDIV 0x0000000F
#define LCRR_CLKDIV_SHIFT 0
u8 res7[0x8];
__be32 fmr; /**< Flash Mode Register */
#define FMR_CWTO 0x0000F000
#define FMR_CWTO_SHIFT 12
#define FMR_BOOT 0x00000800
#define FMR_ECCM 0x00000100
#define FMR_AL 0x00000030
#define FMR_AL_SHIFT 4
#define FMR_OP 0x00000003
#define FMR_OP_SHIFT 0
__be32 fir; /**< Flash Instruction Register */
#define FIR_OP0 0xF0000000
#define FIR_OP0_SHIFT 28
#define FIR_OP1 0x0F000000
#define FIR_OP1_SHIFT 24
#define FIR_OP2 0x00F00000
#define FIR_OP2_SHIFT 20
#define FIR_OP3 0x000F0000
#define FIR_OP3_SHIFT 16
#define FIR_OP4 0x0000F000
#define FIR_OP4_SHIFT 12
#define FIR_OP5 0x00000F00
#define FIR_OP5_SHIFT 8
#define FIR_OP6 0x000000F0
#define FIR_OP6_SHIFT 4
#define FIR_OP7 0x0000000F
#define FIR_OP7_SHIFT 0
#define FIR_OP_NOP 0x0 /* No operation and end of sequence */
#define FIR_OP_CA 0x1 /* Issue current column address */
#define FIR_OP_PA 0x2 /* Issue current block+page address */
#define FIR_OP_UA 0x3 /* Issue user defined address */
#define FIR_OP_CM0 0x4 /* Issue command from FCR[CMD0] */
#define FIR_OP_CM1 0x5 /* Issue command from FCR[CMD1] */
#define FIR_OP_CM2 0x6 /* Issue command from FCR[CMD2] */
#define FIR_OP_CM3 0x7 /* Issue command from FCR[CMD3] */
#define FIR_OP_WB 0x8 /* Write FBCR bytes from FCM buffer */
#define FIR_OP_WS 0x9 /* Write 1 or 2 bytes from MDR[AS] */
#define FIR_OP_RB 0xA /* Read FBCR bytes to FCM buffer */
#define FIR_OP_RS 0xB /* Read 1 or 2 bytes to MDR[AS] */
#define FIR_OP_CW0 0xC /* Wait then issue FCR[CMD0] */
#define FIR_OP_CW1 0xD /* Wait then issue FCR[CMD1] */
#define FIR_OP_RBW 0xE /* Wait then read FBCR bytes */
#define FIR_OP_RSW 0xE /* Wait then read 1 or 2 bytes */
__be32 fcr; /**< Flash Command Register */
#define FCR_CMD0 0xFF000000
#define FCR_CMD0_SHIFT 24
#define FCR_CMD1 0x00FF0000
#define FCR_CMD1_SHIFT 16
#define FCR_CMD2 0x0000FF00
#define FCR_CMD2_SHIFT 8
#define FCR_CMD3 0x000000FF
#define FCR_CMD3_SHIFT 0
__be32 fbar; /**< Flash Block Address Register */
#define FBAR_BLK 0x00FFFFFF
__be32 fpar; /**< Flash Page Address Register */
#define FPAR_SP_PI 0x00007C00
#define FPAR_SP_PI_SHIFT 10
#define FPAR_SP_MS 0x00000200
#define FPAR_SP_CI 0x000001FF
#define FPAR_SP_CI_SHIFT 0
#define FPAR_LP_PI 0x0003F000
#define FPAR_LP_PI_SHIFT 12
#define FPAR_LP_MS 0x00000800
#define FPAR_LP_CI 0x000007FF
#define FPAR_LP_CI_SHIFT 0
__be32 fbcr; /**< Flash Byte Count Register */
#define FBCR_BC 0x00000FFF
u8 res11[0x8];
u8 res8[0xF00];
};
struct fsl_elbc_ctrl; struct fsl_elbc_ctrl;
/* mtd information per set */ /* mtd information per set */
...@@ -261,7 +66,7 @@ struct fsl_elbc_ctrl { ...@@ -261,7 +66,7 @@ struct fsl_elbc_ctrl {
/* device info */ /* device info */
struct device *dev; struct device *dev;
struct elbc_regs __iomem *regs; struct fsl_lbc_regs __iomem *regs;
int irq; int irq;
wait_queue_head_t irq_wait; wait_queue_head_t irq_wait;
unsigned int irq_status; /* status read from LTESR by irq handler */ unsigned int irq_status; /* status read from LTESR by irq handler */
...@@ -322,7 +127,7 @@ static void set_addr(struct mtd_info *mtd, int column, int page_addr, int oob) ...@@ -322,7 +127,7 @@ static void set_addr(struct mtd_info *mtd, int column, int page_addr, int oob)
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv; struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl; struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
int buf_num; int buf_num;
ctrl->page = page_addr; ctrl->page = page_addr;
...@@ -363,7 +168,7 @@ static int fsl_elbc_run_command(struct mtd_info *mtd) ...@@ -363,7 +168,7 @@ static int fsl_elbc_run_command(struct mtd_info *mtd)
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv; struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl; struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
/* Setup the FMR[OP] to execute without write protection */ /* Setup the FMR[OP] to execute without write protection */
out_be32(&lbc->fmr, priv->fmr | 3); out_be32(&lbc->fmr, priv->fmr | 3);
...@@ -406,7 +211,7 @@ static void fsl_elbc_do_read(struct nand_chip *chip, int oob) ...@@ -406,7 +211,7 @@ static void fsl_elbc_do_read(struct nand_chip *chip, int oob)
{ {
struct fsl_elbc_mtd *priv = chip->priv; struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl; struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
if (priv->page_size) { if (priv->page_size) {
out_be32(&lbc->fir, out_be32(&lbc->fir,
...@@ -439,7 +244,7 @@ static void fsl_elbc_cmdfunc(struct mtd_info *mtd, unsigned int command, ...@@ -439,7 +244,7 @@ static void fsl_elbc_cmdfunc(struct mtd_info *mtd, unsigned int command,
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv; struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl; struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
ctrl->use_mdr = 0; ctrl->use_mdr = 0;
...@@ -775,7 +580,7 @@ static int fsl_elbc_wait(struct mtd_info *mtd, struct nand_chip *chip) ...@@ -775,7 +580,7 @@ static int fsl_elbc_wait(struct mtd_info *mtd, struct nand_chip *chip)
{ {
struct fsl_elbc_mtd *priv = chip->priv; struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl; struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
if (ctrl->status != LTESR_CC) if (ctrl->status != LTESR_CC)
return NAND_STATUS_FAIL; return NAND_STATUS_FAIL;
...@@ -807,7 +612,7 @@ static int fsl_elbc_chip_init_tail(struct mtd_info *mtd) ...@@ -807,7 +612,7 @@ static int fsl_elbc_chip_init_tail(struct mtd_info *mtd)
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv; struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl; struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
unsigned int al; unsigned int al;
/* calculate FMR Address Length field */ /* calculate FMR Address Length field */
...@@ -922,7 +727,7 @@ static void fsl_elbc_write_page(struct mtd_info *mtd, ...@@ -922,7 +727,7 @@ static void fsl_elbc_write_page(struct mtd_info *mtd,
static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv) static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv)
{ {
struct fsl_elbc_ctrl *ctrl = priv->ctrl; struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
struct nand_chip *chip = &priv->chip; struct nand_chip *chip = &priv->chip;
dev_dbg(priv->dev, "eLBC Set Information for bank %d\n", priv->bank); dev_dbg(priv->dev, "eLBC Set Information for bank %d\n", priv->bank);
...@@ -986,7 +791,7 @@ static int fsl_elbc_chip_remove(struct fsl_elbc_mtd *priv) ...@@ -986,7 +791,7 @@ static int fsl_elbc_chip_remove(struct fsl_elbc_mtd *priv)
static int fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl, static int fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl,
struct device_node *node) struct device_node *node)
{ {
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
struct fsl_elbc_mtd *priv; struct fsl_elbc_mtd *priv;
struct resource res; struct resource res;
#ifdef CONFIG_MTD_PARTITIONS #ifdef CONFIG_MTD_PARTITIONS
...@@ -1083,7 +888,7 @@ static int fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl, ...@@ -1083,7 +888,7 @@ static int fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl,
static int __devinit fsl_elbc_ctrl_init(struct fsl_elbc_ctrl *ctrl) static int __devinit fsl_elbc_ctrl_init(struct fsl_elbc_ctrl *ctrl)
{ {
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
/* clear event registers */ /* clear event registers */
setbits32(&lbc->ltesr, LTESR_NAND_MASK); setbits32(&lbc->ltesr, LTESR_NAND_MASK);
...@@ -1128,7 +933,7 @@ static int __devexit fsl_elbc_ctrl_remove(struct of_device *ofdev) ...@@ -1128,7 +933,7 @@ static int __devexit fsl_elbc_ctrl_remove(struct of_device *ofdev)
static irqreturn_t fsl_elbc_ctrl_irq(int irqno, void *data) static irqreturn_t fsl_elbc_ctrl_irq(int irqno, void *data)
{ {
struct fsl_elbc_ctrl *ctrl = data; struct fsl_elbc_ctrl *ctrl = data;
struct elbc_regs __iomem *lbc = ctrl->regs; struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
__be32 status = in_be32(&lbc->ltesr) & LTESR_NAND_MASK; __be32 status = in_be32(&lbc->ltesr) & LTESR_NAND_MASK;
if (status) { if (status) {
......
...@@ -3852,7 +3852,13 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma ...@@ -3852,7 +3852,13 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma
ugeth_vdbg("%s: IN", __FUNCTION__); ugeth_vdbg("%s: IN", __FUNCTION__);
prop = of_get_property(np, "device-id", NULL); prop = of_get_property(np, "cell-index", NULL);
if (!prop) {
prop = of_get_property(np, "device-id", NULL);
if (!prop)
return -ENODEV;
}
ucc_num = *prop - 1; ucc_num = *prop - 1;
if ((ucc_num < 0) || (ucc_num > 7)) if ((ucc_num < 0) || (ucc_num > 7))
return -ENODEV; return -ENODEV;
......
...@@ -203,9 +203,14 @@ static int uec_mdio_probe(struct of_device *ofdev, const struct of_device_id *ma ...@@ -203,9 +203,14 @@ static int uec_mdio_probe(struct of_device *ofdev, const struct of_device_id *ma
if ((res.start >= tempres.start) && if ((res.start >= tempres.start) &&
(res.end <= tempres.end)) { (res.end <= tempres.end)) {
/* set this UCC to be the MII master */ /* set this UCC to be the MII master */
const u32 *id = of_get_property(tempnp, "device-id", NULL); const u32 *id;
if (id == NULL)
goto bus_register_fail; id = of_get_property(tempnp, "cell-index", NULL);
if (!id) {
id = of_get_property(tempnp, "device-id", NULL);
if (!id)
goto bus_register_fail;
}
ucc_set_qe_mux_mii_mng(*id - 1); ucc_set_qe_mux_mii_mng(*id - 1);
......
...@@ -92,6 +92,9 @@ extern struct uart_cpm_port cpm_uart_ports[UART_NR]; ...@@ -92,6 +92,9 @@ extern struct uart_cpm_port cpm_uart_ports[UART_NR];
/* these are located in their respective files */ /* these are located in their respective files */
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd); void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd);
void __iomem *cpm_uart_map_pram(struct uart_cpm_port *port,
struct device_node *np);
void cpm_uart_unmap_pram(struct uart_cpm_port *port, void __iomem *pram);
int cpm_uart_init_portdesc(void); int cpm_uart_init_portdesc(void);
int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con); int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con);
void cpm_uart_freebuf(struct uart_cpm_port *pinfo); void cpm_uart_freebuf(struct uart_cpm_port *pinfo);
......
...@@ -966,24 +966,23 @@ static int cpm_uart_init_port(struct device_node *np, ...@@ -966,24 +966,23 @@ static int cpm_uart_init_port(struct device_node *np,
if (!mem) if (!mem)
return -ENOMEM; return -ENOMEM;
pram = of_iomap(np, 1);
if (!pram) {
ret = -ENOMEM;
goto out_mem;
}
if (of_device_is_compatible(np, "fsl,cpm1-scc-uart") || if (of_device_is_compatible(np, "fsl,cpm1-scc-uart") ||
of_device_is_compatible(np, "fsl,cpm2-scc-uart")) { of_device_is_compatible(np, "fsl,cpm2-scc-uart")) {
pinfo->sccp = mem; pinfo->sccp = mem;
pinfo->sccup = pram; pinfo->sccup = pram = cpm_uart_map_pram(pinfo, np);
} else if (of_device_is_compatible(np, "fsl,cpm1-smc-uart") || } else if (of_device_is_compatible(np, "fsl,cpm1-smc-uart") ||
of_device_is_compatible(np, "fsl,cpm2-smc-uart")) { of_device_is_compatible(np, "fsl,cpm2-smc-uart")) {
pinfo->flags |= FLAG_SMC; pinfo->flags |= FLAG_SMC;
pinfo->smcp = mem; pinfo->smcp = mem;
pinfo->smcup = pram; pinfo->smcup = pram = cpm_uart_map_pram(pinfo, np);
} else { } else {
ret = -ENODEV; ret = -ENODEV;
goto out_pram; goto out_mem;
}
if (!pram) {
ret = -ENOMEM;
goto out_mem;
} }
pinfo->tx_nrfifos = TX_NUM_FIFO; pinfo->tx_nrfifos = TX_NUM_FIFO;
...@@ -1007,7 +1006,7 @@ static int cpm_uart_init_port(struct device_node *np, ...@@ -1007,7 +1006,7 @@ static int cpm_uart_init_port(struct device_node *np,
return cpm_uart_request_port(&pinfo->port); return cpm_uart_request_port(&pinfo->port);
out_pram: out_pram:
iounmap(pram); cpm_uart_unmap_pram(pinfo, pram);
out_mem: out_mem:
iounmap(mem); iounmap(mem);
return ret; return ret;
......
...@@ -45,6 +45,8 @@ ...@@ -45,6 +45,8 @@
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/of.h>
#include "cpm_uart.h" #include "cpm_uart.h"
/**************************************************************/ /**************************************************************/
...@@ -54,6 +56,18 @@ void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) ...@@ -54,6 +56,18 @@ void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd)
{ {
cpm_command(port->command, cmd); cpm_command(port->command, cmd);
} }
void __iomem *cpm_uart_map_pram(struct uart_cpm_port *port,
struct device_node *np)
{
return of_iomap(np, 1);
}
void cpm_uart_unmap_pram(struct uart_cpm_port *port, void __iomem *pram)
{
iounmap(pram);
}
#else #else
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd)
{ {
......
...@@ -41,6 +41,9 @@ ...@@ -41,6 +41,9 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/fs_pd.h> #include <asm/fs_pd.h>
#ifdef CONFIG_PPC_CPM_NEW_BINDING
#include <asm/prom.h>
#endif
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/kernel.h> #include <linux/kernel.h>
...@@ -54,6 +57,55 @@ void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) ...@@ -54,6 +57,55 @@ void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd)
{ {
cpm_command(port->command, cmd); cpm_command(port->command, cmd);
} }
void __iomem *cpm_uart_map_pram(struct uart_cpm_port *port,
struct device_node *np)
{
void __iomem *pram;
unsigned long offset;
struct resource res;
unsigned long len;
/* Don't remap parameter RAM if it has already been initialized
* during console setup.
*/
if (IS_SMC(port) && port->smcup)
return port->smcup;
else if (!IS_SMC(port) && port->sccup)
return port->sccup;
if (of_address_to_resource(np, 1, &res))
return NULL;
len = 1 + res.end - res.start;
pram = ioremap(res.start, len);
if (!pram)
return NULL;
if (!IS_SMC(port))
return pram;
if (len != 2) {
printk(KERN_WARNING "cpm_uart[%d]: device tree references "
"SMC pram, using boot loader/wrapper pram mapping. "
"Please fix your device tree to reference the pram "
"base register instead.\n",
port->port.line);
return pram;
}
offset = cpm_dpalloc(PROFF_SMC_SIZE, 64);
out_be16(pram, offset);
iounmap(pram);
return cpm_muram_addr(offset);
}
void cpm_uart_unmap_pram(struct uart_cpm_port *port, void __iomem *pram)
{
if (!IS_SMC(port))
iounmap(pram);
}
#else #else
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd)
{ {
......
...@@ -1270,10 +1270,18 @@ static int ucc_uart_probe(struct of_device *ofdev, ...@@ -1270,10 +1270,18 @@ static int ucc_uart_probe(struct of_device *ofdev,
/* Get the UCC number (device ID) */ /* Get the UCC number (device ID) */
/* UCCs are numbered 1-7 */ /* UCCs are numbered 1-7 */
iprop = of_get_property(np, "device-id", NULL); iprop = of_get_property(np, "cell-index", NULL);
if (!iprop || (*iprop < 1) || (*iprop > UCC_MAX_NUM)) { if (!iprop) {
dev_err(&ofdev->dev, iprop = of_get_property(np, "device-id", NULL);
"missing or invalid UCC specified in device tree\n"); if (!iprop) {
dev_err(&ofdev->dev, "UCC is unspecified in "
"device tree\n");
return -EINVAL;
}
}
if ((*iprop < 1) || (*iprop > UCC_MAX_NUM)) {
dev_err(&ofdev->dev, "no support for UCC%u\n", *iprop);
kfree(qe_port); kfree(qe_port);
return -ENODEV; return -ENODEV;
} }
......
...@@ -4,6 +4,20 @@ ...@@ -4,6 +4,20 @@
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/types.h> #include <linux/types.h>
/* Opcodes common to CPM1 and CPM2
*/
#define CPM_CR_INIT_TRX ((ushort)0x0000)
#define CPM_CR_INIT_RX ((ushort)0x0001)
#define CPM_CR_INIT_TX ((ushort)0x0002)
#define CPM_CR_HUNT_MODE ((ushort)0x0003)
#define CPM_CR_STOP_TX ((ushort)0x0004)
#define CPM_CR_GRA_STOP_TX ((ushort)0x0005)
#define CPM_CR_RESTART_TX ((ushort)0x0006)
#define CPM_CR_CLOSE_RX_BD ((ushort)0x0007)
#define CPM_CR_SET_GADDR ((ushort)0x0008)
#define CPM_CR_SET_TIMER ((ushort)0x0008)
#define CPM_CR_STOP_IDMA ((ushort)0x000b)
/* Buffer descriptors used by many of the CPM protocols. */ /* Buffer descriptors used by many of the CPM protocols. */
typedef struct cpm_buf_desc { typedef struct cpm_buf_desc {
ushort cbd_sc; /* Status and Control */ ushort cbd_sc; /* Status and Control */
......
...@@ -28,19 +28,6 @@ ...@@ -28,19 +28,6 @@
#define CPM_CR_CHAN ((ushort)0x00f0) #define CPM_CR_CHAN ((ushort)0x00f0)
#define CPM_CR_FLG ((ushort)0x0001) #define CPM_CR_FLG ((ushort)0x0001)
/* Some commands (there are more...later)
*/
#define CPM_CR_INIT_TRX ((ushort)0x0000)
#define CPM_CR_INIT_RX ((ushort)0x0001)
#define CPM_CR_INIT_TX ((ushort)0x0002)
#define CPM_CR_HUNT_MODE ((ushort)0x0003)
#define CPM_CR_STOP_TX ((ushort)0x0004)
#define CPM_CR_GRA_STOP_TX ((ushort)0x0005)
#define CPM_CR_RESTART_TX ((ushort)0x0006)
#define CPM_CR_CLOSE_RX_BD ((ushort)0x0007)
#define CPM_CR_SET_GADDR ((ushort)0x0008)
#define CPM_CR_SET_TIMER CPM_CR_SET_GADDR
/* Channel numbers. /* Channel numbers.
*/ */
#define CPM_CR_CH_SCC1 ((ushort)0x0000) #define CPM_CR_CH_SCC1 ((ushort)0x0000)
......
...@@ -71,18 +71,9 @@ ...@@ -71,18 +71,9 @@
#define CPM_CR_FCC_PAGE(x) (x + 0x04) #define CPM_CR_FCC_PAGE(x) (x + 0x04)
/* Some opcodes (there are more...later) /* CPM2-specific opcodes (see cpm.h for common opcodes)
*/ */
#define CPM_CR_INIT_TRX ((ushort)0x0000)
#define CPM_CR_INIT_RX ((ushort)0x0001)
#define CPM_CR_INIT_TX ((ushort)0x0002)
#define CPM_CR_HUNT_MODE ((ushort)0x0003)
#define CPM_CR_STOP_TX ((ushort)0x0004)
#define CPM_CR_GRA_STOP_TX ((ushort)0x0005)
#define CPM_CR_RESTART_TX ((ushort)0x0006)
#define CPM_CR_SET_GADDR ((ushort)0x0008)
#define CPM_CR_START_IDMA ((ushort)0x0009) #define CPM_CR_START_IDMA ((ushort)0x0009)
#define CPM_CR_STOP_IDMA ((ushort)0x000b)
#define mk_cr_cmd(PG, SBC, MCN, OP) \ #define mk_cr_cmd(PG, SBC, MCN, OP) \
((PG << 26) | (SBC << 21) | (MCN << 6) | OP) ((PG << 26) | (SBC << 21) | (MCN << 6) | OP)
......
/* Freescale Local Bus Controller
*
* Copyright (c) 2006-2007 Freescale Semiconductor
*
* Authors: Nick Spence <nick.spence@freescale.com>,
* Scott Wood <scottwood@freescale.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __ASM_FSL_LBC_H
#define __ASM_FSL_LBC_H
#include <linux/types.h>
#include <linux/spinlock.h>
#include <asm/io.h>
struct fsl_lbc_bank {
__be32 br; /**< Base Register */
#define BR_BA 0xFFFF8000
#define BR_BA_SHIFT 15
#define BR_PS 0x00001800
#define BR_PS_SHIFT 11
#define BR_PS_8 0x00000800 /* Port Size 8 bit */
#define BR_PS_16 0x00001000 /* Port Size 16 bit */
#define BR_PS_32 0x00001800 /* Port Size 32 bit */
#define BR_DECC 0x00000600
#define BR_DECC_SHIFT 9
#define BR_DECC_OFF 0x00000000 /* HW ECC checking and generation off */
#define BR_DECC_CHK 0x00000200 /* HW ECC checking on, generation off */
#define BR_DECC_CHK_GEN 0x00000400 /* HW ECC checking and generation on */
#define BR_WP 0x00000100
#define BR_WP_SHIFT 8
#define BR_MSEL 0x000000E0
#define BR_MSEL_SHIFT 5
#define BR_MS_GPCM 0x00000000 /* GPCM */
#define BR_MS_FCM 0x00000020 /* FCM */
#define BR_MS_SDRAM 0x00000060 /* SDRAM */
#define BR_MS_UPMA 0x00000080 /* UPMA */
#define BR_MS_UPMB 0x000000A0 /* UPMB */
#define BR_MS_UPMC 0x000000C0 /* UPMC */
#define BR_V 0x00000001
#define BR_V_SHIFT 0
#define BR_RES ~(BR_BA|BR_PS|BR_DECC|BR_WP|BR_MSEL|BR_V)
__be32 or; /**< Base Register */
#define OR0 0x5004
#define OR1 0x500C
#define OR2 0x5014
#define OR3 0x501C
#define OR4 0x5024
#define OR5 0x502C
#define OR6 0x5034
#define OR7 0x503C
#define OR_FCM_AM 0xFFFF8000
#define OR_FCM_AM_SHIFT 15
#define OR_FCM_BCTLD 0x00001000
#define OR_FCM_BCTLD_SHIFT 12
#define OR_FCM_PGS 0x00000400
#define OR_FCM_PGS_SHIFT 10
#define OR_FCM_CSCT 0x00000200
#define OR_FCM_CSCT_SHIFT 9
#define OR_FCM_CST 0x00000100
#define OR_FCM_CST_SHIFT 8
#define OR_FCM_CHT 0x00000080
#define OR_FCM_CHT_SHIFT 7
#define OR_FCM_SCY 0x00000070
#define OR_FCM_SCY_SHIFT 4
#define OR_FCM_SCY_1 0x00000010
#define OR_FCM_SCY_2 0x00000020
#define OR_FCM_SCY_3 0x00000030
#define OR_FCM_SCY_4 0x00000040
#define OR_FCM_SCY_5 0x00000050
#define OR_FCM_SCY_6 0x00000060
#define OR_FCM_SCY_7 0x00000070
#define OR_FCM_RST 0x00000008
#define OR_FCM_RST_SHIFT 3
#define OR_FCM_TRLX 0x00000004
#define OR_FCM_TRLX_SHIFT 2
#define OR_FCM_EHTR 0x00000002
#define OR_FCM_EHTR_SHIFT 1
};
struct fsl_lbc_regs {
struct fsl_lbc_bank bank[8];
u8 res0[0x28];
__be32 mar; /**< UPM Address Register */
u8 res1[0x4];
__be32 mamr; /**< UPMA Mode Register */
#define MxMR_OP_NO (0 << 28) /**< normal operation */
#define MxMR_OP_WA (1 << 28) /**< write array */
#define MxMR_OP_RA (2 << 28) /**< read array */
#define MxMR_OP_RP (3 << 28) /**< run pattern */
#define MxMR_MAD 0x3f /**< machine address */
__be32 mbmr; /**< UPMB Mode Register */
__be32 mcmr; /**< UPMC Mode Register */
u8 res2[0x8];
__be32 mrtpr; /**< Memory Refresh Timer Prescaler Register */
__be32 mdr; /**< UPM Data Register */
u8 res3[0x4];
__be32 lsor; /**< Special Operation Initiation Register */
__be32 lsdmr; /**< SDRAM Mode Register */
u8 res4[0x8];
__be32 lurt; /**< UPM Refresh Timer */
__be32 lsrt; /**< SDRAM Refresh Timer */
u8 res5[0x8];
__be32 ltesr; /**< Transfer Error Status Register */
#define LTESR_BM 0x80000000
#define LTESR_FCT 0x40000000
#define LTESR_PAR 0x20000000
#define LTESR_WP 0x04000000
#define LTESR_ATMW 0x00800000
#define LTESR_ATMR 0x00400000
#define LTESR_CS 0x00080000
#define LTESR_CC 0x00000001
#define LTESR_NAND_MASK (LTESR_FCT | LTESR_PAR | LTESR_CC)
__be32 ltedr; /**< Transfer Error Disable Register */
__be32 lteir; /**< Transfer Error Interrupt Register */
__be32 lteatr; /**< Transfer Error Attributes Register */
__be32 ltear; /**< Transfer Error Address Register */
u8 res6[0xC];
__be32 lbcr; /**< Configuration Register */
#define LBCR_LDIS 0x80000000
#define LBCR_LDIS_SHIFT 31
#define LBCR_BCTLC 0x00C00000
#define LBCR_BCTLC_SHIFT 22
#define LBCR_AHD 0x00200000
#define LBCR_LPBSE 0x00020000
#define LBCR_LPBSE_SHIFT 17
#define LBCR_EPAR 0x00010000
#define LBCR_EPAR_SHIFT 16
#define LBCR_BMT 0x0000FF00
#define LBCR_BMT_SHIFT 8
#define LBCR_INIT 0x00040000
__be32 lcrr; /**< Clock Ratio Register */
#define LCRR_DBYP 0x80000000
#define LCRR_DBYP_SHIFT 31
#define LCRR_BUFCMDC 0x30000000
#define LCRR_BUFCMDC_SHIFT 28
#define LCRR_ECL 0x03000000
#define LCRR_ECL_SHIFT 24
#define LCRR_EADC 0x00030000
#define LCRR_EADC_SHIFT 16
#define LCRR_CLKDIV 0x0000000F
#define LCRR_CLKDIV_SHIFT 0
u8 res7[0x8];
__be32 fmr; /**< Flash Mode Register */
#define FMR_CWTO 0x0000F000
#define FMR_CWTO_SHIFT 12
#define FMR_BOOT 0x00000800
#define FMR_ECCM 0x00000100
#define FMR_AL 0x00000030
#define FMR_AL_SHIFT 4
#define FMR_OP 0x00000003
#define FMR_OP_SHIFT 0
__be32 fir; /**< Flash Instruction Register */
#define FIR_OP0 0xF0000000
#define FIR_OP0_SHIFT 28
#define FIR_OP1 0x0F000000
#define FIR_OP1_SHIFT 24
#define FIR_OP2 0x00F00000
#define FIR_OP2_SHIFT 20
#define FIR_OP3 0x000F0000
#define FIR_OP3_SHIFT 16
#define FIR_OP4 0x0000F000
#define FIR_OP4_SHIFT 12
#define FIR_OP5 0x00000F00
#define FIR_OP5_SHIFT 8
#define FIR_OP6 0x000000F0
#define FIR_OP6_SHIFT 4
#define FIR_OP7 0x0000000F
#define FIR_OP7_SHIFT 0
#define FIR_OP_NOP 0x0 /* No operation and end of sequence */
#define FIR_OP_CA 0x1 /* Issue current column address */
#define FIR_OP_PA 0x2 /* Issue current block+page address */
#define FIR_OP_UA 0x3 /* Issue user defined address */
#define FIR_OP_CM0 0x4 /* Issue command from FCR[CMD0] */
#define FIR_OP_CM1 0x5 /* Issue command from FCR[CMD1] */
#define FIR_OP_CM2 0x6 /* Issue command from FCR[CMD2] */
#define FIR_OP_CM3 0x7 /* Issue command from FCR[CMD3] */
#define FIR_OP_WB 0x8 /* Write FBCR bytes from FCM buffer */
#define FIR_OP_WS 0x9 /* Write 1 or 2 bytes from MDR[AS] */
#define FIR_OP_RB 0xA /* Read FBCR bytes to FCM buffer */
#define FIR_OP_RS 0xB /* Read 1 or 2 bytes to MDR[AS] */
#define FIR_OP_CW0 0xC /* Wait then issue FCR[CMD0] */
#define FIR_OP_CW1 0xD /* Wait then issue FCR[CMD1] */
#define FIR_OP_RBW 0xE /* Wait then read FBCR bytes */
#define FIR_OP_RSW 0xE /* Wait then read 1 or 2 bytes */
__be32 fcr; /**< Flash Command Register */
#define FCR_CMD0 0xFF000000
#define FCR_CMD0_SHIFT 24
#define FCR_CMD1 0x00FF0000
#define FCR_CMD1_SHIFT 16
#define FCR_CMD2 0x0000FF00
#define FCR_CMD2_SHIFT 8
#define FCR_CMD3 0x000000FF
#define FCR_CMD3_SHIFT 0
__be32 fbar; /**< Flash Block Address Register */
#define FBAR_BLK 0x00FFFFFF
__be32 fpar; /**< Flash Page Address Register */
#define FPAR_SP_PI 0x00007C00
#define FPAR_SP_PI_SHIFT 10
#define FPAR_SP_MS 0x00000200
#define FPAR_SP_CI 0x000001FF
#define FPAR_SP_CI_SHIFT 0
#define FPAR_LP_PI 0x0003F000
#define FPAR_LP_PI_SHIFT 12
#define FPAR_LP_MS 0x00000800
#define FPAR_LP_CI 0x000007FF
#define FPAR_LP_CI_SHIFT 0
__be32 fbcr; /**< Flash Byte Count Register */
#define FBCR_BC 0x00000FFF
u8 res11[0x8];
u8 res8[0xF00];
};
extern struct fsl_lbc_regs __iomem *fsl_lbc_regs;
extern spinlock_t fsl_lbc_lock;
/*
* FSL UPM routines
*/
struct fsl_upm {
__be32 __iomem *mxmr;
int width;
};
extern int fsl_lbc_find(phys_addr_t addr_base);
extern int fsl_upm_find(phys_addr_t addr_base, struct fsl_upm *upm);
/**
* fsl_upm_start_pattern - start UPM patterns execution
* @upm: pointer to the fsl_upm structure obtained via fsl_upm_find
* @pat_offset: UPM pattern offset for the command to be executed
*
* This routine programmes UPM so the next memory access that hits an UPM
* will trigger pattern execution, starting at pat_offset.
*/
static inline void fsl_upm_start_pattern(struct fsl_upm *upm, u8 pat_offset)
{
clrsetbits_be32(upm->mxmr, MxMR_MAD, MxMR_OP_RP | pat_offset);
}
/**
* fsl_upm_end_pattern - end UPM patterns execution
* @upm: pointer to the fsl_upm structure obtained via fsl_upm_find
*
* This routine reverts UPM to normal operation mode.
*/
static inline void fsl_upm_end_pattern(struct fsl_upm *upm)
{
clrbits32(upm->mxmr, MxMR_OP_RP);
while (in_be32(upm->mxmr) & MxMR_OP_RP)
cpu_relax();
}
/**
* fsl_upm_run_pattern - actually run an UPM pattern
* @upm: pointer to the fsl_upm structure obtained via fsl_upm_find
* @io_base: remapped pointer to where memory access should happen
* @mar: MAR register content during pattern execution
*
* This function triggers dummy write to the memory specified by the io_base,
* thus UPM pattern actually executed. Note that mar usage depends on the
* pre-programmed AMX bits in the UPM RAM.
*/
static inline int fsl_upm_run_pattern(struct fsl_upm *upm,
void __iomem *io_base, u32 mar)
{
int ret = 0;
unsigned long flags;
spin_lock_irqsave(&fsl_lbc_lock, flags);
out_be32(&fsl_lbc_regs->mar, mar << (32 - upm->width));
switch (upm->width) {
case 8:
out_8(io_base, 0x0);
break;
case 16:
out_be16(io_base, 0x0);
break;
case 32:
out_be32(io_base, 0x0);
break;
default:
ret = -EINVAL;
break;
}
spin_unlock_irqrestore(&fsl_lbc_lock, flags);
return ret;
}
#endif /* __ASM_FSL_LBC_H */
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#ifdef __KERNEL__ #ifdef __KERNEL__
#include <linux/kernel.h> #include <linux/kernel.h>
#include <asm/io.h>
#define QE_IMMAP_SIZE (1024 * 1024) /* 1MB from 1MB+IMMR */ #define QE_IMMAP_SIZE (1024 * 1024) /* 1MB from 1MB+IMMR */
...@@ -468,7 +469,7 @@ struct qe_immap { ...@@ -468,7 +469,7 @@ struct qe_immap {
u8 res18[0xC0000]; /* 0x140000 - 0x200000 */ u8 res18[0xC0000]; /* 0x140000 - 0x200000 */
} __attribute__ ((packed)); } __attribute__ ((packed));
extern struct qe_immap *qe_immr; extern struct qe_immap __iomem *qe_immr;
extern phys_addr_t get_qe_base(void); extern phys_addr_t get_qe_base(void);
static inline unsigned long immrbar_virt_to_phys(void *address) static inline unsigned long immrbar_virt_to_phys(void *address)
......
...@@ -85,6 +85,7 @@ extern int par_io_data_set(u8 port, u8 pin, u8 val); ...@@ -85,6 +85,7 @@ extern int par_io_data_set(u8 port, u8 pin, u8 val);
/* QE internal API */ /* QE internal API */
int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input); int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input);
enum qe_clock qe_clock_source(const char *source); enum qe_clock qe_clock_source(const char *source);
unsigned int qe_get_brg_clk(void);
int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier); int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier);
int qe_get_snum(void); int qe_get_snum(void);
void qe_put_snum(u8 snum); void qe_put_snum(u8 snum);
...@@ -92,7 +93,16 @@ unsigned long qe_muram_alloc(int size, int align); ...@@ -92,7 +93,16 @@ unsigned long qe_muram_alloc(int size, int align);
int qe_muram_free(unsigned long offset); int qe_muram_free(unsigned long offset);
unsigned long qe_muram_alloc_fixed(unsigned long offset, int size); unsigned long qe_muram_alloc_fixed(unsigned long offset, int size);
void qe_muram_dump(void); void qe_muram_dump(void);
void *qe_muram_addr(unsigned long offset);
static inline void __iomem *qe_muram_addr(unsigned long offset)
{
return (void __iomem *)&qe_immr->muram[offset];
}
static inline unsigned long qe_muram_offset(void __iomem *addr)
{
return addr - (void __iomem *)qe_immr->muram;
}
/* Structure that defines QE firmware binary files. /* Structure that defines QE firmware binary files.
* *
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册