summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/rmc-boot.bbclass6
-rw-r--r--common/recipes-bsp/rmc/rmc-db.bb3
-rw-r--r--documentation/rmc/README41
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
--------------------------------------------------------------------------------