[coreboot] [PATCH] CN700/VT8237R stage2

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Fri Oct 31 01:09:42 CET 2008


On 29.10.2008 09:02, Corey Osgood wrote:
> Attached patches for cn700, vt8237(r/s), and the mainboard, Jetway J7F2,
> along with a boot log. Currently, we're stuck in a reboot loop and I have no
> idea why, seems to be related to CAR disabling (this wasn't happening when
> disable_car was a noop). Carl-Daniel, any ideas?
>   

Could you try this patch and report serial output back to the list? It
should at least give me an impression about where the code is broken.

Regards,
Carl-Daniel

Add more debugging to the critical stage1 code around disable_car().

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Index: corebootv3-via_car/arch/x86/via/stage1.c
===================================================================
--- corebootv3-via_car/arch/x86/via/stage1.c	(Revision 958)
+++ corebootv3-via_car/arch/x86/via/stage1.c	(Arbeitskopie)
@@ -50,6 +50,7 @@
  */
 void disable_car(void)
 {
+	printk(BIOS_DEBUG, "disable_car entry\n");
 	/* Determine new global variable location. Stack organization from top
 	 * Top 4 bytes are reserved
 	 * Pointer to global variables
@@ -60,9 +61,12 @@
 	const struct global_vars *newlocation = (struct global_vars *)((RAM_STACK_BASE - sizeof(struct global_vars *) - sizeof(struct global_vars)) & ~0x7);
 	/* Copy global variables to new location. */
 	memcpy(newlocation, global_vars(), sizeof(struct global_vars));
+	printk(BIOS_DEBUG, "disable_car global_vars copy done\n");
 	/* Set the new global variable pointer. */
 	*(struct global_vars **)(RAM_STACK_BASE - sizeof(struct global_vars *)) = newlocation;
 
+	printk(BIOS_DEBUG, "disable_car global_vars pointer adjusted, entering asm code...");
+	printk(BIOS_DEBUG, "now..........................................................................\n");
 	__asm__ __volatile__(
 	/* We don't need cache as ram for now on */
 	/* disable cache */
Index: corebootv3-via_car/arch/x86/stage1.c
===================================================================
--- corebootv3-via_car/arch/x86/stage1.c	(Revision 958)
+++ corebootv3-via_car/arch/x86/stage1.c	(Arbeitskopie)
@@ -264,6 +264,7 @@
 #ifdef CONFIG_CONSOLE_BUFFER
 	/* Move the printk buffer to PRINTK_BUF_ADDR_RAM */
 	printk_buffer_move((void *)PRINTK_BUF_ADDR_RAM, PRINTK_BUF_SIZE_RAM);
+	printk(BIOS_DEBUG, "Done printk() buffer move\n");
 #endif
 	/* Turn off Cache-As-Ram */
 	disable_car();


-- 
http://www.hailfinger.org/





More information about the coreboot mailing list