hv: modularization: remove global variable efiloader_sig.

Simplify multiboot API by removing the global variable efiloader_sig.
Replaced by constant at the use site.

Tracked-On: #5661
Signed-off-by: Yi Liang <yi.liang@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
This commit is contained in:
Liang Yi 2021-01-21 11:55:48 +08:00 committed by wenlingz
parent 67926cee81
commit e8a76868c9
6 changed files with 13 additions and 19 deletions

View File

@ -314,9 +314,3 @@ cpu_primary32_pdt_addr:
.quad address + 0x83
address = address + 0x200000
.endr
#ifdef CONFIG_MULTIBOOT2
.global efiloader_sig
efiloader_sig:
.asciz "EL64"
#endif

View File

@ -16,10 +16,10 @@
#include <ld_sym.h>
#include <multiboot.h>
/* The following are assembly varaibles defined in arch/x86/boot/cpu_primary.S */
/* boot_regs store the multiboot info magic and address */
/* boot_regs store the multiboot info magic and address, defined in
arch/x86/boot/cpu_primary.S.
*/
extern uint32_t boot_regs[2];
extern char *efiloader_sig;
/* Push sp magic to top of stack for call trace */
#define SWITCH_TO(rsp, to) \
@ -91,7 +91,7 @@ void init_primary_pcpu(void)
/* Clear BSS */
(void)memset(&ld_bss_start, 0U, (size_t)(&ld_bss_end - &ld_bss_start));
init_acrn_multiboot_info(boot_regs[0], boot_regs[1], efiloader_sig);
init_acrn_multiboot_info(boot_regs[0], boot_regs[1]);
init_debug_pre();

View File

@ -79,7 +79,7 @@ struct acrn_multiboot_info {
struct efi_info mi_efi_info;
};
void init_acrn_multiboot_info(uint32_t magic, uint32_t info, char *sig);
void init_acrn_multiboot_info(uint32_t magic, uint32_t info);
int32_t sanitize_acrn_multiboot_info(uint32_t magic, uint32_t info);
struct acrn_multiboot_info *get_acrn_multiboot_info(void);

View File

@ -67,7 +67,7 @@ static struct acrn_multiboot_info acrn_mbi = { 0U };
static int32_t mbi_status;
void init_acrn_multiboot_info(uint32_t magic, uint32_t info, char *sig)
void init_acrn_multiboot_info(uint32_t magic, uint32_t info)
{
if (boot_from_multiboot1(magic, info)) {
struct multiboot_info *mbi = (struct multiboot_info *)(hpa2hva_early((uint64_t)info));
@ -84,7 +84,7 @@ void init_acrn_multiboot_info(uint32_t magic, uint32_t info, char *sig)
mbi_status = 0;
#ifdef CONFIG_MULTIBOOT2
} else if (boot_from_multiboot2(magic)) {
mbi_status = multiboot2_to_acrn_mbi(&acrn_mbi, hpa2hva_early((uint64_t)info), sig);
mbi_status = multiboot2_to_acrn_mbi(&acrn_mbi, hpa2hva_early((uint64_t)info));
#endif
} else {
mbi_status = -ENODEV;

View File

@ -36,11 +36,11 @@ static void mb2_mods_to_mbi(struct acrn_multiboot_info *mbi,
/**
* @pre mbi != NULL && mb2_tag_efi64 != 0
*/
static void mb2_efi64_to_mbi(struct acrn_multiboot_info *mbi, const struct multiboot2_tag_efi64 *mb2_tag_efi64,
char *sig)
static void mb2_efi64_to_mbi(struct acrn_multiboot_info *mbi, const struct multiboot2_tag_efi64 *mb2_tag_efi64)
{
const uint32_t efiloader_sig = 0x34364c45; /* "EL64" */
mbi->mi_efi_info.efi_systab = (uint32_t)(uint64_t)mb2_tag_efi64->pointer;
mbi->mi_efi_info.efi_loader_signature = (uint32_t)(uint64_t)sig;
mbi->mi_efi_info.efi_loader_signature = efiloader_sig;
mbi->mi_flags |= MULTIBOOT_INFO_HAS_EFI64;
}
@ -61,7 +61,7 @@ static void mb2_efimmap_to_mbi(struct acrn_multiboot_info *mbi,
/**
* @pre mbi != NULL
*/
int32_t multiboot2_to_acrn_mbi(struct acrn_multiboot_info *mbi, void *mb2_info, char *sig)
int32_t multiboot2_to_acrn_mbi(struct acrn_multiboot_info *mbi, void *mb2_info)
{
int32_t ret = 0;
struct multiboot2_tag *mb2_tag, *mb2_tag_end;
@ -92,7 +92,7 @@ int32_t multiboot2_to_acrn_mbi(struct acrn_multiboot_info *mbi, void *mb2_info,
mbi->mi_acpi_rsdp_va = ((struct multiboot2_tag_new_acpi *)mb2_tag)->rsdp;
break;
case MULTIBOOT2_TAG_TYPE_EFI64:
mb2_efi64_to_mbi(mbi, (const struct multiboot2_tag_efi64 *)mb2_tag, sig);
mb2_efi64_to_mbi(mbi, (const struct multiboot2_tag_efi64 *)mb2_tag);
break;
case MULTIBOOT2_TAG_TYPE_EFI_MMAP:
mb2_efimmap_to_mbi(mbi, (const struct multiboot2_tag_efi_mmap *)mb2_tag);

View File

@ -89,7 +89,7 @@ static inline bool boot_from_multiboot2(uint32_t magic)
return (magic == MULTIBOOT2_INFO_MAGIC);
}
int32_t multiboot2_to_acrn_mbi(struct acrn_multiboot_info *mbi, void *mb2_info, char *sig);
int32_t multiboot2_to_acrn_mbi(struct acrn_multiboot_info *mbi, void *mb2_info);
#endif
static inline bool boot_from_multiboot1(uint32_t magic, uint32_t info)