Debug log attached, I'm using COM2 so I modified the patch to use $760 instead of $1016, I hope that's right. I'm honestly not sure if the output is what you were expecting or not, I don't think it is though. One thing I noticed in the build log, with or without the patch, dunno if it matters or not:<br>
<br>/home/corey/coreboot/coreboot-v3/arch/x86/via/stage1.c: In function 'disable_car':<br>/home/corey/coreboot/coreboot-v3/arch/x86/via/stage1.c:49: warning: passing argument 1 of 'memcpy' discards qualifiers from pointer target type<br>
<br>Thanks,<br>Corey<br><br><div class="gmail_quote">On Fri, Oct 31, 2008 at 9:59 PM, Carl-Daniel Hailfinger <span dir="ltr"><<a href="mailto:c-d.hailfinger.devel.2006@gmx.net">c-d.hailfinger.devel.2006@gmx.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">On 01.11.2008 02:50, Carl-Daniel Hailfinger wrote:<br>
> On 31.10.2008 01:36, Corey Osgood wrote:<br>
><br>
>> debug log attached.<br>
>><br>
>><br>
><br>
> Thanks, the log was really informative. Can you apply the following<br>
> patch and report back? Yes, the patch is evil, but it may help track<br>
> down the issue.<br>
><br>
<br>
</div>And the patch had minor garbage in it. New patch follows:<br>
<div><div></div><div class="Wj3C7c"><br>
Index: arch/x86/via/stage1.c<br>
===================================================================<br>
--- arch/x86/via/stage1.c       (Revision 976)<br>
+++ arch/x86/via/stage1.c       (Arbeitskopie)<br>
@@ -29,12 +29,14 @@<br>
 #include <string.h><br>
 #include <mtrr.h><br>
 #include <via_c7.h><br>
+#include <uart8250.h><br>
<br>
 /**<br>
  * Disable Cache As RAM (CAR) after memory is setup.<br>
  */<br>
 void disable_car(void)<br>
 {<br>
+       printk(BIOS_DEBUG, "disable_car entry\n");<br>
        /* Determine new global variable location. Stack organization from top<br>
         * Top 4 bytes are reserved<br>
         * Pointer to global variables<br>
@@ -45,9 +47,19 @@<br>
        const struct global_vars *newlocation = (struct global_vars *)((RAM_STACK_BASE - sizeof(struct global_vars *) - sizeof(struct global_vars)) & ~0x7);<br>
        /* Copy global variables to new location. */<br>
        memcpy(newlocation, global_vars(), sizeof(struct global_vars));<br>
+       printk(BIOS_DEBUG, "disable_car global_vars copy done\n");<br>
        /* Set the new global variable pointer. */<br>
        *(struct global_vars **)(RAM_STACK_BASE - sizeof(struct global_vars *)) = newlocation;<br>
<br>
+       printk(BIOS_DEBUG, "disable_car global_vars pointer adjusted, entering asm code...");<br>
+       printk(BIOS_DEBUG, "now..........................................................................\n");<br>
+       uart8250_tx_byte(TTYSx_BASE, 'F');<br>
+       uart8250_tx_byte(TTYSx_BASE, 'O');<br>
+       uart8250_tx_byte(TTYSx_BASE, 'O');<br>
+       uart8250_tx_byte(TTYSx_BASE, 'B');<br>
+       uart8250_tx_byte(TTYSx_BASE, 'A');<br>
+       uart8250_tx_byte(TTYSx_BASE, 'R');<br>
+       uart8250_tx_byte(TTYSx_BASE, '\n');<br>
        __asm__ __volatile__(<br>
        /* We don't need cache as ram for now on */<br>
        /* disable cache */<br>
@@ -55,6 +67,52 @@<br>
        "       orl    $(0x1<<30),%%eax         \n"<br>
        "       movl    %%eax, %%cr0            \n"<br>
<br>
+       "       movl    $99, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $99, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $104, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $32, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $105, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $115, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $98, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $108, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $10, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+<br>
        /* disable fixed mtrr from now on, it will be enabled by coreboot_ram again*/<br>
        "       movl    %[_SYSCFG_MSR], %%ecx   \n"<br>
        "       rdmsr                           \n"<br>
</div></div>@@ -64,6 +122,67 @@<br>
<div><div></div><div class="Wj3C7c">        "       wrmsr                           \n"<br>
 #warning Must clear MTRR 0x200 and 0x201<br>
<br>
+       "       movl    $102, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $105, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $120, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $32, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $109, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $116, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $114, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $114, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $32, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $105, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $115, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $98, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $108, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $10, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+<br>
</div></div><div class="Ih2E3d">        /* Set the default memory type and disable fixed and enable variable MTRRs */<br>
        "       movl    %[_MTRRdefType_MSR], %%ecx      \n"<br>
        "       xorl    %%edx, %%edx            \n"<br>
</div>@@ -71,14 +190,202 @@<br>
<div><div></div><div class="Wj3C7c">        "       movl    $0x00000800, %%eax      \n"<br>
        "       wrmsr                           \n"<br>
<br>
+       "       movl    $118, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $114, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $105, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $98, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $108, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $32, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $109, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $116, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $114, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $114, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $115, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $32, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $110, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $98, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $108, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $10, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+<br>
</div></div><div><div></div><div class="Wj3C7c">        /* enable cache */<br>
        "       movl    %%cr0, %%eax            \n"<br>
        "       andl    $0x9fffffff,%%eax       \n"<br>
        "       movl    %%eax, %%cr0            \n"<br>
<br>
+       "       movl    $99, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $99, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $104, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $32, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $110, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $98, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $108, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $10, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+<br>
</div></div><div><div></div><div class="Wj3C7c">        "       wbinvd                          \n"<br>
<br>
+       "       movl    $119, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $98, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $105, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $110, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $118, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $32, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $111, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $110, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $10, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+<br>
</div></div><div><div></div><div class="Wj3C7c">        "       movl    %[newesp], %%esp        \n"<br>
+<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $115, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $112, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $32, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $99, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $104, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $97, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $110, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $103, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $101, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $100, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+       "       movl    $10, %%edx\n"<br>
+       "       movl    $1016, %%eax\n"<br>
+       "       call    uart8250_tx_byte\n"<br>
+<br>
</div></div><div class="Ih2E3d">        "       call stage1_phase3              \n"<br>
        :: [newesp] "i" (newlocation),<br>
         [_SYSCFG_MSR] "i" (SYSCFG_MSR),<br>
</div><div><div></div><div class="Wj3C7c">Index: arch/x86/stage1.c<br>
===================================================================<br>
--- arch/x86/stage1.c   (Revision 976)<br>
+++ arch/x86/stage1.c   (Arbeitskopie)<br>
@@ -263,6 +263,7 @@<br>
 #ifdef CONFIG_CONSOLE_BUFFER<br>
        /* Move the printk buffer to PRINTK_BUF_ADDR_RAM */<br>
        printk_buffer_move((void *)PRINTK_BUF_ADDR_RAM, PRINTK_BUF_SIZE_RAM);<br>
+       printk(BIOS_DEBUG, "Done printk() buffer move\n");<br>
 #endif<br>
        /* Turn off Cache-As-Ram */<br>
        disable_car();<br>
<br>
<br>
--<br>
<a href="http://www.hailfinger.org/" target="_blank">http://www.hailfinger.org/</a><br>
<br>
</div></div></blockquote></div><br>