[PATCH 1/7] bsp/aarch64: New entry for Raspberry pi 4B AArch64 BSP

Kinsey Moore kinsey.moore at oarcorp.com
Thu Sep 22 13:30:41 UTC 2022


It's great to see support for this get posted!

One thing I'd like to note is that patch sets generally produce working 
code at every step.

The usual progression is:

* First patch adds a basic BSP with no interrupts that only works on an 
emulator (which usually means no MMU support)

* Additional patches add MMU support or interrupt support or additional 
peripherals or SMP support


Instead, you've squashed all that progression together and then broken 
it back out into patches that commit pieces of a BSP that produce a 
broken build until the last patch is committed.

Given that this is still just the core of a BSP without peripherals or 
SMP, I'd be fine with this all being in a single patch if you don't have 
an easy way to break things out into functional patches. I would still 
recommend going through the process of rebasing the work and breaking it 
into at least 2 patches if not 3 (base BSP, base BSP+interrupts, base 
BSP+interrupts+MMU) as it's a useful skill to have.


Kinsey

On 9/22/2022 01:20, Mohd Noor Aman wrote:
> This commit adds new Raspberry pi 4B AArch64 BSP to the RTEMS Family. Currently only IPL64 ABI is supported. IPL32 Supported will be added in the near future.
> ---
>   spec/build/bsps/aarch64/raspberrypi/abi.yml   | 21 +++++
>   .../aarch64/raspberrypi/bspraspberrypi4.yml   | 78 +++++++++++++++++++
>   2 files changed, 99 insertions(+)
>   create mode 100644 spec/build/bsps/aarch64/raspberrypi/abi.yml
>   create mode 100644 spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml
>
> diff --git a/spec/build/bsps/aarch64/raspberrypi/abi.yml b/spec/build/bsps/aarch64/raspberrypi/abi.yml
> new file mode 100644
> index 0000000000..9ed4a961a7
> --- /dev/null
> +++ b/spec/build/bsps/aarch64/raspberrypi/abi.yml
> @@ -0,0 +1,21 @@
> +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) Copyright (C) 2022 Mohd Noor Aman
> +default:
> +- -mcpu=cortex-a72
> +- -march=armv8-a
> +
> +default-by-variant: []
> +includes: []
> +description: |
> +  ABI flags
> +links: []
> +enabled-by: true
> +name: ABI_FLAGS
> +type: build
> +
> \ No newline at end of file
> diff --git a/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml b/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml
> new file mode 100644
> index 0000000000..8b4447db46
> --- /dev/null
> +++ b/spec/build/bsps/aarch64/raspberrypi/bspraspberrypi4.yml
> @@ -0,0 +1,78 @@
> +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
> +
> +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/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/irq/irq-default-handler.c
> +- bsps/shared/irq/irq-handler-install.c
> +- bsps/shared/irq/irq-generic.c
> +- bsps/shared/irq/irq-lock.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: ../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
> +
> +type: build
> +
> +


More information about the devel mailing list