BSP_CONSOLE_MINOR option for Zynq board with new build system

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Sep 25 14:13:40 UTC 2020


Hello Jan,

On 25/09/2020 15:36, Jan.Sommer at dlr.de wrote:
> Hello,
>
> I am currently making my first steps with the new build system and so far it is amazing.
> Especially, the inheritance option is very handy for maintaining different configurations.
> Therefore, a big thank you to Sebastian and everyone else involved.
thanks for having a look at it.
>
> I ran into a smaller problem when compiling for a zynq-board.
> I tried to override BSP_CONSOLE_MINOR=0, but it seems that the option is interpreted as a Boolean and then the define not set.
> At least I run into:
> ../../../bsps/arm/xilinx-zynq/start/bspreset.c: In function 'bsp_reset':
> ../../../bsps/arm/xilinx-zynq/start/bspreset.c:37:49: error: 'BSP_CONSOLE_MINOR' undeclared (first use in this function)
>     37 |   zynq_uart_reset_tx_flush(&zynq_uart_instances[BSP_CONSOLE_MINOR]);

Yes, this could be a potential problem in several BSPs. I used a script 
to convert the BSP options, but to detect if it was an integer or 
boolean type was just an heuristic. In order to fix this, you first have 
to find the build specification item of the option:

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

So, we have this option duplicated. This is an issue on its own. At some 
point in time we should unify the options across the BSPs.

Then open the file (spec/build/bsps/arm/xilinx-zynq/optconminor.yml):

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

Under actions you see what is done with the value specified by the 
configuration file (or the default value). See also:

https://docs.rtems.org/branches/master/eng/req/items.html#spectypebuildoptionaction

This patch fixes probably the issue:

diff --git a/spec/build/bsps/arm/xilinx-zynq/optconminor.yml 
b/spec/build/bsps/arm/xilinx-zynq/optconminor.yml
index 55074c6dac..486eb92d33 100644
--- a/spec/build/bsps/arm/xilinx-zynq/optconminor.yml
+++ b/spec/build/bsps/arm/xilinx-zynq/optconminor.yml
@@ -1,15 +1,16 @@
  SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
  actions:
-- get-boolean: null
-- define-condition: null
+- get-integer: null
+- define: null
  build-type: option
  copyrights:
  - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-default: true
+default: 1
  default-by-variant: []
  description: |
    minor number of console device
  enabled-by: true
+format: '{}'
  links: []
  name: BSP_CONSOLE_MINOR
  type: build

The integer options need a "format" attribute.



More information about the devel mailing list