arm64: Populate initial realm contents
Populate the realm memory with the initial contents, which include the device tree blob, the kernel image, and initrd, if specified, or the firmware image. Populating an image in the realm involves two steps: a) Mark the IPA area as RAM - INIT_IPA_REALM b) Load the contents into the IPA - POPULATE_REALM Wherever we know the actual size of an image in memory, we make sure the "memory area" is initialised to RAM. e.g., Linux kernel image size from the header which includes the bss etc. The "file size" on disk for the Linux image is much smaller. We mark the region of size Image.header.size as RAM (a), from the kernel load address. And load the Image file into the memory (b) above. At the moment we only detect the Arm64 Linux Image header format. Also make sure that the images are not overlapping in 4K page, by aligning the image base / end accordingly. Since we're already touching the code that copies the initrd in guest memory, let's do a bit of cleaning and remove a useless local variable. Signed-off-by:Alexandru Elisei <alexandru.elisei@arm.com> [ Make sure the Linux kernel image area is marked as RAM Ensure images do not overlap at 4K page boundaries explicitly ] Signed-off-by:
Suzuki K Poulose <suzuki.poulose@arm.com>
Loading
Please register or sign in to comment