[PATCH v1 3/3] Add AArch64 ZynpMP BSP

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Dec 2 08:51:53 UTC 2020


On 01/12/2020 21:57, Kinsey Moore wrote:

> This adds a BSP family that runs on the Xilinx Ultrascale+ MPSOC
> (ZynqMP) family of chips. It is configured to be usable on the Qemu
> ZCU102 machine definition and should be almost trivially portable to
> ZynqMP development boards and custom hardware. It is also configured to
> be usable with libbsd.
The BSP looks good. I have just some minor things.
> ---
>   bsps/aarch64/xilinx-zynqmp/console/console.c  | 134 ++++++++++++++++++
>   bsps/aarch64/xilinx-zynqmp/include/bsp.h      |  81 +++++++++++
>   bsps/aarch64/xilinx-zynqmp/include/bsp/irq.h  |  72 ++++++++++
>   bsps/aarch64/xilinx-zynqmp/include/tm27.h     |  46 ++++++
>   bsps/aarch64/xilinx-zynqmp/start/bspstart.c   |  49 +++++++
>   .../xilinx-zynqmp/start/bspstarthooks.c       |  50 +++++++
>   spec/build/bsps/aarch64/xilinx-zynqmp/abi.yml |  22 +++
>   .../aarch64/xilinx-zynqmp/bspqemuilp32.yml    |  21 +++
>   .../aarch64/xilinx-zynqmp/bspqemulp64.yml     |  21 +++
>   spec/build/bsps/aarch64/xilinx-zynqmp/grp.yml |  44 ++++++
>   .../aarch64/xilinx-zynqmp/linkcmds_ilp32.yml  |  72 ++++++++++
>   .../aarch64/xilinx-zynqmp/linkcmds_lp64.yml   |  71 ++++++++++
>   spec/build/bsps/aarch64/xilinx-zynqmp/obj.yml |  37 +++++
>   .../bsps/aarch64/xilinx-zynqmp/optclkuart.yml |  20 +++
>   .../aarch64/xilinx-zynqmp/optconminor.yml     |  15 ++
>   .../bsps/aarch64/xilinx-zynqmp/optloadoff.yml |  18 +++
>   .../aarch64/xilinx-zynqmp/optnocachelen.yml   |  18 +++
>   .../bsps/aarch64/xilinx-zynqmp/optramlen.yml  |  18 +++
>   .../bsps/aarch64/xilinx-zynqmp/optramori.yml  |  18 +++
>   .../bsps/aarch64/xilinx-zynqmp/tstqemu.yml    |  56 ++++++++
>   20 files changed, 883 insertions(+)
>   create mode 100644 bsps/aarch64/xilinx-zynqmp/console/console.c
>   create mode 100644 bsps/aarch64/xilinx-zynqmp/include/bsp.h
>   create mode 100644 bsps/aarch64/xilinx-zynqmp/include/bsp/irq.h
>   create mode 100644 bsps/aarch64/xilinx-zynqmp/include/tm27.h
>   create mode 100644 bsps/aarch64/xilinx-zynqmp/start/bspstart.c
>   create mode 100644 bsps/aarch64/xilinx-zynqmp/start/bspstarthooks.c
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/abi.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/bspqemuilp32.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/bspqemulp64.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/grp.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_ilp32.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_lp64.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/obj.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/optclkuart.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/optconminor.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/optloadoff.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/optnocachelen.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/optramlen.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/optramori.yml
>   create mode 100644 spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml
>
> diff --git a/bsps/aarch64/xilinx-zynqmp/console/console.c b/bsps/aarch64/xilinx-zynqmp/console/console.c
> new file mode 100644
> index 0000000000..7bd85626d9
> --- /dev/null
> +++ b/bsps/aarch64/xilinx-zynqmp/console/console.c
> @@ -0,0 +1,134 @@
> +/* SPDX-License-Identifier: BSD-2-Clause */
> +
> +/**
> + * @file
> + *
> + * @ingroup RTEMSBSPsAArch64XilinxZynqMP
> + *
> + * @brief Console Configuration
> + */

The Doxygen recommendation for brief descriptions for @file and 
@defgroup changed recently:

https://docs.rtems.org/branches/master/eng/coding-doxygen.html#files

> [...]
> diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_ilp32.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_ilp32.yml
> new file mode 100644
> index 0000000000..88ed23f1c8
> --- /dev/null
> +++ b/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_ilp32.yml
> @@ -0,0 +1,72 @@
> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
> +build-type: config-file
> +content: |
> +  /*
> +   * SPDX-License-Identifier: BSD-2-Clause
> +   *
Please put the SPDX-License-Identifier separately in the first line of 
the file (and the others).
> +   * Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
> +   * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> [...]
> diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/optconminor.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/optconminor.yml
> new file mode 100644
> index 0000000000..55074c6dac
> --- /dev/null
> +++ b/spec/build/bsps/aarch64/xilinx-zynqmp/optconminor.yml
> @@ -0,0 +1,15 @@
> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
> +actions:
> +- get-boolean: null
> +- define-condition: null
> +build-type: option
> +copyrights:
> +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
> +default: true
> +default-by-variant: []
> +description: |
> +  minor number of console device
> +enabled-by: true
> +links: []
> +name: BSP_CONSOLE_MINOR
> +type: build

This option is already used in two other BSPs:

spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml:name: BSP_CONSOLE_MINOR
spec/build/bsps/arm/xilinx-zynq/optconminor.yml:name: BSP_CONSOLE_MINOR

Instead of adding more copy and paste, please consolidate the options.

> [...]
> diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml
> new file mode 100644
> index 0000000000..a5b08eca10
> --- /dev/null
> +++ b/spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml
> @@ -0,0 +1,56 @@
> +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
> +actions:
> +- set-test-state:
> +    # expected to fail
> +    minimum: exclude
> +
> +    # expected to fail, zynq UART implements set_attributes, but always returns failure
> +    spconsole01: exclude
Since you work on the BSP currently, maybe you could fix this.
> +
> +    # test broken under 64bit due to SIZE_MAX differences
> +    validation-0: expected-fail

Please add a ticket for things like this.

[...]

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hubere at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/



More information about the devel mailing list