* [PATCH 0/3] kernel-fitimage: Add initramfs, x86 support
@ 2016-07-18 17:54 George McCollister
2016-07-18 17:57 ` [PATCH v2 1/3] kernel-fitimage: add initramfs support George McCollister
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: George McCollister @ 2016-07-18 17:54 UTC (permalink / raw)
To: openembedded-core; +Cc: marex
Add support for building fitImages that include an initramfs and booting
on x86.
The following changes since commit da7a2c7b00b40a8759dbe9f4ab6df3e337e3d6b6:
useradd-staticids: use map() instead of imap() (2016-07-12 23:11:57 +0100)
are available in the git repository at:
git://github.com/gmccollister/openembedded-core master-fit
https://github.com/gmccollister/openembedded-core/tree/master-fit
George McCollister (3):
kernel-fitimage: add initramfs support
kernel-fitimage: Add x86 support
uboot-sign: Handle .rom signing the same as .img
meta/classes/kernel-fitimage.bbclass | 344 +++++++++++++++++++++++++----------
meta/classes/uboot-sign.bbclass | 3 +-
2 files changed, 246 insertions(+), 101 deletions(-)
--
2.8.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/3] kernel-fitimage: add initramfs support
2016-07-18 17:54 [PATCH 0/3] kernel-fitimage: Add initramfs, x86 support George McCollister
@ 2016-07-18 17:57 ` George McCollister
2016-07-20 2:21 ` Tom Rini
` (2 more replies)
2016-07-18 17:57 ` [PATCH 2/3] kernel-fitimage: Add x86 support George McCollister
2016-07-18 17:57 ` [PATCH 3/3] uboot-sign: Handle .rom signing the same as .img George McCollister
2 siblings, 3 replies; 10+ messages in thread
From: George McCollister @ 2016-07-18 17:57 UTC (permalink / raw)
To: openembedded-core; +Cc: marex
If INITRAMFS_IMAGE is set, build an additional fitImage containing the
initramfs. Copy the additional fitImage and the source (*.its) file, used
to create it to DEPLOYDIR. The fitImage containing the initramfs must be
built before do_deploy and after do_install to avoid circular dependencies.
UBOOT_RD_LOADADDRESS - Specifies the load address used by u-boot for the
initramfs.
UBOOT_RD_ENTRYPOINT - Specifies the entry point used by u-boot for the
initramfs.
Signed-off-by: George McCollister <george.mccollister@gmail.com>
---
meta/classes/kernel-fitimage.bbclass | 282 +++++++++++++++++++++++------------
1 file changed, 187 insertions(+), 95 deletions(-)
diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
index 9a3caf5..ede69e7 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -16,7 +16,7 @@ python __anonymous () {
image = d.getVar('INITRAMFS_IMAGE', True)
if image:
- d.appendVarFlag('do_assemble_fitimage', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
+ d.appendVarFlag('do_assemble_fitimage_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
# Verified boot will sign the fitImage and append the public key to
# U-boot dtb. We ensure the U-Boot dtb is deployed before assembling
@@ -32,8 +32,9 @@ UBOOT_MKIMAGE_DTCOPTS ??= ""
#
# Emit the fitImage ITS header
#
+# $1 ... .its filename
fitimage_emit_fit_header() {
- cat << EOF >> fit-image.its
+ cat << EOF >> ${1}
/dts-v1/;
/ {
@@ -45,32 +46,33 @@ EOF
#
# Emit the fitImage section bits
#
-# $1 ... Section bit type: imagestart - image section start
+# $1 ... .its filename
+# $2 ... Section bit type: imagestart - image section start
# confstart - configuration section start
# sectend - section end
# fitend - fitimage end
#
fitimage_emit_section_maint() {
- case $1 in
+ case $2 in
imagestart)
- cat << EOF >> fit-image.its
+ cat << EOF >> ${1}
images {
EOF
;;
confstart)
- cat << EOF >> fit-image.its
+ cat << EOF >> ${1}
configurations {
EOF
;;
sectend)
- cat << EOF >> fit-image.its
+ cat << EOF >> ${1}
};
EOF
;;
fitend)
- cat << EOF >> fit-image.its
+ cat << EOF >> ${1}
};
EOF
;;
@@ -80,9 +82,10 @@ EOF
#
# Emit the fitImage ITS kernel section
#
-# $1 ... Image counter
-# $2 ... Path to kernel image
-# $3 ... Compression type
+# $1 ... .its filename
+# $2 ... Image counter
+# $3 ... Path to kernel image
+# $4 ... Compression type
fitimage_emit_section_kernel() {
kernel_csum="sha1"
@@ -90,17 +93,17 @@ fitimage_emit_section_kernel() {
ENTRYPOINT=${UBOOT_ENTRYPOINT}
if test -n "${UBOOT_ENTRYSYMBOL}"; then
ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \
- awk '$3=="${UBOOT_ENTRYSYMBOL}" {print $1}'`
+ awk '$4=="${UBOOT_ENTRYSYMBOL}" {print $2}'`
fi
- cat << EOF >> fit-image.its
- kernel@${1} {
+ cat << EOF >> ${1}
+ kernel@${2} {
description = "Linux kernel";
- data = /incbin/("${2}");
+ data = /incbin/("${3}");
type = "kernel";
arch = "${UBOOT_ARCH}";
os = "linux";
- compression = "${3}";
+ compression = "${4}";
load = <${UBOOT_LOADADDRESS}>;
entry = <${ENTRYPOINT}>;
hash@1 {
@@ -113,16 +116,17 @@ EOF
#
# Emit the fitImage ITS DTB section
#
-# $1 ... Image counter
-# $2 ... Path to DTB image
+# $1 ... .its filename
+# $2 ... Image counter
+# $3 ... Path to DTB image
fitimage_emit_section_dtb() {
dtb_csum="sha1"
- cat << EOF >> fit-image.its
- fdt@${1} {
+ cat << EOF >> ${1}
+ fdt@${2} {
description = "Flattened Device Tree blob";
- data = /incbin/("${2}");
+ data = /incbin/("${3}");
type = "flat_dt";
arch = "${UBOOT_ARCH}";
compression = "none";
@@ -134,10 +138,39 @@ EOF
}
#
+# Emit the fitImage ITS ramdisk section
+#
+# $1 ... .its filename
+# $2 ... Image counter
+# $3 ... Path to ramdisk image
+fitimage_emit_section_ramdisk() {
+
+ ramdisk_csum="sha1"
+
+ cat << EOF >> ${1}
+ ramdisk@${2} {
+ description = "ramdisk image";
+ data = /incbin/("${3}");
+ type = "ramdisk";
+ arch = "${UBOOT_ARCH}";
+ os = "linux";
+ compression = "none";
+ load = <${UBOOT_RD_LOADADDRESS}>;
+ entry = <${UBOOT_RD_ENTRYPOINT}>;
+ hash@1 {
+ algo = "${ramdisk_csum}";
+ };
+ };
+EOF
+}
+
+#
# Emit the fitImage ITS configuration section
#
-# $1 ... Linux kernel ID
-# $2 ... DTB image ID
+# $1 ... .its filename
+# $2 ... Linux kernel ID
+# $3 ... DTB image ID
+# $4 ... ramdisk ID
fitimage_emit_section_config() {
conf_csum="sha1"
@@ -146,21 +179,32 @@ fitimage_emit_section_config() {
fi
# Test if we have any DTBs at all
- if [ -z "${2}" ] ; then
+ if [ -z "${3}" -a -z "${4}" ] ; then
conf_desc="Boot Linux kernel"
fdt_line=""
- else
+ ramdisk_line=""
+ elif [ -z "${4}" ]; then
conf_desc="Boot Linux kernel with FDT blob"
- fdt_line="fdt = \"fdt@${2}\";"
+ fdt_line="fdt = \"fdt@${3}\";"
+ ramdisk_line=""
+ elif [ -z "${3}" ]; then
+ conf_desc="Boot Linux kernel with ramdisk"
+ fdt_line=""
+ ramdisk_line="ramdisk = \"ramdisk@${4}\";"
+ else
+ conf_desc="Boot Linux kernel with FDT blob, ramdisk"
+ fdt_line="fdt = \"fdt@${3}\";"
+ ramdisk_line="ramdisk = \"ramdisk@${4}\";"
fi
- kernel_line="kernel = \"kernel@${1}\";"
+ kernel_line="kernel = \"kernel@${2}\";"
- cat << EOF >> fit-image.its
+ cat << EOF >> ${1}
default = "conf@1";
conf@1 {
description = "${conf_desc}";
${kernel_line}
${fdt_line}
+ ${ramdisk_line}
hash@1 {
algo = "${conf_csum}";
};
@@ -168,102 +212,135 @@ EOF
if [ ! -z "${conf_sign_keyname}" ] ; then
- if [ -z "${2}" ] ; then
+ if [ -z "${3}" -a -z "${4}" ] ; then
sign_line="sign-images = \"kernel\";"
- else
+ elif [ -z "${4}" ]; then
sign_line="sign-images = \"fdt\", \"kernel\";"
+ elif [ -z "${3}" ]; then
+ sign_line="sign-images = \"ramdisk\", \"kernel\";"
+ else
+ sign_line="sign-images = \"ramdisk\", \"fdt\", \"kernel\";"
fi
- cat << EOF >> fit-image.its
+ cat << EOF >> ${1}
signature@1 {
algo = "${conf_csum},rsa2048";
key-name-hint = "${conf_sign_keyname}";
- sign-images = "fdt", "kernel";
+ ${sign_line}
};
EOF
fi
- cat << EOF >> fit-image.its
+ cat << EOF >> ${1}
};
EOF
}
-do_assemble_fitimage() {
- if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
- kernelcount=1
- dtbcount=""
- rm -f fit-image.its arch/${ARCH}/boot/fitImage
-
- fitimage_emit_fit_header
-
- #
- # Step 1: Prepare a kernel image section.
- #
- fitimage_emit_section_maint imagestart
-
- uboot_prep_kimage
- fitimage_emit_section_kernel "${kernelcount}" linux.bin "${linux_comp}"
-
- #
- # Step 2: Prepare a DTB image section
- #
- if test -n "${KERNEL_DEVICETREE}"; then
- dtbcount=1
- for DTB in ${KERNEL_DEVICETREE}; do
- if echo ${DTB} | grep -q '/dts/'; then
- bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used."
- DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
- fi
- DTB_PATH="arch/${ARCH}/boot/dts/${DTB}"
- if [ ! -e "${DTB_PATH}" ]; then
- DTB_PATH="arch/${ARCH}/boot/${DTB}"
- fi
-
- fitimage_emit_section_dtb ${dtbcount} ${DTB_PATH}
- dtbcount=`expr ${dtbcount} + 1`
- done
- fi
+#
+# Assemble fitImage
+#
+# $1 ... .its filename
+# $2 ... fitImage name
+# $3 ... include ramdisk
+fitimage_assemble() {
+ kernelcount=1
+ dtbcount=""
+ ramdiskcount=${3}
+ rm -f ${1} arch/${ARCH}/boot/${2}
+
+ fitimage_emit_fit_header ${1}
+
+ #
+ # Step 1: Prepare a kernel image section.
+ #
+ fitimage_emit_section_maint ${1} imagestart
+
+ uboot_prep_kimage
+ fitimage_emit_section_kernel ${1} "${kernelcount}" linux.bin "${linux_comp}"
+
+ #
+ # Step 2: Prepare a DTB image section
+ #
+ if test -n "${KERNEL_DEVICETREE}"; then
+ dtbcount=1
+ for DTB in ${KERNEL_DEVICETREE}; do
+ if echo ${DTB} | grep -q '/dts/'; then
+ bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used."
+ DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
+ fi
+ DTB_PATH="arch/${ARCH}/boot/dts/${DTB}"
+ if [ ! -e "${DTB_PATH}" ]; then
+ DTB_PATH="arch/${ARCH}/boot/${DTB}"
+ fi
+
+ fitimage_emit_section_dtb ${1} ${dtbcount} ${DTB_PATH}
+ dtbcount=`expr ${dtbcount} + 1`
+ done
+ fi
+
+ #
+ # Step 3: Prepare a ramdisk section.
+ #
+ if [ "x${ramdiskcount}" = "x1" ] ; then
+ copy_initramfs
+ fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
+ fi
- fitimage_emit_section_maint sectend
+ fitimage_emit_section_maint ${1} sectend
- # Force the first Kernel and DTB in the default config
- kernelcount=1
- dtbcount=1
+ # Force the first Kernel and DTB in the default config
+ kernelcount=1
+ dtbcount=1
+
+ #
+ # Step 4: Prepare a configurations section
+ #
+ fitimage_emit_section_maint ${1} confstart
- #
- # Step 3: Prepare a configurations section
- #
- fitimage_emit_section_maint confstart
+ fitimage_emit_section_config ${1} ${kernelcount} ${dtbcount} ${ramdiskcount}
- fitimage_emit_section_config ${kernelcount} ${dtbcount}
+ fitimage_emit_section_maint ${1} sectend
- fitimage_emit_section_maint sectend
+ fitimage_emit_section_maint ${1} fitend
- fitimage_emit_section_maint fitend
+ #
+ # Step 5: Assemble the image
+ #
+ uboot-mkimage \
+ ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
+ -f ${1} \
+ arch/${ARCH}/boot/${2}
- #
- # Step 4: Assemble the image
- #
+ #
+ # Step 6: Sign the image and add public key to U-Boot dtb
+ #
+ if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
uboot-mkimage \
${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
- -f fit-image.its \
- arch/${ARCH}/boot/fitImage
-
- #
- # Step 5: Sign the image and add public key to U-Boot dtb
- #
- if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
- uboot-mkimage \
- ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
- -F -k "${UBOOT_SIGN_KEYDIR}" \
- -K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}" \
- -r arch/${ARCH}/boot/fitImage
- fi
+ -F -k "${UBOOT_SIGN_KEYDIR}" \
+ -K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}" \
+ -r arch/${ARCH}/boot/${2}
+ fi
+}
+
+do_assemble_fitimage() {
+ if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
+ fitimage_assemble fit-image.its fitImage
fi
}
addtask assemble_fitimage before do_install after do_compile
+do_assemble_fitimage_initramfs() {
+ if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage" && \
+ test -n "${INITRAMFS_IMAGE}" ; then
+ fitimage_assemble fit-image-${INITRAMFS_IMAGE}.its fitImage-${INITRAMFS_IMAGE} 1
+ fi
+}
+
+addtask assemble_fitimage_initramfs before do_deploy after do_install
+
+
kernel_do_deploy[vardepsexclude] = "DATETIME"
kernel_do_deploy_append() {
# Update deploy directory
@@ -277,8 +354,23 @@ kernel_do_deploy_append() {
linux_bin_symlink_name=fitImage-linux.bin-${MACHINE}
install -m 0644 linux.bin ${DEPLOYDIR}/${linux_bin_base_name}.bin
+ if [ -n "${INITRAMFS_IMAGE}" ]; then
+ echo "Copying fit-image-${INITRAMFS_IMAGE}.its source file..."
+ its_initramfs_base_name="${KERNEL_IMAGETYPE}-its-${INITRAMFS_IMAGE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
+ its_initramfs_symlink_name=${KERNEL_IMAGETYPE}-its-${INITRAMFS_IMAGE}-${MACHINE}
+ install -m 0644 fit-image-${INITRAMFS_IMAGE}.its ${DEPLOYDIR}/${its_initramfs_base_name}.its
+ fit_initramfs_base_name="${KERNEL_IMAGETYPE}-${INITRAMFS_IMAGE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
+ fit_initramfs_symlink_name=${KERNEL_IMAGETYPE}-${INITRAMFS_IMAGE}-${MACHINE}
+ install -m 0644 arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} ${DEPLOYDIR}/${fit_initramfs_base_name}.bin
+ fi
+
cd ${DEPLOYDIR}
ln -sf ${its_base_name}.its ${its_symlink_name}.its
ln -sf ${linux_bin_base_name}.bin ${linux_bin_symlink_name}.bin
+
+ if [ -n "${INITRAMFS_IMAGE}" ]; then
+ ln -sf ${its_initramfs_base_name}.its ${its_initramfs_symlink_name}.its
+ ln -sf ${fit_initramfs_base_name}.bin ${fit_initramfs_symlink_name}.bin
+ fi
fi
}
--
2.8.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] kernel-fitimage: Add x86 support
2016-07-18 17:54 [PATCH 0/3] kernel-fitimage: Add initramfs, x86 support George McCollister
2016-07-18 17:57 ` [PATCH v2 1/3] kernel-fitimage: add initramfs support George McCollister
@ 2016-07-18 17:57 ` George McCollister
2016-07-20 2:21 ` Tom Rini
2016-07-18 17:57 ` [PATCH 3/3] uboot-sign: Handle .rom signing the same as .img George McCollister
2 siblings, 1 reply; 10+ messages in thread
From: George McCollister @ 2016-07-18 17:57 UTC (permalink / raw)
To: openembedded-core; +Cc: marex
For x86, bzImage must be built instead of zImage.
Include setup.bin (which is required to boot the kernel) in the fitimage
and always use a load/boot address of 0x00090000.
For details see:
http://git.denx.de/?p=u-boot.git;a=blob;f=doc/uImage.FIT/x86-fit-boot.txt
Signed-off-by: George McCollister <george.mccollister@gmail.com>
---
meta/classes/kernel-fitimage.bbclass | 112 +++++++++++++++++++++++++----------
1 file changed, 82 insertions(+), 30 deletions(-)
diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
index ede69e7..d4e3ed8 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -7,12 +7,17 @@ python __anonymous () {
depends = "%s u-boot-mkimage-native dtc-native" % depends
d.setVar("DEPENDS", depends)
+ if d.getVar("UBOOT_ARCH", True) == "x86":
+ replacementtype = "bzImage"
+ else:
+ replacementtype = "zImage"
+
# Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal
# to kernel.bbclass . We have to override it, since we pack zImage
# (at least for now) into the fitImage .
typeformake = d.getVar("KERNEL_IMAGETYPE_FOR_MAKE", True) or ""
if 'fitImage' in typeformake.split():
- d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('fitImage', 'zImage'))
+ d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('fitImage', replacementtype))
image = d.getVar('INITRAMFS_IMAGE', True)
if image:
@@ -138,6 +143,33 @@ EOF
}
#
+# Emit the fitImage ITS setup section
+#
+# $1 ... .its filename
+# $2 ... Image counter
+# $3 ... Path to setup image
+fitimage_emit_section_setup() {
+
+ setup_csum="sha1"
+
+ cat << EOF >> ${1}
+ setup@${2} {
+ description = "Linux setup.bin";
+ data = /incbin/("${3}");
+ type = "x86_setup";
+ arch = "${UBOOT_ARCH}";
+ os = "linux";
+ compression = "none";
+ load = <0x00090000>;
+ entry = <0x00090000>;
+ hash@1 {
+ algo = "${setup_csum}";
+ };
+ };
+EOF
+}
+
+#
# Emit the fitImage ITS ramdisk section
#
# $1 ... .its filename
@@ -171,6 +203,7 @@ EOF
# $2 ... Linux kernel ID
# $3 ... DTB image ID
# $4 ... ramdisk ID
+# $5 ... config ID
fitimage_emit_section_config() {
conf_csum="sha1"
@@ -179,24 +212,25 @@ fitimage_emit_section_config() {
fi
# Test if we have any DTBs at all
- if [ -z "${3}" -a -z "${4}" ] ; then
- conf_desc="Boot Linux kernel"
- fdt_line=""
- ramdisk_line=""
- elif [ -z "${4}" ]; then
- conf_desc="Boot Linux kernel with FDT blob"
- fdt_line="fdt = \"fdt@${3}\";"
- ramdisk_line=""
- elif [ -z "${3}" ]; then
- conf_desc="Boot Linux kernel with ramdisk"
- fdt_line=""
- ramdisk_line="ramdisk = \"ramdisk@${4}\";"
- else
- conf_desc="Boot Linux kernel with FDT blob, ramdisk"
+ conf_desc="Linux kernel"
+ kernel_line="kernel = \"kernel@${2}\";"
+ fdt_line=""
+ ramdisk_line=""
+
+ if [ -n "${3}" ]; then
+ conf_desc="${conf_desc}, FDT blob"
fdt_line="fdt = \"fdt@${3}\";"
+ fi
+
+ if [ -n "${4}" ]; then
+ conf_desc="${conf_desc}, ramdisk"
ramdisk_line="ramdisk = \"ramdisk@${4}\";"
fi
- kernel_line="kernel = \"kernel@${2}\";"
+
+ if [ -n "${5}" ]; then
+ conf_desc="${conf_desc}, setup"
+ setup_line="setup = \"setup@${5}\";"
+ fi
cat << EOF >> ${1}
default = "conf@1";
@@ -205,6 +239,7 @@ fitimage_emit_section_config() {
${kernel_line}
${fdt_line}
${ramdisk_line}
+ ${setup_line}
hash@1 {
algo = "${conf_csum}";
};
@@ -212,16 +247,22 @@ EOF
if [ ! -z "${conf_sign_keyname}" ] ; then
- if [ -z "${3}" -a -z "${4}" ] ; then
- sign_line="sign-images = \"kernel\";"
- elif [ -z "${4}" ]; then
- sign_line="sign-images = \"fdt\", \"kernel\";"
- elif [ -z "${3}" ]; then
- sign_line="sign-images = \"ramdisk\", \"kernel\";"
- else
- sign_line="sign-images = \"ramdisk\", \"fdt\", \"kernel\";"
+ sign_line="sign-images = \"kernel\""
+
+ if [ -n "${3}" ]; then
+ sign_line="${sign_line}, \"fdt\""
+ fi
+
+ if [ -n "${4}" ]; then
+ sign_line="${sign_line}, \"ramdisk\""
fi
+ if [ -n "${5}" ]; then
+ sign_line="${sign_line}, \"setup\""
+ fi
+
+ sign_line="${sign_line};"
+
cat << EOF >> ${1}
signature@1 {
algo = "${conf_csum},rsa2048";
@@ -246,6 +287,7 @@ fitimage_assemble() {
kernelcount=1
dtbcount=""
ramdiskcount=${3}
+ setupcount=""
rm -f ${1} arch/${ARCH}/boot/${2}
fitimage_emit_fit_header ${1}
@@ -279,7 +321,15 @@ fitimage_assemble() {
fi
#
- # Step 3: Prepare a ramdisk section.
+ # Step 3: Prepare a setup section. (For x86)
+ #
+ if test -e arch/${ARCH}/boot/setup.bin ; then
+ setupcount=1
+ fitimage_emit_section_setup ${1} "${setupcount}" arch/${ARCH}/boot/setup.bin
+ fi
+
+ #
+ # Step 4: Prepare a ramdisk section.
#
if [ "x${ramdiskcount}" = "x1" ] ; then
copy_initramfs
@@ -290,21 +340,23 @@ fitimage_assemble() {
# Force the first Kernel and DTB in the default config
kernelcount=1
- dtbcount=1
+ if test -n "${dtbcount}"; then
+ dtbcount=1
+ fi
#
- # Step 4: Prepare a configurations section
+ # Step 5: Prepare a configurations section
#
fitimage_emit_section_maint ${1} confstart
- fitimage_emit_section_config ${1} ${kernelcount} ${dtbcount} ${ramdiskcount}
+ fitimage_emit_section_config ${1} "${kernelcount}" "${dtbcount}" "${ramdiskcount}" "${setupcount}"
fitimage_emit_section_maint ${1} sectend
fitimage_emit_section_maint ${1} fitend
#
- # Step 5: Assemble the image
+ # Step 6: Assemble the image
#
uboot-mkimage \
${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
@@ -312,7 +364,7 @@ fitimage_assemble() {
arch/${ARCH}/boot/${2}
#
- # Step 6: Sign the image and add public key to U-Boot dtb
+ # Step 7: Sign the image and add public key to U-Boot dtb
#
if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
uboot-mkimage \
--
2.8.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] uboot-sign: Handle .rom signing the same as .img
2016-07-18 17:54 [PATCH 0/3] kernel-fitimage: Add initramfs, x86 support George McCollister
2016-07-18 17:57 ` [PATCH v2 1/3] kernel-fitimage: add initramfs support George McCollister
2016-07-18 17:57 ` [PATCH 2/3] kernel-fitimage: Add x86 support George McCollister
@ 2016-07-18 17:57 ` George McCollister
2016-07-20 2:21 ` Tom Rini
2 siblings, 1 reply; 10+ messages in thread
From: George McCollister @ 2016-07-18 17:57 UTC (permalink / raw)
To: openembedded-core; +Cc: marex
Handle u-boot.rom signing (U-Boot as x86 BIOS replacement) the same way
that u-boot.img signing is handled.
Signed-off-by: George McCollister <george.mccollister@gmail.com>
---
meta/classes/uboot-sign.bbclass | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta/classes/uboot-sign.bbclass b/meta/classes/uboot-sign.bbclass
index 57d4903..d56ad8e 100644
--- a/meta/classes/uboot-sign.bbclass
+++ b/meta/classes/uboot-sign.bbclass
@@ -64,7 +64,8 @@ do_concat_dtb () {
# Concatenate U-Boot w/o DTB & DTB with public key
# (cf. kernel-fitimage.bbclass for more details)
if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ]; then
- if [ "x${UBOOT_SUFFIX}" = "ximg" -a -e "${DEPLOYDIR}/${UBOOT_DTB_IMAGE}" ]; then
+ if [ "x${UBOOT_SUFFIX}" = "ximg" -o "x${UBOOT_SUFFIX}" = "xrom" ] && \
+ [ -e "${DEPLOYDIR}/${UBOOT_DTB_IMAGE}" ]; then
oe_runmake EXT_DTB=${DEPLOYDIR}/${UBOOT_DTB_IMAGE}
install ${S}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
install ${S}/${UBOOT_BINARY} ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
--
2.8.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] kernel-fitimage: add initramfs support
2016-07-18 17:57 ` [PATCH v2 1/3] kernel-fitimage: add initramfs support George McCollister
@ 2016-07-20 2:21 ` Tom Rini
2016-08-05 4:48 ` Denys Dmytriyenko
2016-08-05 21:25 ` Denys Dmytriyenko
2 siblings, 0 replies; 10+ messages in thread
From: Tom Rini @ 2016-07-20 2:21 UTC (permalink / raw)
To: George McCollister; +Cc: marex, openembedded-core
On Mon, Jul 18, 2016 at 12:57:55PM -0500, George McCollister wrote:
> If INITRAMFS_IMAGE is set, build an additional fitImage containing the
> initramfs. Copy the additional fitImage and the source (*.its) file, used
> to create it to DEPLOYDIR. The fitImage containing the initramfs must be
> built before do_deploy and after do_install to avoid circular dependencies.
>
> UBOOT_RD_LOADADDRESS - Specifies the load address used by u-boot for the
> initramfs.
> UBOOT_RD_ENTRYPOINT - Specifies the entry point used by u-boot for the
> initramfs.
>
> Signed-off-by: George McCollister <george.mccollister@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
--
Tom
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] kernel-fitimage: Add x86 support
2016-07-18 17:57 ` [PATCH 2/3] kernel-fitimage: Add x86 support George McCollister
@ 2016-07-20 2:21 ` Tom Rini
0 siblings, 0 replies; 10+ messages in thread
From: Tom Rini @ 2016-07-20 2:21 UTC (permalink / raw)
To: George McCollister; +Cc: marex, openembedded-core
On Mon, Jul 18, 2016 at 12:57:56PM -0500, George McCollister wrote:
> For x86, bzImage must be built instead of zImage.
>
> Include setup.bin (which is required to boot the kernel) in the fitimage
> and always use a load/boot address of 0x00090000.
>
> For details see:
> http://git.denx.de/?p=u-boot.git;a=blob;f=doc/uImage.FIT/x86-fit-boot.txt
>
> Signed-off-by: George McCollister <george.mccollister@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
--
Tom
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/3] uboot-sign: Handle .rom signing the same as .img
2016-07-18 17:57 ` [PATCH 3/3] uboot-sign: Handle .rom signing the same as .img George McCollister
@ 2016-07-20 2:21 ` Tom Rini
0 siblings, 0 replies; 10+ messages in thread
From: Tom Rini @ 2016-07-20 2:21 UTC (permalink / raw)
To: George McCollister; +Cc: marex, openembedded-core
On Mon, Jul 18, 2016 at 12:57:57PM -0500, George McCollister wrote:
> Handle u-boot.rom signing (U-Boot as x86 BIOS replacement) the same way
> that u-boot.img signing is handled.
>
> Signed-off-by: George McCollister <george.mccollister@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
--
Tom
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] kernel-fitimage: add initramfs support
2016-07-18 17:57 ` [PATCH v2 1/3] kernel-fitimage: add initramfs support George McCollister
2016-07-20 2:21 ` Tom Rini
@ 2016-08-05 4:48 ` Denys Dmytriyenko
2016-08-05 21:25 ` Denys Dmytriyenko
2 siblings, 0 replies; 10+ messages in thread
From: Denys Dmytriyenko @ 2016-08-05 4:48 UTC (permalink / raw)
To: George McCollister; +Cc: marex, openembedded-core
On Mon, Jul 18, 2016 at 12:57:55PM -0500, George McCollister wrote:
> If INITRAMFS_IMAGE is set, build an additional fitImage containing the
> initramfs. Copy the additional fitImage and the source (*.its) file, used
> to create it to DEPLOYDIR. The fitImage containing the initramfs must be
> built before do_deploy and after do_install to avoid circular dependencies.
>
> UBOOT_RD_LOADADDRESS - Specifies the load address used by u-boot for the
> initramfs.
> UBOOT_RD_ENTRYPOINT - Specifies the entry point used by u-boot for the
> initramfs.
>
> Signed-off-by: George McCollister <george.mccollister@gmail.com>
Tested-by: Denys Dmytriyenko <denys@ti.com>
Acked-by: Denys Dmytriyenko <denys@ti.com>
> ---
> meta/classes/kernel-fitimage.bbclass | 282 +++++++++++++++++++++++------------
> 1 file changed, 187 insertions(+), 95 deletions(-)
>
> diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
> index 9a3caf5..ede69e7 100644
> --- a/meta/classes/kernel-fitimage.bbclass
> +++ b/meta/classes/kernel-fitimage.bbclass
> @@ -16,7 +16,7 @@ python __anonymous () {
>
> image = d.getVar('INITRAMFS_IMAGE', True)
> if image:
> - d.appendVarFlag('do_assemble_fitimage', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
> + d.appendVarFlag('do_assemble_fitimage_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
>
> # Verified boot will sign the fitImage and append the public key to
> # U-boot dtb. We ensure the U-Boot dtb is deployed before assembling
> @@ -32,8 +32,9 @@ UBOOT_MKIMAGE_DTCOPTS ??= ""
> #
> # Emit the fitImage ITS header
> #
> +# $1 ... .its filename
> fitimage_emit_fit_header() {
> - cat << EOF >> fit-image.its
> + cat << EOF >> ${1}
> /dts-v1/;
>
> / {
> @@ -45,32 +46,33 @@ EOF
> #
> # Emit the fitImage section bits
> #
> -# $1 ... Section bit type: imagestart - image section start
> +# $1 ... .its filename
> +# $2 ... Section bit type: imagestart - image section start
> # confstart - configuration section start
> # sectend - section end
> # fitend - fitimage end
> #
> fitimage_emit_section_maint() {
> - case $1 in
> + case $2 in
> imagestart)
> - cat << EOF >> fit-image.its
> + cat << EOF >> ${1}
>
> images {
> EOF
> ;;
> confstart)
> - cat << EOF >> fit-image.its
> + cat << EOF >> ${1}
>
> configurations {
> EOF
> ;;
> sectend)
> - cat << EOF >> fit-image.its
> + cat << EOF >> ${1}
> };
> EOF
> ;;
> fitend)
> - cat << EOF >> fit-image.its
> + cat << EOF >> ${1}
> };
> EOF
> ;;
> @@ -80,9 +82,10 @@ EOF
> #
> # Emit the fitImage ITS kernel section
> #
> -# $1 ... Image counter
> -# $2 ... Path to kernel image
> -# $3 ... Compression type
> +# $1 ... .its filename
> +# $2 ... Image counter
> +# $3 ... Path to kernel image
> +# $4 ... Compression type
> fitimage_emit_section_kernel() {
>
> kernel_csum="sha1"
> @@ -90,17 +93,17 @@ fitimage_emit_section_kernel() {
> ENTRYPOINT=${UBOOT_ENTRYPOINT}
> if test -n "${UBOOT_ENTRYSYMBOL}"; then
> ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \
> - awk '$3=="${UBOOT_ENTRYSYMBOL}" {print $1}'`
> + awk '$4=="${UBOOT_ENTRYSYMBOL}" {print $2}'`
> fi
>
> - cat << EOF >> fit-image.its
> - kernel@${1} {
> + cat << EOF >> ${1}
> + kernel@${2} {
> description = "Linux kernel";
> - data = /incbin/("${2}");
> + data = /incbin/("${3}");
> type = "kernel";
> arch = "${UBOOT_ARCH}";
> os = "linux";
> - compression = "${3}";
> + compression = "${4}";
> load = <${UBOOT_LOADADDRESS}>;
> entry = <${ENTRYPOINT}>;
> hash@1 {
> @@ -113,16 +116,17 @@ EOF
> #
> # Emit the fitImage ITS DTB section
> #
> -# $1 ... Image counter
> -# $2 ... Path to DTB image
> +# $1 ... .its filename
> +# $2 ... Image counter
> +# $3 ... Path to DTB image
> fitimage_emit_section_dtb() {
>
> dtb_csum="sha1"
>
> - cat << EOF >> fit-image.its
> - fdt@${1} {
> + cat << EOF >> ${1}
> + fdt@${2} {
> description = "Flattened Device Tree blob";
> - data = /incbin/("${2}");
> + data = /incbin/("${3}");
> type = "flat_dt";
> arch = "${UBOOT_ARCH}";
> compression = "none";
> @@ -134,10 +138,39 @@ EOF
> }
>
> #
> +# Emit the fitImage ITS ramdisk section
> +#
> +# $1 ... .its filename
> +# $2 ... Image counter
> +# $3 ... Path to ramdisk image
> +fitimage_emit_section_ramdisk() {
> +
> + ramdisk_csum="sha1"
> +
> + cat << EOF >> ${1}
> + ramdisk@${2} {
> + description = "ramdisk image";
> + data = /incbin/("${3}");
> + type = "ramdisk";
> + arch = "${UBOOT_ARCH}";
> + os = "linux";
> + compression = "none";
> + load = <${UBOOT_RD_LOADADDRESS}>;
> + entry = <${UBOOT_RD_ENTRYPOINT}>;
> + hash@1 {
> + algo = "${ramdisk_csum}";
> + };
> + };
> +EOF
> +}
> +
> +#
> # Emit the fitImage ITS configuration section
> #
> -# $1 ... Linux kernel ID
> -# $2 ... DTB image ID
> +# $1 ... .its filename
> +# $2 ... Linux kernel ID
> +# $3 ... DTB image ID
> +# $4 ... ramdisk ID
> fitimage_emit_section_config() {
>
> conf_csum="sha1"
> @@ -146,21 +179,32 @@ fitimage_emit_section_config() {
> fi
>
> # Test if we have any DTBs at all
> - if [ -z "${2}" ] ; then
> + if [ -z "${3}" -a -z "${4}" ] ; then
> conf_desc="Boot Linux kernel"
> fdt_line=""
> - else
> + ramdisk_line=""
> + elif [ -z "${4}" ]; then
> conf_desc="Boot Linux kernel with FDT blob"
> - fdt_line="fdt = \"fdt@${2}\";"
> + fdt_line="fdt = \"fdt@${3}\";"
> + ramdisk_line=""
> + elif [ -z "${3}" ]; then
> + conf_desc="Boot Linux kernel with ramdisk"
> + fdt_line=""
> + ramdisk_line="ramdisk = \"ramdisk@${4}\";"
> + else
> + conf_desc="Boot Linux kernel with FDT blob, ramdisk"
> + fdt_line="fdt = \"fdt@${3}\";"
> + ramdisk_line="ramdisk = \"ramdisk@${4}\";"
> fi
> - kernel_line="kernel = \"kernel@${1}\";"
> + kernel_line="kernel = \"kernel@${2}\";"
>
> - cat << EOF >> fit-image.its
> + cat << EOF >> ${1}
> default = "conf@1";
> conf@1 {
> description = "${conf_desc}";
> ${kernel_line}
> ${fdt_line}
> + ${ramdisk_line}
> hash@1 {
> algo = "${conf_csum}";
> };
> @@ -168,102 +212,135 @@ EOF
>
> if [ ! -z "${conf_sign_keyname}" ] ; then
>
> - if [ -z "${2}" ] ; then
> + if [ -z "${3}" -a -z "${4}" ] ; then
> sign_line="sign-images = \"kernel\";"
> - else
> + elif [ -z "${4}" ]; then
> sign_line="sign-images = \"fdt\", \"kernel\";"
> + elif [ -z "${3}" ]; then
> + sign_line="sign-images = \"ramdisk\", \"kernel\";"
> + else
> + sign_line="sign-images = \"ramdisk\", \"fdt\", \"kernel\";"
> fi
>
> - cat << EOF >> fit-image.its
> + cat << EOF >> ${1}
> signature@1 {
> algo = "${conf_csum},rsa2048";
> key-name-hint = "${conf_sign_keyname}";
> - sign-images = "fdt", "kernel";
> + ${sign_line}
> };
> EOF
> fi
>
> - cat << EOF >> fit-image.its
> + cat << EOF >> ${1}
> };
> EOF
> }
>
> -do_assemble_fitimage() {
> - if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
> - kernelcount=1
> - dtbcount=""
> - rm -f fit-image.its arch/${ARCH}/boot/fitImage
> -
> - fitimage_emit_fit_header
> -
> - #
> - # Step 1: Prepare a kernel image section.
> - #
> - fitimage_emit_section_maint imagestart
> -
> - uboot_prep_kimage
> - fitimage_emit_section_kernel "${kernelcount}" linux.bin "${linux_comp}"
> -
> - #
> - # Step 2: Prepare a DTB image section
> - #
> - if test -n "${KERNEL_DEVICETREE}"; then
> - dtbcount=1
> - for DTB in ${KERNEL_DEVICETREE}; do
> - if echo ${DTB} | grep -q '/dts/'; then
> - bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used."
> - DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
> - fi
> - DTB_PATH="arch/${ARCH}/boot/dts/${DTB}"
> - if [ ! -e "${DTB_PATH}" ]; then
> - DTB_PATH="arch/${ARCH}/boot/${DTB}"
> - fi
> -
> - fitimage_emit_section_dtb ${dtbcount} ${DTB_PATH}
> - dtbcount=`expr ${dtbcount} + 1`
> - done
> - fi
> +#
> +# Assemble fitImage
> +#
> +# $1 ... .its filename
> +# $2 ... fitImage name
> +# $3 ... include ramdisk
> +fitimage_assemble() {
> + kernelcount=1
> + dtbcount=""
> + ramdiskcount=${3}
> + rm -f ${1} arch/${ARCH}/boot/${2}
> +
> + fitimage_emit_fit_header ${1}
> +
> + #
> + # Step 1: Prepare a kernel image section.
> + #
> + fitimage_emit_section_maint ${1} imagestart
> +
> + uboot_prep_kimage
> + fitimage_emit_section_kernel ${1} "${kernelcount}" linux.bin "${linux_comp}"
> +
> + #
> + # Step 2: Prepare a DTB image section
> + #
> + if test -n "${KERNEL_DEVICETREE}"; then
> + dtbcount=1
> + for DTB in ${KERNEL_DEVICETREE}; do
> + if echo ${DTB} | grep -q '/dts/'; then
> + bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used."
> + DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
> + fi
> + DTB_PATH="arch/${ARCH}/boot/dts/${DTB}"
> + if [ ! -e "${DTB_PATH}" ]; then
> + DTB_PATH="arch/${ARCH}/boot/${DTB}"
> + fi
> +
> + fitimage_emit_section_dtb ${1} ${dtbcount} ${DTB_PATH}
> + dtbcount=`expr ${dtbcount} + 1`
> + done
> + fi
> +
> + #
> + # Step 3: Prepare a ramdisk section.
> + #
> + if [ "x${ramdiskcount}" = "x1" ] ; then
> + copy_initramfs
> + fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
> + fi
>
> - fitimage_emit_section_maint sectend
> + fitimage_emit_section_maint ${1} sectend
>
> - # Force the first Kernel and DTB in the default config
> - kernelcount=1
> - dtbcount=1
> + # Force the first Kernel and DTB in the default config
> + kernelcount=1
> + dtbcount=1
> +
> + #
> + # Step 4: Prepare a configurations section
> + #
> + fitimage_emit_section_maint ${1} confstart
>
> - #
> - # Step 3: Prepare a configurations section
> - #
> - fitimage_emit_section_maint confstart
> + fitimage_emit_section_config ${1} ${kernelcount} ${dtbcount} ${ramdiskcount}
>
> - fitimage_emit_section_config ${kernelcount} ${dtbcount}
> + fitimage_emit_section_maint ${1} sectend
>
> - fitimage_emit_section_maint sectend
> + fitimage_emit_section_maint ${1} fitend
>
> - fitimage_emit_section_maint fitend
> + #
> + # Step 5: Assemble the image
> + #
> + uboot-mkimage \
> + ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
> + -f ${1} \
> + arch/${ARCH}/boot/${2}
>
> - #
> - # Step 4: Assemble the image
> - #
> + #
> + # Step 6: Sign the image and add public key to U-Boot dtb
> + #
> + if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
> uboot-mkimage \
> ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
> - -f fit-image.its \
> - arch/${ARCH}/boot/fitImage
> -
> - #
> - # Step 5: Sign the image and add public key to U-Boot dtb
> - #
> - if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
> - uboot-mkimage \
> - ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
> - -F -k "${UBOOT_SIGN_KEYDIR}" \
> - -K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}" \
> - -r arch/${ARCH}/boot/fitImage
> - fi
> + -F -k "${UBOOT_SIGN_KEYDIR}" \
> + -K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}" \
> + -r arch/${ARCH}/boot/${2}
> + fi
> +}
> +
> +do_assemble_fitimage() {
> + if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
> + fitimage_assemble fit-image.its fitImage
> fi
> }
>
> addtask assemble_fitimage before do_install after do_compile
>
> +do_assemble_fitimage_initramfs() {
> + if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage" && \
> + test -n "${INITRAMFS_IMAGE}" ; then
> + fitimage_assemble fit-image-${INITRAMFS_IMAGE}.its fitImage-${INITRAMFS_IMAGE} 1
> + fi
> +}
> +
> +addtask assemble_fitimage_initramfs before do_deploy after do_install
> +
> +
> kernel_do_deploy[vardepsexclude] = "DATETIME"
> kernel_do_deploy_append() {
> # Update deploy directory
> @@ -277,8 +354,23 @@ kernel_do_deploy_append() {
> linux_bin_symlink_name=fitImage-linux.bin-${MACHINE}
> install -m 0644 linux.bin ${DEPLOYDIR}/${linux_bin_base_name}.bin
>
> + if [ -n "${INITRAMFS_IMAGE}" ]; then
> + echo "Copying fit-image-${INITRAMFS_IMAGE}.its source file..."
> + its_initramfs_base_name="${KERNEL_IMAGETYPE}-its-${INITRAMFS_IMAGE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
> + its_initramfs_symlink_name=${KERNEL_IMAGETYPE}-its-${INITRAMFS_IMAGE}-${MACHINE}
> + install -m 0644 fit-image-${INITRAMFS_IMAGE}.its ${DEPLOYDIR}/${its_initramfs_base_name}.its
> + fit_initramfs_base_name="${KERNEL_IMAGETYPE}-${INITRAMFS_IMAGE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
> + fit_initramfs_symlink_name=${KERNEL_IMAGETYPE}-${INITRAMFS_IMAGE}-${MACHINE}
> + install -m 0644 arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} ${DEPLOYDIR}/${fit_initramfs_base_name}.bin
> + fi
> +
> cd ${DEPLOYDIR}
> ln -sf ${its_base_name}.its ${its_symlink_name}.its
> ln -sf ${linux_bin_base_name}.bin ${linux_bin_symlink_name}.bin
> +
> + if [ -n "${INITRAMFS_IMAGE}" ]; then
> + ln -sf ${its_initramfs_base_name}.its ${its_initramfs_symlink_name}.its
> + ln -sf ${fit_initramfs_base_name}.bin ${fit_initramfs_symlink_name}.bin
> + fi
> fi
> }
> --
> 2.8.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] kernel-fitimage: add initramfs support
2016-07-18 17:57 ` [PATCH v2 1/3] kernel-fitimage: add initramfs support George McCollister
2016-07-20 2:21 ` Tom Rini
2016-08-05 4:48 ` Denys Dmytriyenko
@ 2016-08-05 21:25 ` Denys Dmytriyenko
2016-08-08 16:15 ` George McCollister
2 siblings, 1 reply; 10+ messages in thread
From: Denys Dmytriyenko @ 2016-08-05 21:25 UTC (permalink / raw)
To: George McCollister; +Cc: marex, openembedded-core
On Mon, Jul 18, 2016 at 12:57:55PM -0500, George McCollister wrote:
> If INITRAMFS_IMAGE is set, build an additional fitImage containing the
> initramfs. Copy the additional fitImage and the source (*.its) file, used
> to create it to DEPLOYDIR. The fitImage containing the initramfs must be
> built before do_deploy and after do_install to avoid circular dependencies.
>
> UBOOT_RD_LOADADDRESS - Specifies the load address used by u-boot for the
> initramfs.
> UBOOT_RD_ENTRYPOINT - Specifies the entry point used by u-boot for the
> initramfs.
>
> Signed-off-by: George McCollister <george.mccollister@gmail.com>
> ---
> meta/classes/kernel-fitimage.bbclass | 282 +++++++++++++++++++++++------------
> 1 file changed, 187 insertions(+), 95 deletions(-)
>
> diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
> index 9a3caf5..ede69e7 100644
> --- a/meta/classes/kernel-fitimage.bbclass
> +++ b/meta/classes/kernel-fitimage.bbclass
> @@ -16,7 +16,7 @@ python __anonymous () {
>
<snip>
> + #
> + # Step 3: Prepare a ramdisk section.
> + #
> + if [ "x${ramdiskcount}" = "x1" ] ; then
> + copy_initramfs
> + fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
May I suggest dropping ${B} here to get the ramdisk path shorter and easier to
read? It's relative to ${B} anyway - same as all the DTBs...
+ fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
> + fi
>
<snip>
--
Denys
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] kernel-fitimage: add initramfs support
2016-08-05 21:25 ` Denys Dmytriyenko
@ 2016-08-08 16:15 ` George McCollister
0 siblings, 0 replies; 10+ messages in thread
From: George McCollister @ 2016-08-08 16:15 UTC (permalink / raw)
To: Denys Dmytriyenko; +Cc: Marek Vašut, openembedded-core
On Fri, Aug 5, 2016 at 4:25 PM, Denys Dmytriyenko <denis@denix.org> wrote:
> On Mon, Jul 18, 2016 at 12:57:55PM -0500, George McCollister wrote:
>> If INITRAMFS_IMAGE is set, build an additional fitImage containing the
>> initramfs. Copy the additional fitImage and the source (*.its) file, used
>> to create it to DEPLOYDIR. The fitImage containing the initramfs must be
>> built before do_deploy and after do_install to avoid circular dependencies.
>>
>> UBOOT_RD_LOADADDRESS - Specifies the load address used by u-boot for the
>> initramfs.
>> UBOOT_RD_ENTRYPOINT - Specifies the entry point used by u-boot for the
>> initramfs.
>>
>> Signed-off-by: George McCollister <george.mccollister@gmail.com>
>> ---
>> meta/classes/kernel-fitimage.bbclass | 282 +++++++++++++++++++++++------------
>> 1 file changed, 187 insertions(+), 95 deletions(-)
>>
>> diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
>> index 9a3caf5..ede69e7 100644
>> --- a/meta/classes/kernel-fitimage.bbclass
>> +++ b/meta/classes/kernel-fitimage.bbclass
>> @@ -16,7 +16,7 @@ python __anonymous () {
>>
>
> <snip>
>
>
>> + #
>> + # Step 3: Prepare a ramdisk section.
>> + #
>> + if [ "x${ramdiskcount}" = "x1" ] ; then
>> + copy_initramfs
>> + fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
>
> May I suggest dropping ${B} here to get the ramdisk path shorter and easier to
> read? It's relative to ${B} anyway - same as all the DTBs...
>
> + fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
Change made, will be included in the new pull request.
Thanks
>
>> + fi
>>
>
> <snip>
>
> --
> Denys
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-08-08 16:15 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-18 17:54 [PATCH 0/3] kernel-fitimage: Add initramfs, x86 support George McCollister
2016-07-18 17:57 ` [PATCH v2 1/3] kernel-fitimage: add initramfs support George McCollister
2016-07-20 2:21 ` Tom Rini
2016-08-05 4:48 ` Denys Dmytriyenko
2016-08-05 21:25 ` Denys Dmytriyenko
2016-08-08 16:15 ` George McCollister
2016-07-18 17:57 ` [PATCH 2/3] kernel-fitimage: Add x86 support George McCollister
2016-07-20 2:21 ` Tom Rini
2016-07-18 17:57 ` [PATCH 3/3] uboot-sign: Handle .rom signing the same as .img George McCollister
2016-07-20 2:21 ` Tom Rini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.