1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Copyright (c) 2022, Linaro Limited
14 #include <linux/types.h>
16 static void print_mdata(struct fwu_data
*data
)
19 struct fwu_image_entry
*img_entry
;
20 struct fwu_image_bank_info
*img_info
;
22 printf("\tFWU Metadata\n");
23 printf("crc32: %#x\n", data
->crc32
);
24 printf("version: %#x\n", data
->version
);
25 printf("size: %#x\n", data
->metadata_size
);
26 printf("active_index: %#x\n", data
->active_index
);
27 printf("previous_active_index: %#x\n", data
->previous_active_index
);
29 if (data
->version
== 2) {
30 for (i
= 0; i
< 4; i
++)
31 printf("bank_state[%d]: %#x\n",
32 i
, data
->bank_state
[i
]);
35 printf("\tImage Info\n");
36 for (i
= 0; i
< CONFIG_FWU_NUM_IMAGES_PER_BANK
; i
++) {
37 img_entry
= &data
->fwu_images
[i
];
38 printf("\nImage Type Guid: %pUL\n",
39 &img_entry
->image_type_guid
);
40 printf("Location Guid: %pUL\n", &img_entry
->location_guid
);
41 for (j
= 0; j
< CONFIG_FWU_NUM_BANKS
; j
++) {
42 img_info
= &img_entry
->img_bank_info
[j
];
43 printf("Image Guid: %pUL\n", &img_info
->image_guid
);
44 printf("Image Acceptance: %s\n",
45 img_info
->accepted
== 0x1 ? "yes" : "no");
50 int do_fwu_mdata_read(struct cmd_tbl
*cmdtp
, int flag
,
51 int argc
, char * const argv
[])
53 struct fwu_data
*data
= fwu_get_data();
57 return CMD_RET_SUCCESS
;
61 fwu_mdata_read
, 1, 1, do_fwu_mdata_read
,
62 "Read and print FWU metadata",