aboutsummaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Add support for lopper to generate partial dtsMichal Orzel2022-12-092-20/+79
| | | | | | | | | | | | | | | | | | | | | | Currently ImageBuilder can compile and merge partial dts obtained from a repository specified using PASSTHROUGH_DTS_REPO. With the recent changes done in the lopper, we can use it to generate partial dts automatically (to some extent as this is still an early support). Introduce LOPPER_PATH option to specify a path to a lopper.py script, the main script in the Lopper repository, that if set, will invoke lopper to generate partial dts for the passthrough devices specified in DOMU_PASSTHROUGH_PATHS. Introduce LOPPER_CMD option to specify custom command line arguments (if needed) for lopper's extract assist. Example usage: LOPPER_PATH="/home/user/lopper/lopper.py" DOMU_PASSTHROUGH_PATHS[0]="/axi/spi@ff0f0000 /axi/serial@ff010000" Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* Refactor sanity_check_partial_dtsMichal Orzel2022-12-091-5/+6
| | | | | | | | | | | | | | | | Currently function sanity_check_partial_dts from scripts/common takes three arguments where the last two (repo, dir) are used always in conjuction to form a path to a directory storing partial dts. Modify the function to take only two arguments where the second one is to be a path to a directory storing partial dts. This will help reusing this function in the future to perform sanity checks on partial dts that do not originate from a repository. Modify compile_merge_partial_dts to take this change into account. Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Ayan Kumar Halder <ayankuma@amd.com> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
* Do not set #xen,static-mem-{address/size}-cellsMichal Orzel2022-11-161-3/+0
| | | | | | | | | | Xen commit 942ac5fc15ec ("xen/arm, device-tree: Make static-mem use #{address,size}-cells") dropped these custom properties in favor of reusing regular #{address/size}-cells from the chosen node for the xen,static-mem property. Reflect this change in ImageBuilder. Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* Add support for Xen boot-time cpupoolsMichal Orzel2022-09-071-0/+79
| | | | | | | | | | | | | | | | | | | | | | | Introduce support for creating boot-time cpupools in the device tree and assigning them to dom0less domUs. Add the following options: - CPUPOOL[number]="cpu@1,...,cpu@N scheduler" to specify the list of cpus' node names and the scheduler to be used to create cpupool - NUM_CPUPOOLS to specify the number of cpupools to create - DOMU_CPUPOOL[number]="<id>" to specify the id of the cpupool to assign to domU Example usage: CPUPOOL[0]="cpu@1,cpu@2 null" DOMU_CPUPOOL[0]=0 NUM_CPUPOOLS=1 The above example will create a boot-time cpupool (id=0) with 2 cpus: cpu@1, cpu@2 and the null scheduler. It will assign the cpupool with id=0 to domU0. Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
* scripts/common: Introduce phandle_next and get_next_phandle()Michal Orzel2022-09-071-0/+11
| | | | | | | | | | | | | | When dealing with device trees, we need to have a solution to add custom phandles to the nodes we create/modify. Add a global variable phandle_next to act as a countdown counter starting with the highest valid phandle value 0xfffffffe. Add a new function get_next_phandle to get a value of the next available phandle and set it to a variable whose name is passed as a first argument. The global counter will be decremented with each call to this function. Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
* Add a DOMU_ENHANCED config optionStefano Stabellini2022-07-281-1/+1
| | | | | | | The new option allows to disable "xen,enhanced" for individual domUs. Useful to boot old unpatched kernels. Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
* If the "BOOT_CMD" variable is set to "none" inside the configAndrei Cherechesu2022-07-271-2/+9
| | | | | | | | | | | | | | | | | | | | | file, the boot command (i.e. "booti") will not by added to the generated script, to allow the user to customize the u-boot env or the device-tree after executing the script commands and before actually booting. Added commands to store the addresses where the Xen image and device-tree file are loaded, in 'host_kernel_addr' and 'host_fdt_addr' variables, if BOOTCMD = "none". The `booti` command can then be executed as part of the 'bootcmd' variable in u-boot, which should contain: 1. fetching the generated u-boot script 2. executing the script 3. running `booti ${host_kernel_addr} - ${host_fdt_addr}` command Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* Added the parsing for APPEND_EXTRA_CMDS variable, which enables theAndrei Cherechesu2022-07-271-0/+11
| | | | | | | | | | | | | user to specify the path to a text file that contains, on each line, u-boot commands that will be added to the generated script as "fixups", before the boot command. The file specified by the APPEND_EXTRA_CMDS variable parameter will be copied as-is in the generated script. Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* Remove extraneous comma in generated its file when no DOM0_KERNEL is specified.Jackson Smith2022-07-271-1/+6
| | | | | | | Signed-off-by: Jackson Smith <rsmith@RiversideResearch.org> Signed-off-by: Jason Shuhua Lei <lei56@purdue.edu> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* scripts: Add support for prepending path to file namesAndrei Cherechesu2022-07-062-18/+31
| | | | | | | | | | | | | | | | | | | | Added support for prepending path to file names in the final generated u-boot script, for the use-case where we have the files in a separate folder that can be accessed with a given $LOAD_CMD. For example, we can have "fatload mmc 0:2" as LOAD_CMD but the files would need to be loaded from the /boot folder within the 2nd partition, not from the root ("/"). By specifying the "-p <path>" parameter when running the script, paths like "/boot" can be automatically prepended to the generated u-boot commands used to load the files in board's memory. Also added the support to disk_image script, to enable generating a FAT partition with the binaries deployed in a custom folder within it, if the "-p" parameter is specified. Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* uboot-script-gen: prevent user mistakes due to DOM0_KERNEL becoming optionalXenia Ragiadakou2022-06-281-7/+14
| | | | | | | | | | | | | | | | | | | | Before enabling true dom0less configuration, the script was failing instantly if DOM0_KERNEL parameter was not specified. This behaviour has changed and this needs to be communicated to the user. Mention in README.md that for dom0less configurations, the parameter DOM0_KERNEL is optional. If DOM0_KERNEL is not set, check that no other dom0 specific parameters are specified by the user. Fail the script early with an appropriate error message, if it was invoked with erroneous configuration settings. Change message "Dom0 kernel is not specified, continue with dom0less setup." to "Dom0 kernel is not specified, continue with true dom0less setup." to refer more accurately to a dom0less setup without dom0. Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* uboot-script-gen: Enable direct mapping of statically allocated memoryXenia Ragiadakou2022-06-211-0/+18
| | | | | | | | | | | | | | | | Direct mapping for dom0less VMs is disabled by default in XEN and can be enabled through the 'direct-map' property. Add a new config parameter DOMU_DIRECT_MAP to be able to enable or disable direct mapping, i.e set to 1 for enabling and to 0 for disabling. This parameter is optional. Direct mapping is enabled by default for all dom0less VMs with static allocation. The property 'direct-map' is a boolean property. Boolean properties are true if present and false if missing. Add a new data_type 'bool' in function dt_set() to setup a boolean property. Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* uboot-script-gen: Skip dom0 instead of exiting if DOM0_KERNEL is not setXenia Ragiadakou2022-06-211-17/+43
| | | | | | | | | When the parameter DOM0_KERNEL is not specified and NUM_DOMUS is not 0, instead of failing the script, just skip any dom0 specific setup. This way the script can be used to boot XEN in dom0less mode. Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* Add xen,enhanced by default to all guestsStefano Stabellini2022-06-171-0/+1
| | | | | | | | | | | | It enables the usage of PV drivers with dom0less guests. Adding xen,enhanced has the potential side-effect of causing older unpatched versions of Linux to break at boot. If your Linux kernel is affected, consider upgrading kernel, or removing "xen,enhanced" by hand from the generated boot.source. Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Reviewed-by: Ayan Kumar Halder <ayankuma@amd.com>
* Add support for cache coloringStefano Stabellini2022-06-171-1/+25
| | | | | | | | | | | Generate the coloring information for Xen, dom0 and domUs based on information on the config file. Cache coloring is not upstreaming but it was published to xen-devel already. It is very useful to be able to provide a cache coloring configuration via config file instead of manually editing boot.source. Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* uboot-script-gen: Add DOMU_STATIC_MEMXenia Ragiadakou2022-06-161-2/+61
| | | | | | | | | | | | | | | | | | | | | Add a new config parameter to configure a dom0less VM with static allocation. DOMU_STATIC_MEM[number]="baseaddr1 size1 ... baseaddrN sizeN" The parameter specifies the host physical address regions to be statically allocated to the VM. Each region is defined by its start address and size. For instance, DOMU_STATIC_MEM[0]="0x30000000 0x10000000 0x50000000 0x20000000" indicates that the host memory regions [0x30000000, 0x40000000) and [0x50000000, 0x70000000) are statically allocated to the first dom0less VM. Since currently it is not possible for a VM to have a mix of both statically and non-statically allocated memory regions, when DOMU_STATIC_MEM is specified, adjust VM's memory size to equal the amount of statically allocated memory. [stefano: add check for DOMU_MEM != DOMU_STATIC_MEM] Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* handle correctly symlinks in parent directoriesStefano Stabellini2022-04-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Commit b9e2809fce57 introduced support for symlinks when specified in the config file for one of the binaries, but it breaks if there is a symlink in one of the parent directories. This patch fixes the behavior by doing the following: - get the absolute "real" path of the target file using realpath, not resolving symlinks for the parameter path (parents still get resolved) - get the absolute "real" path of the current directory using realpath This is necessary so that the two paths match in terms of symlinks resolution. - strip the base directory from the absolute path. The result is the target file with a path relative to the current directory without symlink resolution, but correctly handling the case where symlinks are presents in the parent directories. Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Tested-by: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
* uboot-script-gen: Skip symbolic links resolvingAndrei Cherechesu2022-04-111-1/+1
| | | | | | | | | | | Skipped symbolic links resolving, since the file names that we pass via configs are symlinks, but we want the tool to generate a script with the exact same names that we pass to it. Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> Reviewed-by: Ayan Kumar Halder <ayankuma@xilinx.com> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
* disk_image: use DOS partition table and FAT for the first partitionStefano Stabellini2022-04-061-16/+37
| | | | | | | | | | | This way, ImageBuilder can generate an SD card image with BOOT.BIN bootable on Xilinx ZCU102 systems. Retain the ability to generate a GPT partition table with a GPT config option. Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Tested-by: Andrea Stevanato <andrea.stevanato@santannapisa.it>
* If bootm, generate a u-boot Legacy uImage to bootStefano Stabellini2022-03-241-1/+22
| | | | | | | | | | | | | | | | If BOOT_CMD is specified as "bootm" it requires a uImage to boot. Automatically generate a $XEN.ub binary using mkimage and specifying the right loading address. Also remove "u-boot legacy uImage" from the allowed Xen binary types because we cannot easily check that the uImage was built with the right address. Note that "ARM OpenFirmware" is the type returned by certain versions of "file" utility for a Xen arm32 binary. Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Reviewed-by: Ayan Kumar Halder <ayankuma@xilinx.com>
* Add support for BOOT_CMDAyan Kumar Halder2022-03-181-12/+18
| | | | | | | | | | With BOOT_CMD, one can specify the boot command used by the imagebuilder. The valid values are 'booti', 'bootm' and 'bootefi'. Also, removed EFI option. This is now covered by BOOT_CMD. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add support for uboot legacy imagesAyan Kumar Halder2022-03-181-1/+1
| | | | | | | | | | | | For armv7 based platforms, xen binary needs to be converted to uboot legacy image format. For example mkimage -A arm -T kernel -C none -a 0x40e00000 -e 0x40e00000 -d xen-4.17-unstable xen.ub Our uboot-script should be able to recognize these images. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add support to load images via usbAyan Kumar Halder2022-03-141-0/+4
| | | | | | | | | | | With certain boards the only way possible to load the boot images, is from the usb partition which has been formatted with FAT filesystem. Thus, added support to load images from the usb device with a FAT partition. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Added the lopper dts file to generate imagebuilder config from ↵Ayan Kumar Halder2022-01-211-0/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | system-device-tree Lopper parses the device tree for a "xen" label. It parses the sub nodes to determine the DOM0_VCPUS, DOM0_MEM, NUM_DOMUS, DOMU_VCPUS[], DOMU_MEM[] and DOMU_PASSTHROUGH_PATHS[] As an example, consider the following snippet of system-device-tree xen: domain@2 { compatible = "openamp,domain-v1","openamp,hypervisor-v1"; cpus = <&cpus_a72 0x3 0x00000002>; memory = <0x0 0x500000 0x0 0x7fb00000>; dom0: domain@3 { compatible = "openamp,domain-v1","xen,domain-v2"; cpus = <&cpus_a72 0x3 0x00000001>; memory = <0x0 0x501000 0x0 0x3faff000>; }; linux1: domain@4 { compatible = "openamp,domain-v1","xen,domain-v2"; cpus = <&cpus_a72 0x3 0x00000001>; memory = <0x0 0x501000 0x0 0x3faff000>; access = <&mmc0 0x0>; }; linux2: domain@5 { compatible = "openamp,domain-v1","xen,domain-v2"; cpus = <&cpus_a72 0x3 0x00000001>; memory = <0x0 0x40000000 0x0 0x40000000>; firewallconfig = <&linux1 1 0>; }; }; python3 _path_to_/lopper.py -f --enhanced -i path_to_/lop-xen.dts device-trees/system-device-tree-xen.dts > config The contents of the 'config' will be as follows :- NUM_DOMUS=2 DOM0_VCPUS = 2 DOM0_MEM = 1018 DOMU_VCPUS[0] = 2 DOMU_MEM[0] = 1018 DOMU_PASSTHROUGH_PATHS[0] = "/bus@f1000000/sdhci@f1050000" DOMU_VCPUS[1] = 2 DOMU_MEM[1] = 1024 This is provided as the input configuration file for the imagebuilder. Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> [stefano: minor style and grammar fixes] Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Specify the memory and virtual cpu count for DOM0Ayan Kumar Halder2022-01-201-1/+17
| | | | | | | | | | | | | Introduced the new config options :- DOM0_MEM - To specify the amount of memory (in MB) that is assigned to Dom0. DOM0_VCPUS - To specify the count of virtual CPUs for Dom0. These options are used to set XEN_CMD. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Check for the presence of DOMU_PASSTHROUGH_DTB before invoking update_domU_cfgAyan Kumar Halder2022-01-101-8/+11
| | | | | | | | | | It should be possible to run disk_image when the user has specified neither DOMU_PASSTHROUGH_PATHS nor DOMU_PASSTHROUGH_DTB. In such a scenario, the script should not update the relevant portions of domU.cfg. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Update the generated domU.cfgAyan Kumar Halder2022-01-041-0/+297
| | | | | | | | | | | | | | | | | | | | domU.cfg has been updated with the following propereties:- 1. iomem - This corresponds to the "xen,reg" property. It obtains mfn, num_pages and gfn. 2. dtdev - This corresponds to the "xen,path" property. This is set only if "xen,force-assign-without-iommu" is not present. 3. irqs - This corresponds to the "interrupts" property. One needs to add 32 to the interrupt value. This is due to initial 32 interrupts being reserved by GIC for special purposes. The corresponding properties are obtained from partial dtb. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Generate the domU partial dtb via disk_imageAyan Kumar Halder2021-12-211-12/+45
| | | | | | | | | | | | | | | | | | | | Similar to uboot-script-gen, disk_image invokes compile_merge_partial_dts to generate the domU partial dtbs. It copies the dtbs to /etc/xen. Added functions to cleanup the temporary files. Also removed 'set -e'. This was causing the script to terminate if any of the functions returned non zero. In our approach, the functions in common script will return 1 (on failure), and the caller (ie disk_image) will check the return code and do the appropriate cleanup. Moreover, 'set -e' cannot be relied upon to terminate the script if any function returns error. Thus, it is not very useful. Details :- https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Avoid exiting the script from the commonAyan Kumar Halder2021-12-212-25/+36
| | | | | | | | | | | | | | | | | | | | | | | If there is any error in compile_merge_partial_dts() and sanity_check_partial_dts(), it should return 1 to the caller. The caller will then check the return and call cleanup_and_return_err() (which terminates the script). This is to prevent compile_merge_partial_dts() and sanity_check_partial_dts() terminating the script. The reason being these functions can get invoked from disk_image (in the future) which may require some additional cleanup. Also, moved cleanup_and_return_err() to uboot-script-gen as the cleanup is specific to the script. Ensure that we preseve the directory containing the partial dtbs only when the dtbs were generated successfully. Else, we delete it. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Avoid making changes in the device trees from the repositoryAyan Kumar Halder2021-12-171-2/+10
| | | | | | | | | | | | | | One should copy the device tree to a temporary file and then make any change (so as to enable merging of multiple device trees). In this case, the change is to remove the marker (/dts-v1/;) from all the device trees except the first one to be merged. DTC expects the marker to be present only once. Also, i, j, tmpdts and file should be set to local. This will avoid name collision. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Refactor uboot-script-genAyan Kumar Halder2021-12-172-154/+170
| | | | | | | | | | | | Extract some of the functions from uboot-script-gen into common. This will be sourced by disk_image(in subsequent patch) which will invoke the functions for generating dtb. common will have access to all the environment variables defined in the Imagebuilder config file as described in README.md Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Return an error if DOMU_KERNEL[] is not definedAyan Kumar Halder2021-12-151-0/+7
| | | | | | | | | | DOMU_KERNEL[] needs to be defined in the config file. If this is not defined, then the user has specified an incorrect number for NUM_DOMUS. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add support for compiling and merging partial device treesAyan Kumar Halder2021-12-151-7/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | One can specify the repository and the directory holding the partial device trees via the config option PASSTHROUGH_DTS_REPO. This can be either a git url or a local directory containing the partial device trees. Also, the passthrough devices for each DOMU are specified via DOMU_PASSTHROUGH_PATHS config option. Imagebuilder will compile the partial device trees. The underlying assumption is that the name of the partial device tree should match to the name of the device specified in DOMU_PASSTHROUGH_PATHS. For example (in case of git repo) :- PASSTHROUGH_DTS_REPO="git@github.com:Xilinx/xen-passthrough-device-trees.git device-trees-2021.2" DOMU_PASSTHROUGH_PATHS[0]="/axi/serial@ff010000 /axi/mmc@ff170000" (This tells imagebuilder to clone the repo and use serial@ff010000.dts and mmc@ff170000.dts from device-trees-2021.2 folder, to compile and generate a partial dtb for DOMU[0]. If the files are absent, it will give an error. Also, if the files mismatching values for #address-cells and #size-cells, it will give an error. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Enable setting xen,passthroughAyan Kumar Halder2021-11-101-0/+5
| | | | | | | | | | Add an option 'XEN_PASSTHROUGH_PATHS' to the imagebuilder config file. It takes a list of device paths (separated by spaces) which needs to be marked with xen,passthrough. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Moved the default assignment of domU bootargsAyan Kumar Halder2021-11-091-4/+4
| | | | | | | | | | | The default assignment of domU bootargs has been moved from add_device_tree_kernel() to xen_config(). This is done to mantain consistency with other DomU defaults. Reported-by: Brian Woods <brian.woods@xilinx.com> Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Enable the user to override the bootargs for domUAyan Kumar Halder2021-11-051-2/+7
| | | | | | | | | | | | | | | | | | | | | The user can specify the bootargs for domU in the config file as follows:- DOMU_CMD[x]="<cmd line params>" As an example, DOMU_CMD[0]="console=ttyPS0 earlycon console=ttyPS0,115200 console=ttyAMA0 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh" If the user does not specify this, then the default command line param is:- "console=ttyAMA0" Also, updated the README.md. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> [stefano: improve README] Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* Add *.cpio to the list of know rootfs typesAyan Kumar Halder2021-10-281-6/+12
| | | | | | | | | | | Yocto generates *.cpio images. Thus, it can be a valid type of rootfs image. Also, when an invalid rootfs image is detected, the script should exit immediately Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add an option to specify the alignment for the imageAyan Kumar Halder2021-10-181-2/+30
| | | | | | | | | | "petalinux-boot --qemu" when used with a sd image, expects the image to be of size which is power of 2. Thus, one needs to provide an option to disk_image to create images aligned to the next power of two. Signed-off-by: Ayan Kumar Halder <ayankuma@xilinx.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
* Change Xen load order to enable Secure BootBrian Woods2021-09-221-5/+7
| | | | | | | | | | Secure boot on uboot expects the last PE image loaded be the signed image used. Simply move Xen to the bottom of the load order (other than device trees and bitstreams) and it enables Xen to boot. Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Clean up CLI argument override sectionBrian Woods2021-09-101-28/+14
| | | | | | Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add support for loading bitstreamsBrian Woods2021-09-102-0/+43
| | | | | | Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add baremetal Linux supportBrian Woods2021-09-101-108/+234
| | | | | | | | | | Make it possible to use imagebuilder with baremetal Linux. This allows baremetal Linux to be booted in the various ways Xen is now (individual files with a script, fit with a script and fit via a config). Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Restructure uboot-script-gen for Linux supportBrian Woods2021-09-031-273/+285
| | | | | | | | | For later add Linux support, restructure the code so it's easier to add various other OSs configurartions. Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add FIT signing options to configBrian Woods2021-09-031-3/+11
| | | | | | | | Also add [-f] to the help message as it was missing. Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add support for setting LOAD_CMD in the configBrian Woods2021-09-031-8/+18
| | | | | | | | | | Reducing what's needed in the CLI arguments to a minimum to streamline usage. The current behavior does not change and setting it on the CLI arguments will overwrite what's in the config file. Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add support for EFI in configBrian Woods2021-09-031-2/+7
| | | | | | | | | Make it so that EFI enablement can be configured in the config file for uboot-script gen. Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Change fit behavior for uboot-script-genBrian Woods2021-09-031-47/+53
| | | | | | | | | Add support for adding a field in the config file and add support in uboot-script-gen for it. Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Copy DT_OVERLAY to boot partitionVíctor Mayoral Vilches2021-09-031-1/+18
| | | | | | | | | | Copy the device tree overlays to the boot partition so that they can be located and applied directly while booting. Signed-off-by: Víctor Mayoral Vilches <v.mayoralv@gmail.com> Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Add support for DOM0_RAMDISKVíctor Mayoral Vilches2021-09-031-0/+9
| | | | | | | Signed-off-by: Víctor Mayoral Vilches <v.mayoralv@gmail.com> Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
* Allow to generate non-Xen imagesVíctor Mayoral Vilches2021-09-031-5/+17
| | | | | | | | | | | This commit introduces several changes that allow the use of disk_image for the generation of non-Xen (e.g. plain vanilla kernel-based) raw images. Signed-off-by: Víctor Mayoral Vilches <v.mayoralv@gmail.com> Signed-off-by: Brian Woods <brian.woods@xilinx.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>