On Sat, Nov 1, 2008 at 1:06 AM, Corey Osgood <span dir="ltr"><<a href="mailto:corey.osgood@gmail.com">corey.osgood@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
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><font color="#888888">Corey</font></blockquote><div><br>I should have also mentioned that I didn't trim anything, the serial console hangs at the end of the log file, but the post code keeps changing, so I'm assuming something is going on but nothing's going to the console.<br>
<br>-Corey<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><font color="#888888"></font><div><div></div><div class="Wj3C7c"><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" target="_blank">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>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><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>        "       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>        /* 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>        "       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>        /* 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>        "       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>        "       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>        "       call stage1_phase3              \n"<br>
        :: [newesp] "i" (newlocation),<br>
         [_SYSCFG_MSR] "i" (SYSCFG_MSR),<br>
</div><div><div></div><div>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>
</div></div></blockquote></div><br>