summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/qoriq/include
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/include')
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/bsp.h12
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/irq.h121
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/mmu.h12
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h326
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/tm27.h2
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h10
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/uart-bridge.h2
7 files changed, 329 insertions, 156 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/bsp.h b/c/src/lib/libbsp/powerpc/qoriq/include/bsp.h
index 08760607b5..c0904687f9 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/bsp.h
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2010-2013 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2010-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -37,6 +37,16 @@ extern "C" {
#define BSP_FEATURE_IRQ_EXTENSION
+#define QORIQ_CHIP(alpha, num) ((alpha) * 10000 + (num))
+
+#define QORIQ_CHIP_P1020 QORIQ_CHIP('P', 1020)
+
+#define QORIQ_CHIP_T2080 QORIQ_CHIP('T', 2080)
+
+#define QORIQ_CHIP_T4240 QORIQ_CHIP('T', 4240)
+
+#define QORIQ_CHIP_IS_T_VARIANT(variant) ((variant) / 10000 == 'T')
+
extern unsigned BSP_bus_frequency;
struct rtems_bsdnet_ifconfig;
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/irq.h b/c/src/lib/libbsp/powerpc/qoriq/include/irq.h
index 3464028560..7f3085732a 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/irq.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/irq.h
@@ -7,10 +7,10 @@
*/
/*
- * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2010-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
- * Obere Lagerstr. 30
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
@@ -23,7 +23,7 @@
#ifndef LIBBSP_POWERPC_QORIQ_IRQ_H
#define LIBBSP_POWERPC_QORIQ_IRQ_H
-#include <rtems.h>
+#include <bsp.h>
#include <rtems/irq.h>
#include <rtems/irq-extension.h>
@@ -31,6 +31,113 @@
extern "C" {
#endif /* __cplusplus */
+#define QORIQ_IRQ_ERROR 0
+
+#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
+
+#define QORIQ_IRQ_PCI_EXPRESS_1 4
+#define QORIQ_IRQ_PCI_EXPRESS_2 5
+#define QORIQ_IRQ_PCI_EXPRESS_3 6
+#define QORIQ_IRQ_PCI_EXPRESS_4 7
+#define QORIQ_IRQ_PAMU 8
+#define QORIQ_IRQ_IFC 9
+#define QORIQ_IRQ_DMA_CHANNEL_1_1 12
+#define QORIQ_IRQ_DMA_CHANNEL_1_2 13
+#define QORIQ_IRQ_DMA_CHANNEL_1_3 14
+#define QORIQ_IRQ_DMA_CHANNEL_1_4 15
+#define QORIQ_IRQ_DMA_CHANNEL_2_1 16
+#define QORIQ_IRQ_DMA_CHANNEL_2_2 17
+#define QORIQ_IRQ_DMA_CHANNEL_2_3 18
+#define QORIQ_IRQ_DMA_CHANNEL_2_4 19
+#define QORIQ_IRQ_DUART_1 20
+#define QORIQ_IRQ_DUART_2 21
+#define QORIQ_IRQ_DUARL_I2C_1 22
+#define QORIQ_IRQ_DUARL_I2C_2 23
+#define QORIQ_IRQ_PCI_EXPRESS_1_INTA 24
+#define QORIQ_IRQ_PCI_EXPRESS_2_INTA 25
+#define QORIQ_IRQ_PCI_EXPRESS_3_INTA 26
+#define QORIQ_IRQ_PCI_EXPRESS_4_INTA 27
+#define QORIQ_IRQ_USB_1 28
+#define QORIQ_IRQ_USB_2 29
+#define QORIQ_IRQ_ESDHC 32
+#define QORIQ_IRQ_PERF_MON 36
+#define QORIQ_IRQ_ESPI 37
+#define QORIQ_IRQ_GPIO_2 38
+#define QORIQ_IRQ_GPIO_1 39
+#define QORIQ_IRQ_SATA_1 52
+#define QORIQ_IRQ_SATA_2 53
+#define QORIQ_IRQ_DMA_CHANNEL_1_5 60
+#define QORIQ_IRQ_DMA_CHANNEL_1_6 61
+#define QORIQ_IRQ_DMA_CHANNEL_1_7 62
+#define QORIQ_IRQ_DMA_CHANNEL_1_8 63
+#define QORIQ_IRQ_DMA_CHANNEL_2_5 64
+#define QORIQ_IRQ_DMA_CHANNEL_2_6 65
+#define QORIQ_IRQ_DMA_CHANNEL_2_7 66
+#define QORIQ_IRQ_DMA_CHANNEL_2_8 67
+#define QORIQ_IRQ_EVENT_PROC_UNIT_1 68
+#define QORIQ_IRQ_EVENT_PROC_UNIT_2 69
+#define QORIQ_IRQ_GPIO_3 70
+#define QORIQ_IRQ_GPIO_4 71
+#define QORIQ_IRQ_SEC_5_2_JOB_QUEUE_1 72
+#define QORIQ_IRQ_SEC_5_2_JOB_QUEUE_2 73
+#define QORIQ_IRQ_SEC_5_2_JOB_QUEUE_3 74
+#define QORIQ_IRQ_SEC_5_2_JOB_QUEUE_4 75
+#define QORIQ_IRQ_SEC_5_2_GLOBAL_ERROR 76
+#define QORIQ_IRQ_SEC_MON 77
+#define QORIQ_IRQ_EVENT_PROC_UNIT_3 78
+#define QORIQ_IRQ_EVENT_PROC_UNIT_4 79
+#define QORIQ_IRQ_FRAME_MGR 80
+#define QORIQ_IRQ_MDIO_1 84
+#define QORIQ_IRQ_MDIO_2 85
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_0 88
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_0 89
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_1 90
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_1 91
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_2 92
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_2 93
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_3 94
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_3 95
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_4 96
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_4 97
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_5 98
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_5 99
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_6 100
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_6 101
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_7 102
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_7 103
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_8 104
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_8 105
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_9 106
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_9 107
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_10 109
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_10 109
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_11 110
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_11 111
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_12 112
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_12 113
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_13 114
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_13 115
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_14 116
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_14 117
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_15 118
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_15 119
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_16 120
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_16 121
+#define QORIQ_IRQ_QUEUE_MGR_PORTAL_17 122
+#define QORIQ_IRQ_BUFFER_MGR_PORTAL_17 123
+#define QORIQ_IRQ_DMA_CHANNEL_3_1 240
+#define QORIQ_IRQ_DMA_CHANNEL_3_2 241
+#define QORIQ_IRQ_DMA_CHANNEL_3_3 242
+#define QORIQ_IRQ_DMA_CHANNEL_3_4 243
+#define QORIQ_IRQ_DMA_CHANNEL_3_4 244
+#define QORIQ_IRQ_DMA_CHANNEL_3_5 245
+#define QORIQ_IRQ_DMA_CHANNEL_3_6 246
+#define QORIQ_IRQ_DMA_CHANNEL_3_8 247
+
+#define QORIQ_IRQ_EXT_BASE 128
+
+#else /* QORIQ_CHIP_VARIANT */
+
/**
* @defgroup QoriqInterruptP1020 QorIQ - P1020 Internal Interrupt Sources
*
@@ -41,7 +148,6 @@ extern "C" {
* @{
*/
-#define QORIQ_IRQ_ERROR 0
#define QORIQ_IRQ_ETSEC_TX_1_GROUP_1 1
#define QORIQ_IRQ_ETSEC_RX_1_GROUP_1 2
#define QORIQ_IRQ_ETSEC_ER_1_GROUP_1 8
@@ -107,7 +213,7 @@ extern "C" {
#define QORIQ_IRQ_ETSEC_TX_2 19
#define QORIQ_IRQ_ETSEC_RX_2 20
#define QORIQ_IRQ_ETSEC_ER_2 24
-#define QORIQ_IRQ_DUART 26
+#define QORIQ_IRQ_DUART_1 26
#define QORIQ_IRQ_I2C 27
#define QORIQ_IRQ_PERFORMANCE_MONITOR 28
#define QORIQ_IRQ_SECURITY_1 29
@@ -126,6 +232,10 @@ extern "C" {
/** @} */
+#define QORIQ_IRQ_EXT_BASE 64
+
+#endif /* QORIQ_CHIP_VARIANT */
+
/**
* @defgroup QoriqInterruptExternal QorIQ - External Interrupt Sources
*
@@ -136,7 +246,6 @@ extern "C" {
* @{
*/
-#define QORIQ_IRQ_EXT_BASE 64
#define QORIQ_IRQ_EXT_0 (QORIQ_IRQ_EXT_BASE + 0)
#define QORIQ_IRQ_EXT_1 (QORIQ_IRQ_EXT_BASE + 1)
#define QORIQ_IRQ_EXT_2 (QORIQ_IRQ_EXT_BASE + 2)
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/mmu.h b/c/src/lib/libbsp/powerpc/qoriq/include/mmu.h
index 0215227f30..f08cc43384 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/mmu.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/mmu.h
@@ -7,10 +7,10 @@
*/
/*
- * Copyright (c) 2011 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2011-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
- * Obere Lagerstr. 30
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
@@ -26,6 +26,8 @@
#include <stdint.h>
#include <stdbool.h>
+#include <bspopts.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -40,10 +42,8 @@ extern "C" {
* @{
*/
-#define QORIQ_MMU_ENTRY_COUNT 32
-
#define QORIQ_MMU_MIN_POWER 12
-#define QORIQ_MMU_MAX_POWER 32
+#define QORIQ_MMU_MAX_POWER 30
#define QORIQ_MMU_POWER_STEP 2
typedef struct {
@@ -57,7 +57,7 @@ typedef struct {
typedef struct {
int count;
- qoriq_mmu_entry entries [QORIQ_MMU_ENTRY_COUNT];
+ qoriq_mmu_entry entries [QORIQ_TLB1_ENTRY_COUNT];
} qoriq_mmu_context;
void qoriq_mmu_context_init(qoriq_mmu_context *self);
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h b/c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h
index e56c30fc16..0bacc54463 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h
@@ -7,10 +7,10 @@
*/
/*
- * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2010-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
- * Obere Lagerstr. 30
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
@@ -23,6 +23,7 @@
#ifndef LIBBSP_POWERPC_QORIQ_QORIQ_H
#define LIBBSP_POWERPC_QORIQ_QORIQ_H
+#include <bsp.h>
#include <bsp/tsec.h>
#include <bsp/utility.h>
@@ -34,6 +35,188 @@ extern "C" {
#define QORIQ_RESERVE(a, b) uint8_t reserved_ ## b [b - a]
typedef struct {
+ uint32_t reg;
+ QORIQ_FILL(0x00000, 0x00010, uint32_t);
+} qoriq_pic_reg;
+
+typedef struct {
+ uint32_t ccr;
+ QORIQ_FILL(0x00000, 0x00010, uint32_t);
+ uint32_t bcr;
+ QORIQ_FILL(0x00010, 0x00020, uint32_t);
+ uint32_t vpr;
+ QORIQ_FILL(0x00020, 0x00030, uint32_t);
+ uint32_t dr;
+ QORIQ_FILL(0x00030, 0x00040, uint32_t);
+} qoriq_pic_global_timer;
+
+#define GTCCR_TOG BSP_BBIT32(0)
+#define GTCCR_COUNT_GET(reg) BSP_BFLD32GET(reg, 1, 31)
+
+#define GTBCR_CI BSP_BBIT32(0)
+#define GTBCR_COUNT(val) BSP_BFLD32(val, 1, 31)
+#define GTBCR_COUNT_GET(reg) BSP_BFLD32GET(reg, 1, 31)
+#define GTBCR_COUNT_SET(reg, val) BSP_BFLD32SET(reg, val, 1, 31)
+
+typedef struct {
+ uint32_t misc;
+ QORIQ_FILL(0x00000, 0x00010, uint32_t);
+ uint32_t internal [2];
+ QORIQ_FILL(0x00010, 0x00020, uint32_t [2]);
+} qoriq_pic_bit_field;
+
+typedef struct {
+ uint32_t vpr;
+ QORIQ_FILL(0x00000, 0x00010, uint32_t);
+ uint32_t dr;
+ QORIQ_FILL(0x00010, 0x00020, uint32_t);
+} qoriq_pic_src_cfg;
+
+typedef struct {
+ QORIQ_RESERVE(0x00000, 0x00040);
+ qoriq_pic_reg ipidr [4];
+ uint32_t ctpr;
+ QORIQ_FILL(0x00080, 0x00090, uint32_t);
+ uint32_t whoami;
+ QORIQ_FILL(0x00090, 0x000a0, uint32_t);
+ uint32_t iack;
+ QORIQ_FILL(0x000a0, 0x000b0, uint32_t);
+ uint32_t eoi;
+ QORIQ_FILL(0x000b0, 0x01000, uint32_t);
+} qoriq_pic_per_cpu;
+
+typedef struct {
+ uint32_t brr1;
+ QORIQ_FILL(0x00000, 0x00010, uint32_t);
+ uint32_t brr2;
+ QORIQ_FILL(0x00010, 0x00040, uint32_t);
+ qoriq_pic_reg ipidr [4];
+ uint32_t ctpr;
+ QORIQ_FILL(0x00080, 0x00090, uint32_t);
+ uint32_t whoami;
+ QORIQ_FILL(0x00090, 0x000a0, uint32_t);
+ uint32_t iack;
+ QORIQ_FILL(0x000a0, 0x000b0, uint32_t);
+ uint32_t eoi;
+ QORIQ_FILL(0x000b0, 0x01000, uint32_t);
+ uint32_t frr;
+ QORIQ_FILL(0x01000, 0x01020, uint32_t);
+ uint32_t gcr;
+ QORIQ_FILL(0x01020, 0x01080, uint32_t);
+ uint32_t vir;
+ QORIQ_FILL(0x01080, 0x01090, uint32_t);
+ uint32_t pir;
+ QORIQ_FILL(0x01090, 0x010a0, uint32_t);
+ qoriq_pic_reg ipivpr [4];
+ uint32_t svr;
+ QORIQ_FILL(0x010e0, 0x010f0, uint32_t);
+ uint32_t tfrra;
+ QORIQ_FILL(0x010f0, 0x01100, uint32_t);
+ qoriq_pic_global_timer gta [4];
+ QORIQ_RESERVE(0x01200, 0x01300);
+ uint32_t tcra;
+ QORIQ_FILL(0x01300, 0x01308, uint32_t);
+ uint32_t erqsr;
+ QORIQ_FILL(0x01308, 0x01310, uint32_t);
+ qoriq_pic_bit_field irqsr;
+ qoriq_pic_bit_field cisr;
+ qoriq_pic_bit_field pm [4];
+ QORIQ_RESERVE(0x013d0, 0x01400);
+ qoriq_pic_reg msgr03 [4];
+ QORIQ_RESERVE(0x01440, 0x01500);
+ uint32_t mer03;
+ QORIQ_FILL(0x01500, 0x01510, uint32_t);
+ uint32_t msr03;
+ QORIQ_FILL(0x01510, 0x01600, uint32_t);
+ qoriq_pic_reg msir [8];
+ QORIQ_RESERVE(0x01680, 0x01720);
+ uint32_t msisr;
+ QORIQ_FILL(0x01720, 0x01740, uint32_t);
+ uint32_t msiir;
+ QORIQ_FILL(0x01740, 0x020f0, uint32_t);
+ uint32_t tfrrb;
+ QORIQ_FILL(0x020f0, 0x02100, uint32_t);
+ qoriq_pic_global_timer gtb [4];
+ QORIQ_RESERVE(0x02200, 0x02300);
+ uint32_t tcrb;
+ QORIQ_FILL(0x02300, 0x02400, uint32_t);
+ qoriq_pic_reg msgr47 [4];
+ QORIQ_RESERVE(0x02440, 0x02500);
+ uint32_t mer47;
+ QORIQ_FILL(0x02500, 0x02510, uint32_t);
+ uint32_t msr47;
+ QORIQ_FILL(0x02510, 0x10000, uint32_t);
+ qoriq_pic_src_cfg ei [12];
+ QORIQ_RESERVE(0x10180, 0x10200);
+ qoriq_pic_src_cfg ii [64];
+ QORIQ_RESERVE(0x10a00, 0x11600);
+ qoriq_pic_src_cfg mi [8];
+ QORIQ_RESERVE(0x11700, 0x11c00);
+ qoriq_pic_src_cfg msi [8];
+ QORIQ_RESERVE(0x11d00, 0x20000);
+ qoriq_pic_per_cpu per_cpu [2];
+} qoriq_pic;
+
+#define GTTCR_ROVR(val) BSP_BFLD32(val, 5, 7)
+#define GTTCR_ROVR_GET(reg) BSP_BFLD32GET(reg, 5, 7)
+#define GTTCR_ROVR_SET(reg, val) BSP_BFLD32SET(reg, val, 5, 7)
+#define GTTCR_RTM BSP_BBIT32(15)
+#define GTTCR_CLKR(val) BSP_BFLD32(val, 22, 23)
+#define GTTCR_CLKR_GET(reg) BSP_BFLD32GET(reg, 22, 23)
+#define GTTCR_CLKR_SET(reg, val) BSP_BFLD32SET(reg, val, 22, 23)
+#define GTTCR_CASC(val) BSP_BFLD32(val, 29, 31)
+#define GTTCR_CASC_GET(reg) BSP_BFLD32GET(reg, 29, 31)
+#define GTTCR_CASC_SET(reg, val) BSP_BFLD32SET(reg, val, 29, 31)
+
+typedef struct {
+} qoriq_uart;
+
+#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
+
+typedef struct {
+ uint32_t ccsrbarh;
+ uint32_t ccsrbarl;
+ uint32_t ccsrar;
+ uint32_t altcbarh;
+ uint32_t altcbarl;
+ uint32_t altcar;
+ uint32_t bstrh;
+ uint32_t bstrl;
+ uint32_t bstar;
+} qoriq_lcc;
+
+#define LCC_BSTAR_EN BSP_BBIT32(0)
+
+typedef struct {
+ uint32_t lawbarh;
+ uint32_t lawbarl;
+ uint32_t lawar;
+ uint32_t reserved_0xc;
+} qoriq_law;
+
+typedef struct {
+ qoriq_lcc lcc;
+ QORIQ_FILL(0x000000, 0x000c00, qoriq_lcc);
+ qoriq_law law [32];
+ QORIQ_FILL(0x000c00, 0x001000, qoriq_law [32]);
+ QORIQ_RESERVE(0x001000, 0x040000);
+ qoriq_pic pic;
+ QORIQ_FILL(0x040000, 0x070000, qoriq_pic);
+ QORIQ_RESERVE(0x070000, 0x11c500);
+ qoriq_uart uart_0;
+ QORIQ_FILL(0x11c500, 0x11c600, qoriq_uart);
+ qoriq_uart uart_1;
+ QORIQ_FILL(0x11c600, 0x11d500, qoriq_uart);
+ qoriq_uart uart_2;
+ QORIQ_FILL(0x11d500, 0x11d600, qoriq_uart);
+ qoriq_uart uart_3;
+ QORIQ_FILL(0x11d600, 0x11e000, qoriq_uart);
+ QORIQ_RESERVE(0x11e000, 0x2000000);
+} qoriq_ccsr;
+
+#else /* QORIQ_CHIP_VARIANT */
+
+typedef struct {
uint32_t ccsrbar;
uint32_t reserved_0;
uint32_t altcbar;
@@ -90,9 +273,6 @@ typedef struct {
} qoriq_i2c;
typedef struct {
-} qoriq_uart;
-
-typedef struct {
} qoriq_local_bus;
typedef struct {
@@ -196,140 +376,6 @@ typedef struct {
} qoriq_sec;
typedef struct {
- uint32_t reg;
- QORIQ_FILL(0x00000, 0x00010, uint32_t);
-} qoriq_pic_reg;
-
-typedef struct {
- uint32_t ccr;
- QORIQ_FILL(0x00000, 0x00010, uint32_t);
- uint32_t bcr;
- QORIQ_FILL(0x00010, 0x00020, uint32_t);
- uint32_t vpr;
- QORIQ_FILL(0x00020, 0x00030, uint32_t);
- uint32_t dr;
- QORIQ_FILL(0x00030, 0x00040, uint32_t);
-} qoriq_pic_global_timer;
-
-#define GTCCR_TOG BSP_BBIT32(0)
-#define GTCCR_COUNT_GET(reg) BSP_BFLD32GET(reg, 1, 31)
-
-#define GTBCR_CI BSP_BBIT32(0)
-#define GTBCR_COUNT(val) BSP_BFLD32(val, 1, 31)
-#define GTBCR_COUNT_GET(reg) BSP_BFLD32GET(reg, 1, 31)
-#define GTBCR_COUNT_SET(reg, val) BSP_BFLD32SET(reg, val, 1, 31)
-
-typedef struct {
- uint32_t misc;
- QORIQ_FILL(0x00000, 0x00010, uint32_t);
- uint32_t internal [2];
- QORIQ_FILL(0x00010, 0x00020, uint32_t [2]);
-} qoriq_pic_bit_field;
-
-typedef struct {
- uint32_t vpr;
- QORIQ_FILL(0x00000, 0x00010, uint32_t);
- uint32_t dr;
- QORIQ_FILL(0x00010, 0x00020, uint32_t);
-} qoriq_pic_src_cfg;
-
-typedef struct {
- QORIQ_RESERVE(0x00000, 0x00040);
- qoriq_pic_reg ipidr [4];
- uint32_t ctpr;
- QORIQ_FILL(0x00080, 0x00090, uint32_t);
- uint32_t whoami;
- QORIQ_FILL(0x00090, 0x000a0, uint32_t);
- uint32_t iack;
- QORIQ_FILL(0x000a0, 0x000b0, uint32_t);
- uint32_t eoi;
- QORIQ_FILL(0x000b0, 0x01000, uint32_t);
-} qoriq_pic_per_cpu;
-
-typedef struct {
- uint32_t brr1;
- QORIQ_FILL(0x00000, 0x00010, uint32_t);
- uint32_t brr2;
- QORIQ_FILL(0x00010, 0x00040, uint32_t);
- qoriq_pic_reg ipidr [4];
- uint32_t ctpr;
- QORIQ_FILL(0x00080, 0x00090, uint32_t);
- uint32_t whoami;
- QORIQ_FILL(0x00090, 0x000a0, uint32_t);
- uint32_t iack;
- QORIQ_FILL(0x000a0, 0x000b0, uint32_t);
- uint32_t eoi;
- QORIQ_FILL(0x000b0, 0x01000, uint32_t);
- uint32_t frr;
- QORIQ_FILL(0x01000, 0x01020, uint32_t);
- uint32_t gcr;
- QORIQ_FILL(0x01020, 0x01080, uint32_t);
- uint32_t vir;
- QORIQ_FILL(0x01080, 0x01090, uint32_t);
- uint32_t pir;
- QORIQ_FILL(0x01090, 0x010a0, uint32_t);
- qoriq_pic_reg ipivpr [4];
- uint32_t svr;
- QORIQ_FILL(0x010e0, 0x010f0, uint32_t);
- uint32_t tfrra;
- QORIQ_FILL(0x010f0, 0x01100, uint32_t);
- qoriq_pic_global_timer gta [4];
- QORIQ_RESERVE(0x01200, 0x01300);
- uint32_t tcra;
- QORIQ_FILL(0x01300, 0x01308, uint32_t);
- uint32_t erqsr;
- QORIQ_FILL(0x01308, 0x01310, uint32_t);
- qoriq_pic_bit_field irqsr;
- qoriq_pic_bit_field cisr;
- qoriq_pic_bit_field pm [4];
- QORIQ_RESERVE(0x013d0, 0x01400);
- qoriq_pic_reg msgr03 [4];
- QORIQ_RESERVE(0x01440, 0x01500);
- uint32_t mer03;
- QORIQ_FILL(0x01500, 0x01510, uint32_t);
- uint32_t msr03;
- QORIQ_FILL(0x01510, 0x01600, uint32_t);
- qoriq_pic_reg msir [8];
- QORIQ_RESERVE(0x01680, 0x01720);
- uint32_t msisr;
- QORIQ_FILL(0x01720, 0x01740, uint32_t);
- uint32_t msiir;
- QORIQ_FILL(0x01740, 0x020f0, uint32_t);
- uint32_t tfrrb;
- QORIQ_FILL(0x020f0, 0x02100, uint32_t);
- qoriq_pic_global_timer gtb [4];
- QORIQ_RESERVE(0x02200, 0x02300);
- uint32_t tcrb;
- QORIQ_FILL(0x02300, 0x02400, uint32_t);
- qoriq_pic_reg msgr47 [4];
- QORIQ_RESERVE(0x02440, 0x02500);
- uint32_t mer47;
- QORIQ_FILL(0x02500, 0x02510, uint32_t);
- uint32_t msr47;
- QORIQ_FILL(0x02510, 0x10000, uint32_t);
- qoriq_pic_src_cfg ei [12];
- QORIQ_RESERVE(0x10180, 0x10200);
- qoriq_pic_src_cfg ii [64];
- QORIQ_RESERVE(0x10a00, 0x11600);
- qoriq_pic_src_cfg mi [8];
- QORIQ_RESERVE(0x11700, 0x11c00);
- qoriq_pic_src_cfg msi [8];
- QORIQ_RESERVE(0x11d00, 0x20000);
- qoriq_pic_per_cpu per_cpu [2];
-} qoriq_pic;
-
-#define GTTCR_ROVR(val) BSP_BFLD32(val, 5, 7)
-#define GTTCR_ROVR_GET(reg) BSP_BFLD32GET(reg, 5, 7)
-#define GTTCR_ROVR_SET(reg, val) BSP_BFLD32SET(reg, val, 5, 7)
-#define GTTCR_RTM BSP_BBIT32(15)
-#define GTTCR_CLKR(val) BSP_BFLD32(val, 22, 23)
-#define GTTCR_CLKR_GET(reg) BSP_BFLD32GET(reg, 22, 23)
-#define GTTCR_CLKR_SET(reg, val) BSP_BFLD32SET(reg, val, 22, 23)
-#define GTTCR_CASC(val) BSP_BFLD32(val, 29, 31)
-#define GTTCR_CASC_GET(reg) BSP_BFLD32GET(reg, 29, 31)
-#define GTTCR_CASC_SET(reg, val) BSP_BFLD32SET(reg, val, 29, 31)
-
-typedef struct {
} qoriq_serial_rapid_io;
typedef struct {
@@ -441,6 +487,8 @@ typedef struct {
QORIQ_FILL(0xf0000, 0x100000, qoriq_boot_rom);
} qoriq_ccsr;
+#endif /* QORIQ_CHIP_VARIANT */
+
extern volatile qoriq_ccsr qoriq;
#ifdef __cplusplus
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/tm27.h b/c/src/lib/libbsp/powerpc/qoriq/include/tm27.h
index cc35487ca9..46264b7e67 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/tm27.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/tm27.h
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2010-2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2010-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h b/c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h
index 5a34906ecd..3e6fa90b55 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h
@@ -1,8 +1,8 @@
/*
- * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2010-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
- * Obere Lagerstr. 30
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
@@ -15,6 +15,12 @@
#ifndef LIBBSP_POWERPC_QORIQ_U_BOOT_CONFIG_H
#define LIBBSP_POWERPC_QORIQ_U_BOOT_CONFIG_H
+#include <bspopts.h>
+
+#define U_BOOT_BOARD_INFO_TEXT_SECTION __attribute__((section(".bsp_start_text")))
+
+#define U_BOOT_BOARD_INFO_DATA_SECTION __attribute__((section(".bsp_start_data")))
+
#define CONFIG_E500
#define CONFIG_HAS_ETH1
#define CONFIG_HAS_ETH2
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/uart-bridge.h b/c/src/lib/libbsp/powerpc/qoriq/include/uart-bridge.h
index cd342ffcb6..97e6553b7c 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/uart-bridge.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/uart-bridge.h
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2011-2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2011-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4