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