Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduction of board and SoC scheme v2. #50305

Merged
merged 13 commits into from
Dec 22, 2023

Commits on Dec 22, 2023

  1. build: board/ soc: introduce hw model v2 scheme

    Hw model v2 scheme offers SoC and  maintainers the possibility to define
    promptless SoCs settings which must be selected by the board Kconfig.
    
    Having a board doing `select SOC_<name>` is a much cleaner approach then
    selecting the SoC in a configuration file.
    
    It furthermore removes the need to present all SoCs in choice groups, as
    the SoC is now an internal setting to Kconfig.
    
    This further has the benefit of not presenting users, especially
    new-comers to Zephyr, with SoC selection options in menuconfig which
    has potential to cause confusion.
    
    It moves the SOC, SOC_SERIES, and SOC_FAMILY from arch/Kconfig into the
    soc Kconfig tree, where they rightfully belongs.
    
    With hw model v2, BOARD name is now passed from the build system to
    Kconfig which ensures that the board name used in CMake is always in
    sync with the board name used in Kconfig for hw model v2.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    f197e32 View commit details
    Browse the repository at this point in the history
  2. scripts: introduce list_hardware.py for listing of architectures and …

    …SoCs
    
    The list_hardware.py script parses archs.yml in all <arch-root>/arch
    folders and soc.yml in all <soc-root>/soc sub-folders.
    
    The archs.yml and soc.yml are introduced with hw model v2.
    
    Hw model v2 removes the need for architecture knowledge of the SoCs,
    and as part of this makes multi-arch and multi-core SoCs possible.
    
    Hw model v2 also allows for greater flexibility in arch and SoC
    organization as they can be organized freely.
    
    As example SoCs can be organized by vendors, architecture, or any other
    way as the socs.yml contains the path to the location of the SoC,
    instead of relying on a specific arch.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    8089e59 View commit details
    Browse the repository at this point in the history
  3. arch: add existing archs to archs.yml for HWMv2 support

    Existing Zephyr architectures are already self-contained and thereby
    HWMv2 compliant.
    
    Add all existing architectures to archs.yml.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    3d14d31 View commit details
    Browse the repository at this point in the history
  4. cmake: introduce arch and soc cmake modules for hw model v2

    Introduce dedicated arch and soc hw model v2 CMake module files.
    
    Rename existing arch and soc cmake file to have a `_v1` post fix.
    This help to identify the purpose of each of those files and thus a
    cleaner implementation.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    791486b View commit details
    Browse the repository at this point in the history
  5. boards: extend list_boards.py and update boards CMake module

    Extend list_boards.py and update boards CMake module to handle HWMv2.
    
    list_boards.py is extended to support board.yml file in each board
    folder with various information related to the board, such as vendor,
    soc, cpucluster, variants, revisions.
    
    The HWMv2 removes the requirement for a _defconfig file.
    It also unifies how board revisions, cpusets, etc is defined which again
    provides an option for cleaner build system implementation for handling
    of boards and their integration to the build system.
    
    The CMake boards.cmake module is updated to take advantage of the
    improved design.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    65cdf97 View commit details
    Browse the repository at this point in the history
  6. twister: update twister testplan.py to handle HWMv2 boards

    This commit updates twister testplan.py to handle HWMv2 boards.
    
    It does so by switching to use list_boards.py to obtain a list of
    folders containing <board>.yaml files for processing instead of a
    global globbing of sub-folders under boards.
    
    With HWMv2, boards can be organized more freely, meaning that a fixed
    glob hierarchy is no longer safe.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    75391bf View commit details
    Browse the repository at this point in the history
  7. scripts: extend kconfig compliance to verify board / SoC scheme v2

    This commit extends compliance check to include a KconfigBoardV2 check.
    
    This check verifies that a v2 scheme board / SoC does not contain
    references outside the Kconfig trees.
    
    The check is invoked as: `check_compliance.py -m KconfigBoardV2`
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    370502f View commit details
    Browse the repository at this point in the history
  8. cmake: support hw model v2 in arch/Kconfig tree

    This commit introduces support for Zephyr hw model v2 in the arch
    Kconfig tree.
    
    The hw model v2 requires Kconfig trees to be self-contained, meaning
    that the have no Kconfig references outside the tree itself.
    
    For hw model v2, the architecture of a board / SoC is not known until
    the Kconfig tree and config file has been parsed.
    There provide a new arch/Kconfig.v2 file to support loading of all arch
    Kconfigs. Hw model v1 is now placed in arch/Kconfig.v1 and includes
    only the arch Kconfig files determined by the arch of the board.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    1d0f932 View commit details
    Browse the repository at this point in the history
  9. soc: use HWMv2 for renesas_rzt2m SoC

    This commit move the renesas_rzt2m SoC to soc/v2 and adopt HWMv2.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    392beaf View commit details
    Browse the repository at this point in the history
  10. boards: update Renesas Starter Kit+ for RZ/T2M board to HWMv2 scheme

    This commit updates Renesas Starter Kit+ for RZ/T2M board to use HWMv2.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    dbfff1f View commit details
    Browse the repository at this point in the history
  11. soc: use HWMv2 for arm mps3 SoC

    This commit move the arm mps3 SoC to soc/v2 and adopt HWMv2.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    e38983f View commit details
    Browse the repository at this point in the history
  12. boards: update arm mps3 an547 board to HWMv2 scheme

    This commit updates arm mps3 an547 board to use HWMv2.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    fcd119d View commit details
    Browse the repository at this point in the history
  13. twister: update testcase.yaml and sample.yaml to mps3/an547 identifier

    This commit updates testcase.yaml and sample.yaml to use mps3/an547
    identifier which replaces former mps3_an547 board name.
    
    Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
    tejlmand committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    5b103a3 View commit details
    Browse the repository at this point in the history