mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-31 11:31:27 +02:00
Since there is now a new version of the FSP and it is incompatible with the existing version, move the code into an fsp1 directory. This will allow us to put FSP v2 code into an fsp2 directory. Add a Kconfig which defines which version is in use. Some of the code in this new fsp1/ directory is generic across both FSPv1 and FSPv2. Future patches will address this. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
87 lines
2.5 KiB
C
87 lines
2.5 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (C) 2014-2015, Bin Meng <bmeng.cn@gmail.com>
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <command.h>
|
|
#include <asm/fsp1/fsp_support.h>
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
static int do_hdr(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
struct fsp_header *hdr = find_fsp_header();
|
|
u32 img_addr = hdr->img_base;
|
|
char *sign = (char *)&hdr->sign;
|
|
int i;
|
|
|
|
printf("FSP : binary 0x%08x, header 0x%08x\n",
|
|
CONFIG_FSP_ADDR, (int)hdr);
|
|
printf("Header : sign ");
|
|
for (i = 0; i < sizeof(hdr->sign); i++)
|
|
printf("%c", *sign++);
|
|
printf(", size %d, rev %d\n", hdr->hdr_len, hdr->hdr_rev);
|
|
printf("Image : rev ");
|
|
if (hdr->hdr_rev == FSP_HEADER_REVISION_1) {
|
|
printf("%d.%d",
|
|
(hdr->img_rev >> 8) & 0xff, hdr->img_rev & 0xff);
|
|
} else {
|
|
printf("%d.%d.%d.%d",
|
|
(hdr->img_rev >> 24) & 0xff, (hdr->img_rev >> 16) & 0xff,
|
|
(hdr->img_rev >> 8) & 0xff, hdr->img_rev & 0xff);
|
|
}
|
|
printf(", id ");
|
|
for (i = 0; i < ARRAY_SIZE(hdr->img_id); i++)
|
|
printf("%c", hdr->img_id[i]);
|
|
printf(", addr 0x%08x, size %d\n", img_addr, hdr->img_size);
|
|
if (hdr->hdr_rev == FSP_HEADER_REVISION_2) {
|
|
printf("GFX :%ssupported\n",
|
|
hdr->img_attr & FSP_ATTR_GRAPHICS_SUPPORT ? " " : " un");
|
|
}
|
|
printf("VPD : addr 0x%08x, size %d\n",
|
|
hdr->cfg_region_off + img_addr, hdr->cfg_region_size);
|
|
printf("\nNumber of APIs Supported : %d\n", hdr->api_num);
|
|
printf("\tTempRamInit : 0x%08x\n", hdr->fsp_tempram_init + img_addr);
|
|
printf("\tFspInit : 0x%08x\n", hdr->fsp_init + img_addr);
|
|
printf("\tFspNotify : 0x%08x\n", hdr->fsp_notify + img_addr);
|
|
if (hdr->hdr_rev == FSP_HEADER_REVISION_2) {
|
|
printf("\tMemoryInit : 0x%08x\n",
|
|
hdr->fsp_mem_init + img_addr);
|
|
printf("\tTempRamExit : 0x%08x\n",
|
|
hdr->fsp_tempram_exit + img_addr);
|
|
printf("\tSiliconInit : 0x%08x\n",
|
|
hdr->fsp_silicon_init + img_addr);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static cmd_tbl_t fsp_commands[] = {
|
|
U_BOOT_CMD_MKENT(hdr, 0, 1, do_hdr, "", ""),
|
|
};
|
|
|
|
static int do_fsp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
cmd_tbl_t *fsp_cmd;
|
|
int ret;
|
|
|
|
if (argc < 2)
|
|
return CMD_RET_USAGE;
|
|
fsp_cmd = find_cmd_tbl(argv[1], fsp_commands, ARRAY_SIZE(fsp_commands));
|
|
argc -= 2;
|
|
argv += 2;
|
|
if (!fsp_cmd || argc > fsp_cmd->maxargs)
|
|
return CMD_RET_USAGE;
|
|
|
|
ret = fsp_cmd->cmd(fsp_cmd, flag, argc, argv);
|
|
|
|
return cmd_process_error(fsp_cmd, ret);
|
|
}
|
|
|
|
U_BOOT_CMD(
|
|
fsp, 2, 1, do_fsp,
|
|
"Show Intel Firmware Support Package (FSP) related information",
|
|
"hdr - Print FSP header information"
|
|
);
|