[coreboot] [patch] fix intel 82810 onboard VGA and SDRAM functions

Myles Watson mylesgw at gmail.com
Mon May 11 15:33:17 CEST 2009


On Mon, May 11, 2009 at 7:30 AM, Elia Yehuda <z4ziggy at gmail.com> wrote:
>
>
> On Mon, May 11, 2009 at 3:42 PM, Joseph Smith <joe at settoplinux.org> wrote:
>>
>>
>>
>> On Sun, 10 May 2009 23:09:36 -0400, Corey Osgood <corey.osgood at gmail.com>
>> wrote:
>> > On Sun, May 10, 2009 at 6:34 PM, Elia Yehuda <z4ziggy at gmail.com> wrote:
>> >
>> >> here is the comment from my previous patch, revealing most of my RE
>> >> work
>> > :
>> >>
>> >>
>> >>     /* TODO: This needs to be calculated according to the DRAM tech
>> >>      * (x8, x16, or x32). Argh, Intel provides no docs on this!
>> >>      * Currently, it needs to be pulled from the output of
>> >>      * lspci -xxx Rx92
>> >>      * here are some common results:
>> >>      * (c = 128MB dual sided, d = 128MB single sided, f = 256MB dual
>> > sided)
>> >>      * BUFF_SC: tom:    drp:   DIMM0:               DIMM1:
>> >>      * 0x3356   128MB   0x0c   128MB dual-sided     -
>> >>      * 0xcc56   128MB   0xc0   -                    128MB dual-sided
>> >>      * 0x77da   128MB   0x0d   128MB single-sided   -
>> >>      * 0xddda   128MB   0xd0   -                    128MB single-sided
>> >>      * 0x0001   256MB   0xcc   128MB dual-sided     128MB dual-sided
>> >>      * 0x55c6   256MB   0xdd   128MB single-sided   128MB single-sided
>> >>      * 0x4445   256MB   0xcd   128MB single-sided   128MB dual-sided
>> >>      * 0x1145   256MB   0xdc   128MB dual-sided     128MB single-sided
>> >>      * 0x3356   256MB   0x0f   256MB dual-sided     -
>> >>      * 0xcc56   256MB   0xf0   -                    256MB dual-sided
>> >>      * 0x0001   384MB   0xcf   256MB dual-sided     128MB dual-sided
>> >>      * 0x0001   384MB   0xfc   128MB dual-sided     256MB dual-sided
>> >>      * 0x1145   384MB   0xdf   256MB dual-sided     128MB single-sided
>> >>      * 0x4445   384MB   0xfd   128MB single-sided   256MB dual-sided
>> >>      * 0x0001   512MB   0xff   256MB dual-sided     256MB dual-sided
>> >>      *
>> >>      * BUFF_SC: BUFF_SC in binary:          tom:    drp:
>> >> DIMM0:               DIMM1:
>> >>      * 0x3356   0 0 1 1 00 11 01 01 01 10   128MB   0x0c   128MB
>> >> dual-sided     -
>> >>      * 0xcc56   1 1 0 0 11 00 01 01 01 10   128MB   0xc0
>> >> -                    128MB dual-sided
>> >>      * 0x77da   0 1 1 1 01 11 11 01 10 10   128MB   0x0d   128MB
>> >> single-sided   -
>> >>      * 0xddda   1 1 0 1 11 01 11 01 10 10   128MB   0xd0
>> >> -                    128MB single-sided
>> >>      * 0x0001   0 0 0 0 00 00 00 00 00 01   256MB   0xcc   128MB
>> >> dual-sided     128MB dual-sided
>> >>      * 0x55c6   0 1 0 1 01 01 11 00 01 10   256MB   0xdd   128MB
>> >> single-sided   128MB single-sided
>> >>      * 0x4445   0 1 0 0 01 00 01 00 01 01   256MB   0xcd   128MB
>> >> single-sided   128MB dual-sided
>> >>      * 0x1145   0 0 0 1 00 01 01 00 01 01   256MB   0xdc   128MB
>> >> dual-sided     128MB single-sided
>> >>      * 0x3356   0 0 1 1 00 11 01 01 01 10   256MB   0x0f   256MB
>> >> dual-sided     -
>> >>      * 0xcc56   1 1 0 0 11 00 01 01 01 10   256MB   0xf0
>> >> -                    256MB dual-sided
>> >>      * 0x0001   0 0 0 0 00 00 00 00 00 01   384MB   0xcf   256MB
>> >> dual-sided     128MB dual-sided
>> >>      * 0x0001   0 0 0 0 00 00 00 00 00 01   384MB   0xfc   128MB
>> >> dual-sided     256MB dual-sided
>> >>      * 0x1145   0 0 0 1 00 01 01 00 01 01   384MB   0xdf   256MB
>> >> dual-sided     128MB single-sided
>> >>      * 0x4445   0 1 0 0 01 00 01 00 01 01   384MB   0xfd   128MB
>> >> single-sided   256MB dual-sided
>> >>      * 0x0001   0 0 0 0 00 00 00 00 00 01   512MB   0xff   256MB
>> >> dual-sided     256MB dual-sided
>> >>
>> >>         0:1   00 = 0 DIMMs
>> >>               01 = 2 dual
>> >>                1 dual + 1 single
>> >>                1 single + 1 dual
>> >>               10 = 1 DIMM only
>> >>                2 single
>> >>         2:3   00 = 2 dual sided
>> >>               01 = 1 dual sided only
>> >>                2 single sided
>> >>                1 dual + 1 single
>> >>                1 single + 1 dual
>> >>               10 = 1 single sided only
>> >>         4:5   00 = 2 DIMMs
>> >>               01 = 1 DIMM only
>> >>         6:7   00 = 2 dual
>> >>               01 = 1 dual only
>> >>                1 dual + 1 single
>> >>                1 single + 1 dual
>> >>               11 = 1 single
>> >>                2 single
>> >>         8:9   00 = 2 dual
>> >>                1 single + 1 dual
>> >>                1 dual only in slot #1
>> >>               01 = 1 single only in slot #1
>> >>                1 dual + 1 single
>> >>                2 single
>> >>               11 = no dimm in slot #1
>> >>         10:11 00 = 1 dual only in slot #0
>> >>                2 dual
>> >>                1 dual + 1 single
>> >>               01 = 1 single only in slot #0
>> >>                2 single
>> >>                1 single + 1 dual
>> >>               11 = no dimm in slot #0
>> >>         12     0 = 1 dual only in slot #1
>> >>                2 dual
>> >>                1 single + 1 dual
>> >>                1 = no dimm in slot #1
>> >>                1 single
>> >>                2 single
>> >>                1 dual + 1 single
>> >>         13     0 = any in slot #1
>> >>                1 = no dimm in slot #1
>> >>         14     0 = 1 dual only in slot #0
>> >>                2 dual
>> >>                1 dual + 1 single
>> >>                1 = no dimm in slot #0
>> >>                1 single only in slot #0
>> >>                2 single
>> >>                1 single + 1 dual
>> >>         15     0 = no dimm in slot #1
>> >>                2 DIMMs
>> >>                1 = no dimm in slot #0
>> >>
>> >>
>> >>      */
>> >>
>> >>
>> > Wow, cool, I'd never have been able to put that together ;) thanks!
>> >
>> Yes very cool :-)
>
> thanks :)
>
>>
>> I am going to have to test this out on the i830.
>> Elia do you need someone with svn access to apply your patch?
>
> sure, but as was suggested by Myles Watson, we'll wait for the
> HAVE_HIGH_TABLES fix before applying this patch.

I don't want to hold back progress.  I think you've done good work.
Maybe you could send boot logs to the list and get help to track down
the error.  I don't have the hardware, but I'd be happy to help some.
Could you add a few printks to the calculations of tomk before
collecting the logs (with and without HAVE_HIGH_TABLES?

Thanks,
Myles




More information about the coreboot mailing list