[coreboot] [v2] r4863 - trunk/coreboot-v2/src/arch/i386/lib

svn at coreboot.org svn at coreboot.org
Mon Oct 26 18:17:37 CET 2009


Author: stepan
Date: 2009-10-26 18:17:37 +0100 (Mon, 26 Oct 2009)
New Revision: 4863

Modified:
   trunk/coreboot-v2/src/arch/i386/lib/cbfs_and_run.c
Log:
reasonable output in cbfs loading (part 2)
run hlt in endless loop, be friendly to the cpu

Signed-off-by: Stefan Reinauer <stepan at coresystems.de>
Acked-by: Stefan Reinauer <stepan at coresystems.de>



Modified: trunk/coreboot-v2/src/arch/i386/lib/cbfs_and_run.c
===================================================================
--- trunk/coreboot-v2/src/arch/i386/lib/cbfs_and_run.c	2009-10-26 17:15:53 UTC (rev 4862)
+++ trunk/coreboot-v2/src/arch/i386/lib/cbfs_and_run.c	2009-10-26 17:17:37 UTC (rev 4863)
@@ -1,7 +1,23 @@
-/* by yhlu 6.2005
-	moved from nrv2v.c and some lines from crt0.S
-   2006/05/02 - stepan: move nrv2b to an extra file.
-*/
+/*
+ * This file is part of the coreboot project.
+ * 
+ * Copyright (C) 2008-2009 coresystems GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
 
 #include <console/console.h>
 #include <cbfs.h>
@@ -9,20 +25,20 @@
 void cbfs_and_run_core(char *filename, unsigned ebp)
 {
 	u8 *dst;
-	print_debug("Jumping to image.\r\n");
+
+	print_debug("Loading stage image.\n");
 	dst = cbfs_load_stage(filename);
 	if (dst == (void *) -1) {
 		/* We should use die() here. */
 		print_emerg("Loading stage failed!\n");
-		for (;;);
+		for (;;)
+			asm("hlt\n");
 	}
-	print_debug("Jumping to image.\r\n");
 
+	print_debug("Jumping to image.\n");
 	__asm__ volatile (
-		"movl %%eax, %%ebp\n\t"
-		"cli\n\t"
-		"jmp     *%%edi\n\t"
+		"movl %%eax, %%ebp\n"
+		"jmp  *%%edi\n"
 		:: "a"(ebp), "D"(dst)
 	);
-
 }





More information about the coreboot mailing list