diff options
-rw-r--r-- | classes/rmc-boot.bbclass | 6 | ||||
-rw-r--r-- | common/recipes-bsp/rmc/rmc-db.bb | 3 | ||||
-rw-r--r-- | documentation/rmc/README | 41 |
3 files changed, 32 insertions, 18 deletions
diff --git a/classes/rmc-boot.bbclass b/classes/rmc-boot.bbclass index a1f2093f..37c3e30c 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 14553af0..99565fdd 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 dbee6b6d..eaa763e1 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 -------------------------------------------------------------------------------- |