17 #include <linux/sched.h>
18 #include <linux/kernel.h>
20 #include <linux/stddef.h>
21 #include <linux/export.h>
24 #include <linux/reboot.h>
36 #include <asm/processor.h>
38 #include <asm/pgtable.h>
41 #include <asm/pci-bridge.h>
42 #include <asm/iommu.h>
44 #include <asm/machdep.h>
46 #include <asm/nvram.h>
47 #include <asm/cputable.h>
62 #define DBG(fmt...) udbg_printf(fmt)
67 static void cell_show_cpuinfo(
struct seq_file *
m)
70 const char *
model =
"";
75 seq_printf(m,
"machine\t\t: CHRP %s\n", model);
79 static void cell_progress(
char *
s,
unsigned short hex)
81 printk(
"*** %04x : %s\n", hex, s ? s :
"");
84 static void cell_fixup_pcie_rootcomplex(
struct pci_dev *
dev)
90 if (!machine_is(cell))
97 hose = pci_bus_to_host(dev->
bus);
107 if (!s ||
strcmp(s,
"Axon") != 0)
135 if (
strcmp(model,
"Spider"))
145 { .compatible =
"soc", },
146 { .type =
"spider", },
155 static int __init cell_publish_devices(
void)
162 of_platform_bus_probe(
NULL, cell_bus_ids,
NULL);
171 of_platform_device_create(np,
NULL,
NULL);
180 platform_device_register_simple(
"cbe-mic", node,
NULL, 0);
187 static void __init mpic_init_IRQ(
void)
200 mpic =
mpic_alloc(dn, 0, MPIC_SECONDARY | MPIC_NO_RESET,
209 static void __init cell_init_irq(
void)
216 static void __init cell_set_dabrx(
void)
218 mtspr(SPRN_DABRX, DABRX_KERNEL | DABRX_USER);
221 static void __init cell_setup_arch(
void)
223 #ifdef CONFIG_SPU_BASE
232 #ifdef CONFIG_CBE_RAS
246 #ifdef CONFIG_DUMMY_CONSOLE
253 static int __init cell_probe(
void)
255 unsigned long root = of_get_flat_dt_root();
257 if (!of_flat_dt_is_compatible(root,
"IBM,CBEA") &&
258 !of_flat_dt_is_compatible(root,
"IBM,CPBW-1.0"))
269 .setup_arch = cell_setup_arch,
270 .show_cpuinfo = cell_show_cpuinfo,
278 .progress = cell_progress,
279 .init_IRQ = cell_init_irq,
280 .pci_setup_phb = cell_setup_phb,