On 01.11.2008 02:50, Carl-Daniel Hailfinger wrote:
> On 31.10.2008 01:36, Corey Osgood wrote:
>   
>> debug log attached.
>>   
>>     
>
> Thanks, the log was really informative. Can you apply the following
> patch and report back? Yes, the patch is evil, but it may help track
> down the issue.
>   

And the patch had minor garbage in it. New patch follows:

Index: arch/x86/via/stage1.c
===================================================================
--- arch/x86/via/stage1.c       (Revision 976)
+++ arch/x86/via/stage1.c       (Arbeitskopie)
@@ -29,12 +29,14 @@
 #include <string.h>
 #include <mtrr.h>
 #include <via_c7.h>
+#include <uart8250.h>
 
 /**
  * Disable Cache As RAM (CAR) after memory is setup.
  */
 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
@@ -45,9 +47,19 @@
        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");
+       uart8250_tx_byte(TTYSx_BASE, 'F');
+       uart8250_tx_byte(TTYSx_BASE, 'O');
+       uart8250_tx_byte(TTYSx_BASE, 'O');
+       uart8250_tx_byte(TTYSx_BASE, 'B');
+       uart8250_tx_byte(TTYSx_BASE, 'A');
+       uart8250_tx_byte(TTYSx_BASE, 'R');
+       uart8250_tx_byte(TTYSx_BASE, '\n');
        __asm__ __volatile__(
        /* We don't need cache as ram for now on */
        /* disable cache */
@@ -55,6 +67,52 @@
        "       orl    $(0x1<<30),%%eax         \n"
        "       movl    %%eax, %%cr0            \n"
 
+       "       movl    $99, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $99, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $104, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $32, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $105, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $115, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $98, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $108, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $10, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+
        /* disable fixed mtrr from now on, it will be enabled by coreboot_ram 
again*/
        "       movl    %[_SYSCFG_MSR], %%ecx   \n"
        "       rdmsr                           \n"
@@ -64,6 +122,67 @@
        "       wrmsr                           \n"
 #warning Must clear MTRR 0x200 and 0x201
 
+       "       movl    $102, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $105, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $120, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $32, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $109, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $116, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $114, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $114, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $32, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $105, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $115, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $98, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $108, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $10, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+
        /* Set the default memory type and disable fixed and enable variable 
MTRRs */
        "       movl    %[_MTRRdefType_MSR], %%ecx      \n"
        "       xorl    %%edx, %%edx            \n"
@@ -71,14 +190,202 @@
        "       movl    $0x00000800, %%eax      \n"
        "       wrmsr                           \n"
 
+       "       movl    $118, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $114, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $105, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $98, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $108, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $32, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $109, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $116, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $114, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $114, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $115, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $32, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $110, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $98, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $108, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $10, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+
        /* enable cache */
        "       movl    %%cr0, %%eax            \n"
        "       andl    $0x9fffffff,%%eax       \n"
        "       movl    %%eax, %%cr0            \n"
 
+       "       movl    $99, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $99, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $104, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $32, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $110, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $98, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $108, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $10, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+
        "       wbinvd                          \n"
 
+       "       movl    $119, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $98, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $105, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $110, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $118, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $32, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $111, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $110, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $10, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+
        "       movl    %[newesp], %%esp        \n"
+
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $115, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $112, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $32, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $99, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $104, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $97, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $110, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $103, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $101, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $100, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+       "       movl    $10, %%edx\n"
+       "       movl    $1016, %%eax\n"
+       "       call    uart8250_tx_byte\n"
+
        "       call stage1_phase3              \n"
        :: [newesp] "i" (newlocation),
         [_SYSCFG_MSR] "i" (SYSCFG_MSR),
Index: arch/x86/stage1.c
===================================================================
--- arch/x86/stage1.c   (Revision 976)
+++ arch/x86/stage1.c   (Arbeitskopie)
@@ -263,6 +263,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/


--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to