1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * (C) Copyright 2016 Rockchip Electronics Co., Ltd 4 */ 5 6#include <dm.h> 7#include <efi_loader.h> 8 9#define ROCKPI4_UPDATABLE_IMAGES 2 10 11#if IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) 12static struct efi_fw_image fw_images[ROCKPI4_UPDATABLE_IMAGES] = {0}; 13 14struct efi_capsule_update_info update_info = { 15 .num_images = ROCKPI4_UPDATABLE_IMAGES, 16 .images = fw_images, 17}; 18 19#endif 20 21#ifndef CONFIG_SPL_BUILD 22#if IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) && IS_ENABLED(CONFIG_EFI_PARTITION) 23static bool board_is_rockpi_4b(void) 24{ 25 return of_machine_is_compatible("radxa,rockpi4b"); 26} 27 28static bool board_is_rockpi_4c(void) 29{ 30 return of_machine_is_compatible("radxa,rockpi4c"); 31} 32 33void rockchip_capsule_update_board_setup(void) 34{ 35 if (board_is_rockpi_4b()) { 36 efi_guid_t idbldr_image_type_guid = 37 ROCKPI_4B_IDBLOADER_IMAGE_GUID; 38 efi_guid_t uboot_image_type_guid = ROCKPI_4B_UBOOT_IMAGE_GUID; 39 40 guidcpy(&fw_images[0].image_type_id, &idbldr_image_type_guid); 41 guidcpy(&fw_images[1].image_type_id, &uboot_image_type_guid); 42 43 fw_images[0].fw_name = u"ROCKPI4B-IDBLOADER"; 44 fw_images[1].fw_name = u"ROCKPI4B-UBOOT"; 45 } else if (board_is_rockpi_4c()) { 46 efi_guid_t idbldr_image_type_guid = 47 ROCKPI_4C_IDBLOADER_IMAGE_GUID; 48 efi_guid_t uboot_image_type_guid = ROCKPI_4C_UBOOT_IMAGE_GUID; 49 50 guidcpy(&fw_images[0].image_type_id, &idbldr_image_type_guid); 51 guidcpy(&fw_images[1].image_type_id, &uboot_image_type_guid); 52 53 fw_images[0].fw_name = u"ROCKPI4C-IDBLOADER"; 54 fw_images[1].fw_name = u"ROCKPI4C-UBOOT"; 55 } 56} 57#endif /* CONFIG_EFI_HAVE_CAPSULE_SUPPORT && CONFIG_EFI_PARTITION */ 58#endif /* !CONFIG_SPL_BUILD */ 59