mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-27 11:55:53 +00:00
25c24f3dc7
This makes 4xx embedded platforms re-assign all PCI resources as we pretty much never care about what the various firmwares have done on these, it's generally not compatible with the way the kernel will map the bridges. We still need to also enable bus renumbering on some of them, but I will do that from a separate patch after I've fixed 4xx PCIe to handle all bus numbers. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
77 lines
1.8 KiB
C
77 lines
1.8 KiB
C
/*
|
|
* Taishan board specific routines based off ebony.c code
|
|
* original copyrights below
|
|
*
|
|
* Matt Porter <mporter@kernel.crashing.org>
|
|
* Copyright 2002-2005 MontaVista Software Inc.
|
|
*
|
|
* Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net>
|
|
* Copyright (c) 2003-2005 Zultys Technologies
|
|
*
|
|
* Rewritten and ported to the merged powerpc tree:
|
|
* Copyright 2007 David Gibson <dwg@au1.ibm.com>, IBM Corporation.
|
|
*
|
|
* Modified from ebony.c for taishan:
|
|
* Copyright 2007 Hugh Blemings <hugh@au.ibm.com>, IBM Corporation.
|
|
*
|
|
* 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/init.h>
|
|
#include <linux/of_platform.h>
|
|
|
|
#include <asm/machdep.h>
|
|
#include <asm/prom.h>
|
|
#include <asm/udbg.h>
|
|
#include <asm/time.h>
|
|
#include <asm/uic.h>
|
|
#include <asm/pci-bridge.h>
|
|
|
|
#include "44x.h"
|
|
|
|
static struct of_device_id taishan_of_bus[] = {
|
|
{ .compatible = "ibm,plb4", },
|
|
{ .compatible = "ibm,opb", },
|
|
{ .compatible = "ibm,ebc", },
|
|
{},
|
|
};
|
|
|
|
static int __init taishan_device_probe(void)
|
|
{
|
|
if (!machine_is(taishan))
|
|
return 0;
|
|
|
|
of_platform_bus_probe(NULL, taishan_of_bus, NULL);
|
|
|
|
return 0;
|
|
}
|
|
device_initcall(taishan_device_probe);
|
|
|
|
/*
|
|
* Called very early, MMU is off, device-tree isn't unflattened
|
|
*/
|
|
static int __init taishan_probe(void)
|
|
{
|
|
unsigned long root = of_get_flat_dt_root();
|
|
|
|
if (!of_flat_dt_is_compatible(root, "amcc,taishan"))
|
|
return 0;
|
|
|
|
ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
|
|
|
|
return 1;
|
|
}
|
|
|
|
define_machine(taishan) {
|
|
.name = "Taishan",
|
|
.probe = taishan_probe,
|
|
.progress = udbg_progress,
|
|
.init_IRQ = uic_init_tree,
|
|
.get_irq = uic_get_irq,
|
|
.restart = ppc44x_reset_system,
|
|
.calibrate_decr = generic_calibrate_decr,
|
|
};
|