summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/realview-pbx-a9
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-06-23 14:39:47 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-06-29 15:15:50 +0200
commitc8312b3ff2054cd0b1354b3ec421fec493107064 (patch)
tree87658ff190a8a600e44627c1ec6fd2f4064e5c39 /c/src/lib/libbsp/arm/realview-pbx-a9
parentlibchip/serial: Add const qualifier (diff)
downloadrtems-c8312b3ff2054cd0b1354b3ec421fec493107064.tar.bz2
bsps/arm: Add PL111 support
Diffstat (limited to 'c/src/lib/libbsp/arm/realview-pbx-a9')
-rw-r--r--c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am6
-rw-r--r--c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h7
-rw-r--r--c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am8
-rw-r--r--c/src/lib/libbsp/arm/realview-pbx-a9/startup/fb-config.c49
4 files changed, 69 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am b/c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am
index 9410a30a4a..7b961b36d3 100644
--- a/c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am
@@ -43,6 +43,8 @@ include_bsp_HEADERS += ../shared/include/arm-gic-regs.h
include_bsp_HEADERS += ../shared/include/arm-gic-tm27.h
include_bsp_HEADERS += ../shared/include/arm-pl011.h
include_bsp_HEADERS += ../shared/include/arm-pl011-regs.h
+include_bsp_HEADERS += ../shared/include/arm-pl111-fb.h
+include_bsp_HEADERS += ../shared/include/arm-pl111-regs.h
include_bsp_HEADERS += include/irq.h
include_libcpu_HEADERS = ../../../libcpu/arm/shared/include/arm-cp15.h
@@ -124,6 +126,10 @@ libbsp_a_CPPFLAGS += -I$(srcdir)/../../../libcpu/arm/shared/include
# Start hooks
libbsp_a_SOURCES += startup/bspstarthooks.c
+# Framebuffer
+libbsp_a_SOURCES += ../shared/arm-pl111-fb.c
+libbsp_a_SOURCES += startup/fb-config.c
+
if HAS_SMP
libbsp_a_SOURCES += ../shared/arm-a9mpcore-smp.c
endif
diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h b/c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h
index c25c9f62dc..05c0fd088d 100644
--- a/c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h
@@ -19,6 +19,8 @@
#define BSP_FEATURE_IRQ_EXTENSION
+#define BSP_HAS_FRAME_BUFFER 1
+
#ifndef ASM
#include <rtems.h>
@@ -41,7 +43,10 @@ extern "C" {
typedef enum {
BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_INSTALL,
- BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_REMOVE
+ BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_REMOVE,
+ BSP_ARM_PL111_FATAL_REGISTER_DEV,
+ BSP_ARM_PL111_FATAL_SEM_CREATE,
+ BSP_ARM_PL111_FATAL_SEM_RELEASE
} rvpbxa9_fatal_code;
void rvpbxa9_fatal(rvpbxa9_fatal_code code) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am b/c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am
index 56e4ac8ac1..fad0cf93f2 100644
--- a/c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am
@@ -126,6 +126,14 @@ $(PROJECT_INCLUDE)/bsp/arm-pl011-regs.h: ../shared/include/arm-pl011-regs.h $(PR
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-pl011-regs.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-pl011-regs.h
+$(PROJECT_INCLUDE)/bsp/arm-pl111-fb.h: ../shared/include/arm-pl111-fb.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-pl111-fb.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-pl111-fb.h
+
+$(PROJECT_INCLUDE)/bsp/arm-pl111-regs.h: ../shared/include/arm-pl111-regs.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-pl111-regs.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-pl111-regs.h
+
$(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/startup/fb-config.c b/c/src/lib/libbsp/arm/realview-pbx-a9/startup/fb-config.c
new file mode 100644
index 0000000000..c2c4aaae00
--- /dev/null
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/startup/fb-config.c
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <info@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#include <bsp/arm-pl111-fb.h>
+#include <bsp.h>
+
+static const pl111_fb_config fb_config = {
+ .regs = (volatile pl111 *) 0x10020000,
+
+ /*
+ * Values obtained from "RealView Platform Baseboard Explore for Cortex-A9
+ * User Guide" section 4.6.1 "Display resolutions and display memory
+ * organization".
+ */
+ .timing0 = 0x3f1f3f9c,
+ .timing1 = 0x090b61df,
+ .timing2 = 0x067f1800,
+
+ .timing3 = 0x0,
+ .control = PL111_LCD_CONTROL_LCD_TFT
+ | PL111_LCD_CONTROL_LCD_BPP(PL111_LCD_CONTROL_LCD_BPP_16),
+ .power_delay_in_us = 100000
+};
+
+const pl111_fb_config *arm_pl111_fb_get_config(void)
+{
+ return &fb_config;
+}
+
+void arm_pl111_fb_pins_set_up(const pl111_fb_config *cfg)
+{
+ /* TODO */
+}
+
+void arm_pl111_fb_pins_tear_down(const pl111_fb_config *cfg)
+{
+ /* TODO */
+}