[meta-intel] [PATCH] rmc: Extend usages of RMC_BOARD_DATA_DIRS to specify board data
Cal Sullivan
california.l.sullivan at intel.com
Mon Jan 9 12:56:50 PST 2017
Looks good and makes sense. Merged.
---
Cal
On 01/05/2017 04:15 PM, Jianxun Zhang wrote:
> Use the variable RMC_BOARD_DATA_DIRS, to disable, append to, or
> override the default board data in meta-intel with boards' data
> provided by users.
>
> Ideally, users should get the updated database in the new built
> image after an incremental build.
>
> Examples of RMC database output (db):
>
> RMC_BOARD_DATA_DIRS = "" (disable db generation)
> RMC_BOARD_DATA_DIRS_append = " top_dir" (db of defaults & user's)
> RMC_BOARD_DATA_DIRS = "top_dir" (db for user's , no defaults)
> RMC_BOARD_DATA_DIRS = " " (same as "")
>
> Signed-off-by: Jianxun Zhang <jianxun.zhang at linux.intel.com>
> ---
> classes/rmc-boot.bbclass | 6 +++++-
> common/recipes-bsp/rmc/rmc-db.bb | 3 ++-
> documentation/rmc/README | 41 ++++++++++++++++++++++++----------------
> 3 files changed, 32 insertions(+), 18 deletions(-)
>
> diff --git a/classes/rmc-boot.bbclass b/classes/rmc-boot.bbclass
> index a1f2093..37c3e30 100644
> --- a/classes/rmc-boot.bbclass
> +++ b/classes/rmc-boot.bbclass
> @@ -9,5 +9,9 @@ inherit ${RMC_BOOTLOADER}
> do_bootimg[depends] += "${MLPREFIX}rmc-db:do_deploy"
>
> efi_populate_append() {
> - install -m 0400 ${DEPLOY_DIR_IMAGE}/rmc.db ${DEST}/rmc.db
> + if [ -f ${DEPLOY_DIR_IMAGE}/rmc.db ]; then
> + install -m 0400 ${DEPLOY_DIR_IMAGE}/rmc.db ${DEST}/rmc.db
> + else
> + rm -f ${DEST}/rmc.db
> + fi
> }
> diff --git a/common/recipes-bsp/rmc/rmc-db.bb b/common/recipes-bsp/rmc/rmc-db.bb
> index 14553af..99565fd 100644
> --- a/common/recipes-bsp/rmc/rmc-db.bb
> +++ b/common/recipes-bsp/rmc/rmc-db.bb
> @@ -14,7 +14,7 @@ S = "${WORKDIR}"
>
> inherit rmc-db
>
> -RMC_BOARD_DATA_DIRS_append := " ${THISDIR}/boards/"
> +RMC_BOARD_DATA_DIRS ?= "${THISDIR}/boards/"
> RMC_DB_DIR = "${WORKDIR}/db"
>
> # Let sstate be aware of change in any added board directories
> @@ -41,6 +41,7 @@ do_deploy () {
> if [ -f ${RMC_DB_DIR}/rmc.db ]; then
> install -m 0400 ${RMC_DB_DIR}/rmc.db ${DEPLOYDIR}
> else
> + rm -f ${DEPLOYDIR}/rmc.db
> echo "Warning: no RMC central database found, skip deployment."
> fi
> }
> diff --git a/documentation/rmc/README b/documentation/rmc/README
> index dbee6b6..eaa763e 100644
> --- a/documentation/rmc/README
> +++ b/documentation/rmc/README
> @@ -82,15 +82,31 @@ following this example, so that RMC recipes can pick up them correctly in build.
> |- ...more files
>
> Note 0:
> -To add your boards into RMC feature, simply put this line in your
> -rmc-db.bbappend:
> +Developers are expected to use variable RMC_BOARD_DATA_DIRS to specify data of
> +boards packed into RMC database file generated in a build. The default value of
> +the variable in meta-intel specifies a group of boards. They work as examples
> +and necessary quirks for these boards to function properly. Developers can
> +override, append to the default boards with data of their own boards in the
> +database file, or even disable the generation of the database file.
>
> -RMC_BOARD_DATA_DIRS_append := " ${THISDIR}/my_top_dir"
> +For example, in your local.conf file:
>
> -RMC db recipe takes all top directories specified in RMC_BOARD_DATA_DIRS to
> -construct and deploy a central RMC database inside image. The bbclass of the
> -bare RMC project also provide function for other components to construct their
> -own RMC database file. Please refer to rmc-db.bbclass for more information.
> +This line adds your boards along with the default boards into RMC database file,
> +assuming you have a directory named "rmc" which has a subdirectory for each
> +board:
> +
> +RMC_BOARD_DATA_DIRS_append = " /path_of/rmc"
> +
> +This line directs RMC to pack data of your boards only, without data of the
> +default boards in meta-intel:
> +
> +RMC_BOARD_DATA_DIRS = "/path_of/rmc"
> +
> +And this line disables database generation:
> +
> +RMC_BOARD_DATA_DIRS = ""
> +
> +Please also refer to the "Example 1" in this document.
>
> Subdirectory is not supported in a board's directory.
>
> @@ -175,15 +191,8 @@ bootloader please overwrite the RMC_BOOTLOADER variable in your local.conf
>
> Note:
> Image could be still bootable if you only have either of two lines, but RMC
> -feature won't be fully functional.
> -
> -To install only the RMC client with the systemd-boot bootloader without
> -including a default RMC database file, add the following lines to your
> -local.conf:
> -
> -EFI_PROVIDER = "systemd-boot"
> -IMAGE_INSTALL_append = " rmc"
> -
> +feature could not be fully functional, depending on the availability of the
> +database file, installer and the rmc tool.
>
> Examples
> --------------------------------------------------------------------------------
More information about the meta-intel
mailing list