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

Target Capabilities / Board Directory Layout Capabilities #12401

Closed
galak opened this issue Jan 9, 2019 · 14 comments
Closed

Target Capabilities / Board Directory Layout Capabilities #12401

galak opened this issue Jan 9, 2019 · 14 comments
Assignees
Labels
area: Boards Enhancement Changes/Updates/Additions to existing features RFC Request For Comments: want input from the community

Comments

@galak
Copy link
Collaborator

galak commented Jan 9, 2019

Starting this thread to discuss what features we want to support based on the layout of the boards directory.

Today we support/assume:

  1. <BOARD> is expected to match a <BOARD>_defconfig in boards/<ARCH>/<BOARD_DIR_NAME>
  2. Determining the ARCH of the board based on the directory path (its assumed that boards/<ARCH>/<BOARD_DIR_NAME> is the layout
  3. <ARCH> is assumed as the direct parent of <BOARD_DIR_NAME>
    [ I want the assumption of 3. to be that <ARCH> is the name right before "boards" - See PR cmake: prework towards supporting board groups #12377 ]
@galak galak added RFC Request For Comments: want input from the community area: Boards labels Jan 9, 2019
@galak
Copy link
Collaborator Author

galak commented Jan 9, 2019

  • Want to support grouping of boards that are 'common' (typically same board vendor) that would share code between the board (might be DTS files, might be actual .c/.h files)

@galak galak added Enhancement Changes/Updates/Additions to existing features dev-review To be discussed in dev-review meeting labels Jan 9, 2019
@SebastianBoe
Copy link
Collaborator

SebastianBoe commented Jan 10, 2019

I want the assumption of 3. to be that <ARCH> is the name right before "boards"

You mean that you want ARCH to be the direct subdirectory of "boards", right? So, ARCH is after "boards" in a path, not before, or?

@carlescufi
Copy link
Member

@SebastianBoe right, so:

boards/<arch>[/<family>]/<board name>

@carlescufi
Copy link
Member

My take on this is that we should enforce the layout described below:

boards/<arch>[/<family>][/<sub-family>].../<board name>

So that we ensure that ARCH is always located after boards/ and BOARD_DIR_NAME is the leaf of the hierarchy above.

@pabigot
Copy link
Collaborator

pabigot commented Jan 10, 2019

One thing I understood @nashif to want is standardized names for things other than boards.

I would like dts as a standard name to be used within (sub-)family directories to hold device-tree source include files shared among members of the (sub-)family. This allows me to support #12195 with this technique.

It may be appropriate to expect this to be located immediately below boards/<arch>/<family> so that the include path is always "<family>/dts/[/sub-family].../<dtsi>". This is consistent with the top-level ${ZEPHYR_BASE}/dts directory.

There may be other directories to hold Kconfig fragments and other things that aren't device tree; I can't propose names for them.

@galak
Copy link
Collaborator Author

galak commented Jan 10, 2019

My take on this is that we should enforce the layout described below:

boards/<arch>[/<family>][/<sub-family>].../<board name>

So that we ensure that ARCH is always located after boards/ and BOARD_DIR_NAME is the leaf of the hierarchy above.

Does or have any particular definition, or you thinking its completely up to the user (which is my current thought)?

@galak
Copy link
Collaborator Author

galak commented Jan 10, 2019

One thing I understood @nashif to want is standardized names for things other than boards.

I would like dts as a standard name to be used within (sub-)family directories to hold device-tree source include files shared among members of the (sub-)family. This allows me to support #12195 with this technique.

It may be appropriate to expect this to be located immediately below boards/<arch>/<family> so that the include path is always "<family>/dts/[/sub-family].../<dtsi>". This is consistent with the top-level ${ZEPHYR_BASE}/dts directory.

There may be other directories to hold Kconfig fragments and other things that aren't device tree; I can't propose names for them.

I was thinking we'd leave the structure of where to find such files unspecified. We would add -isystem ${ZEPHYR_BASE}/boards/${ARCH} to the search path for DTS.

@carlescufi
Copy link
Member

Does or have any particular definition, or you thinking its completely up to the user (which is my current thought)?

Up to the user. I don't think we can mandate clear rules, it really is difficult and depends on the particular board family.

@carlescufi
Copy link
Member

Conclusion from the development meeting today: not solved yet, for now we keep the boards/<arch>/<board name> layout until the board structure is discussed in more detail.
Common device tree files need to be copied to each board folder.

@galak galak changed the title Board Directory Layout Capabilities Target Capabilities / Board Directory Layout Capabilities Jan 16, 2019
@galak
Copy link
Collaborator Author

galak commented Jan 16, 2019

I'm expanding this to include "target" capabilities as well.

@agross-linaro and I had a discussion around what was needed for secure/non-secure (TEE) and figured this all played together.

The idea we had was around defining what specifies a TARGET. What we have today is:

TARGET:

  • BOARD (required)
  • SHIELD (optional) [should support multiple]
  • CORE (optional, but for cases of AMP, so M0/M4 for something like lpcxpresso54114, or for something like ARDUINO_101 x86/arc) [needs flushing out on naming convention]
  • TEE (optional, SECURE or NON_SECURE) /* TEE - Trusted Execution Environment */

@galak
Copy link
Collaborator Author

galak commented Jan 17, 2019

  • SHIELD (optional) [should support multiple]

@nashif and @MaureenHelm gave example of CORE on a SHIELD (example is KW41Z "shield")

Also, example of Quark SE C1000 Dev board:

https://docs.zephyrproject.org/latest/boards/x86/quark_se_c1000_devboard/doc/board.html

@nashif
Copy link
Member

nashif commented Jan 17, 2019

illustration:

image

@galak galak removed the dev-review To be discussed in dev-review meeting label Jan 24, 2019
@mbolivar
Copy link
Contributor

  • TEE (optional, SECURE or NON_SECURE) /* TEE - Trusted Execution Environment */

Will that scale?

@nashif
Copy link
Member

nashif commented Nov 20, 2022

closing in favor of #51831

@nashif nashif closed this as not planned Won't fix, can't repro, duplicate, stale Nov 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Boards Enhancement Changes/Updates/Additions to existing features RFC Request For Comments: want input from the community
Projects
None yet
Development

No branches or pull requests

9 participants