linux/drivers/firmware
Ard Biesheuvel 762cd288fc efi/libstub: arm32: Use low allocation for the uncompressed kernel
Before commit

  d0f9ca9be1 ("ARM: decompressor: run decompressor in place if loaded via UEFI")

we were rather limited in the choice of base address for the uncompressed
kernel, as we were relying on the logic in the decompressor that blindly
rounds down the decompressor execution address to the next multiple of 128
MiB, and decompresses the kernel there. For this reason, we have a lot of
complicated memory region handling code, to ensure that this memory window
is available, even though it could be occupied by reserved regions or
other allocations that may or may not collide with the uncompressed image.

Today, we simply pass the target address for the decompressed image to the
decompressor directly, and so we can choose a suitable window just by
finding a 16 MiB aligned region, while taking TEXT_OFFSET and the region
for the swapper page tables into account.

So let's get rid of the complicated logic, and instead, use the existing
bottom up allocation routine to allocate a suitable window as low as
possible, and carve out a memory region that has the right properties.

Note that this removes any dependencies on the 'dram_base' argument to
handle_kernel_image(), and so this is removed as well. Given that this
was the only remaining use of dram_base, the code that produces it is
removed entirely as well.

Reviewed-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Tested-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2020-09-16 18:55:02 +03:00
..
arm_scmi firmware: arm_scmi: Use NULL instead of integer 0 for rate pointer 2020-07-17 16:06:54 +02:00
broadcom
efi efi/libstub: arm32: Use low allocation for the uncompressed kernel 2020-09-16 18:55:02 +03:00
google firmware: google: vpd: Replace zero-length array with flexible-array member 2020-06-15 23:08:21 -05:00
imx firmware: imx: Move i.MX SCU soc driver into imx firmware folder 2020-07-13 10:02:00 +08:00
meson
psci This tree adds the sched_set_fifo*() encapsulation APIs to remove 2020-08-06 11:55:43 -07:00
smccc firmware: smccc: Add ARCH_SOC_ID support 2020-07-06 09:48:06 +01:00
tegra firmware: tegra: Add support for in-band debug 2020-07-14 18:01:50 +02:00
xilinx
arm_scpi.c
arm_sdei.c uaccess: add force_uaccess_{begin,end} helpers 2020-08-12 10:57:59 -07:00
dmi_scan.c firmware/dmi: Report DMI Bios & EC firmware release 2020-06-06 11:35:50 +02:00
dmi-id.c firmware/dmi: Report DMI Bios & EC firmware release 2020-06-06 11:35:50 +02:00
dmi-sysfs.c firmware: dmi-sysfs: Replace zero-length array with flexible-array member 2020-06-15 23:08:04 -05:00
edd.c
iscsi_ibft_find.c
iscsi_ibft.c ibft: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
Kconfig pci-v5.8-changes 2020-06-06 11:01:58 -07:00
Makefile firmware: smccc: Refactor SMCCC specific bits into separate file 2020-05-20 19:10:37 +01:00
memmap.c
pcdp.c
pcdp.h firmware: pcdp: Replace zero-length array with flexible-array 2020-06-15 23:08:32 -05:00
qcom_scm-legacy.c
qcom_scm-smc.c
qcom_scm.c SCSI misc on 20200806 2020-08-06 16:50:07 -07:00
qcom_scm.h scsi: firmware: qcom_scm: Add support for programming inline crypto keys 2020-07-24 22:09:54 -04:00
qemu_fw_cfg.c firmware: Fix a reference count leak. 2020-07-29 13:13:50 -04:00
raspberrypi.c It looks like a smaller batch of clk updates this time around. In the core 2020-08-07 13:35:51 -07:00
scpi_pm_domain.c
stratix10-rsu.c firmware: stratix10-rsu: fix warnings 2020-07-02 14:48:48 +02:00
stratix10-svc.c firmware: stratix10-svc: extend svc to support new RSU features 2020-07-02 14:48:48 +02:00
ti_sci.c firmware: ti_sci: Replace HTTP links with HTTPS ones 2020-07-24 14:44:52 -07:00
ti_sci.h firmware: ti_sci: Replace HTTP links with HTTPS ones 2020-07-24 14:44:52 -07:00
trusted_foundations.c
turris-mox-rwtm.c firmware: turris-mox-rwtm: support ECDSA signatures via debugfs 2020-07-18 22:35:01 +02:00