Hi Kinsey, Thanks for the suggestions. I'll break it up into several commits as you suggested. Shall I break it down as follows?
- Build spec changes - Formatting changes - Macro renamings Regards, Utkarsh On Mon, Aug 7, 2023 at 8:49 PM Kinsey Moore <kinsey.mo...@oarcorp.com> wrote: > I would say that the content here is easily worth several patches. You've > got header rearrangements and other formatting changes mixed in with macro > renamings, build system changes, and other things. One comment below on the > .gitignore. You've also got inconsistencies in usage of (C) vs (c). > > On Sun, Aug 6, 2023 at 11:49 PM Utkarsh Verma <utka...@bitbanged.com> > wrote: > >> From: Utkarsh Verma <utkarshve...@protonmail.com> >> >> Refactor the code base for better organization to facilitate future >> patches. >> --- >> .gitignore | 4 + >> bsps/aarch64/raspberrypi/console/console.c | 42 +- >> bsps/aarch64/raspberrypi/include/bsp.h | 33 +- >> .../aarch64/raspberrypi/include/bsp/bcm2711.h | 98 ++++ >> bsps/aarch64/raspberrypi/include/bsp/irq.h | 94 ++-- >> .../raspberrypi/include/bsp/raspberrypi.h | 471 ------------------ >> .../include/bsp/start/bspstartmmu.h | 8 + >> bsps/aarch64/raspberrypi/start/bspstart.c | 18 +- >> .../aarch64/raspberrypi/start/bspstarthooks.c | 26 +- >> bsps/aarch64/raspberrypi/start/bspstartmmu.c | 66 +-- >> spec/build/bsps/aarch64/raspberrypi/abi.yml | 37 +- >> spec/build/bsps/aarch64/raspberrypi/bsp4b.yml | 23 + >> .../aarch64/raspberrypi/bspraspberrypi4.yml | 72 --- >> spec/build/bsps/aarch64/raspberrypi/grp.yml | 49 ++ >> spec/build/bsps/aarch64/raspberrypi/grp4b.yml | 26 + >> .../{linkercmds.yml => linkcmds.yml} | 25 +- >> spec/build/bsps/aarch64/raspberrypi/obj.yml | 50 ++ >> .../aarch64/raspberrypi/objconsolepl011.yml | 24 + >> .../aarch64/raspberrypi/optclockpl011freq.yml | 23 + >> .../aarch64/raspberrypi/optconsolebaud.yml | 23 + >> 20 files changed, 487 insertions(+), 725 deletions(-) >> create mode 100644 bsps/aarch64/raspberrypi/include/bsp/bcm2711.h >> delete mode 100644 bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h >> create mode 100644 >> bsps/aarch64/raspberrypi/include/bsp/start/bspstartmmu.h >> create mode 100644 spec/build/bsps/aarch64/raspberrypi/bsp4b.yml >> delete mode 100644 >> spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml >> create mode 100644 spec/build/bsps/aarch64/raspberrypi/grp.yml >> create mode 100644 spec/build/bsps/aarch64/raspberrypi/grp4b.yml >> rename spec/build/bsps/aarch64/raspberrypi/{linkercmds.yml => >> linkcmds.yml} (90%) >> create mode 100644 spec/build/bsps/aarch64/raspberrypi/obj.yml >> create mode 100644 >> spec/build/bsps/aarch64/raspberrypi/objconsolepl011.yml >> create mode 100644 >> spec/build/bsps/aarch64/raspberrypi/optclockpl011freq.yml >> create mode 100644 spec/build/bsps/aarch64/raspberrypi/optconsolebaud.yml >> >> diff --git a/.gitignore b/.gitignore >> index 8b28b186e1..d0144f6737 100644 >> --- a/.gitignore >> +++ b/.gitignore >> @@ -12,3 +12,7 @@ Makefile.in >> /testsuites/build/build >> /testsuites/build/wscript >> .waf* >> +.clangd >> +.clang-format >> +compile_commands.json >> +.cache/ >> > > While the clang and cache entries here are probably reasonable to go > upstream, I don't think "compile_commands.json" is. > > > >> diff --git a/bsps/aarch64/raspberrypi/console/console.c >> b/bsps/aarch64/raspberrypi/console/console.c >> index 73bb0036ff..4aba0ec73e 100644 >> --- a/bsps/aarch64/raspberrypi/console/console.c >> +++ b/bsps/aarch64/raspberrypi/console/console.c >> @@ -3,13 +3,14 @@ >> /** >> * @file >> * >> - * @ingroup RTEMSBSPsAArch64Raspberrypi4 >> + * @ingroup RTEMSBSPsAArch64RaspberryPi >> * >> * @brief Console Configuration >> */ >> >> /* >> - * Copyright (C) 2022 Mohd Noor Aman >> + * Copyright (c) 2022 Mohd Noor Aman >> + * Copyright (c) 2023 Utkarsh Verma >> * >> * >> * Redistribution and use in source and binary forms, with or without >> @@ -34,36 +35,33 @@ >> * POSSIBILITY OF SUCH DAMAGE. >> */ >> >> -#include <rtems/bspIo.h> >> - >> -#include <bsp.h> >> -#include <dev/serial/arm-pl011.h> >> #include <bsp/console-termios.h> >> - >> #include <bspopts.h> >> +#include <dev/serial/arm-pl011.h> >> +#include <rtems/bspIo.h> >> >> -arm_pl011_context raspberrypi_4_context = { >> - .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("PL011"), >> - .regs = (volatile pl011 *) BSP_RPI4_PL011_BASE, >> - .initial_baud = 115200 >> +#include "bsp.h" >> + >> +arm_pl011_context uart0 = { >> + .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("PL011"), >> + .regs = (volatile pl011 *)BSP_UART0_BASE, >> + .initial_baud = BSP_CONSOLE_BAUD, >> }; >> >> const console_device console_device_table[] = { >> - { >> - .device_file = "/dev/ttyS0", >> - .probe = console_device_probe_default, >> - .handler = &arm_pl011_fns, >> - .context = &raspberrypi_4_context.base >> - } >> + { >> + .device_file = "/dev/ttyAMA0", >> + .probe = console_device_probe_default, >> + .handler = &arm_pl011_fns, >> + .context = &uart0.base, >> + }, >> }; >> >> const size_t console_device_count = >> RTEMS_ARRAY_SIZE(console_device_table); >> >> -static void output_char( char c ) >> -{ >> - arm_pl011_write_polled(&raspberrypi_4_context.base, c); >> +static void output_char(char c) { >> + arm_pl011_write_polled(&uart0.base, c); >> } >> >> -BSP_output_char_function_type BSP_output_char = output_char; >> - >> +BSP_output_char_function_type BSP_output_char = output_char; >> BSP_polling_getchar_function_type BSP_poll_char = NULL; >> diff --git a/bsps/aarch64/raspberrypi/include/bsp.h >> b/bsps/aarch64/raspberrypi/include/bsp.h >> index 4fa81edd40..0c2b4c98eb 100644 >> --- a/bsps/aarch64/raspberrypi/include/bsp.h >> +++ b/bsps/aarch64/raspberrypi/include/bsp.h >> @@ -3,13 +3,14 @@ >> /** >> * @file >> * >> - * @ingroup RTEMSBSPsAArch64Raspberrypi4 >> + * @ingroup RTEMSBSPsAArch64RaspberryPi >> * >> * @brief Core BSP definitions >> */ >> >> /* >> * Copyright (C) 2022 Mohd Noor Aman >> + * Copyright (C) 2023 Utkarsh Verma >> * >> * >> * Redistribution and use in source and binary forms, with or without >> @@ -34,8 +35,8 @@ >> * POSSIBILITY OF SUCH DAMAGE. >> */ >> >> -#ifndef LIBBSP_AARCH64_RASPBERRYPI_4_BSP_H >> -#define LIBBSP_AARCH64_RASPBERRYPI_4_BSP_H >> +#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_H >> +#define LIBBSP_AARCH64_RASPBERRYPI_BSP_H >> >> /** >> * @addtogroup RTEMSBSPsAArch64 >> @@ -48,26 +49,18 @@ >> #ifndef ASM >> >> #include <bsp/default-initial-extension.h> >> -#include <bsp/start.h> >> >> -#include <rtems.h> >> +#if RTEMS_BSP == raspberrypi4b >> +#include "bsp/bcm2711.h" >> >> -/*Raspberry pi MMU initialization */ >> -BSP_START_TEXT_SECTION void raspberrypi_4_setup_mmu_and_cache(void); >> +#define BSP_GIC_BASE BCM2711_GIC_BASE >> +#define BSP_GIC_SIZE BCM2711_GIC_SIZE >> +#define BSP_ARM_GIC_CPUIF_BASE BCM2711_GIC_CPUIF_BASE >> +#define BSP_ARM_GIC_DIST_BASE BCM2711_GIC_DIST_BASE >> >> -#ifdef __cplusplus >> -extern "C" { >> -#endif /* __cplusplus */ >> - >> -#define BSP_ARM_GIC_CPUIF_BASE 0xFF842000 >> -#define BSP_ARM_GIC_DIST_BASE 0xFF841000 >> - >> -#define BSP_RPI4_PL011_BASE 0xFE201000 >> -#define BSP_RPI4_PL011_LENGTH 0x200 >> - >> -#ifdef __cplusplus >> -} >> -#endif /* __cplusplus */ >> +#define BSP_UART0_BASE BCM2711_UART0_BASE >> +#define BSP_UART0_SIZE BCM2711_UART0_SIZE >> +#endif /* raspberrypi4b */ >> >> #endif /* ASM */ >> >> diff --git a/bsps/aarch64/raspberrypi/include/bsp/bcm2711.h >> b/bsps/aarch64/raspberrypi/include/bsp/bcm2711.h >> new file mode 100644 >> index 0000000000..885dad8af9 >> --- /dev/null >> +++ b/bsps/aarch64/raspberrypi/include/bsp/bcm2711.h >> @@ -0,0 +1,98 @@ >> +/* SPDX-License-Identifier: BSD-2-Clause */ >> + >> +/** >> + * @file >> + * >> + * @ingroup RTEMSBSPsAArch64RaspberryPi >> + * >> + * @brief Register definitions >> + */ >> + >> +/* >> + * Copyright (C) 2022 Mohd Noor Aman >> + * Copyright (C) 2023 Utkarsh Verma >> + * >> + * >> + * Redistribution and use in source and binary forms, with or without >> + * modification, are permitted provided that the following conditions >> + * are met: >> + * 1. Redistributions of source code must retain the above copyright >> + * notice, this list of conditions and the following disclaimer. >> + * 2. Redistributions in binary form must reproduce the above copyright >> + * notice, this list of conditions and the following disclaimer in the >> + * documentation and/or other materials provided with the >> distribution. >> + * >> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS >> "AS IS" >> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >> THE >> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >> PURPOSE >> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS >> BE >> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR >> BUSINESS >> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER >> IN >> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR >> OTHERWISE) >> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED >> OF THE >> + * POSSIBILITY OF SUCH DAMAGE. >> + */ >> + >> +#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_BCM2711_H >> +#define LIBBSP_AARCH64_RASPBERRYPI_BSP_BCM2711_H >> + >> +#include <stdint.h> >> + >> +#define BCM2711_REG(addr) (*(uint32_t*)(addr)) >> + >> +/* >> + * NOTE: >> + * Raspberry Pi 4B boots into low peripheral mode by default. >> + * The addresses are specified in the BCM2711 peripherals datashseet in >> Fig 1. >> + */ >> +#define BCM2711_PERIPHERAL_BASE 0xfc000000LL >> +#define BCM2711_PERIPHERAL_SIZE 0x3800000 >> + >> +/* Mailbox */ >> +#define BCM2711_MBOX_BASE (BCM2711_PERIPHERAL_BASE + 0x200B880) >> + >> +/* GPIO */ >> +#define BCM2711_GPIO_BASE (BCM2711_PERIPHERAL_BASE + 0x2200000) >> +#define BCM2711_GPIO_SIZE 0xf4 >> + >> +/* AUX */ >> +#define BCM2711_AUX_BASE (BCM2711_PERIPHERAL_BASE + 0x2215000) >> +#define BCM2711_AUX_SIZE 0x100 >> + >> +/* AUX: Mini UART */ >> +#define BCM2711_AUX_MU_BASE (BCM2711_AUX_BASE + 0x40) >> +#define BCM2711_AUX_MU_SIZE 0x40 >> + >> +#define BCM2711_UART1_BASE BCM2711_AUX_MU_BASE >> +#define BCM2711_UART1_SIZE BCM2711_AUX_MU_SIZE >> + >> +/* PL011 UARTs */ >> +#define BCM2711_PL011_BASE (BCM2711_PERIPHERAL_BASE + 0x2201000) >> +#define BCM2711_PL011_SIZE 0xc00 >> +#define BCM2711_PL011_DEVICE_SIZE 0x200 >> + >> +#define BCM2711_UART0_BASE (BCM2711_PL011_BASE + 0x000) >> +#define BCM2711_UART0_SIZE BCM2711_PL011_DEVICE_SIZE >> +#define BCM2711_UART2_BASE (BCM2711_PL011_BASE + 0x400) >> +#define BCM2711_UART2_SIZE BCM2711_PL011_DEVICE_SIZE >> +#define BCM2711_UART3_BASE (BCM2711_PL011_BASE + 0x600) >> +#define BCM2711_UART3_SIZE BCM2711_PL011_DEVICE_SIZE >> +#define BCM2711_UART4_BASE (BCM2711_PL011_BASE + 0x800) >> +#define BCM2711_UART4_SIZE BCM2711_PL011_DEVICE_SIZE >> +#define BCM2711_UART5_BASE (BCM2711_PL011_BASE + 0xa00) >> +#define BCM2711_UART5_SIZE BCM2711_PL011_DEVICE_SIZE >> + >> +/* ARM Local */ >> +#define BCM2711_ARM_LOCAL_BASE 0xff800000LL >> +#define BCM2711_ARM_LOCAL_SIZE 0x800000 >> + >> +/* Generic interrupt controller */ >> +#define BCM2711_GIC_BASE (BCM2711_ARM_LOCAL_BASE + 0x40000) >> +#define BCM2711_GIC_SIZE 0x8000 >> + >> +#define BCM2711_GIC_DIST_BASE (BCM2711_GIC_BASE + 0x1000) >> +#define BCM2711_GIC_CPUIF_BASE (BCM2711_GIC_BASE + 0x2000) >> + >> +#endif /* LIBBSP_AARCH64_RASPBERRYPI_BCM2711_H */ >> diff --git a/bsps/aarch64/raspberrypi/include/bsp/irq.h >> b/bsps/aarch64/raspberrypi/include/bsp/irq.h >> index effec1b040..1e84cd3ea2 100644 >> --- a/bsps/aarch64/raspberrypi/include/bsp/irq.h >> +++ b/bsps/aarch64/raspberrypi/include/bsp/irq.h >> @@ -7,8 +7,8 @@ >> */ >> >> /** >> - * Copyright (c) 2013 Alan Cudmore >> - * Copyright (c) 2022 Mohd Noor Aman >> + * Copyright (C) 2013 Alan Cudmore >> + * Copyright (C) 2022 Mohd Noor Aman >> * >> * The license and distribution terms for this file may be >> * found in the file LICENSE in this distribution or at >> @@ -17,15 +17,15 @@ >> * >> */ >> >> -#ifndef LIBBSP_ARM_RASPBERRYPI_IRQ_H >> -#define LIBBSP_ARM_RASPBERRYPI_IRQ_H >> +#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_IRQ_H >> +#define LIBBSP_AARCH64_RASPBERRYPI_BSP_IRQ_H >> >> #ifndef ASM >> >> +#include <dev/irq/arm-gic-irq.h> >> #include <rtems.h> >> -#include <rtems/irq.h> >> #include <rtems/irq-extension.h> >> -#include <dev/irq/arm-gic-irq.h> >> +#include <rtems/irq.h> >> >> #if defined(RTEMS_SMP) >> #include <rtems/score/processormask.h> >> @@ -39,31 +39,31 @@ >> * @brief Interrupt support. >> */ >> >> -#define BCM2835_INTC_TOTAL_IRQ (64 + 8) >> - >> -#define BCM2835_IRQ_SET1_MIN 0 >> -#define BCM2835_IRQ_SET2_MIN 32 >> - >> -#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_INTC_TOTAL_IRQ (64 + 8) >> + >> +#define BCM2835_IRQ_SET1_MIN 0 >> +#define BCM2835_IRQ_SET2_MIN 32 >> + >> +#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 >> @@ -74,34 +74,28 @@ >> #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_TIMER_VIRT_PPI 27 >> -#define BSP_TIMER_PHYS_NS_PPI 30 >> -#define BSP_VPL011_SPI 32 >> +#define BSP_TIMER_VIRT_PPI 27 >> +#define BSP_TIMER_PHYS_NS_PPI 30 >> +#define BSP_VPL011_SPI 32 >> >> -#define BSP_INTERRUPT_VECTOR_COUNT BCM2835_INTC_TOTAL_IRQ >> +#define BSP_INTERRUPT_VECTOR_COUNT BCM2835_INTC_TOTAL_IRQ >> #define BSP_INTERRUPT_VECTOR_INVALID (UINT32_MAX) >> >> -#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ) >> +#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ) >> >> #if defined(RTEMS_SMP) >> static inline rtems_status_code bsp_interrupt_set_affinity( >> - rtems_vector_number vector, >> - const Processor_mask *affinity >> -) >> -{ >> - (void) vector; >> - (void) affinity; >> - return RTEMS_UNSATISFIED; >> + rtems_vector_number vector, const Processor_mask *affinity) { >> + (void)vector; >> + (void)affinity; >> + return RTEMS_UNSATISFIED; >> } >> >> static inline rtems_status_code bsp_interrupt_get_affinity( >> - rtems_vector_number vector, >> - Processor_mask *affinity >> -) >> -{ >> - (void) vector; >> - _Processor_mask_From_index( affinity, 0 ); >> - return RTEMS_UNSATISFIED; >> + rtems_vector_number vector, Processor_mask *affinity) { >> + (void)vector; >> + _Processor_mask_From_index(affinity, 0); >> + return RTEMS_UNSATISFIED; >> } >> #endif >> >> diff --git a/bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h >> b/bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h >> deleted file mode 100644 >> index 55dd9ed1e9..0000000000 >> --- a/bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h >> +++ /dev/null >> @@ -1,471 +0,0 @@ >> -/** >> - * @file >> - * >> - * @ingroup raspberrypi_4_regs >> - * >> - * @brief Register definitions. >> - */ >> - >> -/* >> - * Copyright (c) 2022 Mohd Noor Aman >> - * >> - * 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_AARCH64_RASPBERRYPI_RASPBERRYPI_4_H >> -#define LIBBSP_AARCH64_RASPBERRYPI_RASPBERRYPI_4_H >> - >> - >> -#include <bspopts.h> >> -#include <stdint.h> >> -#include <bsp/utility.h> >> - >> - >> -/** >> - * @defgroup raspberrypi_reg Register Definitions >> - * >> - * @ingroup RTEMSBSPsARMRaspberryPi >> - * >> - * @brief Register Definitions >> - * >> - * @{ >> - */ >> - >> -/** >> - * @name Register Macros >> - * >> - * @{ >> - */ >> - >> -#define BCM2711_REG(x) (*(volatile uint64_t *)(x)) >> -#define BCM2711_BIT(n) (1 << (n)) >> - >> -/** @} */ >> - >> -/** >> - * @name Peripheral Base Register Address >> - * >> - * @{ >> - */ >> - >> -#define RPI_PERIPHERAL_BASE 0xFE000000 >> -#define BASE_OFFSET 0xFE000000 >> -#define RPI_PERIPHERAL_SIZE 0x01800000 >> - >> -/** >> - * @name Bus to Physical address translation >> - * Macro. >> - * @{ >> - */ >> -#define BUS_TO_PHY(x) ((x) - BASE_OFFSET) >> - >> -/** @} */ >> - >> -/** >> - * @name Internal ARM Timer Registers >> - * >> - * @{ >> - */ >> - >> -#define BCM2711_CLOCK_FREQ 250000000 >> - >> -#define BCM2711_TIMER_BASE (RPI_PERIPHERAL_BASE + 0xB400) >> - >> -#define BCM2711_TIMER_LOD (BCM2711_TIMER_BASE + 0x00) >> -#define BCM2711_TIMER_VAL (BCM2711_TIMER_BASE + 0x04) >> -#define BCM2711_TIMER_CTL (BCM2711_TIMER_BASE + 0x08) >> -#define BCM2711_TIMER_CLI (BCM2711_TIMER_BASE + 0x0C) >> -#define BCM2711_TIMER_RIS (BCM2711_TIMER_BASE + 0x10) >> -#define BCM2711_TIMER_MIS (BCM2711_TIMER_BASE + 0x14) >> -#define BCM2711_TIMER_RLD (BCM2711_TIMER_BASE + 0x18) >> -#define BCM2711_TIMER_DIV (BCM2711_TIMER_BASE + 0x1C) >> -#define BCM2711_TIMER_CNT (BCM2711_TIMER_BASE + 0x20) >> - >> -#define BCM2711_TIMER_PRESCALE 0xF9 >> - >> -/** @} */ >> - >> -/** >> - * @name Power Management and Watchdog Registers >> - * >> - * @{ >> - */ >> - >> -#define BCM2711_PM_PASSWD_MAGIC 0x5a000000 >> - >> -#define BCM2711_PM_BASE (RPI_PERIPHERAL_BASE + 0x100000) >> - >> -#define BCM2711_PM_GNRIC (BCM2711_PM_BASE + 0x00) >> -#define BCM2711_PM_GNRIC_POWUP 0x00000001 >> -#define BCM2711_PM_GNRIC_POWOK 0x00000002 >> -#define BCM2711_PM_GNRIC_ISPOW 0x00000004 >> -#define BCM2711_PM_GNRIC_MEMREP 0x00000008 >> -#define BCM2711_PM_GNRIC_MRDONE 0x00000010 >> -#define BCM2711_PM_GNRIC_ISFUNC 0x00000020 >> -#define BCM2711_PM_GNRIC_RSTN 0x00000fc0 >> -#define BCM2711_PM_GNRIC_ENAB 0x00001000 >> -#define BCM2711_PM_GNRIC_CFG 0x007f0000 >> - >> -#define BCM2711_PM_AUDIO (BCM2711_PM_BASE + 0x04) >> -#define BCM2711_PM_AUDIO_APSM 0x000fffff >> -#define BCM2711_PM_AUDIO_CTRLEN 0x00100000 >> -#define BCM2711_PM_AUDIO_RSTN 0x00200000 >> - >> -#define BCM2711_PM_STATUS (BCM2711_PM_BASE + 0x18) >> - >> -#define BCM2711_PM_RSTC (BCM2711_PM_BASE + 0x1c) >> -#define BCM2711_PM_RSTC_DRCFG 0x00000003 >> -#define BCM2711_PM_RSTC_WRCFG 0x00000030 >> -#define BCM2711_PM_RSTC_WRCFG_FULL 0x00000020 >> -#define BCM2711_PM_RSTC_SRCFG 0x00000300 >> -#define BCM2711_PM_RSTC_QRCFG 0x00003000 >> -#define BCM2711_PM_RSTC_FRCFG 0x00030000 >> -#define BCM2711_PM_RSTC_HRCFG 0x00300000 >> - >> -#define BCM2711_PM_RSTS (BCM2711_PM_BASE + 0x20) >> -#define BCM2711_PM_RSTS_HADDRQ 0x00000001 >> -#define BCM2711_PM_RSTS_HADDRF 0x00000002 >> -#define BCM2711_PM_RSTS_HADDRH 0x00000004 >> -#define BCM2711_PM_RSTS_HADWRQ 0x00000010 >> -#define BCM2711_PM_RSTS_HADWRF 0x0000002 >> -#define BCM2711_PM_RSTS_HADWRH 0x00000040 >> -#define BCM2711_PM_RSTS_HADSRQ 0x00000100 >> -#define BCM2711_PM_RSTS_HADSRF 0x00000200 >> -#define BCM2711_PM_RSTS_HADSRH 0x00000400 >> -#define BCM2711_PM_RSTS_HADPOR 0x00001000 >> - >> -#define BCM2711_PM_WDOG (BCM2711_PM_BASE + 0x24) >> - >> -/** @} */ >> - >> - >> -/** @} */ >> - >> -/** >> - * @name AUX Registers >> - * >> - * @{ >> - */ >> - >> -#define BCM2711_AUX_BASE (RPI_PERIPHERAL_BASE + 0x215000) >> - >> -#define AUX_ENABLES (BCM2711_AUX_BASE + 0x04) >> -#define AUX_MU_IO_REG (BCM2711_AUX_BASE + 0x40) >> -#define AUX_MU_IER_REG (BCM2711_AUX_BASE + 0x44) >> -#define AUX_MU_IIR_REG (BCM2711_AUX_BASE + 0x48) >> -#define AUX_MU_LCR_REG (BCM2711_AUX_BASE + 0x4C) >> -#define AUX_MU_MCR_REG (BCM2711_AUX_BASE + 0x50) >> -#define AUX_MU_LSR_REG (BCM2711_AUX_BASE + 0x54) >> -#define AUX_MU_MSR_REG (BCM2711_AUX_BASE + 0x58) >> -#define AUX_MU_SCRATCH (BCM2711_AUX_BASE + 0x5C) >> -#define AUX_MU_CNTL_REG (BCM2711_AUX_BASE + 0x60) >> -#define AUX_MU_STAT_REG (BCM2711_AUX_BASE + 0x64) >> -#define AUX_MU_BAUD_REG (BCM2711_AUX_BASE + 0x68) >> - >> -/** @} */ >> - >> - >> - >> -/** @} */ >> - >> -/** >> - * @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 BCM2711_GPU_TIMER_BASE (RPI_PERIPHERAL_BASE + 0x3000) >> - >> -#define BCM2711_GPU_TIMER_CS (BCM2711_GPU_TIMER_BASE + 0x00) >> -#define BCM2711_GPU_TIMER_CS_M0 0x00000001 >> -#define BCM2711_GPU_TIMER_CS_M1 0x00000002 >> -#define BCM2711_GPU_TIMER_CS_M2 0x00000004 >> -#define BCM2711_GPU_TIMER_CS_M3 0x00000008 >> -#define BCM2711_GPU_TIMER_CLO (BCM2711_GPU_TIMER_BASE + 0x04) >> -#define BCM2711_GPU_TIMER_CHI (BCM2711_GPU_TIMER_BASE + 0x08) >> -#define BCM2711_GPU_TIMER_C0 (BCM2711_GPU_TIMER_BASE + 0x0C) >> -#define BCM2711_GPU_TIMER_C1 (BCM2711_GPU_TIMER_BASE + 0x10) >> -#define BCM2711_GPU_TIMER_C2 (BCM2711_GPU_TIMER_BASE + 0x14) >> -#define BCM2711_GPU_TIMER_C3 (BCM2711_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 BCM2711_EMMC_BASE (RPI_PERIPHERAL_BASE + 0x300000) >> - >> -/** @} */ >> - >> -/** >> -* @name Mailbox Registers >> -* >> -* @{ >> -*/ >> - >> -#define BCM2711_MBOX_BASE (RPI_PERIPHERAL_BASE+0xB880) >> - >> -#define BCM2711_MBOX_READ (BCM2711_MBOX_BASE+0x00) >> -#define BCM2711_MBOX_PEEK (BCM2711_MBOX_BASE+0x10) >> -#define BCM2711_MBOX_SENDER (BCM2711_MBOX_BASE+0x14) >> -#define BCM2711_MBOX_STATUS (BCM2711_MBOX_BASE+0x18) >> -#define BCM2711_MBOX_WRITE (BCM2711_MBOX_BASE+0x20) >> -#define BCM2711_MBOX_CONFIG (BCM2711_MBOX_BASE+0x1C) >> - >> -#define BCM2711_MBOX_RESPONSE 0x80000000 >> -#define BCM2711_MBOX_FULL 0x80000000 >> -#define BCM2711_MBOX_EMPTY 0x40000000 >> - >> -/** @} */ >> - >> -/** >> -* @name Mailbox Channels >> -* >> -* @{ >> -*/ >> - >> -/* Power Manager channel */ >> -#define BCM2711_MBOX_CHANNEL_PM 0 >> -/* Framebuffer channel */ >> -#define BCM2711_MBOX_CHANNEL_FB 1 >> - /* Virtual UART channel */ >> -#define BCM2711_MBOX_CHANNEL_VUART 2 >> - /* VCHIQ channel */ >> -#define BCM2711_MBOX_CHANNEL_VCHIQ 3 >> - /* LEDs channel */ >> -#define BCM2711_MBOX_CHANNEL_LED 4 >> - /* Button channel */ >> -#define BCM2711_MBOX_CHANNEL_BUTTON 5 >> - /* Touch screen channel */ >> -#define BCM2711_MBOX_CHANNEL_TOUCHS 6 >> - >> -#define BCM2711_MBOX_CHANNEL_COUNT 7 >> -/* Property tags (ARM <-> VC) channel */ >> -#define BCM2711_MBOX_CHANNEL_PROP_AVC 8 >> - /* Property tags (VC <-> ARM) channel */ >> -#define BCM2711_MBOX_CHANNEL_PROP_VCA 9 >> - >> -/** @} */ >> - >> - >> - >> -/** >> - * @name Raspberry Pi 2 Interrupt Register Defines >> - * >> - * @{ >> - */ >> - >> -/* Timers interrupt control registers */ >> -#define BCM2711_CORE0_TIMER_IRQ_CTRL_BASE 0xFF800040 >> -#define BCM2711_CORE1_TIMER_IRQ_CTRL_BASE 0xFF800044 >> -#define BCM2711_CORE2_TIMER_IRQ_CTRL_BASE 0xFF800048 >> -#define BCM2711_CORE3_TIMER_IRQ_CTRL_BASE 0xFF80004C >> - >> -#define BCM2711_CORE_TIMER_IRQ_CTRL(cpuidx) \ >> - (BCM2711_CORE0_TIMER_IRQ_CTRL_BASE + 0x4 * (cpuidx)) >> - >> - >> -/** >> - * @name Raspberry Pi 4 ARM_LOCAL registers >> - * >> - * @{ >> - */ >> - >> -#define BCM2711_LOCAL_REGS_BASE 0x4C0000000 >> -#define BCM2711_LOCAL_REGS_SIZE 0x100 >> - >> -#define BCM2711_LOCAL_ARM_CONTROL (BCM2711_LOCAL_REGS_BASE + >> 0x00) >> -#define BCM2711_LOCAL_CORE_IRQ_CONTROL (BCM2711_LOCAL_REGS_BASE + >> 0x0c) >> -#define BCM2711_LOCAL_PMU_CONTROL_SET (BCM2711_LOCAL_REGS_BASE + >> 0x10) >> -#define BCM2711_LOCAL_PMU_CONTROL_CLR (BCM2711_LOCAL_REGS_BASE + >> 0x14) >> -#define BCM2711_LOCAL_PERI_IRQ_ROUTE0 (BCM2711_LOCAL_REGS_BASE + >> 0x24) >> -#define BCM2711_LOCAL_AXI_QUIET_TIME (BCM2711_LOCAL_REGS_BASE + >> 0x30) >> -#define BCM2711_LOCAL_LOCAL_TIMER_CONTROL (BCM2711_LOCAL_REGS_BASE + >> 0x34) >> -#define BCM2711_LOCAL_LOCAL_TIMER_IRQ (BCM2711_LOCAL_REGS_BASE + >> 0x38) >> - >> -#define BCM2711_LOCAL_TIMER_CNTRL0 (BCM2711_LOCAL_REGS_BASE + >> 0x40) >> -#define BCM2711_LOCAL_TIMER_CNTRL1 (BCM2711_LOCAL_REGS_BASE + >> 0x44) >> -#define BCM2711_LOCAL_TIMER_CNTRL2 (BCM2711_LOCAL_REGS_BASE + >> 0x48) >> -#define BCM2711_LOCAL_TIMER_CNTRL3 (BCM2711_LOCAL_REGS_BASE + >> 0x4c) >> - >> -#define BCM2711_LOCAL_MAILBOX_CNTRL0 (BCM2711_LOCAL_REGS_BASE + >> 0x50) >> -#define BCM2711_LOCAL_MAILBOX_CNTRL1 (BCM2711_LOCAL_REGS_BASE + >> 0x54) >> -#define BCM2711_LOCAL_MAILBOX_CNTRL2 (BCM2711_LOCAL_REGS_BASE + >> 0x58) >> -#define BCM2711_LOCAL_MAILBOX_CNTRL3 (BCM2711_LOCAL_REGS_BASE + >> 0x5c) >> - >> -#define BCM2711_LOCAL_IRQ_SOURCE0 (BCM2711_LOCAL_REGS_BASE + >> 0x60) >> -#define BCM2711_LOCAL_IRQ_SOURCE1 (BCM2711_LOCAL_REGS_BASE + >> 0x64) >> -#define BCM2711_LOCAL_IRQ_SOURCE2 (BCM2711_LOCAL_REGS_BASE + >> 0x68) >> -#define BCM2711_LOCAL_IRQ_SOURCE3 (BCM2711_LOCAL_REGS_BASE + >> 0x6c) >> - >> -#define BCM2711_LOCAL_FIQ_SOURCE0 (BCM2711_LOCAL_REGS_BASE + >> 0x70) >> -#define BCM2711_LOCAL_FIQ_SOURCE1 (BCM2711_LOCAL_REGS_BASE + >> 0x74) >> -#define BCM2711_LOCAL_FIQ_SOURCE2 (BCM2711_LOCAL_REGS_BASE + >> 0x78) >> -#define BCM2711_LOCAL_FIQ_SOURCE3 (BCM2711_LOCAL_REGS_BASE + >> 0x7c) >> - >> -/** >> - * @name Raspberry Pi 4 Mailbox registers >> - * >> - * @{ >> - */ >> - >> - >> - >> -#define BCM2711_MAILBOX_00_WRITE_SET_BASE 0x4C000080 >> -#define BCM2711_MAILBOX_01_WRITE_SET_BASE 0x4C000084 >> -#define BCM2711_MAILBOX_02_WRITE_SET_BASE 0x4C000088 >> -#define BCM2711_MAILBOX_03_WRITE_SET_BASE 0x4C00008C >> -#define BCM2711_MAILBOX_04_WRITE_SET_BASE 0x4C000090 >> -#define BCM2711_MAILBOX_05_WRITE_SET_BASE 0x4C000094 >> -#define BCM2711_MAILBOX_06_WRITE_SET_BASE 0x4C000098 >> -#define BCM2711_MAILBOX_07_WRITE_SET_BASE 0x4C00009C >> -#define BCM2711_MAILBOX_08_WRITE_SET_BASE 0x4C0000A0 >> -#define BCM2711_MAILBOX_09_WRITE_SET_BASE 0x4C0000A4 >> -#define BCM2711_MAILBOX_10_WRITE_SET_BASE 0x4C0000A8 >> -#define BCM2711_MAILBOX_11_WRITE_SET_BASE 0x4C0000AC >> -#define BCM2711_MAILBOX_12_WRITE_SET_BASE 0x4C0000B0 >> -#define BCM2711_MAILBOX_13_WRITE_SET_BASE 0x4C0000B4 >> -#define BCM2711_MAILBOX_14_WRITE_SET_BASE 0x4C0000B8 >> -#define BCM2711_MAILBOX_15_WRITE_SET_BASE 0x4C0000BC >> - >> -#define BCM2711_MAILBOX_00_READ_CLEAR_BASE 0x4C0000C0 >> -#define BCM2711_MAILBOX_01_READ_CLEAR_BASE 0x4C0000C4 >> -#define BCM2711_MAILBOX_02_READ_CLEAR_BASE 0x4C0000C8 >> -#define BCM2711_MAILBOX_03_READ_CLEAR_BASE 0x4C0000CC >> -#define BCM2711_MAILBOX_04_READ_CLEAR_BASE 0x4C0000D0 >> -#define BCM2711_MAILBOX_05_READ_CLEAR_BASE 0x4C0000D4 >> -#define BCM2711_MAILBOX_06_READ_CLEAR_BASE 0x4C0000D8 >> -#define BCM2711_MAILBOX_07_READ_CLEAR_BASE 0x4C0000DC >> -#define BCM2711_MAILBOX_08_READ_CLEAR_BASE 0x4C0000E0 >> -#define BCM2711_MAILBOX_09_READ_CLEAR_BASE 0x4C0000E4 >> -#define BCM2711_MAILBOX_10_READ_CLEAR_BASE 0x4C0000E8 >> -#define BCM2711_MAILBOX_11_READ_CLEAR_BASE 0x4C0000EC >> -#define BCM2711_MAILBOX_12_READ_CLEAR_BASE 0x4C0000F0 >> -#define BCM2711_MAILBOX_13_READ_CLEAR_BASE 0x4C0000F4 >> -#define BCM2711_MAILBOX_14_READ_CLEAR_BASE 0x4C0000F8 >> -#define BCM2711_MAILBOX_15_READ_CLEAR_BASE 0x4C0000FC >> - >> - >> -/** >> - * @name Raspberry Pi 4 ARM_C FIQ and IRQ registers >> - * >> - * @{ >> - */ >> - >> -#define BCM2711_ARMC_REGS_BASE (RPI_PERIPHERAL_BASE + >> 0xB200) >> -#define BCM2711_ARMC_REGS_SIZE 0x200 >> - >> -#define BCM2711_ARMC_IRQ0_PENDING0 (BCM2711_ARMC_REGS_BASE + >> 0x00) >> -#define BCM2711_ARMC_IRQ0_PENDING1 (BCM2711_ARMC_REGS_BASE + >> 0x04) >> -#define BCM2711_ARMC_IRQ0_PENDING2 (BCM2711_ARMC_REGS_BASE + >> 0x08) >> -#define BCM2711_ARMC_IRQ0_SET_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x10) >> -#define BCM2711_ARMC_IRQ0_SET_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x14) >> -#define BCM2711_ARMC_IRQ0_SET_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x18) >> -#define BCM2711_ARMC_IRQ0_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x20) >> -#define BCM2711_ARMC_IRQ0_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x24) >> -#define BCM2711_ARMC_IRQ0_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x28) >> - >> -#define BCM2711_ARMC_IRQ_STATUS0 (BCM2711_ARMC_REGS_BASE + >> 0x30) >> -#define BCM2711_ARMC_IRQ_STATUS1 (BCM2711_ARMC_REGS_BASE + >> 0x34) >> -#define BCM2711_ARMC_IRQ_STATUS2 (BCM2711_ARMC_REGS_BASE + >> 0x38) >> - >> -#define BCM2711_ARMC_IRQ1_PENDING0 (BCM2711_ARMC_REGS_BASE + >> 0x40) >> -#define BCM2711_ARMC_IRQ1_PENDING1 (BCM2711_ARMC_REGS_BASE + >> 0x44) >> -#define BCM2711_ARMC_IRQ1_PENDING2 (BCM2711_ARMC_REGS_BASE + >> 0x48) >> -#define BCM2711_ARMC_IRQ1_SET_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x50) >> -#define BCM2711_ARMC_IRQ1_SET_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x54) >> -#define BCM2711_ARMC_IRQ1_SET_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x58) >> -#define BCM2711_ARMC_IRQ1_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x60) >> -#define BCM2711_ARMC_IRQ1_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x64) >> -#define BCM2711_ARMC_IRQ1_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x68) >> - >> -#define BCM2711_ARMC_IRQ2_PENDING0 (BCM2711_ARMC_REGS_BASE + >> 0x80) >> -#define BCM2711_ARMC_IRQ2_PENDING1 (BCM2711_ARMC_REGS_BASE + >> 0x84) >> -#define BCM2711_ARMC_IRQ2_PENDING2 (BCM2711_ARMC_REGS_BASE + >> 0x88) >> -#define BCM2711_ARMC_IRQ2_SET_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x90) >> -#define BCM2711_ARMC_IRQ2_SET_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x94) >> -#define BCM2711_ARMC_IRQ2_SET_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x98) >> -#define BCM2711_ARMC_IRQ2_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0xA0) >> -#define BCM2711_ARMC_IRQ2_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0xA4) >> -#define BCM2711_ARMC_IRQ2_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0xA8) >> - >> -#define BCM2711_ARMC_IRQ3_PENDING0 (BCM2711_ARMC_REGS_BASE + >> 0xC0) >> -#define BCM2711_ARMC_IRQ3_PENDING1 (BCM2711_ARMC_REGS_BASE + >> 0xC4) >> -#define BCM2711_ARMC_IRQ3_PENDING2 (BCM2711_ARMC_REGS_BASE + >> 0xC8) >> -#define BCM2711_ARMC_IRQ3_SET_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0xD0) >> -#define BCM2711_ARMC_IRQ3_SET_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0xD4) >> -#define BCM2711_ARMC_IRQ3_SET_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0xD8) >> -#define BCM2711_ARMC_IRQ3_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0xE0) >> -#define BCM2711_ARMC_IRQ3_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0xE4) >> -#define BCM2711_ARMC_IRQ3_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0xE8) >> - >> - >> - >> -#define BCM2711_ARMC_FIQ0_PENDING0 (BCM2711_ARMC_REGS_BASE + >> 0x100) >> -#define BCM2711_ARMC_FIQ0_PENDING1 (BCM2711_ARMC_REGS_BASE + >> 0x104) >> -#define BCM2711_ARMC_FIQ0_PENDING2 (BCM2711_ARMC_REGS_BASE + >> 0x108) >> -#define BCM2711_ARMC_FIQ0_SET_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x110) >> -#define BCM2711_ARMC_FIQ0_SET_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x114) >> -#define BCM2711_ARMC_FIQ0_SET_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x118) >> -#define BCM2711_ARMC_FIQ0_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x120) >> -#define BCM2711_ARMC_FIQ0_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x124) >> -#define BCM2711_ARMC_FIQ0_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x128) >> - >> -#define BCM2711_ARMC_FIQ1_PENDING0 (BCM2711_ARMC_REGS_BASE + >> 0x140) >> -#define BCM2711_ARMC_FIQ1_PENDING1 (BCM2711_ARMC_REGS_BASE + >> 0x144) >> -#define BCM2711_ARMC_FIQ1_PENDING2 (BCM2711_ARMC_REGS_BASE + >> 0x148) >> -#define BCM2711_ARMC_FIQ1_SET_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x150) >> -#define BCM2711_ARMC_FIQ1_SET_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x154) >> -#define BCM2711_ARMC_FIQ1_SET_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x158) >> -#define BCM2711_ARMC_FIQ1_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x160) >> -#define BCM2711_ARMC_FIQ1_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x164) >> -#define BCM2711_ARMC_FIQ1_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x168) >> - >> -#define BCM2711_ARMC_FIQ2_PENDING0 (BCM2711_ARMC_REGS_BASE + >> 0x180) >> -#define BCM2711_ARMC_FIQ2_PENDING1 (BCM2711_ARMC_REGS_BASE + >> 0x184) >> -#define BCM2711_ARMC_FIQ2_PENDING2 (BCM2711_ARMC_REGS_BASE + >> 0x188) >> -#define BCM2711_ARMC_FIQ2_SET_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x190) >> -#define BCM2711_ARMC_FIQ2_SET_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x194) >> -#define BCM2711_ARMC_FIQ2_SET_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x198) >> -#define BCM2711_ARMC_FIQ2_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x1A0) >> -#define BCM2711_ARMC_FIQ2_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x1A4) >> -#define BCM2711_ARMC_FIQ2_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x1A8) >> - >> -#define BCM2711_ARMC_FIQ3_PENDING0 (BCM2711_ARMC_REGS_BASE + >> 0x1C0) >> -#define BCM2711_ARMC_FIQ3_PENDING1 (BCM2711_ARMC_REGS_BASE + >> 0x1C4) >> -#define BCM2711_ARMC_FIQ3_PENDING2 (BCM2711_ARMC_REGS_BASE + >> 0x1C8) >> -#define BCM2711_ARMC_FIQ3_SET_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x1D0) >> -#define BCM2711_ARMC_FIQ3_SET_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x1D4) >> -#define BCM2711_ARMC_FIQ3_SET_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x1D8) >> -#define BCM2711_ARMC_FIQ3_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + >> 0x1E0) >> -#define BCM2711_ARMC_FIQ3_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + >> 0x1E4) >> -#define BCM2711_ARMC_FIQ3_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + >> 0x1E8) >> - >> -#define BCM2711_ARMC_SWIRQ_SET (BCM2711_ARMC_REGS_BASE + >> 0x1F0) >> -#define BCM2711_ARMC_SWIRQ_CLEAR (BCM2711_ARMC_REGS_BASE + >> 0x1F4) >> - >> - >> - >> - >> - >> -/** @} */ >> - >> -#endif /* LIBBSP_ARM_RASPBERRYPI_RASPBERRYPI_H */ >> diff --git a/bsps/aarch64/raspberrypi/include/bsp/start/bspstartmmu.h >> b/bsps/aarch64/raspberrypi/include/bsp/start/bspstartmmu.h >> new file mode 100644 >> index 0000000000..cb1b24ac72 >> --- /dev/null >> +++ b/bsps/aarch64/raspberrypi/include/bsp/start/bspstartmmu.h >> @@ -0,0 +1,8 @@ >> +#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_START_BSPSTARTMMU_H >> +#define LIBBSP_AARCH64_RASPBERRYPI_BSP_START_BSPSTARTMMU_H >> + >> +#include <bsp/start.h> >> + >> +BSP_START_TEXT_SECTION void bsp_start_mmu_setup(void); >> + >> +#endif >> diff --git a/bsps/aarch64/raspberrypi/start/bspstart.c >> b/bsps/aarch64/raspberrypi/start/bspstart.c >> index 368c5d0d08..03d5ae4c77 100644 >> --- a/bsps/aarch64/raspberrypi/start/bspstart.c >> +++ b/bsps/aarch64/raspberrypi/start/bspstart.c >> @@ -3,13 +3,14 @@ >> /** >> * @file >> * >> - * @ingroup RTEMSBSPsAArch64Raspberrypi4 >> + * @ingroup RTEMSBSPsAArch64RaspberryPi >> * >> - * @brief BSP Startup >> + * @brief BSP startup routines >> */ >> >> /* >> * Copyright (C) 2022 Mohd Noor Aman >> + * Copyright (C) 2023 Utkarsh Verma >> * >> * >> * Redistribution and use in source and binary forms, with or without >> @@ -34,16 +35,13 @@ >> * POSSIBILITY OF SUCH DAMAGE. >> */ >> >> -#include <bsp.h> >> #include <bsp/bootcard.h> >> #include <bsp/irq-generic.h> >> #include <bsp/linker-symbols.h> >> +#include <stdint.h> >> >> -void bsp_start( void ) >> -{ >> - bsp_interrupt_initialize(); >> - rtems_cache_coherent_add_area( >> - bsp_section_nocacheheap_begin, >> - (uintptr_t) bsp_section_nocacheheap_size >> - ); >> +void bsp_start(void) { >> + bsp_interrupt_initialize(); >> + rtems_cache_coherent_add_area(bsp_section_nocacheheap_begin, >> + >> (uintptr_t)bsp_section_nocacheheap_size); >> } >> diff --git a/bsps/aarch64/raspberrypi/start/bspstarthooks.c >> b/bsps/aarch64/raspberrypi/start/bspstarthooks.c >> index fe0fe77c09..2444767874 100644 >> --- a/bsps/aarch64/raspberrypi/start/bspstarthooks.c >> +++ b/bsps/aarch64/raspberrypi/start/bspstarthooks.c >> @@ -3,13 +3,14 @@ >> /** >> * @file >> * >> - * @ingroup RTEMSBSPsAArch64Raspberrypi4 >> + * @ingroup RTEMSBSPsAArch64RaspberryPi >> * >> * @brief BSP Startup Hooks >> */ >> >> /* >> * Copyright (C) 2022 Mohd Noor Aman >> + * Copyright (C) 2023 Utkarsh Verma >> * >> * >> * Redistribution and use in source and binary forms, with or without >> @@ -34,20 +35,15 @@ >> * POSSIBILITY OF SUCH DAMAGE. >> */ >> >> -#include <bsp.h> >> -#include <bsp/irq-generic.h> >> -#include <bsp/start.h> >> -#include <rtems/score/cpu.h> >> +#include "bsp/start/bspstartmmu.h" >> >> -BSP_START_TEXT_SECTION void bsp_start_hook_0(void) >> -{ >> - /* Do nothing */ >> +BSP_START_TEXT_SECTION void bsp_start_hook_0(void) { >> + /* Do nothing */ >> } >> >> -BSP_START_TEXT_SECTION void bsp_start_hook_1(void) >> -{ >> - AArch64_start_set_vector_base(); >> - bsp_start_copy_sections(); >> - raspberrypi_4_setup_mmu_and_cache(); >> - bsp_start_clear_bss(); >> -} >> \ No newline at end of file >> +BSP_START_TEXT_SECTION void bsp_start_hook_1(void) { >> + AArch64_start_set_vector_base(); >> + bsp_start_copy_sections(); >> + bsp_start_mmu_setup(); >> + bsp_start_clear_bss(); >> +} >> diff --git a/bsps/aarch64/raspberrypi/start/bspstartmmu.c >> b/bsps/aarch64/raspberrypi/start/bspstartmmu.c >> index 18a9a112b0..9a5824e29a 100644 >> --- a/bsps/aarch64/raspberrypi/start/bspstartmmu.c >> +++ b/bsps/aarch64/raspberrypi/start/bspstartmmu.c >> @@ -3,13 +3,14 @@ >> /** >> * @file >> * >> - * @ingroup RTEMSBSPsAArch64Raspberrypi4 >> + * @ingroup RTEMSBSPsAArch64RaspberryPi >> * >> * @brief This source file contains the default MMU tables and setup. >> */ >> >> /* >> * Copyright (C) 2022 Mohd Noor Aman >> + * Copyright (C) 2023 Utkarsh Verma >> * >> * >> * Redistribution and use in source and binary forms, with or without >> @@ -34,51 +35,34 @@ >> * POSSIBILITY OF SUCH DAMAGE. >> */ >> >> -#include <bsp.h> >> -#include <bsp/start.h> >> +#include "bsp/start/bspstartmmu.h" >> + >> #include <bsp/aarch64-mmu.h> >> -#include <bsp/raspberrypi.h> >> -#include <libcpu/mmu-vmsav8-64.h> >> >> +#include "bsp.h" >> >> BSP_START_DATA_SECTION static const aarch64_mmu_config_entry >> -raspberrypi_4_mmu_config_table[] = { >> - AARCH64_MMU_DEFAULT_SECTIONS, >> - >> - { /* RPI peripheral address */ >> - .begin = (unsigned)RPI_PERIPHERAL_BASE, >> - .end = (unsigned)RPI_PERIPHERAL_BASE + (unsigned)RPI_PERIPHERAL_SIZE, >> - .flags = AARCH64_MMU_DEVICE >> - }, >> - >> - { /* RPI ARM local registers */ >> - .begin = (unsigned)BCM2711_LOCAL_REGS_BASE, >> - .end = (unsigned)BCM2711_LOCAL_REGS_BASE + >> (unsigned)BCM2711_LOCAL_REGS_SIZE, >> - .flags = AARCH64_MMU_DEVICE >> - }, >> - >> - { /* RPI GIC Interface address */ >> - .begin = 0xFF800000U, >> - .end = 0xFFA00000U, >> - .flags = AARCH64_MMU_DEVICE >> - } >> - >> + bsp_mmu_config_table[] = { >> + AARCH64_MMU_DEFAULT_SECTIONS, >> + { >> + // UART0 >> + .begin = BSP_UART0_BASE, >> + .end = BSP_UART0_BASE + BSP_UART0_SIZE, >> + .flags = AARCH64_MMU_DEVICE, >> + }, >> + { >> + /* Interrupts */ >> + .begin = BSP_GIC_BASE, >> + .end = BSP_GIC_BASE + BSP_GIC_SIZE, >> + .flags = AARCH64_MMU_DEVICE, >> + }, >> }; >> -/* >> - * Make weak and let the user override. >> - */ >> -BSP_START_TEXT_SECTION void >> -raspberrypi_4_setup_mmu_and_cache( void ) __attribute__ ((weak)); >> >> -BSP_START_TEXT_SECTION void >> -raspberrypi_4_setup_mmu_and_cache( void ) >> -{ >> - aarch64_mmu_setup(); >> +BSP_START_TEXT_SECTION void bsp_start_mmu_setup(void) { >> + aarch64_mmu_setup(); >> >> - aarch64_mmu_setup_translation_table( >> - &raspberrypi_4_mmu_config_table[ 0 ], >> - RTEMS_ARRAY_SIZE( raspberrypi_4_mmu_config_table ) >> - ); >> + aarch64_mmu_setup_translation_table( >> + &bsp_mmu_config_table[0], >> RTEMS_ARRAY_SIZE(bsp_mmu_config_table)); >> >> - aarch64_mmu_enable(); >> -} >> \ No newline at end of file >> + aarch64_mmu_enable(); >> +} >> diff --git a/spec/build/bsps/aarch64/raspberrypi/abi.yml >> b/spec/build/bsps/aarch64/raspberrypi/abi.yml >> index 38a8d8bc8f..63c2afbea6 100644 >> --- a/spec/build/bsps/aarch64/raspberrypi/abi.yml >> +++ b/spec/build/bsps/aarch64/raspberrypi/abi.yml >> @@ -1,19 +1,26 @@ >> SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> -actions: >> -- get-string: null >> -- split: null >> -- env-append: null >> -build-type: option >> copyrights: >> -- Copyright (C) 2022 Mohd Noor Aman >> -default: >> -- enabled-by: true >> - value: >> - - -mcpu=cortex-a72 >> - - -march=armv8-a >> -description: | >> - ABI flags >> + - Copyright (C) 2022 Mohd Noor Aman >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> enabled-by: true >> -links: [] >> + >> +build-type: option >> name: ABI_FLAGS >> -type: build >> +description: ABI flags >> + >> +actions: >> + - get-string: null >> + - split: null >> + - env-append: null >> + >> +default: >> + - enabled-by: >> + - aarch64/raspberrypi4b >> + value: >> + - -mcpu=cortex-a72 >> + - -march=armv8-a >> + - -mstrict-align >> + >> +links: [] >> diff --git a/spec/build/bsps/aarch64/raspberrypi/bsp4b.yml >> b/spec/build/bsps/aarch64/raspberrypi/bsp4b.yml >> new file mode 100644 >> index 0000000000..058f97d1eb >> --- /dev/null >> +++ b/spec/build/bsps/aarch64/raspberrypi/bsp4b.yml >> @@ -0,0 +1,23 @@ >> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> +copyrights: >> + - Copyright (C) 2022 Mohd Noor Aman >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> +enabled-by: true >> + >> +build-type: bsp >> +arch: aarch64 >> +bsp: raspberrypi4b >> +family: raspberrypi >> +cflags: [] >> +cppflags: [] >> +includes: [] >> +install: [] >> +source: [] >> + >> +links: >> + - role: build-dependency >> + uid: grp4b >> + - role: build-dependency >> + uid: linkcmds >> diff --git a/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml >> b/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml >> deleted file mode 100644 >> index a579c094ba..0000000000 >> --- a/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml >> +++ /dev/null >> @@ -1,72 +0,0 @@ >> -SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> -arch: aarch64 >> -bsp: raspberrypi4b >> -build-type: bsp >> -cflags: [] >> -copyrights: >> -- Copyright (C) 2022 Mohd Noor Aman >> -cppflags: [] >> -enabled-by: true >> -family: raspberrypi >> -includes: [] >> -install: >> -- destination: ${BSP_INCLUDEDIR} >> - source: >> - - bsps/aarch64/raspberrypi/include/bsp.h >> - - bsps/aarch64/raspberrypi/include/tm27.h >> -- destination: ${BSP_INCLUDEDIR}/bsp >> - source: >> - - bsps/aarch64/raspberrypi/include/bsp/irq.h >> - - bsps/aarch64/raspberrypi/include/bsp/raspberrypi.h >> -links: >> -- role: build-dependency >> - uid: ../grp >> -- role: build-dependency >> - uid: ../start >> -- role: build-dependency >> - uid: ../optmmupages >> -- role: build-dependency >> - uid: ../optgtusevirt >> -- role: build-dependency >> - uid: ../optgtuseps >> -- role: build-dependency >> - uid: abi >> -- role: build-dependency >> - uid: ../../optcachedata >> -- role: build-dependency >> - uid: ../../optcacheinst >> -- role: build-dependency >> - uid: ../../opto2 >> -- role: build-dependency >> - uid: ../../bspopts >> -- role: build-dependency >> - uid: linkercmds >> -- role: build-dependency >> - uid: ../../obj >> -- role: build-dependency >> - uid: ../../objirq >> -source: >> -- bsps/aarch64/raspberrypi/console/console.c >> -- bsps/aarch64/raspberrypi/start/bspstart.c >> -- bsps/aarch64/raspberrypi/start/bspstarthooks.c >> -- bsps/aarch64/raspberrypi/start/bspstartmmu.c >> -- bsps/aarch64/shared/clock/arm-generic-timer-aarch64.c >> -- bsps/aarch64/shared/cache/cache.c >> -- bsps/aarch64/shared/mmu/vmsav8-64.c >> -- bsps/shared/dev/clock/arm-generic-timer.c >> -- bsps/shared/dev/irq/arm-gicv2.c >> -- bsps/shared/dev/irq/arm-gicv2-get-attributes.c >> -- bsps/shared/dev/serial/console-termios-init.c >> -- bsps/shared/dev/serial/console-termios.c >> -- bsps/shared/dev/serial/arm-pl011.c >> -- bsps/shared/dev/getentropy/getentropy-cpucounter.c >> -- bsps/shared/dev/btimer/btimer-cpucounter.c >> -- bsps/shared/irq/irq-default-handler.c >> -- bsps/shared/start/bspfatal-default.c >> -- bsps/shared/start/bspreset-arm-psci.c >> -- bsps/shared/start/gettargethash-default.c >> -- bsps/shared/start/sbrk.c >> -- bsps/shared/start/wkspaceinitone.c >> -- bsps/shared/start/mallocinitmulti.c >> -- bsps/shared/start/bspgetworkarea-default.c >> -type: build >> diff --git a/spec/build/bsps/aarch64/raspberrypi/grp.yml >> b/spec/build/bsps/aarch64/raspberrypi/grp.yml >> new file mode 100644 >> index 0000000000..4e6b022e3c >> --- /dev/null >> +++ b/spec/build/bsps/aarch64/raspberrypi/grp.yml >> @@ -0,0 +1,49 @@ >> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> +copyrights: >> + - Copyright (C) 2022 Mohd Noor Aman >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> +enabled-by: true >> + >> +build-type: group >> +cflags: [] >> +cppflags: [] >> +cxxflags: [] >> +includes: [] >> +install: [] >> +ldflags: [] >> +use-after: [] >> +use-before: [] >> + >> +links: >> + - role: build-dependency >> + uid: abi >> + - role: build-dependency >> + uid: obj >> + - role: build-dependency >> + uid: optclockpl011freq >> + - role: build-dependency >> + uid: optconsolebaud >> + - role: build-dependency >> + uid: ../grp >> + - role: build-dependency >> + uid: ../start >> + - role: build-dependency >> + uid: ../optmmupages >> + - role: build-dependency >> + uid: ../optgtusevirt >> + - role: build-dependency >> + uid: ../optgtuseps >> + - role: build-dependency >> + uid: ../../optcachedata >> + - role: build-dependency >> + uid: ../../optcacheinst >> + - role: build-dependency >> + uid: ../../opto2 >> + - role: build-dependency >> + uid: ../../bspopts >> + - role: build-dependency >> + uid: ../../obj >> + - role: build-dependency >> + uid: ../../objirq >> diff --git a/spec/build/bsps/aarch64/raspberrypi/grp4b.yml >> b/spec/build/bsps/aarch64/raspberrypi/grp4b.yml >> new file mode 100644 >> index 0000000000..8a4b8c0370 >> --- /dev/null >> +++ b/spec/build/bsps/aarch64/raspberrypi/grp4b.yml >> @@ -0,0 +1,26 @@ >> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> +copyrights: >> + - Copyright (C) 2022 Mohd Noor Aman >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> +enabled-by: true >> + >> +build-type: group >> +cflags: [] >> +cppflags: [] >> +cxxflags: [] >> +includes: [] >> + >> +install: >> + - destination: ${BSP_INCLUDEDIR}/bsp >> + source: >> + - bsps/aarch64/raspberrypi/include/bsp/bcm2711.h >> + >> +ldflags: [] >> +use-after: [] >> +use-before: [] >> + >> +links: >> + - role: build-dependency >> + uid: grp >> diff --git a/spec/build/bsps/aarch64/raspberrypi/linkercmds.yml >> b/spec/build/bsps/aarch64/raspberrypi/linkcmds.yml >> similarity index 90% >> rename from spec/build/bsps/aarch64/raspberrypi/linkercmds.yml >> rename to spec/build/bsps/aarch64/raspberrypi/linkcmds.yml >> index 701f9f935c..6988d54422 100644 >> --- a/spec/build/bsps/aarch64/raspberrypi/linkercmds.yml >> +++ b/spec/build/bsps/aarch64/raspberrypi/linkcmds.yml >> @@ -1,10 +1,19 @@ >> SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> +copyrights: >> + - Copyright (C) 2022 Mohd Noor Aman >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> +enabled-by: true >> + >> build-type: config-file >> + >> content: | >> /* SPDX-License-Identifier: BSD-2-Clause */ >> >> /* >> * Copyright (C) 2022 Mohd Noor Aman >> + * Copyright (C) 2023 Utkarsh Verma >> * >> * Redistribution and use in source and binary forms, with or without >> * modification, are permitted provided that the following conditions >> @@ -29,8 +38,8 @@ content: | >> */ >> >> MEMORY { >> - RAM_MMU : ORIGIN = 0x0, LENGTH = (0x1000 * >> ${AARCH64_MMU_TRANSLATION_TABLE_PAGES}) >> - RAM : ORIGIN = 0x80000, LENGTH = 1024M >> + RAM_MMU : ORIGIN = 0x0, LENGTH = (CONSTANT(COMMONPAGESIZE) * >> ${AARCH64_MMU_TRANSLATION_TABLE_PAGES}) >> + RAM : ORIGIN = 0x80000, LENGTH = 1024M >> } >> >> REGION_ALIAS ("REGION_START", RAM); >> @@ -51,11 +60,11 @@ content: | >> REGION_ALIAS ("REGION_NOCACHE", RAM); >> REGION_ALIAS ("REGION_NOCACHE_LOAD", RAM); >> >> - bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size >> : 1024; >> + bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size >> : 1K; >> >> bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? >> bsp_section_rwbarrier_align : 1M; >> >> - bsp_stack_exception_size = DEFINED (bsp_stack_exception_size) ? >> bsp_stack_exception_size : 1024; >> + bsp_stack_exception_size = DEFINED (bsp_stack_exception_size) ? >> bsp_stack_exception_size : 1K; >> >> bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? >> bsp_section_rwbarrier_align : 1M; >> >> @@ -67,10 +76,8 @@ content: | >> OUTPUT_ARCH (aarch64) >> >> INCLUDE linkcmds.base >> -copyrights: >> -- Copyright (C) 2022 Mohd Noor Aman >> -enabled-by: true >> + >> install-path: ${BSP_LIBDIR} >> -links: [] >> target: linkcmds >> -type: build >> + >> +links: [] >> diff --git a/spec/build/bsps/aarch64/raspberrypi/obj.yml >> b/spec/build/bsps/aarch64/raspberrypi/obj.yml >> new file mode 100644 >> index 0000000000..6a57210d36 >> --- /dev/null >> +++ b/spec/build/bsps/aarch64/raspberrypi/obj.yml >> @@ -0,0 +1,50 @@ >> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> +copyrights: >> + - Copyright (C) 2022 Mohd Noor Aman >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> +enabled-by: true >> + >> +build-type: objects >> +cflags: [] >> +cppflags: [] >> +cxxflags: [] >> +includes: [] >> + >> +install: >> + - destination: ${BSP_INCLUDEDIR} >> + source: >> + - bsps/aarch64/raspberrypi/include/bsp.h >> + - bsps/aarch64/raspberrypi/include/tm27.h >> + - destination: ${BSP_INCLUDEDIR}/bsp >> + source: >> + - bsps/aarch64/raspberrypi/include/bsp/irq.h >> + >> +source: >> + - bsps/aarch64/shared/cache/cache.c >> + - bsps/aarch64/shared/clock/arm-generic-timer-aarch64.c >> + - bsps/aarch64/shared/mmu/vmsav8-64.c >> + - bsps/aarch64/raspberrypi/console/console.c >> + - bsps/aarch64/raspberrypi/start/bspstart.c >> + - bsps/aarch64/raspberrypi/start/bspstarthooks.c >> + - bsps/aarch64/raspberrypi/start/bspstartmmu.c >> + - bsps/shared/dev/clock/arm-generic-timer.c >> + - bsps/shared/dev/irq/arm-gicv2.c >> + - bsps/shared/dev/irq/arm-gicv2-get-attributes.c >> + - bsps/shared/dev/serial/console-termios-init.c >> + - bsps/shared/dev/serial/console-termios.c >> + - bsps/shared/dev/getentropy/getentropy-cpucounter.c >> + - bsps/shared/dev/btimer/btimer-cpucounter.c >> + - bsps/shared/irq/irq-default-handler.c >> + - bsps/shared/start/bspfatal-default.c >> + - bsps/shared/start/bspreset-arm-psci.c >> + - bsps/shared/start/gettargethash-default.c >> + - bsps/shared/start/sbrk.c >> + - bsps/shared/start/wkspaceinitone.c >> + - bsps/shared/start/mallocinitmulti.c >> + - bsps/shared/start/bspgetworkarea-default.c >> + >> +links: >> + - role: build-dependency >> + uid: objconsolepl011 >> diff --git a/spec/build/bsps/aarch64/raspberrypi/objconsolepl011.yml >> b/spec/build/bsps/aarch64/raspberrypi/objconsolepl011.yml >> new file mode 100644 >> index 0000000000..0c5135cdc5 >> --- /dev/null >> +++ b/spec/build/bsps/aarch64/raspberrypi/objconsolepl011.yml >> @@ -0,0 +1,24 @@ >> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> +copyrights: >> + - Copyright (C) 2022 Mohd Noor Aman >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> +enabled-by: true >> + >> +build-type: objects >> +cflags: [] >> +cppflags: [] >> +cxxflags: [] >> +includes: [] >> + >> +install: >> + - destination: ${BSP_INCLUDEDIR}/dev/serial >> + source: >> + - bsps/include/dev/serial/arm-pl011.h >> + - bsps/include/dev/serial/arm-pl011-regs.h >> + >> +source: >> + - bsps/shared/dev/serial/arm-pl011.c >> + >> +links: [] >> diff --git a/spec/build/bsps/aarch64/raspberrypi/optclockpl011freq.yml >> b/spec/build/bsps/aarch64/raspberrypi/optclockpl011freq.yml >> new file mode 100644 >> index 0000000000..e6432c7010 >> --- /dev/null >> +++ b/spec/build/bsps/aarch64/raspberrypi/optclockpl011freq.yml >> @@ -0,0 +1,23 @@ >> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> +copyrights: >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> +enabled-by: true >> + >> +build-type: option >> +name: BSP_PL011_CLOCK_FREQ >> +description: PL011 UART clock frequency in Hz >> + >> +actions: >> + - get-integer: null >> + - define: null >> + >> +default: >> + - enabled-by: >> + - aarch64/raspberrypi4b >> + value: 48000000 >> + >> +format: '{}' >> + >> +links: [] >> diff --git a/spec/build/bsps/aarch64/raspberrypi/optconsolebaud.yml >> b/spec/build/bsps/aarch64/raspberrypi/optconsolebaud.yml >> new file mode 100644 >> index 0000000000..bff49ad71a >> --- /dev/null >> +++ b/spec/build/bsps/aarch64/raspberrypi/optconsolebaud.yml >> @@ -0,0 +1,23 @@ >> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause >> +copyrights: >> + - Copyright (C) 2023 Utkarsh Verma >> + >> +type: build >> +enabled-by: true >> + >> +build-type: option >> +name: BSP_CONSOLE_BAUD >> +description: Default baudrate for the console device. >> + >> +actions: >> + - get-integer: null >> + - define: null >> + >> +default: >> + - enabled-by: >> + - aarch64/raspberrypi4b >> + value: 115200 >> + >> +format: '{}' >> + >> +links: [] >> -- >> 2.41.0 >> >> _______________________________________________ >> devel mailing list >> devel@rtems.org >> http://lists.rtems.org/mailman/listinfo/devel >> >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel