[coreboot] DRAM self refresh check in src/northbridge/i945/raminit.c

Stefan Reinauer stefan.reinauer at coreboot.org
Mon Mar 21 22:46:30 CET 2011


* Sven Schnelle <svens at stackframe.org> [110321 21:52]:
> Hi List,
> 
> one of the last remaining problems with the ThinkPad X60 port is that
> coreboot does a full reset on ACPI S3 wakeup. There's an explicit check
> that the DRAM self refresh bits in PMSTS (MCHBAR offset 0xf14) are set.
> 
> For (yet) unknown reasons, those bits are not set on my Thinkpad after
> Wakeup, even though suspending works for several days, without the DRAM
> being refreshed by the Chipset, so i guess Self Refresh is working. I've
> commented the check out, with the following diff:
> 
> Does anyone have an idea why that check fails?
 
Can you try setting the bits instead? (Maybe in SMM?) 

I am very hesitant to let the below patch go in, as certain ram
misconfigurations can only be corrected with a cold boot if it goes in.

Stefan



> diff --git a/src/northbridge/intel/i945/raminit.c
> b/src/northbridge/intel/i945/raminit.c
> index 8b7ffa1..e6990f7 100644
> --- a/src/northbridge/intel/i945/raminit.c
> +++ b/src/northbridge/intel/i945/raminit.c
> @@ -312,10 +312,12 @@ static void sdram_detect_errors(struct sys_info
> *sysinfo)
>         }
>  
>         if (do_reset) {
> -               printk(BIOS_DEBUG, "Reset required.\n");
> +               printk(BIOS_DEBUG, "Reset required. (ignored)\n");
> +#if 0
>                 outb(0x00, 0xcf9);
>                 outb(0x0e, 0xcf9);
>                 for (;;) asm("hlt"); /* Wait for reset! */
> +#endif
>         }
>  }
> 
> 
> -- 
> coreboot mailing list: coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
> 




More information about the coreboot mailing list