From 45149ec24ef6dbe86f3b22e09066457e73f89686 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 26 Oct 2017 15:02:24 +0200 Subject: Fix general PowerPC build --- linux/drivers/net/ethernet/freescale/fman/fman.c | 3 ++- linux/drivers/soc/fsl/qbman/bman_ccsr.c | 9 ++++++++- linux/drivers/soc/fsl/qbman/dpaa_sys.h | 5 ++++- linux/drivers/soc/fsl/qbman/qman_ccsr.c | 3 ++- linux/drivers/soc/fsl/qbman/qman_portal.c | 7 ++++++- 5 files changed, 22 insertions(+), 5 deletions(-) (limited to 'linux') diff --git a/linux/drivers/net/ethernet/freescale/fman/fman.c b/linux/drivers/net/ethernet/freescale/fman/fman.c index 7e216f94..0b7230a9 100644 --- a/linux/drivers/net/ethernet/freescale/fman/fman.c +++ b/linux/drivers/net/ethernet/freescale/fman/fman.c @@ -51,7 +51,6 @@ #include #ifdef __rtems__ #include -#include #endif /* __rtems__ */ /* General defines */ @@ -3118,7 +3117,9 @@ fman_dev_probe_fdt(struct fman_softc *sc, int unit) sc->dn.offset = node; sc->dn.full_name = name; sc->of_dev.dev.of_node = &sc->dn; +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) sc->of_dev.dev.base = (uintptr_t)&qoriq.fman[unit]; +#endif return (BUS_PROBE_DEFAULT); } } else { diff --git a/linux/drivers/soc/fsl/qbman/bman_ccsr.c b/linux/drivers/soc/fsl/qbman/bman_ccsr.c index 9fa5a6b1..830f319f 100644 --- a/linux/drivers/soc/fsl/qbman/bman_ccsr.c +++ b/linux/drivers/soc/fsl/qbman/bman_ccsr.c @@ -285,7 +285,6 @@ builtin_platform_driver(fsl_bman_driver); #include #include #include -#include #include #include @@ -303,7 +302,9 @@ bman_sysinit(void) struct platform_device ofdev = { .dev = { .of_node = &dn, +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) .base = (uintptr_t)&qoriq +#endif } }; const char *name; @@ -313,11 +314,13 @@ bman_sysinit(void) int node; int parent; +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) qoriq_reset_qman_and_bman(); qoriq_clear_ce_portal(&qoriq_bman_portal[0][0], sizeof(qoriq_bman_portal[0])); qoriq_clear_ci_portal(&qoriq_bman_portal[1][0], sizeof(qoriq_bman_portal[1])); +#endif memset(&dn, 0, sizeof(dn)); @@ -355,22 +358,26 @@ bman_sysinit(void) ret = of_address_to_resource(&dn, 0, &res); if (ret != 0) panic("bman: no portal CE address"); +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) pcfg->addr_virt[0] = (__iomem void *) ((uintptr_t)&qoriq_bman_portal[0][0] + (uintptr_t)res.start); BSD_ASSERT((uintptr_t)pcfg->addr_virt[0] >= (uintptr_t)&qoriq_bman_portal[0][0]); BSD_ASSERT((uintptr_t)pcfg->addr_virt[0] < (uintptr_t)&qoriq_bman_portal[1][0]); +#endif ret = of_address_to_resource(&dn, 1, &res); if (ret != 0) panic("bman: no portal CI address"); +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) pcfg->addr_virt[1] = (__iomem void *) ((uintptr_t)&qoriq_bman_portal[0][0] + (uintptr_t)res.start); BSD_ASSERT((uintptr_t)pcfg->addr_virt[1] >= (uintptr_t)&qoriq_bman_portal[1][0]); BSD_ASSERT((uintptr_t)pcfg->addr_virt[1] < (uintptr_t)&qoriq_bman_portal[2][0]); +#endif pcfg->irq = of_irq_to_resource(&dn, 0, NULL); if (pcfg->irq == NO_IRQ) diff --git a/linux/drivers/soc/fsl/qbman/dpaa_sys.h b/linux/drivers/soc/fsl/qbman/dpaa_sys.h index 0e897026..db87eb45 100644 --- a/linux/drivers/soc/fsl/qbman/dpaa_sys.h +++ b/linux/drivers/soc/fsl/qbman/dpaa_sys.h @@ -84,8 +84,11 @@ static inline void dpaa_flush(void *p) __flush_dcache_area(p, 64); #endif #else /* __rtems__ */ -#ifdef __PPC_CPU_E6500__ +#if PPC_DEFAULT_CACHE_LINE_SIZE == 64 + ppc_data_cache_block_flush(p); +#elif PPC_DEFAULT_CACHE_LINE_SIZE == 32 ppc_data_cache_block_flush(p); + ppc_data_cache_block_flush((char *)p + 32); #else #error "Unsupported platform" #endif diff --git a/linux/drivers/soc/fsl/qbman/qman_ccsr.c b/linux/drivers/soc/fsl/qbman/qman_ccsr.c index cc798328..b26bfdd6 100644 --- a/linux/drivers/soc/fsl/qbman/qman_ccsr.c +++ b/linux/drivers/soc/fsl/qbman/qman_ccsr.c @@ -850,7 +850,6 @@ static struct platform_driver fsl_qman_driver = { builtin_platform_driver(fsl_qman_driver); #else /* __rtems__ */ #include -#include SYSINIT_REFERENCE(bman); @@ -873,7 +872,9 @@ qman_sysinit(void) memset(&dev, 0, sizeof(dev)); dev.pdev.dev.of_node = &dev.of_node; +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) dev.pdev.dev.base = (uintptr_t)&qoriq; +#endif dev.of_node.offset = node; dev.of_node.full_name = name; diff --git a/linux/drivers/soc/fsl/qbman/qman_portal.c b/linux/drivers/soc/fsl/qbman/qman_portal.c index 8df7ea42..a7295f90 100644 --- a/linux/drivers/soc/fsl/qbman/qman_portal.c +++ b/linux/drivers/soc/fsl/qbman/qman_portal.c @@ -34,7 +34,6 @@ #include "qman_priv.h" #ifdef __rtems__ -#include #undef dev_crit #undef dev_info #define dev_crit(dev, fmt, ...) printf(fmt, ##__VA_ARGS__) @@ -434,22 +433,26 @@ do_init_pcfg(struct device_node *dn, struct qm_portal_config *pcfg, ret = of_address_to_resource(dn, 0, &res); if (ret != 0) panic("qman: no portal CE address"); +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) pcfg->addr_virt[0] = (__iomem void *) ((uintptr_t)&qoriq_qman_portal[0][0] + (uintptr_t)res.start); BSD_ASSERT((uintptr_t)pcfg->addr_virt[0] >= (uintptr_t)&qoriq_qman_portal[0][0]); BSD_ASSERT((uintptr_t)pcfg->addr_virt[0] < (uintptr_t)&qoriq_qman_portal[1][0]); +#endif ret = of_address_to_resource(dn, 1, &res); if (ret != 0) panic("qman: no portal CI address"); +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) pcfg->addr_virt[1] = (__iomem void *) ((uintptr_t)&qoriq_qman_portal[0][0] + (uintptr_t)res.start); BSD_ASSERT((uintptr_t)pcfg->addr_virt[1] >= (uintptr_t)&qoriq_qman_portal[1][0]); BSD_ASSERT((uintptr_t)pcfg->addr_virt[1] < (uintptr_t)&qoriq_qman_portal[2][0]); +#endif ret = of_property_read_u32(dn, "cell-index", &val); if (ret != 0) @@ -503,10 +506,12 @@ qman_sysinit_portals(void) dn.full_name = name; dn.offset = node; +#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) qoriq_clear_ce_portal(&qoriq_qman_portal[0][0], sizeof(qoriq_qman_portal[0])); qoriq_clear_ci_portal(&qoriq_qman_portal[1][0], sizeof(qoriq_qman_portal[1])); +#endif i = 0; while (node >= 0 && i < MAX_QMAN_PORTALS) { -- cgit v1.2.3