[POWERPC] Allow pSeries to build without CONFIG_PCI
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
committed by
Paul Mackerras
parent
be9e95b17e
commit
bed5927581
@@ -89,7 +89,7 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
|
|||||||
|
|
||||||
config ARCH_MAY_HAVE_PC_FDC
|
config ARCH_MAY_HAVE_PC_FDC
|
||||||
bool
|
bool
|
||||||
default y
|
default !PPC_PSERIES || PCI
|
||||||
|
|
||||||
config PPC_OF
|
config PPC_OF
|
||||||
def_bool y
|
def_bool y
|
||||||
@@ -1028,7 +1028,8 @@ config MCA
|
|||||||
|
|
||||||
config PCI
|
config PCI
|
||||||
bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
|
bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
|
||||||
|| PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3
|
|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
|
||||||
|
|| MPC7448HPC2 || PPC_PS3
|
||||||
default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
|
default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
|
||||||
&& !PPC_85xx && !PPC_86xx
|
&& !PPC_85xx && !PPC_86xx
|
||||||
default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
|
default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
|
||||||
|
@@ -25,8 +25,8 @@ obj-$(CONFIG_PPC_970_NAP) += idle_power4.o
|
|||||||
obj-$(CONFIG_PPC_OF) += of_device.o of_platform.o prom_parse.o
|
obj-$(CONFIG_PPC_OF) += of_device.o of_platform.o prom_parse.o
|
||||||
procfs-$(CONFIG_PPC64) := proc_ppc64.o
|
procfs-$(CONFIG_PPC64) := proc_ppc64.o
|
||||||
obj-$(CONFIG_PROC_FS) += $(procfs-y)
|
obj-$(CONFIG_PROC_FS) += $(procfs-y)
|
||||||
rtaspci-$(CONFIG_PPC64) := rtas_pci.o
|
rtaspci-$(CONFIG_PPC64)-$(CONFIG_PCI) := rtas_pci.o
|
||||||
obj-$(CONFIG_PPC_RTAS) += rtas.o rtas-rtc.o $(rtaspci-y)
|
obj-$(CONFIG_PPC_RTAS) += rtas.o rtas-rtc.o $(rtaspci-y-y)
|
||||||
obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o
|
obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o
|
||||||
obj-$(CONFIG_RTAS_PROC) += rtas-proc.o
|
obj-$(CONFIG_RTAS_PROC) += rtas-proc.o
|
||||||
obj-$(CONFIG_LPARCFG) += lparcfg.o
|
obj-$(CONFIG_LPARCFG) += lparcfg.o
|
||||||
|
@@ -2,14 +2,15 @@ ifeq ($(CONFIG_PPC64),y)
|
|||||||
EXTRA_CFLAGS += -mno-minimal-toc
|
EXTRA_CFLAGS += -mno-minimal-toc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
obj-y := pci.o lpar.o hvCall.o nvram.o reconfig.o \
|
obj-y := lpar.o hvCall.o nvram.o reconfig.o \
|
||||||
setup.o iommu.o ras.o rtasd.o pci_dlpar.o \
|
setup.o iommu.o ras.o rtasd.o \
|
||||||
firmware.o power.o
|
firmware.o power.o
|
||||||
obj-$(CONFIG_SMP) += smp.o
|
obj-$(CONFIG_SMP) += smp.o
|
||||||
obj-$(CONFIG_XICS) += xics.o
|
obj-$(CONFIG_XICS) += xics.o
|
||||||
obj-$(CONFIG_SCANLOG) += scanlog.o
|
obj-$(CONFIG_SCANLOG) += scanlog.o
|
||||||
obj-$(CONFIG_EEH) += eeh.o eeh_cache.o eeh_driver.o eeh_event.o
|
obj-$(CONFIG_EEH) += eeh.o eeh_cache.o eeh_driver.o eeh_event.o
|
||||||
obj-$(CONFIG_KEXEC) += kexec.o
|
obj-$(CONFIG_KEXEC) += kexec.o
|
||||||
|
obj-$(CONFIG_PCI) += pci.o pci_dlpar.o
|
||||||
|
|
||||||
obj-$(CONFIG_HOTPLUG_CPU) += hotplug-cpu.o
|
obj-$(CONFIG_HOTPLUG_CPU) += hotplug-cpu.o
|
||||||
|
|
||||||
|
@@ -242,6 +242,7 @@ static unsigned long tce_get_pSeriesLP(struct iommu_table *tbl, long tcenum)
|
|||||||
return tce_ret;
|
return tce_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_PCI
|
||||||
static void iommu_table_setparms(struct pci_controller *phb,
|
static void iommu_table_setparms(struct pci_controller *phb,
|
||||||
struct device_node *dn,
|
struct device_node *dn,
|
||||||
struct iommu_table *tbl)
|
struct iommu_table *tbl)
|
||||||
@@ -478,29 +479,6 @@ static void pci_dma_dev_setup_pSeries(struct pci_dev *dev)
|
|||||||
pci_name(dev));
|
pci_name(dev));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int iommu_reconfig_notifier(struct notifier_block *nb, unsigned long action, void *node)
|
|
||||||
{
|
|
||||||
int err = NOTIFY_OK;
|
|
||||||
struct device_node *np = node;
|
|
||||||
struct pci_dn *pci = PCI_DN(np);
|
|
||||||
|
|
||||||
switch (action) {
|
|
||||||
case PSERIES_RECONFIG_REMOVE:
|
|
||||||
if (pci && pci->iommu_table &&
|
|
||||||
get_property(np, "ibm,dma-window", NULL))
|
|
||||||
iommu_free_table(np);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
err = NOTIFY_DONE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct notifier_block iommu_reconfig_nb = {
|
|
||||||
.notifier_call = iommu_reconfig_notifier,
|
|
||||||
};
|
|
||||||
|
|
||||||
static void pci_dma_dev_setup_pSeriesLP(struct pci_dev *dev)
|
static void pci_dma_dev_setup_pSeriesLP(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
struct device_node *pdn, *dn;
|
struct device_node *pdn, *dn;
|
||||||
@@ -554,6 +532,35 @@ static void pci_dma_dev_setup_pSeriesLP(struct pci_dev *dev)
|
|||||||
|
|
||||||
dev->dev.archdata.dma_data = pci->iommu_table;
|
dev->dev.archdata.dma_data = pci->iommu_table;
|
||||||
}
|
}
|
||||||
|
#else /* CONFIG_PCI */
|
||||||
|
#define pci_dma_bus_setup_pSeries NULL
|
||||||
|
#define pci_dma_dev_setup_pSeries NULL
|
||||||
|
#define pci_dma_bus_setup_pSeriesLP NULL
|
||||||
|
#define pci_dma_dev_setup_pSeriesLP NULL
|
||||||
|
#endif /* !CONFIG_PCI */
|
||||||
|
|
||||||
|
static int iommu_reconfig_notifier(struct notifier_block *nb, unsigned long action, void *node)
|
||||||
|
{
|
||||||
|
int err = NOTIFY_OK;
|
||||||
|
struct device_node *np = node;
|
||||||
|
struct pci_dn *pci = PCI_DN(np);
|
||||||
|
|
||||||
|
switch (action) {
|
||||||
|
case PSERIES_RECONFIG_REMOVE:
|
||||||
|
if (pci && pci->iommu_table &&
|
||||||
|
get_property(np, "ibm,dma-window", NULL))
|
||||||
|
iommu_free_table(np);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
err = NOTIFY_DONE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct notifier_block iommu_reconfig_nb = {
|
||||||
|
.notifier_call = iommu_reconfig_notifier,
|
||||||
|
};
|
||||||
|
|
||||||
/* These are called very early. */
|
/* These are called very early. */
|
||||||
void iommu_init_early_pSeries(void)
|
void iommu_init_early_pSeries(void)
|
||||||
|
@@ -65,6 +65,7 @@
|
|||||||
#include <asm/udbg.h>
|
#include <asm/udbg.h>
|
||||||
#include <asm/smp.h>
|
#include <asm/smp.h>
|
||||||
#include <asm/firmware.h>
|
#include <asm/firmware.h>
|
||||||
|
#include <asm/eeh.h>
|
||||||
|
|
||||||
#include "plpar_wrappers.h"
|
#include "plpar_wrappers.h"
|
||||||
#include "pseries.h"
|
#include "pseries.h"
|
||||||
@@ -514,6 +515,10 @@ void pSeries_power_off(void)
|
|||||||
for (;;);
|
for (;;);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_PCI
|
||||||
|
void pSeries_final_fixup(void) { }
|
||||||
|
#endif
|
||||||
|
|
||||||
define_machine(pseries) {
|
define_machine(pseries) {
|
||||||
.name = "pSeries",
|
.name = "pSeries",
|
||||||
.probe = pSeries_probe,
|
.probe = pSeries_probe,
|
||||||
|
@@ -396,7 +396,7 @@ config FB_ATARI
|
|||||||
|
|
||||||
config FB_OF
|
config FB_OF
|
||||||
bool "Open Firmware frame buffer device support"
|
bool "Open Firmware frame buffer device support"
|
||||||
depends on (FB = y) && (PPC64 || PPC_OF)
|
depends on (FB = y) && (PPC64 || PPC_OF) && (!PPC_PSERIES || PCI)
|
||||||
select FB_CFB_FILLRECT
|
select FB_CFB_FILLRECT
|
||||||
select FB_CFB_COPYAREA
|
select FB_CFB_COPYAREA
|
||||||
select FB_CFB_IMAGEBLIT
|
select FB_CFB_IMAGEBLIT
|
||||||
|
@@ -10,6 +10,8 @@
|
|||||||
#define _ASM_POWERPC_PPC_PCI_H
|
#define _ASM_POWERPC_PPC_PCI_H
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
|
#ifdef CONFIG_PCI
|
||||||
|
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <asm/pci-bridge.h>
|
#include <asm/pci-bridge.h>
|
||||||
|
|
||||||
@@ -126,5 +128,10 @@ struct device_node * find_device_pe(struct device_node *dn);
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#else /* CONFIG_PCI */
|
||||||
|
static inline void find_and_init_phbs(void) { }
|
||||||
|
static inline void init_pci_config_tokens(void) { }
|
||||||
|
#endif /* !CONFIG_PCI */
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
#endif /* _ASM_POWERPC_PPC_PCI_H */
|
#endif /* _ASM_POWERPC_PPC_PCI_H */
|
||||||
|
Reference in New Issue
Block a user