summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-26 15:02:24 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-26 15:02:24 +0200
commit45149ec24ef6dbe86f3b22e09066457e73f89686 (patch)
treea2962449e3de08dd53d78938002d4e975cfd82ec
parentffec: Fix comment (diff)
downloadrtems-libbsd-45149ec24ef6dbe86f3b22e09066457e73f89686.tar.bz2
Fix general PowerPC build
-rw-r--r--linux/drivers/net/ethernet/freescale/fman/fman.c3
-rw-r--r--linux/drivers/soc/fsl/qbman/bman_ccsr.c9
-rw-r--r--linux/drivers/soc/fsl/qbman/dpaa_sys.h5
-rw-r--r--linux/drivers/soc/fsl/qbman/qman_ccsr.c3
-rw-r--r--linux/drivers/soc/fsl/qbman/qman_portal.c7
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_dpaa.h8
6 files changed, 30 insertions, 5 deletions
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 <linux/libfdt_env.h>
#ifdef __rtems__
#include <bsp/fdt.h>
-#include <bsp/qoriq.h>
#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 <sys/kernel.h>
#include <rtems.h>
#include <bsp/fdt.h>
-#include <bsp/qoriq.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
@@ -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 <bsp/fdt.h>
-#include <bsp/qoriq.h>
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 <bsp/qoriq.h>
#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) {
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_dpaa.h b/rtemsbsd/include/rtems/bsd/local/opt_dpaa.h
index 2543a5df..496a88f7 100644
--- a/rtemsbsd/include/rtems/bsd/local/opt_dpaa.h
+++ b/rtemsbsd/include/rtems/bsd/local/opt_dpaa.h
@@ -1,3 +1,11 @@
+#include <bsp.h>
+#ifdef LIBBSP_POWERPC_QORIQ_BSP_H
+#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
+#include <bsp/qoriq.h>
+#endif
+#else
+#define QORIQ_CHIP_IS_T_VARIANT(x) 0
+#endif
#undef __ppc_generic
#define __ppc_generic
#define KBUILD_MODNAME "dpaa"