[patch] fix intel 82810 onboard VGA and SDRAM functions

This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA. Signed-off-by: Elia Yehuda <z4ziggy@gmail.com>

On Sun, May 10, 2009 at 8:21 AM, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com>
Acked-by: Corey Osgood <corey.osgood@gmail.com> Where did you find the info on configuring the BUFF_SC registers? Also, the lack of high tables breaks something (SeaBIOS or CBFS?) but I haven't been following close enough lately to remember what. -Corey

On Sun, May 10, 2009 at 8:48 PM, Corey Osgood <corey.osgood@gmail.com>wrote:
On Sun, May 10, 2009 at 8:21 AM, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com>
Acked-by: Corey Osgood <corey.osgood@gmail.com>
thanks.
Where did you find the info on configuring the BUFF_SC registers? Also, the lack of high tables breaks something (SeaBIOS or CBFS?) but I haven't been following close enough lately to remember what.
-Corey
A lot of RE, comparing and matching my values from different DIMMs, and ofcourse - trying to make some sense from various documentation... Elia.

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 */

On Sun, May 10, 2009 at 6:34 PM, Elia Yehuda <z4ziggy@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! -Corey

On Sun, 10 May 2009 23:09:36 -0400, Corey Osgood <corey.osgood@gmail.com> wrote:
On Sun, May 10, 2009 at 6:34 PM, Elia Yehuda <z4ziggy@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 :-) I am going to have to test this out on the i830. Elia do you need someone with svn access to apply your patch? -- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org

On Mon, May 11, 2009 at 3:42 PM, Joseph Smith <joe@settoplinux.org> wrote:
On Sun, 10 May 2009 23:09:36 -0400, Corey Osgood <corey.osgood@gmail.com> wrote:
On Sun, May 10, 2009 at 6:34 PM, Elia Yehuda <z4ziggy@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.
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
Elia.

On Mon, May 11, 2009 at 7:30 AM, Elia Yehuda <z4ziggy@gmail.com> wrote:
On Mon, May 11, 2009 at 3:42 PM, Joseph Smith <joe@settoplinux.org> wrote:
On Sun, 10 May 2009 23:09:36 -0400, Corey Osgood <corey.osgood@gmail.com> wrote:
On Sun, May 10, 2009 at 6:34 PM, Elia Yehuda <z4ziggy@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

On Mon, May 11, 2009 at 4:33 PM, Myles Watson <mylesgw@gmail.com> wrote:
On Mon, May 11, 2009 at 7:30 AM, Elia Yehuda <z4ziggy@gmail.com> wrote:
On Mon, May 11, 2009 at 3:42 PM, Joseph Smith <joe@settoplinux.org>
wrote:
On Sun, 10 May 2009 23:09:36 -0400, Corey Osgood <
corey.osgood@gmail.com>
wrote:
On Sun, May 10, 2009 at 6:34 PM, Elia Yehuda <z4ziggy@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?
sure. will do it later today and post my logs to the ml. also, uwe is planning to test the patches later today too, so he might be successful in tracing the problem before me :)
Thanks, Myles
Elia.

On Sun, May 10, 2009 at 6:21 AM, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA. It looks like the problem is that the memory you're reserving for VGA and the memory reserved for high tables ends up in the same place (ending at tomk.) If you decide which one should go at the end and modify the math, it should work.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com> Acked-by: Corey Osgood <corey.osgood@gmail.com>
Since it looks like an easy fix, let's get it right before committing it. It breaks SeaBIOS, and our assumption that HAVE_HIGH_TABLES doesn't break anything. Thanks, Myles

On Mon, 11 May 2009 06:52:26 -0600, Myles Watson <mylesgw@gmail.com> wrote:
On Sun, May 10, 2009 at 6:21 AM, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA. It looks like the problem is that the memory you're reserving for VGA and the memory reserved for high tables ends up in the same place (ending at tomk.) If you decide which one should go at the end and modify the math, it should work.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com> Acked-by: Corey Osgood <corey.osgood@gmail.com>
Since it looks like an easy fix, let's get it right before committing it. It breaks SeaBIOS, and our assumption that HAVE_HIGH_TABLES doesn't break anything.
Take a look at how the i945 does this in northbridge.c, It should work here. -- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org

On Mon, May 11, 2009 at 3:52 PM, Myles Watson <mylesgw@gmail.com> wrote:
On Sun, May 10, 2009 at 6:21 AM, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA. It looks like the problem is that the memory you're reserving for VGA and the memory reserved for high tables ends up in the same place (ending at tomk.) If you decide which one should go at the end and modify the math, it should work.
i completely agree - there seems to be an overlapped memory region, but i couldn't trace it deep enough to be able to fix it. sorry... im not familiar enough with coreboot code. i suspect you guys will have better luck.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com> Acked-by: Corey Osgood <corey.osgood@gmail.com>
Since it looks like an easy fix, let's get it right before committing it. It breaks SeaBIOS, and our assumption that HAVE_HIGH_TABLES doesn't break anything.
i'll keep an eye on HAVE_HIGH_TABLES patches and migrate them to my patches and check if it fix the issue. i'll update the ml as for the results.
Thanks, Myles
Elia.

