[coreboot] [v2] r4304 - in trunk/coreboot-v2/src: boot include lib

svn at coreboot.org svn at coreboot.org
Tue May 26 16:00:49 CEST 2009


Author: oxygene
Date: 2009-05-26 16:00:49 +0200 (Tue, 26 May 2009)
New Revision: 4304

Modified:
   trunk/coreboot-v2/src/boot/selfboot.c
   trunk/coreboot-v2/src/include/cbfs.h
   trunk/coreboot-v2/src/lib/cbfs.c
Log:
Attached patch moves the CBFS payload loader to selfboot.c as it's
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 at coresystems.de>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>


Modified: trunk/coreboot-v2/src/boot/selfboot.c
===================================================================
--- trunk/coreboot-v2/src/boot/selfboot.c	2009-05-26 13:03:30 UTC (rev 4303)
+++ trunk/coreboot-v2/src/boot/selfboot.c	2009-05-26 14:00:49 UTC (rev 4304)
@@ -71,6 +71,24 @@
 	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

Modified: trunk/coreboot-v2/src/include/cbfs.h
===================================================================
--- trunk/coreboot-v2/src/include/cbfs.h	2009-05-26 13:03:30 UTC (rev 4303)
+++ trunk/coreboot-v2/src/include/cbfs.h	2009-05-26 14:00:49 UTC (rev 4304)
@@ -166,5 +166,7 @@
 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
 

Modified: trunk/coreboot-v2/src/lib/cbfs.c
===================================================================
--- trunk/coreboot-v2/src/lib/cbfs.c	2009-05-26 13:03:30 UTC (rev 4303)
+++ trunk/coreboot-v2/src/lib/cbfs.c	2009-05-26 14:00:49 UTC (rev 4304)
@@ -174,24 +174,6 @@
 	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 *)





More information about the coreboot mailing list