|
|
@@ -26,11 +26,13 @@
|
|
|
#include <asm/udbg.h>
|
|
|
#include <asm/mpic.h>
|
|
|
#include <asm/ehv_pic.h>
|
|
|
+#include <asm/qe_ic.h>
|
|
|
|
|
|
#include <linux/of_platform.h>
|
|
|
#include <sysdev/fsl_soc.h>
|
|
|
#include <sysdev/fsl_pci.h>
|
|
|
#include "smp.h"
|
|
|
+#include "mpc85xx.h"
|
|
|
|
|
|
void __init corenet_gen_pic_init(void)
|
|
|
{
|
|
|
@@ -38,6 +40,8 @@ void __init corenet_gen_pic_init(void)
|
|
|
unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU |
|
|
|
MPIC_NO_RESET;
|
|
|
|
|
|
+ struct device_node *np;
|
|
|
+
|
|
|
if (ppc_md.get_irq == mpic_get_coreint_irq)
|
|
|
flags |= MPIC_ENABLE_COREINT;
|
|
|
|
|
|
@@ -45,6 +49,13 @@ void __init corenet_gen_pic_init(void)
|
|
|
BUG_ON(mpic == NULL);
|
|
|
|
|
|
mpic_init(mpic);
|
|
|
+
|
|
|
+ np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
|
|
|
+ if (np) {
|
|
|
+ qe_ic_init(np, 0, qe_ic_cascade_low_mpic,
|
|
|
+ qe_ic_cascade_high_mpic);
|
|
|
+ of_node_put(np);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
@@ -57,6 +68,8 @@ void __init corenet_gen_setup_arch(void)
|
|
|
swiotlb_detect_4g();
|
|
|
|
|
|
pr_info("%s board from Freescale Semiconductor\n", ppc_md.name);
|
|
|
+
|
|
|
+ mpc85xx_qe_init();
|
|
|
}
|
|
|
|
|
|
static const struct of_device_id of_device_ids[] = {
|
|
|
@@ -81,6 +94,9 @@ static const struct of_device_id of_device_ids[] = {
|
|
|
{
|
|
|
.compatible = "fsl,qoriq-pcie-v3.0",
|
|
|
},
|
|
|
+ {
|
|
|
+ .compatible = "fsl,qe",
|
|
|
+ },
|
|
|
/* The following two are for the Freescale hypervisor */
|
|
|
{
|
|
|
.name = "hypervisor",
|