Quick review below, I didn't yet find the time to test on hardware, will hopefully be able to do that today.
+ val = 0; + val = pci_read_config8(PCI_DEV(0, 0, 0), MISSC2);
The 'val = 0' should no be needed if you do pci_read_config8() right after that.
+ val |= 0x06; + + val |= 0xc6;
Why this? Only the last line alone should also do?
+#ifdef CONFIG_VIDEO_MB + /* check for VGA reserved memory + * possible CONFIG_VIDEO_MB values are 512(kb) and 1(mb) + */ + if (CONFIG_VIDEO_MB == 512) { + tomk -= 512; + printk_debug("Allocating 512KB of RAM for VGA\n"); + } else if (CONFIG_VIDEO_MB == 1) { + tomk -= 1024 ; + printk_debug("Allocating 1MB of RAM for VGA\n");
+ } else { + /* assume no vga if incorrect value */ + tomk == tomk;
Isn't this is no-op? Or am I missing something? Uwe. -- http://www.hermann-uwe.de | http://www.holsham-traders.de http://www.crazy-hacks.org | http://www.unmaintained-free-software.org

+#ifdef CONFIG_VIDEO_MB + /* check for VGA reserved memory + * possible CONFIG_VIDEO_MB values are 512(kb) and 1(mb) + */ + if (CONFIG_VIDEO_MB == 512) { + tomk -= 512; + printk_debug("Allocating 512KB of RAM for VGA\n"); + } else if (CONFIG_VIDEO_MB == 1) { + tomk -= 1024 ; + printk_debug("Allocating 1MB of RAM for VGA\n");
+ } else { + /* assume no vga if incorrect value */ + tomk == tomk;
Isn't this is no-op? Or am I missing something?
I don't know what you mean no-op? Are you taking about the "#ifdef CONFIG_VIDEO_MB", because I don't think that is necessary. This came from the i830, but I don't use "#ifdef CONFIG_VIDEO_MB" and it works fine. Intel onboard "shared" graphics memory is always just below TOM. -- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org

On Tue, May 12, 2009 at 8:12 AM, Joseph Smith <joe@settoplinux.org> wrote:
+#ifdef CONFIG_VIDEO_MB + /* check for VGA reserved memory + * possible CONFIG_VIDEO_MB values are 512(kb) and 1(mb) + */ + if (CONFIG_VIDEO_MB == 512) { + tomk -= 512; + printk_debug("Allocating 512KB of RAM for VGA\n"); + } else if (CONFIG_VIDEO_MB == 1) { + tomk -= 1024 ; + printk_debug("Allocating 1MB of RAM for VGA\n");
+ } else { + /* assume no vga if incorrect value */ + tomk == tomk;
Isn't this is no-op? Or am I missing something?
I don't know what you mean no-op?
tomk==tomk doesn't do anything. It would probably be better to leave out that else branch.
Are you taking about the "#ifdef CONFIG_VIDEO_MB", because I don't think that is necessary. It should be #if CONFIG_VIDEO_MB >0 if we use it. We don't use #ifdef in v2 because the options are always defined if they are used.
Thanks, Myles

On Tue, 12 May 2009 08:18:20 -0600, Myles Watson <mylesgw@gmail.com> wrote:
On Tue, May 12, 2009 at 8:12 AM, Joseph Smith <joe@settoplinux.org> wrote:
+#ifdef CONFIG_VIDEO_MB + /* check for VGA reserved memory + * possible CONFIG_VIDEO_MB values are 512(kb) and
1(mb)
+ */ + if (CONFIG_VIDEO_MB == 512) { + tomk -= 512; + printk_debug("Allocating 512KB of RAM for VGA\n"); + } else if (CONFIG_VIDEO_MB == 1) { + tomk -= 1024 ; + printk_debug("Allocating 1MB of RAM for VGA\n");
+ } else { + /* assume no vga if incorrect value */ + tomk == tomk;
Isn't this is no-op? Or am I missing something?
I don't know what you mean no-op? tomk==tomk doesn't do anything. It would probably be better to leave out that else branch.
Ahh, I have to disagree. For example, what if someone puts a value of 4 (CONFIG_VIDEO_MB = 4) in by mistake. It will cause coreboot to crash because it will not know what to do with that value... The else tomk == tomk is more of a safety net than anything. So if you keep the else and someone puts a value of 4 (CONFIG_VIDEO_MB = 4) in by mistake, coreboot will still boot, and worse case scenario you just won't have vga. -- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org

On Tue, 12 May 2009 11:05:59 -0400, Joseph Smith <joe@settoplinux.org> wrote:
On Tue, 12 May 2009 08:18:20 -0600, Myles Watson <mylesgw@gmail.com> wrote:
On Tue, May 12, 2009 at 8:12 AM, Joseph Smith <joe@settoplinux.org> wrote:
+#ifdef CONFIG_VIDEO_MB + /* check for VGA reserved memory + * possible CONFIG_VIDEO_MB values are 512(kb) and
1(mb)
+ */ + if (CONFIG_VIDEO_MB == 512) { + tomk -= 512; + printk_debug("Allocating 512KB of RAM for VGA\n"); + } else if (CONFIG_VIDEO_MB == 1) { + tomk -= 1024 ; + printk_debug("Allocating 1MB of RAM for VGA\n");
+ } else { + /* assume no vga if incorrect value */ + tomk == tomk;
Isn't this is no-op? Or am I missing something?
I don't know what you mean no-op? tomk==tomk doesn't do anything. It would probably be better to leave out that else branch.
Ahh, I have to disagree. For example, what if someone puts a value of 4 (CONFIG_VIDEO_MB = 4) in by mistake. It will cause coreboot to crash because it will not know what to do with that value...
The else tomk == tomk is more of a safety net than anything.
So if you keep the else and someone puts a value of 4 (CONFIG_VIDEO_MB = 4) in by mistake, coreboot will still boot, and worse case scenario you just won't have vga.
Or maybe a switch would be better with tomk == tomk as the default. -- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org

Ok, I get your point Myles. I did do it a little different on the i830. I just added an extra variable so if CONFIG_VIDEO_MB is 0 it doesn't really do anything. Then it subtracts from tomk afterwards, like this: int igd_memory = 0; if (CONFIG_VIDEO_MB == 512) { igd_memory = (CONFIG_VIDEO_MB); } else { igd_memory = (CONFIG_VIDEO_MB * 1024); } tomk -= igd_memory; Elia I think this would work nicely for you. -- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org

int igd_memory = 0;
if (CONFIG_VIDEO_MB == 512) { igd_memory = (CONFIG_VIDEO_MB); } else { igd_memory = (CONFIG_VIDEO_MB * 1024); }
If you made the 512(K) 0.5 (MB), then you wouldn't need the if. tomk -= (CONFIG_VIDEO_MB * 1024); I think CONFIG_VIDEO_MB=512 is misleading. Thanks, Myles

On Tue, May 12, 2009 at 4:57 PM, Uwe Hermann <uwe@hermann-uwe.de> wrote:
Quick review below, I didn't yet find the time to test on hardware, will hopefully be able to do that today.
+ val = 0; + val = pci_read_config8(PCI_DEV(0, 0, 0), MISSC2);
The 'val = 0' should no be needed if you do pci_read_config8() right after that.
agreed. its just a leftover. the 'val=0' can be removed.
+ val |= 0x06; + + val |= 0xc6;
Why this? Only the last line alone should also do?
same here - the 'val += 0x06' is a leftover from the original code. it can be removed.
+#ifdef CONFIG_VIDEO_MB + /* check for VGA reserved memory + * possible CONFIG_VIDEO_MB values are 512(kb) and 1(mb) + */ + if (CONFIG_VIDEO_MB == 512) { + tomk -= 512; + printk_debug("Allocating 512KB of RAM for VGA\n"); + } else if (CONFIG_VIDEO_MB == 1) { + tomk -= 1024 ; + printk_debug("Allocating 1MB of RAM for VGA\n");
+ } else { + /* assume no vga if incorrect value */ + tomk == tomk;
Isn't this is no-op? Or am I missing something?
no, you're not missing a thing. i actually copied this from other northbridge code and i liked this no-op because its a cleaner code. from a programmer side of view, it is redundant...
Uwe. -- http://www.hermann-uwe.de | http://www.holsham-traders.de http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
I hope you'll get a chance to play with the patch and maybe fix the HIGH_TABLE issue. Blessings, Elia.

On Sun, 10 May 2009 15:21:52 +0300, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com>
Elia, any progress on the high tables stuff yet? It would be real shame to see this great code goto the way side. Maybe you could split the patch in two and we can get all the non high tables stuff commited to svn? -- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org

On Thu, May 21, 2009 at 10:03 PM, Joseph Smith <joe@settoplinux.org> wrote:
On Sun, 10 May 2009 15:21:52 +0300, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com>
Elia, any progress on the high tables stuff yet? It would be real shame to see this great code goto the way side. Maybe you could split the patch in two and we can get all the non high tables stuff commited to svn?
im still waiting for Uwe to try the patch - he has some issues with his hardware so we need to have patience. If this won't work out, then i'll do my best and trace the high-tables issue myself and update the list as for my findings. as for splitting the patch - can be done, but i suggest we wait a bit and give Uwe a chance since he is the main 82810 coder and he has done wonders in the past so i suspect he'll do magic once more :-)
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
Elia.

On Fri, May 22, 2009 at 03:54:43AM +0300, Elia Yehuda wrote:
On Sun, 10 May 2009 15:21:52 +0300, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com>
Elia, any progress on the high tables stuff yet? It would be real shame to see this great code goto the way side. Maybe you could split the patch in two and we can get all the non high tables stuff commited to svn?
im still waiting for Uwe to try the patch - he has some issues with his hardware so we need to have patience.
Yeah, sorry for the long delay. I had hardware issues, which I fixed by replacing some dead capacitors on my i810 board. I have successfully tested the (slightly modified for cosmetics) BUFF_SC parts of the patch, which works fine and is thus committed as r4338 (thanks!)
If this won't work out, then i'll do my best and trace the high-tables issue myself and update the list as for my findings.
as for splitting the patch - can be done, but i suggest we wait a bit and give Uwe a chance
In general I recommend to split patches into independent functional units indeed, that makes testing and reviewing a lot easier. Haven't had much luck with the HIGH_TABLES stuff yet, need to look into it some more, will post the remainders of the patch (without the now-committed BUFF_SC parts) later and/or check what's going on with HIGH_TABLES... Uwe. -- http://www.hermann-uwe.de | http://www.holsham-traders.de http://www.crazy-hacks.org | http://www.unmaintained-free-software.org

On Fri, 5 Jun 2009 02:27:09 +0200, Uwe Hermann <uwe@hermann-uwe.de> wrote:
On Fri, May 22, 2009 at 03:54:43AM +0300, Elia Yehuda wrote:
On Sun, 10 May 2009 15:21:52 +0300, Elia Yehuda <z4ziggy@gmail.com> wrote:
This patch enables the onboard VGA found on 82810 boards and fixes the memory procedures to support different kinds of DIMMs. also, support for 82810e board had been added. The only drawback from this patch is the HAVE_HIGH_TABLES being disabled since it disables (for unknown reason) the onboard VGA.
Signed-off-by: Elia Yehuda <z4ziggy@gmail.com>
Elia, any progress on the high tables stuff yet? It would be real shame to see this great code goto the way side. Maybe you could split the patch in two and we can get all the non high tables stuff commited to svn?
im still waiting for Uwe to try the patch - he has some issues with his hardware so we need to have patience.
Yeah, sorry for the long delay. I had hardware issues, which I fixed by replacing some dead capacitors on my i810 board. I have successfully tested the (slightly modified for cosmetics) BUFF_SC parts of the patch, which works fine and is thus committed as r4338 (thanks!)
If this won't work out, then i'll do my best and trace the high-tables issue myself and update the list as for my findings.
as for splitting the patch - can be done, but i suggest we wait a bit and give Uwe a chance
In general I recommend to split patches into independent functional units indeed, that makes testing and reviewing a lot easier.
Haven't had much luck with the HIGH_TABLES stuff yet, need to look into it some more, will post the remainders of the patch (without the now-committed BUFF_SC parts) later and/or check what's going on with HIGH_TABLES...
Sweet thanks Uwe :-) -- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org

Hi, On Fri, Jun 05, 2009 at 02:27:09AM +0200, Uwe Hermann wrote:
Haven't had much luck with the HIGH_TABLES stuff yet, need to look into it some more, will post the remainders of the patch (without the now-committed BUFF_SC parts) later and/or check what's going on with HIGH_TABLES...
OK, I've just committed (somewhat) working VGA support in r4398 for 82810 and 82810E and enabled it for my test board (MS-6178) in r4399. http://www.coreboot.org/pipermail/coreboot/2009-July/050496.html http://www.coreboot.org/pipermail/coreboot/2009-July/050497.html The VGA support is probably not perfect, yet, I'll do some more testing and fixing. Please let me know if this also works on your 82810E board (it should) and/or if it needs additional patching. So far I see no problems with enabled HIGH_TABLES, will try SeaBIOS soon, and also compare the logs of enabled/disabled HIGH_TABLES to make sure everything works fine. Cheers, Uwe. -- http://www.hermann-uwe.de | http://www.holsham-traders.de http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
participants (5)
-
Corey Osgood
-
Elia Yehuda
-
Joseph Smith
-
Myles Watson
-
Uwe Hermann