the only selfboot user in CBFS.
This way, CBFS can be used without importing selfboot.c, as long as
no payloads are loaded.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4304
2b7e53f0-3cfb-0310-b3e9-
8179ed1497e1
unsigned short ip_checksum;
};
+void * cbfs_load_payload(struct lb_memory *lb_mem, const char *name)
+{
+ int selfboot(struct lb_memory *mem, struct cbfs_payload *payload);
+ struct cbfs_payload *payload = (struct cbfs_payload *)
+ cbfs_find_file(name, CBFS_TYPE_PAYLOAD);
+
+ struct cbfs_payload_segment *segment, *first_segment;
+
+ if (payload == NULL)
+ return (void *) -1;
+ printk_debug("Got a payload\n");
+ first_segment = segment = &payload->segments;
+ selfboot(lb_mem, payload);
+ printk_emerg("SELFBOOT RETURNED!\n");
+
+ return (void *) -1;
+}
+
/* The problem:
* Static executables all want to share the same addresses
* in memory because only a few addresses are reliably present on
void *cbfs_load_optionrom(u16 vendor, u16 device, void * dest);
int run_address(void *f);
+struct cbfs_stage *cbfs_find_file(const char *name, int type);
+
#endif
return dest;
}
-void * cbfs_load_payload(struct lb_memory *lb_mem, const char *name)
-{
- int selfboot(struct lb_memory *mem, struct cbfs_payload *payload);
- struct cbfs_payload *payload = (struct cbfs_payload *)
- cbfs_find_file(name, CBFS_TYPE_PAYLOAD);
-
- struct cbfs_payload_segment *segment, *first_segment;
-
- if (payload == NULL)
- return (void *) -1;
- printk_debug("Got a payload\n");
- first_segment = segment = &payload->segments;
- selfboot(lb_mem, payload);
- printk_emerg("SELFBOOT RETURNED!\n");
-
- return (void *) -1;
-}
-
void * cbfs_load_stage(const char *name)
{
struct cbfs_stage *stage = (struct cbfs_stage *)