b74f45e9c4
Unused includes found using following commande: diff <(git grep -l '#include <string.h>' -- src/) <(git grep -l 'memcpy\|memmove\|memset\|memcmp\|memchr\|strdup\|strconcat\|strnlen\|strlen\|strchr\|strncpy\|strcpy\|strcmp\|strncmp\|strspn\|strcspn\|atol\|strrchr\|skip_atoi\|STRINGIFY' -- src/) |grep -v vendorcode |grep '<' Change-Id: Ibaeec213b6019dfa9c45e3424b38af0e094d0c51 Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/coreboot/+/41242 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Wim Vervoorn <wvervoorn@eltan.com>
33 lines
772 B
C
33 lines
772 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#include <cbfs.h>
|
|
#include <fallback.h>
|
|
#include <program_loading.h>
|
|
#include <stddef.h>
|
|
|
|
static const char *get_fallback(const char *stagelist)
|
|
{
|
|
while (*stagelist)
|
|
stagelist++;
|
|
return ++stagelist;
|
|
}
|
|
|
|
int legacy_romstage_selector(struct prog *romstage)
|
|
{
|
|
static const char *default_filenames = "normal/romstage\0fallback/romstage";
|
|
const char *boot_candidate;
|
|
size_t stages_len;
|
|
|
|
boot_candidate = cbfs_boot_map_with_leak("coreboot-stages", CBFS_TYPE_RAW, &stages_len);
|
|
if (!boot_candidate)
|
|
boot_candidate = default_filenames;
|
|
|
|
if (do_normal_boot()) {
|
|
romstage->name = boot_candidate;
|
|
if (!prog_locate(romstage))
|
|
return 0;
|
|
}
|
|
|
|
romstage->name = get_fallback(boot_candidate);
|
|
return prog_locate(romstage);
|
|
}
|