[Buildroot] [PATCH v2 1/2] boot/opensbi: Add support for including Linux payload
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Sat Aug 3 08:37:39 UTC 2019
Hello,
On Mon, 22 Jul 2019 13:44:46 -0700
Alistair Francis <alistair.francis at wdc.com> wrote:
> +if BR2_TARGET_OPENSBI_PLAT != ""
I move this if to a simple "depends on" under the
BR2_TARGET_OPENSBI_LINUX_PAYLOAD optio.
> +config BR2_TARGET_OPENSBI_LINUX_PAYLOAD
> + bool "Include Linux as OpenSBI Payload"
> + depends on BR2_LINUX_KERNEL
> + depends on BR2_LINUX_KERNEL_IMAGE
> + depends on !BR2_TARGET_OPENSBI_LIBRARY_ONLY
This option doesn't exist anywhere, so I dropped this depends on.
> +OPENSBI_LINUX_PAYLOAD = $(call qstrip,$(BR2_TARGET_OPENSBI_LINUX_PAYLOAD))
qstrip is only useful for string options. For boolean options, it's
useless, so I dropped this and simply used
BR2_TARGET_OPENSBI_LINUX_PAYLOAD everywhere.
> +ifeq ($(OPENSBI_LINUX_PAYLOAD), y)
No space before "y".
> +OPENSBI_DEPENDENCIES = linux
+= for this addition, so that we don't mistakenly overwrite any
previous dependency that might have been added.
> +OPENSBI_MAKE_ENV += FW_PAYLOAD_PATH="$(BINARIES_DIR)/Image"
> +endif
> +
> define OPENSBI_BUILD_CMDS
> $(TARGET_MAKE_ENV) $(OPENSBI_MAKE_ENV) $(MAKE) -C $(@D)
> endef
>
> ifneq ($(OPENSBI_PLAT),)
> OPENSBI_INSTALL_IMAGES = YES
> +OPENSBI_INSTALL_IMAGES_CMDS_PLAT = \
> + $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_jump.bin $(BINARIES_DIR)/fw_jump.bin; \
> + $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_jump.elf $(BINARIES_DIR)/fw_jump.elf; \
> + $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_dynamic.bin $(BINARIES_DIR)/fw_dynamic.bin; \
> + $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_dynamic.elf $(BINARIES_DIR)/fw_dynamic.elf;
> +endif
> +
> +ifeq ($(OPENSBI_LINUX_PAYLOAD), y)
> +OPENSBI_INSTALL_IMAGES_CMDS_PAYLOAD = \
> + $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_payload.bin $(BINARIES_DIR)/fw_payload.bin; \
> + $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_payload.elf $(BINARIES_DIR)/fw_payload.elf;
> +endif
> +
> define OPENSBI_INSTALL_IMAGES_CMDS
> - $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_jump.bin $(BINARIES_DIR)/fw_jump.bin
> - $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_jump.elf $(BINARIES_DIR)/fw_jump.elf
> - $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_dynamic.bin $(BINARIES_DIR)/fw_dynamic.bin
> - $(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_dynamic.elf $(BINARIES_DIR)/fw_dynamic.elf
> + $(OPENSBI_INSTALL_IMAGES_CMDS_PLAT)
> + $(OPENSBI_INSTALL_IMAGES_CMDS_PAYLOAD)
As suggested by Yann, I've refactored all of that with a loop over a
OPENSBI_FW_IMAGES variable that contains jump, dynamic and optionally
payload.
I fixed up these different aspects, and merged the patch. See the final
commit at:
https://git.buildroot.org/buildroot/commit/?id=9b5b7165deb91bad3cdb1ea0dd8f940eff75f3a9
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list