diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/raspberrypi')
17 files changed, 7 insertions, 1571 deletions
diff --git a/c/src/lib/libbsp/arm/raspberrypi/Makefile.am b/c/src/lib/libbsp/arm/raspberrypi/Makefile.am index 8ed1aac5be..9404677c07 100644 --- a/c/src/lib/libbsp/arm/raspberrypi/Makefile.am +++ b/c/src/lib/libbsp/arm/raspberrypi/Makefile.am @@ -11,50 +11,14 @@ EXTRA_DIST = include $(top_srcdir)/../../../../automake/compile.am include $(top_srcdir)/../../bsp.am -include_bspdir = $(includedir)/bsp - -dist_project_lib_DATA = bsp_specs +dist_project_lib_DATA = startup/bsp_specs ############################################################################### # Header # ############################################################################### -include_HEADERS = include/bsp.h -include_HEADERS += include/tm27.h - -nodist_include_HEADERS = include/bspopts.h - -nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h - noinst_HEADERS = console/font_data.h -include_bsp_HEADERS = -include_bsp_HEADERS += ../../../libbsp/shared/include/mm.h -include_bsp_HEADERS += ../../shared/include/utility.h -include_bsp_HEADERS += ../../shared/include/irq-generic.h -include_bsp_HEADERS += ../../shared/include/irq-info.h -include_bsp_HEADERS += ../../shared/include/stackalloc.h -include_bsp_HEADERS += ../../shared/include/uart-output-char.h -include_bsp_HEADERS += ../../shared/include/gpio.h -include_bsp_HEADERS += ../shared/include/linker-symbols.h -include_bsp_HEADERS += ../shared/include/start.h -include_bsp_HEADERS += ../shared/include/arm-cp15-start.h -include_bsp_HEADERS += ../shared/include/arm-errata.h -include_bsp_HEADERS += ../shared/lpc/include/lpc-timer.h -include_bsp_HEADERS += ../shared/lpc/include/lpc-dma.h -include_bsp_HEADERS += ../shared/include/arm-release-id.h -include_bsp_HEADERS += include/irq.h -include_bsp_HEADERS += include/mmu.h -include_bsp_HEADERS += include/usart.h -include_bsp_HEADERS += include/raspberrypi.h -include_bsp_HEADERS += include/rpi-gpio.h -include_bsp_HEADERS += include/i2c.h -include_bsp_HEADERS += include/spi.h -include_bsp_HEADERS += include/mailbox.h -include_bsp_HEADERS += include/vc.h -include_bsp_HEADERS += include/rpi-fb.h -include_bsp_HEADERS += console/fbcons.h - ############################################################################### # Data # ############################################################################### @@ -64,8 +28,7 @@ start.$(OBJEXT): ../shared/start/start.S $(CPPASCOMPILE) -o $@ -c $< project_lib_DATA = start.$(OBJEXT) -project_lib_DATA += startup/linkcmds -project_lib_DATA += ../shared/startup/linkcmds.base +project_lib_DATA += linkcmds ############################################################################### # LibBSP # @@ -74,7 +37,7 @@ project_lib_DATA += ../shared/startup/linkcmds.base noinst_LIBRARIES = libbsp.a libbsp_a_SOURCES = -libbsp_a_CPPFLAGS = +libbsp_a_CPPFLAGS = $(AM_CPPFLAGS) libbsp_a_LIBADD = # Shared @@ -188,5 +151,5 @@ libbsp_a_SOURCES += ../shared/mminit.c DISTCLEANFILES = include/bspopts.h -include $(srcdir)/preinstall.am include $(top_srcdir)/../../../../automake/local.am +include $(srcdir)/../../../../../../bsps/arm/raspberrypi/headers.am diff --git a/c/src/lib/libbsp/arm/raspberrypi/configure.ac b/c/src/lib/libbsp/arm/raspberrypi/configure.ac index 6d771a4a0c..97e74d9a42 100644 --- a/c/src/lib/libbsp/arm/raspberrypi/configure.ac +++ b/c/src/lib/libbsp/arm/raspberrypi/configure.ac @@ -9,6 +9,8 @@ AC_PREREQ([2.68]) AC_INIT([rtems-c-src-lib-libbsp-arm-raspberrypi],[_RTEMS_VERSION],[https://devel.rtems.org/newticket]) AC_CONFIG_SRCDIR([make/custom/raspberrypi.cfg]) RTEMS_TOP(../../../../../..) +RTEMS_SOURCE_TOP +RTEMS_BUILD_TOP RTEMS_CANONICAL_TARGET_CPU AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.12.2]) @@ -58,5 +60,5 @@ RTEMS_BSP_CLEANUP_OPTIONS AC_CONFIG_FILES([ Makefile -startup/linkcmds]) +linkcmds:startup/linkcmds.in]) AC_OUTPUT diff --git a/c/src/lib/libbsp/arm/raspberrypi/console/fbcons.h b/c/src/lib/libbsp/arm/raspberrypi/console/fbcons.h deleted file mode 100644 index d0e126699a..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/console/fbcons.h +++ /dev/null @@ -1,47 +0,0 @@ -/** - * @file - * - * @ingroup raspberrypi_console - * - * @brief framebuffer graphic console support. - */ - -/* - * Copyright (c) 2015 Yang Qiao - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.org/license/LICENSE - * - */ - -#ifndef _FBCONS_H_ -#define _FBCONS_H_ - -#include <libchip/serial.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This is the ASCII for "PI" in the upper word and 2835 - * in the lower which should be unique enough to - * distinguish this type of serial device from others. - */ - -#define FB_CONSOLE 0x50492835 - -bool fbcons_probe( int minor ); - -/* - * Driver function table - */ -extern const console_fns fbcons_fns; - -#ifdef __cplusplus -} -#endif - -#endif /* _FBCONS_H_ */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/bsp.h b/c/src/lib/libbsp/arm/raspberrypi/include/bsp.h deleted file mode 100644 index ecd5b6af08..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/bsp.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - * @file - * - * @ingroup arm_raspberrypi - * - * @brief Global BSP definitions. - */ - -/* - * Copyright (c) 2015 Yang Qiao - * Copyright (c) 2013 Alan Cudmore - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.org/license/LICENSE - * - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_BSP_H -#define LIBBSP_ARM_RASPBERRYPI_BSP_H - -#include <bspopts.h> -#include <bsp/default-initial-extension.h> - -#include <rtems.h> -#include <bsp/raspberrypi.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#define BSP_FEATURE_IRQ_EXTENSION - -#define RPI_L2_CACHE_ENABLE 1 - -#define BSP_GPIO_PIN_COUNT 32 -#define BSP_GPIO_PINS_PER_BANK 32 -#define BSP_GPIO_PINS_PER_SELECT_BANK 10 - -#define BSP_CONSOLE_UART0 0 -#define BSP_CONSOLE_FB 1 - -void rpi_init_cmdline(void); -const char *rpi_cmdline_get_cached(void); -const char *rpi_cmdline_get_raw(void); -const char *rpi_cmdline_get_arg(const char* arg); - -void rpi_video_init(void); -void rpi_fb_outch (char); -int rpi_video_is_initialized(void); - -void rpi_ipi_initialize(void); -void rpi_start_rtems_on_secondary_processor(void); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_BSP_H */ - -/** - * @defgroup arm_raspberrypi Raspberry Pi Support - * - * @ingroup bsp_arm - * - * @brief Raspberry Pi support package - * - */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/i2c.h b/c/src/lib/libbsp/arm/raspberrypi/include/i2c.h deleted file mode 100644 index 4a8dbbf2ac..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/i2c.h +++ /dev/null @@ -1,95 +0,0 @@ -/** - * @file i2c.h - * - * @ingroup raspberrypi_i2c - * - * @brief Raspberry Pi specific I2C definitions. - */ - -/* - * Copyright (c) 2014-2015 Andre Marques <andre.lousa.marques at gmail.com> - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_I2C_H -#define LIBBSP_ARM_RASPBERRYPI_I2C_H - -#include <dev/i2c/i2c.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @name I2C constants. - * - * @{ - */ - -/** - * @brief BSC controller core clock rate in Hz. - * - * This is set to 150 MHz as per the BCM2835 datasheet. - */ -#define BSC_CORE_CLK_HZ 150000000 - -/** - * @brief Default bus clock. - * - * This sets the bus with a 100 kHz clock speed. - */ -#define DEFAULT_BUS_CLOCK 100000 - -/** @} */ - -/** - * @name I2C directives. - * - * @{ - */ - -/** - * @brief Setups the Raspberry Pi GPIO header to activate the BSC I2C bus. - */ -extern void rpi_i2c_init(void); - -/** - * @brief Registers the Raspberry Pi BSC I2C bus with the - * Linux I2C User-Space API. - * - * @param[in] bus_path Path to the bus device file. - * @param[in] bus_clock Bus clock in Hz. - * - * @retval 0 Bus registered successfully. - * @retval <0 Could not register the bus. The return value is a negative - * errno code. - */ -extern int rpi_i2c_register_bus( - const char *bus_path, - uint32_t bus_clock -); - -/** - * @brief Setups the Raspberry Pi BSC I2C bus (located on the GPIO header) - * on the "/dev/i2c" device file, using the default bus clock. - * - * @retval 0 Bus configured and registered successfully. - * @retval <0 See @see rpi_i2c_register_bus(). - */ -static inline int rpi_setup_i2c_bus(void) -{ - rpi_i2c_init(); - - return rpi_i2c_register_bus("/dev/i2c", DEFAULT_BUS_CLOCK); -} - -/** @} */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_I2C_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/irq.h b/c/src/lib/libbsp/arm/raspberrypi/include/irq.h deleted file mode 100644 index 4600534171..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/irq.h +++ /dev/null @@ -1,76 +0,0 @@ -/** - * @file - * - * @ingroup raspberrypi_interrupt - * - * @brief Interrupt definitions. - */ - -/** - * Copyright (c) 2013 Alan Cudmore - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.org/license/LICENSE - * - */ - -#ifndef LIBBSP_ARM_RASBPERRYPI_IRQ_H -#define LIBBSP_ARM_RASPBERRYPI_IRQ_H - -#ifndef ASM - -#include <rtems.h> -#include <rtems/irq.h> -#include <rtems/irq-extension.h> - -/** - * @defgroup raspberrypi_interrupt Interrrupt Support - * - * @ingroup arm_raspberrypi - * - * @brief Interrupt support. - */ - -#define BCM2835_INTC_TOTAL_IRQ 64 + 8 - - -#define BCM2835_IRQ_ID_GPU_TIMER_M0 0 -#define BCM2835_IRQ_ID_GPU_TIMER_M1 1 -#define BCM2835_IRQ_ID_GPU_TIMER_M2 2 -#define BCM2835_IRQ_ID_GPU_TIMER_M3 3 - -#define BCM2835_IRQ_ID_USB 9 -#define BCM2835_IRQ_ID_AUX 29 -#define BCM2835_IRQ_ID_SPI_SLAVE 43 -#define BCM2835_IRQ_ID_PWA0 45 -#define BCM2835_IRQ_ID_PWA1 46 -#define BCM2835_IRQ_ID_SMI 48 -#define BCM2835_IRQ_ID_GPIO_0 49 -#define BCM2835_IRQ_ID_GPIO_1 50 -#define BCM2835_IRQ_ID_GPIO_2 51 -#define BCM2835_IRQ_ID_GPIO_3 52 -#define BCM2835_IRQ_ID_I2C 53 -#define BCM2835_IRQ_ID_SPI 54 -#define BCM2835_IRQ_ID_PCM 55 -#define BCM2835_IRQ_ID_UART 57 -#define BCM2835_IRQ_ID_SD 62 - -#define BCM2835_IRQ_ID_BASIC_BASE_ID 64 -#define BCM2835_IRQ_ID_TIMER_0 64 -#define BCM2835_IRQ_ID_MAILBOX_0 65 -#define BCM2835_IRQ_ID_DOORBELL_0 66 -#define BCM2835_IRQ_ID_DOORBELL_1 67 -#define BCM2835_IRQ_ID_GPU0_HALTED 68 -#define BCM2835_IRQ_ID_GPU1_HALTED 69 -#define BCM2835_IRQ_ID_ILL_ACCESS_1 70 -#define BCM2835_IRQ_ID_ILL_ACCESS_0 71 - -#define BSP_INTERRUPT_VECTOR_MIN (0) -#define BSP_INTERRUPT_VECTOR_MAX (BCM2835_INTC_TOTAL_IRQ - 1) - -#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ) - -#endif /* ASM */ -#endif /* LIBBSP_ARM_RASPBERRYPI_IRQ_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/mailbox.h b/c/src/lib/libbsp/arm/raspberrypi/include/mailbox.h deleted file mode 100644 index e6cb0f8c27..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/mailbox.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @file - * - * @ingroup raspberrypi - * - * @brief mailbox support. - */ -/* - * Copyright (c) 2015 Yang Qiao - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.org/license/LICENSE - * - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_MAILBOX_H -#define LIBBSP_ARM_RASPBERRYPI_MAILBOX_H - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -extern unsigned int raspberrypi_mailbox_read(unsigned int channel); -extern void raspberrypi_mailbox_write(unsigned int channel, unsigned int data); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_MAILBOX_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/mmu.h b/c/src/lib/libbsp/arm/raspberrypi/include/mmu.h deleted file mode 100644 index 45ecc5a2a4..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/mmu.h +++ /dev/null @@ -1,68 +0,0 @@ -/** - * @file - * - * @ingroup rapberrypi_mmu - * - * @brief MMU API. - */ - -/* - * Copyright (c) 2013 Alan Cudmore. - * based on work by: - * Copyright (c) 2009 - * embedded brains GmbH - * Obere Lagerstr. 30 - * D-82178 Puchheim - * Germany - * <rtems@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.org/license/LICENSE - * - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_MMU_H -#define LIBBSP_ARM_RASPBERRYPI_MMU_H - -#include <libcpu/arm-cp15.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @defgroup raspberrypi_mmu MMU Support - * - * @ingroup arm_raspberrypi - * - * @brief MMU support. - * - * @{ - */ - -#define RASPBERRYPI_MMU_CLIENT_DOMAIN 15U - -#define RASPBERRYPI_MMU_READ_ONLY \ - ((RASPBERRYPI_MMU_CLIENT_DOMAIN << ARM_MMU_SECT_DOMAIN_SHIFT) \ - | ARM_MMU_SECT_DEFAULT) - -#define RASPBERRYPI_MMU_READ_ONLY_CACHED \ - (RASPBERRYPI_MMU_READ_ONLY | ARM_MMU_SECT_C | ARM_MMU_SECT_B) - -#define RASPBERRYPI_MMU_READ_WRITE \ - ((RASPBERRYPI_MMU_CLIENT_DOMAIN << ARM_MMU_SECT_DOMAIN_SHIFT) \ - | ARM_MMU_SECT_AP_0 \ - | ARM_MMU_SECT_DEFAULT) - -#define RASPBERRYPI_MMU_READ_WRITE_CACHED \ - (RASPBERRYPI_MMU_READ_WRITE | ARM_MMU_SECT_C | ARM_MMU_SECT_B) - -/** @} */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_MMU_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/raspberrypi.h b/c/src/lib/libbsp/arm/raspberrypi/include/raspberrypi.h deleted file mode 100644 index 4ef5f713ad..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/raspberrypi.h +++ /dev/null @@ -1,572 +0,0 @@ -/** - * @file raspberrypi.h - * - * @ingroup raspberrypi_reg - * - * @brief Register definitions. - */ - -/* - * Copyright (c) 2014-2015 Andre Marques <andre.lousa.marques at gmail.com> - * Copyright (c) 2013 Alan Cudmore. - * Copyright (c) 2015 Yang Qiao - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.org/license/LICENSE - * - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_RASPBERRYPI_H -#define LIBBSP_ARM_RASPBERRYPI_RASPBERRYPI_H - -#include <bspopts.h> -#include <stdint.h> -#include <bsp/utility.h> - -/** - * @defgroup raspberrypi_reg Register Definitions - * - * @ingroup arm_raspberrypi - * - * @brief Register Definitions - * - * @{ - */ - -/** - * @name Register Macros - * - * @{ - */ - -#define BCM2835_REG(x) (*(volatile uint32_t *)(x)) -#define BCM2835_BIT(n) (1 << (n)) - -/** @} */ - -/** - * @name Peripheral Base Register Address - * - * @{ - */ - -#if (BSP_IS_RPI2 == 1) - #define RPI_PERIPHERAL_BASE 0x3F000000 -#else - #define RPI_PERIPHERAL_BASE 0x20000000 -#endif - -#define RPI_PERIPHERAL_SIZE 0x01000000 - -/** - * @name Internal ARM Timer Registers - * - * @{ - */ - -#define BCM2835_CLOCK_FREQ 250000000 - -#define BCM2835_TIMER_BASE (RPI_PERIPHERAL_BASE + 0xB400) - -#define BCM2835_TIMER_LOD (BCM2835_TIMER_BASE + 0x00) -#define BCM2835_TIMER_VAL (BCM2835_TIMER_BASE + 0x04) -#define BCM2835_TIMER_CTL (BCM2835_TIMER_BASE + 0x08) -#define BCM2835_TIMER_CLI (BCM2835_TIMER_BASE + 0x0C) -#define BCM2835_TIMER_RIS (BCM2835_TIMER_BASE + 0x10) -#define BCM2835_TIMER_MIS (BCM2835_TIMER_BASE + 0x14) -#define BCM2835_TIMER_RLD (BCM2835_TIMER_BASE + 0x18) -#define BCM2835_TIMER_DIV (BCM2835_TIMER_BASE + 0x1C) -#define BCM2835_TIMER_CNT (BCM2835_TIMER_BASE + 0x20) - -#define BCM2835_TIMER_PRESCALE 0xF9 - -/** @} */ - -/** - * @name Power Management and Watchdog Registers - * - * @{ - */ - -#define BCM2835_PM_PASSWD_MAGIC 0x5a000000 - -#define BCM2835_PM_BASE (RPI_PERIPHERAL_BASE + 0x100000) - -#define BCM2835_PM_GNRIC (BCM2835_PM_BASE + 0x00) -#define BCM2835_PM_GNRIC_POWUP 0x00000001 -#define BCM2835_PM_GNRIC_POWOK 0x00000002 -#define BCM2835_PM_GNRIC_ISPOW 0x00000004 -#define BCM2835_PM_GNRIC_MEMREP 0x00000008 -#define BCM2835_PM_GNRIC_MRDONE 0x00000010 -#define BCM2835_PM_GNRIC_ISFUNC 0x00000020 -#define BCM2835_PM_GNRIC_RSTN 0x00000fc0 -#define BCM2835_PM_GNRIC_ENAB 0x00001000 -#define BCM2835_PM_GNRIC_CFG 0x007f0000 - -#define BCM2835_PM_AUDIO (BCM2835_PM_BASE + 0x04) -#define BCM2835_PM_AUDIO_APSM 0x000fffff -#define BCM2835_PM_AUDIO_CTRLEN 0x00100000 -#define BCM2835_PM_AUDIO_RSTN 0x00200000 - -#define BCM2835_PM_STATUS (BCM2835_PM_BASE + 0x18) - -#define BCM2835_PM_RSTC (BCM2835_PM_BASE + 0x1c) -#define BCM2835_PM_RSTC_DRCFG 0x00000003 -#define BCM2835_PM_RSTC_WRCFG 0x00000030 -#define BCM2835_PM_RSTC_WRCFG_FULL 0x00000020 -#define BCM2835_PM_RSTC_SRCFG 0x00000300 -#define BCM2835_PM_RSTC_QRCFG 0x00003000 -#define BCM2835_PM_RSTC_FRCFG 0x00030000 -#define BCM2835_PM_RSTC_HRCFG 0x00300000 - -#define BCM2835_PM_RSTS (BCM2835_PM_BASE + 0x20) -#define BCM2835_PM_RSTS_HADDRQ 0x00000001 -#define BCM2835_PM_RSTS_HADDRF 0x00000002 -#define BCM2835_PM_RSTS_HADDRH 0x00000004 -#define BCM2835_PM_RSTS_HADWRQ 0x00000010 -#define BCM2835_PM_RSTS_HADWRF 0x00000020 -#define BCM2835_PM_RSTS_HADWRH 0x00000040 -#define BCM2835_PM_RSTS_HADSRQ 0x00000100 -#define BCM2835_PM_RSTS_HADSRF 0x00000200 -#define BCM2835_PM_RSTS_HADSRH 0x00000400 -#define BCM2835_PM_RSTS_HADPOR 0x00001000 - -#define BCM2835_PM_WDOG (BCM2835_PM_BASE + 0x24) - -/** @} */ - -/** - * @name GPIO Registers - * - * @{ - */ - -#define BCM2835_GPIO_REGS_BASE (RPI_PERIPHERAL_BASE + 0x200000) - -#define BCM2835_GPIO_GPFSEL1 (BCM2835_GPIO_REGS_BASE + 0x04) -#define BCM2835_GPIO_GPSET0 (BCM2835_GPIO_REGS_BASE + 0x1C) -#define BCM2835_GPIO_GPCLR0 (BCM2835_GPIO_REGS_BASE + 0x28) -#define BCM2835_GPIO_GPLEV0 (BCM2835_GPIO_REGS_BASE + 0x34) -#define BCM2835_GPIO_GPEDS0 (BCM2835_GPIO_REGS_BASE + 0x40) -#define BCM2835_GPIO_GPREN0 (BCM2835_GPIO_REGS_BASE + 0x4C) -#define BCM2835_GPIO_GPFEN0 (BCM2835_GPIO_REGS_BASE + 0x58) -#define BCM2835_GPIO_GPHEN0 (BCM2835_GPIO_REGS_BASE + 0x64) -#define BCM2835_GPIO_GPLEN0 (BCM2835_GPIO_REGS_BASE + 0x70) -#define BCM2835_GPIO_GPAREN0 (BCM2835_GPIO_REGS_BASE + 0x7C) -#define BCM2835_GPIO_GPAFEN0 (BCM2835_GPIO_REGS_BASE + 0x88) -#define BCM2835_GPIO_GPPUD (BCM2835_GPIO_REGS_BASE + 0x94) -#define BCM2835_GPIO_GPPUDCLK0 (BCM2835_GPIO_REGS_BASE + 0x98) - -/** @} */ - -/** - * @name AUX Registers - * - * @{ - */ - -#define BCM2835_AUX_BASE (RPI_PERIPHERAL_BASE + 0x215000) - -#define AUX_ENABLES (BCM2835_AUX_BASE + 0x04) -#define AUX_MU_IO_REG (BCM2835_AUX_BASE + 0x40) -#define AUX_MU_IER_REG (BCM2835_AUX_BASE + 0x44) -#define AUX_MU_IIR_REG (BCM2835_AUX_BASE + 0x48) -#define AUX_MU_LCR_REG (BCM2835_AUX_BASE + 0x4C) -#define AUX_MU_MCR_REG (BCM2835_AUX_BASE + 0x50) -#define AUX_MU_LSR_REG (BCM2835_AUX_BASE + 0x54) -#define AUX_MU_MSR_REG (BCM2835_AUX_BASE + 0x58) -#define AUX_MU_SCRATCH (BCM2835_AUX_BASE + 0x5C) -#define AUX_MU_CNTL_REG (BCM2835_AUX_BASE + 0x60) -#define AUX_MU_STAT_REG (BCM2835_AUX_BASE + 0x64) -#define AUX_MU_BAUD_REG (BCM2835_AUX_BASE + 0x68) - -/** @} */ - -/** - * @name UART 0 (PL011) Registers - * - * @{ - */ - -#define BCM2835_UART0_BASE (RPI_PERIPHERAL_BASE + 0x201000) - -#define BCM2835_UART0_DR (BCM2835_UART0_BASE + 0x00) -#define BCM2835_UART0_RSRECR (BCM2835_UART0_BASE + 0x04) -#define BCM2835_UART0_FR (BCM2835_UART0_BASE + 0x18) -#define BCM2835_UART0_ILPR (BCM2835_UART0_BASE + 0x20) -#define BCM2835_UART0_IBRD (BCM2835_UART0_BASE + 0x24) -#define BCM2835_UART0_FBRD (BCM2835_UART0_BASE + 0x28) -#define BCM2835_UART0_LCRH (BCM2835_UART0_BASE + 0x2C) -#define BCM2835_UART0_CR (BCM2835_UART0_BASE + 0x30) -#define BCM2835_UART0_IFLS (BCM2835_UART0_BASE + 0x34) -#define BCM2835_UART0_IMSC (BCM2835_UART0_BASE + 0x38) -#define BCM2835_UART0_RIS (BCM2835_UART0_BASE + 0x3C) -#define BCM2835_UART0_MIS (BCM2835_UART0_BASE + 0x40) -#define BCM2835_UART0_ICR (BCM2835_UART0_BASE + 0x44) -#define BCM2835_UART0_DMACR (BCM2835_UART0_BASE + 0x48) -#define BCM2835_UART0_ITCR (BCM2835_UART0_BASE + 0x80) -#define BCM2835_UART0_ITIP (BCM2835_UART0_BASE + 0x84) -#define BCM2835_UART0_ITOP (BCM2835_UART0_BASE + 0x88) -#define BCM2835_UART0_TDR (BCM2835_UART0_BASE + 0x8C) - -#define BCM2835_UART0_MIS_RX 0x10 -#define BCM2835_UART0_MIS_TX 0x20 -#define BCM2835_UART0_IMSC_RX 0x10 -#define BCM2835_UART0_IMSC_TX 0x20 -#define BCM2835_UART0_FR_RXFE 0x10 -#define BCM2835_UART0_FR_TXFF 0x20 -#define BCM2835_UART0_ICR_RX 0x10 -#define BCM2835_UART0_ICR_TX 0x20 - -/** @} */ - -/** - * @name I2C (BSC) Registers - * - * @{ - */ - -#define BCM2835_I2C_BASE (RPI_PERIPHERAL_BASE + 0x804000) - -#define BCM2835_I2C_C (BCM2835_I2C_BASE + 0x00) -#define BCM2835_I2C_S (BCM2835_I2C_BASE + 0x04) -#define BCM2835_I2C_DLEN (BCM2835_I2C_BASE + 0x08) -#define BCM2835_I2C_A (BCM2835_I2C_BASE + 0x0C) -#define BCM2835_I2C_FIFO (BCM2835_I2C_BASE + 0x10) -#define BCM2835_I2C_DIV (BCM2835_I2C_BASE + 0x14) -#define BCM2835_I2C_DEL (BCM2835_I2C_BASE + 0x18) -#define BCM2835_I2C_CLKT (BCM2835_I2C_BASE + 0x1C) - -/** @} */ - -/** - * @name SPI Registers - * - * @{ - */ - -#define BCM2835_SPI_BASE (RPI_PERIPHERAL_BASE + 0x204000) - -#define BCM2835_SPI_CS (BCM2835_SPI_BASE + 0x00) -#define BCM2835_SPI_FIFO (BCM2835_SPI_BASE + 0x04) -#define BCM2835_SPI_CLK (BCM2835_SPI_BASE + 0x08) -#define BCM2835_SPI_DLEN (BCM2835_SPI_BASE + 0x0C) -#define BCM2835_SPI_LTOH (BCM2835_SPI_BASE + 0x10) -#define BCM2835_SPI_DC (BCM2835_SPI_BASE + 0x14) - -/** @} */ - -/** - * @name I2C/SPI slave BSC Registers - * - * @{ - */ - -#define BCM2835_I2C_SPI_BASE (RPI_PERIPHERAL_BASE + 0x214000) - -#define BCM2835_I2C_SPI_DR (BCM2835_I2C_SPI_BASE + 0x00) -#define BCM2835_I2C_SPI_RSR (BCM2835_I2C_SPI_BASE + 0x04) -#define BCM2835_I2C_SPI_SLV (BCM2835_I2C_SPI_BASE + 0x08) -#define BCM2835_I2C_SPI_CR (BCM2835_I2C_SPI_BASE + 0x0C) -#define BCM2835_I2C_SPI_FR (BCM2835_I2C_SPI_BASE + 0x10) -#define BCM2835_I2C_SPI_IFLS (BCM2835_I2C_SPI_BASE + 0x14) -#define BCM2835_I2C_SPI_IMSC (BCM2835_I2C_SPI_BASE + 0x18) -#define BCM2835_I2C_SPI_RIS (BCM2835_I2C_SPI_BASE + 0x1C) -#define BCM2835_I2C_SPI_MIS (BCM2835_I2C_SPI_BASE + 0x20) -#define BCM2835_I2C_SPI_ICR (BCM2835_I2C_SPI_BASE + 0x24) -#define BCM2835_I2C_SPI_DMACR (BCM2835_I2C_SPI_BASE + 0x28) -#define BCM2835_I2C_SPI_TDR (BCM2835_I2C_SPI_BASE + 0x2C) -#define BCM2835_I2C_SPI_GPUSTAT (BCM2835_I2C_SPI_BASE + 0x30) -#define BCM2835_I2C_SPI_HCTRL (BCM2835_I2C_SPI_BASE + 0x34) - -/** @} */ - -/** - * @name IRQ Registers - * - * @{ - */ - -#define BCM2835_BASE_INTC (RPI_PERIPHERAL_BASE + 0xB200) - -#define BCM2835_IRQ_BASIC (BCM2835_BASE_INTC + 0x00) -#define BCM2835_IRQ_PENDING1 (BCM2835_BASE_INTC + 0x04) -#define BCM2835_IRQ_PENDING2 (BCM2835_BASE_INTC + 0x08) -#define BCM2835_IRQ_FIQ_CTRL (BCM2835_BASE_INTC + 0x0C) -#define BCM2835_IRQ_ENABLE1 (BCM2835_BASE_INTC + 0x10) -#define BCM2835_IRQ_ENABLE2 (BCM2835_BASE_INTC + 0x14) -#define BCM2835_IRQ_ENABLE_BASIC (BCM2835_BASE_INTC + 0x18) -#define BCM2835_IRQ_DISABLE1 (BCM2835_BASE_INTC + 0x1C) -#define BCM2835_IRQ_DISABLE2 (BCM2835_BASE_INTC + 0x20) -#define BCM2835_IRQ_DISABLE_BASIC (BCM2835_BASE_INTC + 0x24) - -/** @} */ - -/** - * @name GPU Timer Registers - * - * @{ - */ - -/** - * NOTE: The GPU uses Compare registers 0 and 2 for - * it's own RTOS. 1 and 3 are available for use in - * RTEMS. - */ -#define BCM2835_GPU_TIMER_BASE (RPI_PERIPHERAL_BASE + 0x3000) - -#define BCM2835_GPU_TIMER_CS (BCM2835_GPU_TIMER_BASE + 0x00) -#define BCM2835_GPU_TIMER_CS_M0 0x00000001 -#define BCM2835_GPU_TIMER_CS_M1 0x00000002 -#define BCM2835_GPU_TIMER_CS_M2 0x00000004 -#define BCM2835_GPU_TIMER_CS_M3 0x00000008 -#define BCM2835_GPU_TIMER_CLO (BCM2835_GPU_TIMER_BASE + 0x04) -#define BCM2835_GPU_TIMER_CHI (BCM2835_GPU_TIMER_BASE + 0x08) -#define BCM2835_GPU_TIMER_C0 (BCM2835_GPU_TIMER_BASE + 0x0C) -#define BCM2835_GPU_TIMER_C1 (BCM2835_GPU_TIMER_BASE + 0x10) -#define BCM2835_GPU_TIMER_C2 (BCM2835_GPU_TIMER_BASE + 0x14) -#define BCM2835_GPU_TIMER_C3 (BCM2835_GPU_TIMER_BASE + 0x18) - -/** @} */ - -/** - * @name EMMC Registers - * - * @{ - */ - -/** - * NOTE: Since the SD controller follows the SDHCI standard, - * the rtems-libbsd tree already provides the remaining registers. - */ - -#define BCM2835_EMMC_BASE (RPI_PERIPHERAL_BASE + 0x300000) - -/** @} */ - -/** -* @name Mailbox Registers -* -* @{ -*/ - -#define BCM2835_MBOX_BASE (RPI_PERIPHERAL_BASE+0xB880) - -#define BCM2835_MBOX_PEEK (BCM2835_MBOX_BASE+0x10) -#define BCM2835_MBOX_READ (BCM2835_MBOX_BASE+0x00) -#define BCM2835_MBOX_WRITE (BCM2835_MBOX_BASE+0x20) -#define BCM2835_MBOX_STATUS (BCM2835_MBOX_BASE+0x18) -#define BCM2835_MBOX_SENDER (BCM2835_MBOX_BASE+0x14) -#define BCM2835_MBOX_CONFIG (BCM2835_MBOX_BASE+0x1C) - -#define BCM2835_MBOX_FULL 0x80000000 -#define BCM2835_MBOX_EMPTY 0x40000000 - -/** @} */ - -/** -* @name Mailbox Channels -* -* @{ -*/ - -/* Power Manager channel */ -#define BCM2835_MBOX_CHANNEL_PM 0 -/* Framebuffer channel */ -#define BCM2835_MBOX_CHANNEL_FB 1 - /* Virtual UART channel */ -#define BCM2835_MBOX_CHANNEL_VUART 2 - /* VCHIQ channel */ -#define BCM2835_MBOX_CHANNEL_VCHIQ 3 - /* LEDs channel */ -#define BCM2835_MBOX_CHANNEL_LED 4 - /* Button channel */ -#define BCM2835_MBOX_CHANNEL_BUTTON 5 - /* Touch screen channel */ -#define BCM2835_MBOX_CHANNEL_TOUCHS 6 -/* Property tags (ARM <-> VC) channel */ -#define BCM2835_MBOX_CHANNEL_PROP_AVC 8 - /* Property tags (VC <-> ARM) channel */ -#define BCM2835_MBOX_CHANNEL_PROP_VCA 9 - -/** @} */ - -/** -* @name USB Registers -* -* @{ -*/ - -#define BCM2835_USB_BASE (RPI_PERIPHERAL_BASE + 0x980000) /* DTC_OTG USB controller */ - -/** @} */ - -/** - * @name Raspberry Pi 2 CPU Cores Local Peripherals - * - * @{ - */ - -#define BCM2836_CORE_LOCAL_PERIPH_BASE 0x40000000 -#define BCM2836_CORE_LOCAL_PERIPH_SIZE 0x00040000 - -/** @} */ - -/** - * @name Raspberry Pi 2 Mailbox Register Defines - * - * @{ - */ - -#define BCM2836_MAILBOX_0_WRITE_SET_BASE 0x40000080 -#define BCM2836_MAILBOX_1_WRITE_SET_BASE 0x40000084 -#define BCM2836_MAILBOX_2_WRITE_SET_BASE 0x40000088 -#define BCM2836_MAILBOX_3_WRITE_SET_BASE 0x4000008C -#define BCM2836_MAILBOX_0_READ_CLEAR_BASE 0x400000C0 -#define BCM2836_MAILBOX_1_READ_CLEAR_BASE 0x400000C4 -#define BCM2836_MAILBOX_2_READ_CLEAR_BASE 0x400000C8 -#define BCM2836_MAILBOX_3_READ_CLEAR_BASE 0x400000CC - -/** @} */ - -/** - * @name Raspberry Pi 2 Core Timer - * - * @{ - */ - -#define BCM2836_CORE_TIMER_CTRL 0x40000000 - -#define BCM2836_CORE_TIMER_CTRL_APB_CLK 0x00000100 -#define BCM2836_CORE_TIMER_CTRL_INC_2 0x00000200 - -#define BCM2836_CORE_TIMER_PRESCALER 0x40000008 - -#define BCM2836_CORE_TIMER_LS32 0x4000001C -#define BCM2836_CORE_TIMER_MS32 0x40000020 - -/** @} */ - -/** - * @name Raspberry Pi 2 Local Timer - * - * @{ - */ - -#define BCM2836_LOCAL_TIMER_CTRL 0x40000034 - -#define BCM2836_LOCAL_TIMER_CTRL_IRQ_FLAG 0x80000000 -#define BCM2836_LOCAL_TIMER_CTRL_IRQ_EN 0x20000000 -#define BCM2836_LOCAL_TIMER_CTRL_TIMER_EN 0x10000000 -#define BCM2836_LOCAL_TIMER_RELOAD 0x0FFFFFFF - -#define BCM2836_LOCAL_TIMER_IRQ_RELOAD 0x40000038 - -#define BCM2836_LOCAL_TIMER_IRQ_CLEAR 0x80000000 -#define BCM2836_LOCAL_TIMER_RELOAD_NOW 0x40000000 - -#define BCM2836_LOCAL_TIMER_IRQ_ROUTING 0x40000024 -#define BCM2836_LOCAL_TIMER_ROU_CORE0_IRQ 0x00 -#define BCM2836_LOCAL_TIMER_ROU_CORE1_IRQ 0x01 -#define BCM2836_LOCAL_TIMER_ROU_CORE2_IRQ 0x02 -#define BCM2836_LOCAL_TIMER_ROU_CORE3_IRQ 0x03 -#define BCM2836_LOCAL_TIMER_ROU_CORE0_FIQ 0x04 -#define BCM2836_LOCAL_TIMER_ROU_CORE1_FIQ 0x05 -#define BCM2836_LOCAL_TIMER_ROU_CORE2_FIQ 0x06 -#define BCM2836_LOCAL_TIMER_ROU_CORE3_FIQ 0x07 - -/** @} */ - -/** - * @name Raspberry Pi 2 IRQ Routing - * - * @{ - */ - -#define BCM2836_GPU_IRQ_ROUTING 0x4000000C - -#define BCM2836_GPU_IRQ_ROU_GPU_IRQ_CORE0 0x00000000 -#define BCM2836_GPU_IRQ_ROU_GPU_IRQ_CORE1 0x00000001 -#define BCM2836_GPU_IRQ_ROU_GPU_IRQ_CORE2 0x00000002 -#define BCM2836_GPU_IRQ_ROU_GPU_IRQ_CORE4 0x00000003 - -#define BCM2836_GPU_IRQ_ROU_GPU_FIQ_CORE0 0x00000000 -#define BCM2836_GPU_IRQ_ROU_GPU_FIQ_CORE1 0x00000004 -#define BCM2836_GPU_IRQ_ROU_GPU_FIQ_CORE2 0x00000008 -#define BCM2836_GPU_IRQ_ROU_GPU_FIQ_CORE4 0x0000000C - -#define BCM2836_GPU_IRQ_ROU_GPU_FIQ_CORE4 0x0000000C - - -/** @} */ - -/** - * @name Raspberry Pi 2 Interrupt Register Defines - * - * @{ - */ - -/* Timers interrupt control registers */ -#define BCM2836_CORE0_TIMER_IRQ_CTRL_BASE 0x40000040 -#define BCM2836_CORE1_TIMER_IRQ_CTRL_BASE 0x40000044 -#define BCM2836_CORE2_TIMER_IRQ_CTRL_BASE 0x40000048 -#define BCM2836_CORE3_TIMER_IRQ_CTRL_BASE 0x4000004C - -#define BCM2836_CORE_TIMER_IRQ_CTRL(cpuidx) \ - (BCM2836_CORE0_TIMER_IRQ_CTRL_BASE + 0x4 * (cpuidx)) - -/* - * Where to route timer interrupt to, IRQ/FIQ - * Setting both the IRQ and FIQ bit gives an FIQ - */ -#define BCM2836_CORE_TIMER_IRQ_CTRL_TIMER0_IRQ 0x01 -#define BCM2836_CORE_TIMER_IRQ_CTRL_TIMER1_IRQ 0x02 -#define BCM2836_CORE_TIMER_IRQ_CTRL_TIMER2_IRQ 0x04 -#define BCM2836_CORE_TIMER_IRQ_CTRL_TIMER3_IRQ 0x08 -#define BCM2836_CORE_TIMER_IRQ_CTRL_TIMER0_FIQ 0x10 -#define BCM2836_CORE_TIMER_IRQ_CTRL_TIMER1_FIQ 0x20 -#define BCM2836_CORE_TIMER_IRQ_CTRL_TIMER2_FIQ 0x40 -#define BCM2836_CORE_TIMER_IRQ_CTRL_TIMER3_FIQ 0x80 - -/* CPU mailbox registers */ -#define BCM2836_MAILBOX_IRQ_CTRL_BASE 0x40000050 -#define BCM2836_MAILBOX_IRQ_CTRL(cpuidx) \ - (BCM2836_MAILBOX_IRQ_CTRL_BASE + 0x4 * (cpuidx)) -/* - * Where to route mailbox interrupt to, IRQ/FIQ - * Setting both the IRQ and FIQ bit gives an FIQ - */ -#define BCM2836_MAILBOX_IRQ_CTRL_MBOX0_IRQ 0x01 -#define BCM2836_MAILBOX_IRQ_CTRL_MBOX1_IRQ 0x02 -#define BCM2836_MAILBOX_IRQ_CTRL_MBOX2_IRQ 0x04 -#define BCM2836_MAILBOX_IRQ_CTRL_MBOX3_IRQ 0x08 -#define BCM2836_MAILBOX_IRQ_CTRL_MBOX0_FIQ 0x10 -#define BCM2836_MAILBOX_IRQ_CTRL_MBOX1_FIQ 0x20 -#define BCM2836_MAILBOX_IRQ_CTRL_MBOX2_FIQ 0x40 -#define BCM2836_MAILBOX_IRQ_CTRL_MBOX3_FIQ 0x80 - -#define BCM2836_IRQ_SOURCE_REG_BASE 0x40000060 -#define BCM2836_IRQ_SOURCE_REG(cpuidx) \ - (BCM2836_IRQ_SOURCE_REG_BASE + 0x4 * (cpuidx)) - -#define BCM2836_FIQ_SOURCE_REG_BASE 0x40000070 -#define BCM2836_FIQ_SOURCE_REG(cpuidx) \ - (BCM2836_FIQ_SOURCE_REG_BASE + 0x4 * (cpuidx)) - -#define BCM2836_IRQ_SOURCE_TIMER0 0x00000001 -#define BCM2836_IRQ_SOURCE_TIMER1 0x00000002 -#define BCM2836_IRQ_SOURCE_TIMER2 0x00000004 -#define BCM2836_IRQ_SOURCE_TIMER3 0x00000008 -#define BCM2836_IRQ_SOURCE_MBOX0 0x00000010 -#define BCM2836_IRQ_SOURCE_MBOX1 0x00000020 -#define BCM2836_IRQ_SOURCE_MBOX2 0x00000040 -#define BCM2836_IRQ_SOURCE_MBOX3 0x00000080 -#define BCM2836_IRQ_SOURCE_GPU 0x00000100 -#define BCM2836_IRQ_SOURCE_PMU 0x00000200 -#define BCM2836_IRQ_SOURCE_LOCAL_TIMER 0x00000800 - -/** @} */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_RASPBERRYPI_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/rpi-fb.h b/c/src/lib/libbsp/arm/raspberrypi/include/rpi-fb.h deleted file mode 100644 index 4f3c07fea2..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/rpi-fb.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - * @file - * - * @ingroup raspberrypi_fb - * - * @brief framebuffer support and setup - * - */ - -/* - * Copyright (c) 2015 Yang Qiao - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.org/license/LICENSE - * - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_FB_H -#define LIBBSP_ARM_RASPBERRYPI_FB_H - -#include <rtems/fb.h> - -/** - * @defgroup raspberrypi_fb - * - * @ingroup arm_raspberrypi - * - * @brief Framebuffer support and setup - * - * @{ - */ - -enum rpi_fb_init_result { - RPI_FB_INIT_OK = 0, - RPI_FB_INIT_ALREADY_INITIALIZED = 1, - RPI_FB_INIT_GENERIC_ERROR = -1, - RPI_FB_INIT_NO_DISPLAY = -2, - RPI_FB_INIT_CMDLINE_BAD_FORMAT = -3, - RPI_FB_INIT_CMDLINE_DONT_INIT = -4, - RPI_FB_INIT_CMDLINE_NO_MODE_REQ = -5, - RPI_FB_INIT_MODE_PROBE_ERROR = -6, - RPI_FB_INIT_SETUP_FAILED = -7, - RPI_FB_INIT_START_ADDR_UNKNOWN = -8, -}; - -int rpi_fb_init( void ); -int rpi_get_fix_screen_info( struct fb_fix_screeninfo *info ); -int rpi_get_var_screen_info( struct fb_var_screeninfo *info ); -bool rpi_fb_hdmi_is_present( void ); - -/** @} */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_FB_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/rpi-gpio.h b/c/src/lib/libbsp/arm/raspberrypi/include/rpi-gpio.h deleted file mode 100644 index 82ba4b1f2a..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/rpi-gpio.h +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @file rpi-gpio.h - * - * @ingroup raspberrypi_gpio - * - * @brief Raspberry Pi specific GPIO definitions. - */ - -/* - * Copyright (c) 2015 Andre Marques <andre.lousa.marques at gmail.com> - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_RPI_GPIO_H -#define LIBBSP_ARM_RASPBERRYPI_RPI_GPIO_H - -#include <rtems.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @brief Raspberry Pi GPIO functions. - */ -#define RPI_DIGITAL_IN 0 -#define RPI_DIGITAL_OUT 1 -#define RPI_ALT_FUNC_0 4 -#define RPI_ALT_FUNC_1 5 -#define RPI_ALT_FUNC_2 6 -#define RPI_ALT_FUNC_3 7 -#define RPI_ALT_FUNC_4 3 -#define RPI_ALT_FUNC_5 2 -#define RPI_ALT_FUNC_MASK 7 - -/** - * @brief Setups a JTAG interface. - * - * @retval RTEMS_SUCCESSFUL JTAG interface successfully configured. - * @retval * At least one of the required pins is currently - * occupied, @see rtems_gpio_request_pin_group(). - */ -extern rtems_status_code rpi_gpio_select_jtag(void); - -/** - * @brief Setups a SPI interface. - * - * @retval RTEMS_SUCCESSFUL SPI interface successfully configured. - * @retval * At least one of the required pins is currently - * occupied, @see rtems_gpio_request_pin_group(). - */ -extern rtems_status_code rpi_gpio_select_spi(void); - -/** - * @brief Setups a I2C interface. - * - * @retval RTEMS_SUCCESSFUL I2C interface successfully configured. - * @retval * At least one of the required pins is currently - * occupied, @see rtems_gpio_request_pin_group(). - */ -extern rtems_status_code rpi_gpio_select_i2c(void); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_RPI_GPIO_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/spi.h b/c/src/lib/libbsp/arm/raspberrypi/include/spi.h deleted file mode 100644 index 1bbbc6d2a4..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/spi.h +++ /dev/null @@ -1,77 +0,0 @@ -/** - * @file spi.h - * - * @ingroup raspberrypi_spi - * - * @brief Raspberry Pi specific SPI definitions. - */ - -/* - * Copyright (c) 2014-2015 Andre Marques <andre.lousa.marques at gmail.com> - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_SPI_H -#define LIBBSP_ARM_RASPBERRYPI_SPI_H - -#include <rtems/libi2c.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @name SPI constants. - * - * @{ - */ - -/** - * @brief GPU processor core clock rate in Hz. - * - * Unless configured otherwise on a "config.txt" file present on the SD card - * the GPU defaults to 250 MHz. Currently only 250 MHz is supported. - */ - -/* TODO: It would be nice if this value could be probed at startup, probably - * using the Mailbox interface since the usual way of setting this on - * the hardware is through a "config.txt" text file on the SD card. - * Having this setup on the configure.ac script would require changing - * the same setting on two different places. */ -#define GPU_CORE_CLOCK_RATE 250000000 - -/** @} */ - -/** - * @name SPI directives. - * - * @{ - */ - -/** - * @brief Setups the Raspberry Pi SPI bus (located on the GPIO header) - * on the "/dev/spi" device file, and registers the bus on the - * libi2c API. - * - * @param[in] bidirectional_mode If TRUE sets the SPI bus to use 2-wire SPI, - * where the MOSI data line doubles as the - * slave out (SO) and slave in (SI) data lines. - * If FALSE the bus defaults to the usual - * 3-wire SPI, with 2 separate data lines - * (MOSI and MISO). - * - * @retval Returns libi2c bus number. - * @retval <0 Could not register the bus. See @see rtems_libi2c_register_bus(). - */ -extern int rpi_spi_init(bool bidirectional_mode); - -/** @} */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_SPI_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/tm27.h b/c/src/lib/libbsp/arm/raspberrypi/include/tm27.h deleted file mode 100644 index 0dfa7bf628..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/tm27.h +++ /dev/null @@ -1 +0,0 @@ -#include <rtems/tm27-default.h> diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/usart.h b/c/src/lib/libbsp/arm/raspberrypi/include/usart.h deleted file mode 100644 index 491392b1f7..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/usart.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @file - * - * @ingroup raspberrypi_usart - * - * @brief USART support. - */ - - -/** - * @defgroup raspberrypi_usart USART Support - * - * @ingroup arm_raspberrypi - * - * @brief Universal Synchronous/Asynchronous Receiver/Transmitter (USART) Support - */ - -/* - * Copyright (c) 2013 Alan Cudmore. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_USART_H -#define LIBBSP_ARM_RASPBERRYPI_USART_H - -#include <libchip/serial.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#define USART0_DEFAULT_BAUD 115000 - -extern const console_fns bcm2835_usart_fns; - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_USART_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/vc.h b/c/src/lib/libbsp/arm/raspberrypi/include/vc.h deleted file mode 100644 index e863732cd5..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/include/vc.h +++ /dev/null @@ -1,157 +0,0 @@ -/** - * @file - * - * @ingroup raspberrypi_vc - * - * @brief video core support. - * - */ - -/* - * Copyright (c) 2015 Yang Qiao - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.org/license/LICENSE - * - */ - -#ifndef LIBBSP_ARM_RASPBERRYPI_VC_H -#define LIBBSP_ARM_RASPBERRYPI_VC_H - -/** - * @defgroup raspberrypi_vc Register Definitions - * - * @ingroup arm_raspberrypi - * - * @brief Register Definitions - * - * @{ - */ - -typedef struct { - uint32_t width; - uint32_t height; -} bcm2835_get_display_size_entries; - -int bcm2835_mailbox_get_display_size( - bcm2835_get_display_size_entries *_entries ); - -typedef enum { - bcm2835_mailbox_pixel_order_bgr = 0, - bcm2835_mailbox_pixel_order_rgb = 1 -} bcm2835_pixel_order; - -typedef enum { - bcm2835_mailbox_alpha_mode_0_opaque = 0, - bcm2835_mailbox_alpha_mode_0_transparent = 1, - bcm2835_mailbox_alpha_mode_ignored = 2 -} bcm2835_alpha_mode; - -typedef struct { - uint32_t xres; - uint32_t yres; - uint32_t xvirt; - uint32_t yvirt; - uint32_t depth; - bcm2835_pixel_order pixel_order; - bcm2835_alpha_mode alpha_mode; - uint32_t voffset_x; - uint32_t voffset_y; - uint32_t overscan_left; - uint32_t overscan_right; - uint32_t overscan_top; - uint32_t overscan_bottom; - uint32_t base; - size_t size; - uint32_t pitch; -} bcm2835_init_frame_buffer_entries; - -int bcm2835_mailbox_init_frame_buffer( - bcm2835_init_frame_buffer_entries *_entries ); - -typedef struct { - uint32_t pitch; -} bcm2835_get_pitch_entries; - -int bcm2835_mailbox_get_pitch( bcm2835_get_pitch_entries *_entries ); - -typedef struct { - char cmdline[ 1024 ]; -} bcm2835_get_cmdline_entries; - -int bcm2835_mailbox_get_cmdline( bcm2835_get_cmdline_entries *_entries ); - -typedef enum { - bcm2835_mailbox_power_udid_sd_card = 0x00000000u, - bcm2835_mailbox_power_udid_uart0 = 0x00000001u, - bcm2835_mailbox_power_udid_uart1 = 0x00000002u, - bcm2835_mailbox_power_udid_usb_hcd = 0x00000003u, - bcm2835_mailbox_power_udid_i2c0 = 0x00000004u, - bcm2835_mailbox_power_udid_i2c1 = 0x00000005u, - bcm2835_mailbox_power_udid_i2c2 = 0x00000006u, - bcm2835_mailbox_power_udid_spi = 0x00000007u, - bcm2835_mailbox_power_udid_ccp2tx = 0x00000008u, -} bcm2835_power_device_id; - -typedef struct { - bcm2835_power_device_id dev_id; - uint32_t state; -} bcm2835_set_power_state_entries; - -#define BCM2835_MAILBOX_SET_POWER_STATE_REQ_ON ( 1 << 0 ) -#define BCM2835_MAILBOX_SET_POWER_STATE_REQ_WAIT ( 1 << 1 ) -#define BCM2835_MAILBOX_POWER_STATE_ON ( 1 << 0 ) -#define BCM2835_MAILBOX_POWER_STATE_NODEV ( 1 << 1 ) -int bcm2835_mailbox_set_power_state( bcm2835_set_power_state_entries *_entries ); - -int bcm2835_mailbox_get_power_state( bcm2835_set_power_state_entries *_entries ); - -typedef struct { - uint32_t base; - size_t size; -} bcm2835_get_arm_memory_entries; - -int bcm2835_mailbox_get_arm_memory( bcm2835_get_arm_memory_entries *_entries ); - -typedef struct { - uint32_t base; - size_t size; -} bcm2835_get_vc_memory_entries; - -int bcm2835_mailbox_get_vc_memory( bcm2835_get_vc_memory_entries *_entries ); - -typedef struct { - uint32_t fw_rev; -} bcm2835_mailbox_get_fw_rev_entries; - -int bcm2835_mailbox_get_firmware_revision( - bcm2835_mailbox_get_fw_rev_entries *_entries ); - -typedef struct { - uint32_t spec; -} bcm2835_get_board_spec_entries; - -int bcm2835_mailbox_get_board_model( bcm2835_get_board_spec_entries *_entries ); - -int bcm2835_mailbox_get_board_revision( - bcm2835_get_board_spec_entries *_entries ); - -typedef struct { - uint64_t board_serial; -} bcm2835_get_board_serial_entries; - -int bcm2835_mailbox_get_board_serial( - bcm2835_get_board_serial_entries *_entries ); - -typedef struct { - uint32_t clock_id; - uint32_t clock_rate; -} bcm2835_get_clock_rate_entries; - -int bcm2835_mailbox_get_clock_rate( - bcm2835_get_clock_rate_entries *_entries ); -/** @} */ - -#endif /* LIBBSP_ARM_RASPBERRYPI_VC_H */ diff --git a/c/src/lib/libbsp/arm/raspberrypi/preinstall.am b/c/src/lib/libbsp/arm/raspberrypi/preinstall.am deleted file mode 100644 index 9dca9cfafe..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/preinstall.am +++ /dev/null @@ -1,167 +0,0 @@ -## Automatically generated by ampolish3 - Do not edit - -if AMPOLISH3 -$(srcdir)/preinstall.am: Makefile.am - $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am -endif - -PREINSTALL_DIRS = -DISTCLEANFILES += $(PREINSTALL_DIRS) - -all-am: $(PREINSTALL_FILES) - -PREINSTALL_FILES = -CLEANFILES = $(PREINSTALL_FILES) - -all-local: $(TMPINSTALL_FILES) - -TMPINSTALL_FILES = -CLEANFILES += $(TMPINSTALL_FILES) - -$(PROJECT_LIB)/$(dirstamp): - @$(MKDIR_P) $(PROJECT_LIB) - @: > $(PROJECT_LIB)/$(dirstamp) -PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp) - -$(PROJECT_INCLUDE)/$(dirstamp): - @$(MKDIR_P) $(PROJECT_INCLUDE) - @: > $(PROJECT_INCLUDE)/$(dirstamp) -PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp) - -$(PROJECT_INCLUDE)/bsp/$(dirstamp): - @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp - @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp) -PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp) - -$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs -PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs - -$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h - -$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h - -$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h - -$(PROJECT_INCLUDE)/bsp/bootcard.h: ../../shared/include/bootcard.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bootcard.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bootcard.h - -$(PROJECT_INCLUDE)/bsp/mm.h: ../../../libbsp/shared/include/mm.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/mm.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/mm.h - -$(PROJECT_INCLUDE)/bsp/utility.h: ../../shared/include/utility.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/utility.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/utility.h - -$(PROJECT_INCLUDE)/bsp/irq-generic.h: ../../shared/include/irq-generic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-generic.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-generic.h - -$(PROJECT_INCLUDE)/bsp/irq-info.h: ../../shared/include/irq-info.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-info.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-info.h - -$(PROJECT_INCLUDE)/bsp/stackalloc.h: ../../shared/include/stackalloc.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/stackalloc.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/stackalloc.h - -$(PROJECT_INCLUDE)/bsp/uart-output-char.h: ../../shared/include/uart-output-char.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/uart-output-char.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/uart-output-char.h - -$(PROJECT_INCLUDE)/bsp/gpio.h: ../../shared/include/gpio.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/gpio.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/gpio.h - -$(PROJECT_INCLUDE)/bsp/linker-symbols.h: ../shared/include/linker-symbols.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/linker-symbols.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/linker-symbols.h - -$(PROJECT_INCLUDE)/bsp/start.h: ../shared/include/start.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/start.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/start.h - -$(PROJECT_INCLUDE)/bsp/arm-cp15-start.h: ../shared/include/arm-cp15-start.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-cp15-start.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-cp15-start.h - -$(PROJECT_INCLUDE)/bsp/arm-errata.h: ../shared/include/arm-errata.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-errata.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-errata.h - -$(PROJECT_INCLUDE)/bsp/lpc-timer.h: ../shared/lpc/include/lpc-timer.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-timer.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-timer.h - -$(PROJECT_INCLUDE)/bsp/lpc-dma.h: ../shared/lpc/include/lpc-dma.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-dma.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-dma.h - -$(PROJECT_INCLUDE)/bsp/arm-release-id.h: ../shared/include/arm-release-id.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-release-id.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-release-id.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 - -$(PROJECT_INCLUDE)/bsp/mmu.h: include/mmu.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/mmu.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/mmu.h - -$(PROJECT_INCLUDE)/bsp/usart.h: include/usart.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/usart.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/usart.h - -$(PROJECT_INCLUDE)/bsp/raspberrypi.h: include/raspberrypi.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/raspberrypi.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/raspberrypi.h - -$(PROJECT_INCLUDE)/bsp/rpi-gpio.h: include/rpi-gpio.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/rpi-gpio.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/rpi-gpio.h - -$(PROJECT_INCLUDE)/bsp/i2c.h: include/i2c.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/i2c.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/i2c.h - -$(PROJECT_INCLUDE)/bsp/spi.h: include/spi.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/spi.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/spi.h - -$(PROJECT_INCLUDE)/bsp/mailbox.h: include/mailbox.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/mailbox.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/mailbox.h - -$(PROJECT_INCLUDE)/bsp/vc.h: include/vc.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/vc.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vc.h - -$(PROJECT_INCLUDE)/bsp/rpi-fb.h: include/rpi-fb.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/rpi-fb.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/rpi-fb.h - -$(PROJECT_INCLUDE)/bsp/fbcons.h: console/fbcons.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/fbcons.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/fbcons.h - -$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT) -TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT) - -$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds -TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds - -$(PROJECT_LIB)/linkcmds.base: ../shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base -TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base - diff --git a/c/src/lib/libbsp/arm/raspberrypi/bsp_specs b/c/src/lib/libbsp/arm/raspberrypi/startup/bsp_specs index 47dd31d46b..47dd31d46b 100644 --- a/c/src/lib/libbsp/arm/raspberrypi/bsp_specs +++ b/c/src/lib/libbsp/arm/raspberrypi/startup/bsp_specs |