diff options
-rw-r--r-- | README.md | 10 | ||||
-rwxr-xr-x | scripts/uboot-script-gen | 26 |
2 files changed, 35 insertions, 1 deletions
@@ -49,6 +49,7 @@ DOMU_KERNEL[0]="zynqmp-dom1/Image-domU" DOMU_PASSTHROUGH_PATHS[0]="/axi/ethernet@ff0e0000 /axi/serial@ff000000" DOMU_CMD[0]="console=ttyPS0 earlycon console=ttyPS0,115200 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh" DOMU_RAMDISK[0]="zynqmp-dom1/domU-ramdisk.cpio" +DOMU_COLORS[0]="6-14" DOMU_KERNEL[1]="zynqmp-dom2/Image-domU" DOMU_CMD[1]="console=ttyAMA0 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh" DOMU_RAMDISK[1]="zynqmp-dom2/domU-ramdisk.cpio" @@ -86,6 +87,9 @@ Where: - XEN specifies the Xen hypervisor binary to load. Note that it has to be a regular Xen binary, not a u-boot binary. +- XEN_COLORS specifies the colors (cache coloring) to be used for Xen + and is in the format startcolor-endcolor + - XEN_CMD specifies the command line arguments used for Xen. If not set, the default one will be used. @@ -103,6 +107,9 @@ Where: - DOM0_VCPUS specifies the number of VCPUs for Dom0. The default is 1. This is only applicable when XEN_CMD is not specified. +- DOM0_COLORS specifies the colors (cache coloring) to be used for dom0 + and is in the format startcolor-endcolor + - DOM0_CMD specifies the command line arguments for Dom0's Linux kernel. If "root=" isn't set, imagebuilder will try to determine it. If not set at all, the default one is used. @@ -150,6 +157,9 @@ Where: - DOMU_VCPUS[number] is the number of vcpus for the VM, default 1 +- DOMU_COLORS[number] specifies the colors (cache coloring) to be used + for the domain and is in the format startcolor-endcolor + - DOMU_NOBOOT[number]: if specified, the DomU is not started automatically at boot as dom0-less guest. It can still be created later from Dom0. diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen index 001f6ed..48b36a3 100755 --- a/scripts/uboot-script-gen +++ b/scripts/uboot-script-gen @@ -203,6 +203,21 @@ function xen_device_tree_editing() add_device_tree_static_mem "/chosen/domU$i" "${DOMU_STATIC_MEM[$i]}" fi dt_set "/chosen/domU$i" "vpl011" "hex" "0x1" + + if test "${DOMU_COLORS[$i]}" + then + local startcolor=$(echo "${DOMU_COLORS[$i]}" | cut -d "-" -f 1) + local endcolor=$(echo "${DOMU_COLORS[$i]}" | cut -d "-" -f 2) + local bitcolors=0 + local bit=$startcolor + while test $bit -le $endcolor + do + bitcolors=$(( $bitcolors | $(( 1 << $bit)) )) + bit=$(( $bit + 1 )) + done + dt_set "/chosen/domU$i" "colors" "hex" "$(printf "0x%x" $bitcolors)" + fi + add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}" if test "${domU_ramdisk_addr[$i]}" then @@ -384,7 +399,16 @@ function xen_config() DOM0_VCPUS="1" fi - XEN_CMD="console=dtuart dtuart=serial0 dom0_mem=${DOM0_MEM}M dom0_max_vcpus=${DOM0_VCPUS} bootscrub=0 vwfi=native sched=null" + if test "$DOM0_COLORS" + then + DOM0_COLORS="dom0_colors=$DOM0_COLORS" + fi + if test "$XEN_COLORS" + then + XEN_COLORS="xen_colors=$XEN_COLORS" + fi + + XEN_CMD="console=dtuart dtuart=serial0 dom0_mem=${DOM0_MEM}M dom0_max_vcpus=${DOM0_VCPUS} bootscrub=0 vwfi=native sched=null $XEN_COLORS $DOM0_COLORS" else if [ "$DOM0_MEM" ] || [ "$DOM0_VCPUS" ] then |