diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
commit | 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch) | |
tree | cd70a267a5ef105ba32f200aa088e281fbd85747 /bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree | |
parent | 4204309872da5cb401cbb2729d9e2d4869a87f42 (diff) |
basesystem-jjsandbox/ToshikazuOhiwa/master-jj
recipes
Diffstat (limited to 'bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree')
-rw-r--r-- | bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree/files/xen.dtsi.in | 17 | ||||
-rw-r--r-- | bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree/xen-devicetree.bb | 72 |
2 files changed, 89 insertions, 0 deletions
diff --git a/bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree/files/xen.dtsi.in b/bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree/files/xen.dtsi.in new file mode 100644 index 00000000..42d12fae --- /dev/null +++ b/bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree/files/xen.dtsi.in @@ -0,0 +1,17 @@ +/ { + chosen { + xen,dom0-bootargs = "###XEN_DOM0_BOOTARGS###"; + xen,xen-bootargs = "###XEN_XEN_BOOTARGS###"; + + modules { + #size-cells = <0x00000001>; + #address-cells = <0x00000001>; + + module@0 { + reg = <###XEN_DOM0_ADDR### ###XEN_DOM0_SIZE###>; + compatible = "multiboot,module"; + }; + }; + }; +}; + diff --git a/bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree/xen-devicetree.bb b/bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree/xen-devicetree.bb new file mode 100644 index 00000000..cef5f79e --- /dev/null +++ b/bsp/meta-arm/meta-arm-autonomy/recipes-extended/xen-devicetree/xen-devicetree.bb @@ -0,0 +1,72 @@ +# This recipe can be used to modify one or several DTBS to add +# entries required to declare and boot Linux as Dom0 from Xen + +SRC_URI = "file://xen.dtsi.in" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "\ + file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \ + " + +S = "${WORKDIR}" + +DESCRIPTION = "Add entries in DTB for Xen and Dom0" + +# Please refer to documentation/xen-devicetree.md for documentation on those +# parameters +XEN_DEVICETREE_DEPEND ?= "virtual/kernel:do_deploy" +XEN_DEVICETREE_DTBS ?= "${KERNEL_DEVICETREE}" +XEN_DEVICETREE_XEN_BOOTARGS ?= "noreboot dom0_mem=${XEN_DEVICETREE_DOM0_MEM}" +XEN_DEVICETREE_DOM0_MEM ?= "1024M" +XEN_DEVICETREE_DOM0_BOOTARGS ?= "console=hvc0 earlycon=xen" +XEN_DEVICETREE_DOM0_ADDR ?= "0x80080000" +XEN_DEVICETREE_DOM0_SIZE ?= "0x01000000" +XEN_DEVICETREE_DTSI_MERGE ?= "xen.dtsi" + +# Our package does not generate any package for the rootfs but contributes to +# deploy +inherit nopackages deploy + +DEPENDS += "dtc-native" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" +do_install[noexec] = "1" + +do_deploy() { + if [ ! -f ${WORKDIR}/xen.dtsi.in ]; then + die "xen.dtsi.in does not exist" + fi + cat ${WORKDIR}/xen.dtsi.in \ + | sed -e "s,###XEN_DOM0_BOOTARGS###,${XEN_DEVICETREE_DOM0_BOOTARGS}," \ + | sed -e "s,###XEN_XEN_BOOTARGS###,${XEN_DEVICETREE_XEN_BOOTARGS}," \ + | sed -e "s,###XEN_DOM0_ADDR###,${XEN_DEVICETREE_DOM0_ADDR}," \ + | sed -e "s,###XEN_DOM0_SIZE###,${XEN_DEVICETREE_DOM0_SIZE}," \ + > ${WORKDIR}/xen.dtsi + + # Generate final dtbs + for dtbf in ${XEN_DEVICETREE_DTBS}; do + rdtb=`basename $dtbf` + if [ ! -f ${DEPLOY_DIR_IMAGE}/$rdtb ]; then + die "Wrong file in XEN_DEVICETREE_DTBS: ${DEPLOY_DIR_IMAGE}/$rdtb does not exist" + fi + dtc -I dtb -O dts -o ${WORKDIR}/dom0-linux.dts ${DEPLOY_DIR_IMAGE}/$rdtb + + # Add external includes + for inc in ${XEN_DEVICETREE_DTSI_MERGE}; do + if [ ! -f ${WORKDIR}/${inc} ]; then + die "Wrong file in XEN_DEVICETREE_DTSI_MERGE: ${WORKDIR}/${inc} does not exist" + fi + echo "/include/ \"$inc\"" >> ${WORKDIR}/dom0-linux.dts + done + + rdtbnoextn=`basename $dtbf ".dtb"` + dtc -I dts -O dtb \ + -o ${WORKDIR}/${rdtbnoextn}-xen.dtb ${WORKDIR}/dom0-linux.dts + install -m 644 ${rdtbnoextn}-xen.dtb ${DEPLOYDIR}/. + done +} +do_deploy[depends] += "${XEN_DEVICETREE_DEPEND}" + +addtask deploy after do_install + |