fhdr is used only to boot other payloads but it isn't actually necesarry
there. Remove it
diff --git a/src/boot.c b/src/boot.c
index d6b1fb7..31dfafd 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -660,7 +660,7 @@ boot_cdrom(struct drive_s *drive_g)
// Boot from a CBFS payload
static void
-boot_cbfs(struct cbfs_file *file)
+boot_cbfs(struct cbfs_romfile_s *file)
{
if (!CONFIG_COREBOOT_FLASH)
return;
diff --git a/src/fw/coreboot.c b/src/fw/coreboot.c
index 6610b3a..7815de4 100644
--- a/src/fw/coreboot.c
+++ b/src/fw/coreboot.c
@@ -334,7 +334,6 @@ struct cbfs_file {
struct cbfs_romfile_s {
struct romfile_s file;
- struct cbfs_file *fhdr;
void *data;
u32 rawsize, flags;
};
@@ -445,7 +444,6 @@ coreboot_cbfs_init(void)
memset(cfile, 0, sizeof(*cfile));
strtcpy(cfile->file.name, fhdr->filename, sizeof(cfile->file.name));
cfile->file.size = cfile->rawsize = be32_to_cpu(fhdr->len);
- cfile->fhdr = fhdr;
cfile->file.copy = cbfs_copyfile;
cfile->data = (void*)fhdr + be32_to_cpu(fhdr->offset);
int len = strlen(cfile->file.name);
@@ -484,12 +482,12 @@ struct cbfs_payload {
};
void
-cbfs_run_payload(struct cbfs_file *fhdr)
+cbfs_run_payload(struct cbfs_romfile_s *cbfs)
{
- if (!CONFIG_COREBOOT_FLASH || !fhdr)
+ if (!CONFIG_COREBOOT_FLASH || !cbfs)
return;
- dprintf(1, "Run %s\n", fhdr->filename);
- struct cbfs_payload *pay = (void*)fhdr + be32_to_cpu(fhdr->offset);
+ dprintf(1, "Run %s\n", cbfs->file.name);
+ struct cbfs_payload *pay = cbfs->data;
struct cbfs_payload_segment *seg = pay->segments;
for (;;) {
void *src = (void*)pay + be32_to_cpu(seg->offset);
@@ -548,7 +546,7 @@ cbfs_payload_setup(void)
cfile = container_of(file, struct cbfs_romfile_s, file);
const char *filename = file->name;
char *desc = znprintf(MAXDESCSIZE, "Payload [%s]", &filename[4]);
- boot_add_cbfs(cfile->fhdr, desc, bootprio_find_named_rom(filename, 0));
+ boot_add_cbfs(cfile, desc, bootprio_find_named_rom(filename, 0));
}
}
diff --git a/src/util.h b/src/util.h
index 09bb8a9..704ae0a 100644
--- a/src/util.h
+++ b/src/util.h
@@ -84,7 +84,8 @@ void smbios_setup(void);
extern const char *CBvendor, *CBpart;
struct cbfs_file;
void coreboot_debug_putc(char c);
-void cbfs_run_payload(struct cbfs_file *file);
+struct cbfs_romfile_s;
+void cbfs_run_payload(struct cbfs_romfile_s *file);
void coreboot_platform_setup(void);
void cbfs_payload_setup(void);
void coreboot_preinit(void);
_______________________________________________
SeaBIOS mailing list
[email protected]
http://www.seabios.org/mailman/listinfo/seabios