Patchwork [3/4,The,604,CAR,crusades] Episode III - Revenge of the Abuild

login
register
about
Submitter Alexandru Gagniuc
Date 2011-03-09 20:59:50
Message ID <4D77EA46.7010000@gmail.com>
Download mbox | patch
Permalink /patch/2761/
State New
Headers show

Comments

Alexandru Gagniuc - 2011-03-09 20:59:50
While the previous two patches were innocently trivial and abuild
tested, this one _will_ break the build for several Socket 604 boards.
We want the build to be broken until we can port those to CAR.

See patch for verbosity.
Stefan Reinauer - 2011-03-09 21:19:40
* Alex G. <mr.nuke.me@gmail.com> [110309 21:59]:
> While the previous two patches were innocently trivial and abuild
> tested, this one _will_ break the build for several Socket 604 boards.
> We want the build to be broken until we can port those to CAR.

Please provide a patch that does that. Actually we don't want the build
to be broken. ;-)

> See patch for verbosity.

> The Tyan s2735 is a Socket 604 board that uses CAR.

Did you verify that all CPUs that can be plugged into a Socket 604 can
actually do CAR?
Alexandru Gagniuc - 2011-03-09 21:23:36
On 03/09/2011 11:19 PM, Stefan Reinauer wrote:
> * Alex G. <mr.nuke.me@gmail.com> [110309 21:59]:
>> While the previous two patches were innocently trivial and abuild
>> tested, this one _will_ break the build for several Socket 604 boards.
>> We want the build to be broken until we can port those to CAR.
> 
> Please provide a patch that does that. Actually we don't want the build
> to be broken. ;-)
> 
See Episode IV.
I can only do so much at once. There are nine boards in this situation.
I can't do all of them at once, so please be patient. More patches will
be coming in the following days/week/two weeks (depending on how busy I am).

>> The Tyan s2735 is a Socket 604 board that uses CAR.
> 
> Did you verify that all CPUs that can be plugged into a Socket 604 can
> actually do CAR?
> 
Pentium, P2, and P3 can all do CAR. The 604 Xeons, which are based on P4
can most definitely do CAR.

Alex
Alexandru Gagniuc - 2011-03-09 22:05:49
On 03/09/2011 11:23 PM, Alex G. wrote:
> On 03/09/2011 11:19 PM, Stefan Reinauer wrote:
>>
>> Did you verify that all CPUs that can be plugged into a Socket 604 can
>> actually do CAR?
>>
> Pentium, P2, and P3 can all do CAR. The 604 Xeons, which are based on P4
> can most definitely do CAR.
>
To that 603 Xeons as well add.

Master Yoda
Joseph Smith - 2011-03-10 00:30:20
On 03/09/2011 04:19 PM, Stefan Reinauer wrote:
> * Alex G.<mr.nuke.me@gmail.com>  [110309 21:59]:
>> While the previous two patches were innocently trivial and abuild
>> tested, this one _will_ break the build for several Socket 604 boards.
>> We want the build to be broken until we can port those to CAR.
>
> Please provide a patch that does that. Actually we don't want the build
> to be broken. ;-)
>
>> See patch for verbosity.
>
>> The Tyan s2735 is a Socket 604 board that uses CAR.
>
> Did you verify that all CPUs that can be plugged into a Socket 604 can
> actually do CAR?
>
>
>
Yes I am a little confused. Alex did you actually test CAR on a Socket 
604 board? Or is this all just abuilded?
Alexandru Gagniuc - 2011-03-10 01:04:44
On 03/10/2011 02:30 AM, Joseph Smith wrote:
> Yes I am a little confused. Alex did you actually test CAR on a Socket
> 604 board? Or is this all just abuilded?
> 
I researched the matter, found that those CPUs support it, and I even
found that a board already implemented CAR for 604 CPUs. Please the
Preludium read if the chance yet got you not you have. No I do not have
a 604 board, and did not test this on a 604 board.

Alex
Joseph Smith - 2011-03-10 01:43:08
On 03/09/2011 08:04 PM, Alex G. wrote:
> On 03/10/2011 02:30 AM, Joseph Smith wrote:
>> Yes I am a little confused. Alex did you actually test CAR on a Socket
>> 604 board? Or is this all just abuilded?
>>
> I researched the matter, found that those CPUs support it, and I even
> found that a board already implemented CAR for 604 CPUs. Please the
> Preludium read if the chance yet got you not you have. No I do not have
> a 604 board, and did not test this on a 604 board.
>
Sorry to say Alex, unless someone can with the hardware (at least one 
board can confirm) I will have to sit this one out. I know from 
developing CAR for both i830 and i810 that things can got wrong very 
easily, and if they do you will not even get serial output....
Sorry.
Alexandru Gagniuc - 2011-03-10 01:45:16
On 03/10/2011 03:43 AM, Joseph Smith wrote:
> Sorry to say Alex, unless someone can with the hardware (at least one
> board can confirm) I will have to sit this one out. I know from
> developing CAR for both i830 and i810 that things can got wrong very
> easily, and if they do you will not even get serial output....
> Sorry.
> 
Sorry to say that someone with the Tyan board I mentioned has already
tested, otherwise it would not have been committed as CAR in the tree,
and I would not have wasted this monumental amount of time converting
the rest.

Tyan S2735 is the board you're looking for. If this is not enough for
you, then please shoot me. :)

Alex
Stefan Reinauer - 2011-03-11 23:19:41
* Alex G. <mr.nuke.me@gmail.com> [110310 02:45]:
> On 03/10/2011 03:43 AM, Joseph Smith wrote:
> > Sorry to say Alex, unless someone can with the hardware (at least one
> > board can confirm) I will have to sit this one out. I know from
> > developing CAR for both i830 and i810 that things can got wrong very
> > easily, and if they do you will not even get serial output....
> > Sorry.
> > 
> Sorry to say that someone with the Tyan board I mentioned has already
> tested, otherwise it would not have been committed as CAR in the tree,
> and I would not have wasted this monumental amount of time converting
> the rest.
> 
> Tyan S2735 is the board you're looking for. If this is not enough for
> you, then please shoot me. :)
> 
> Alex

The S2735 is a dual Xeon server board. While I am pretty sure that this
one worked nicely at some point, I don't think that this suggests that
we should enable the same CAR code on all other socket 604 boards
without testing.

Stefan
Alexandru Gagniuc - 2011-03-11 23:32:20
On 03/12/2011 01:19 AM, Stefan Reinauer wrote:
> The S2735 is a dual Xeon server board. While I am pretty sure that this
> one worked nicely at some point, I don't think that this suggests that
> we should enable the same CAR code on all other socket 604 boards
> without testing.
>
Umh, the same CAR code is used for all supported Intel CPUs. I don't
know why you guys are so skeptical on this. It's code that's been proven
to work on numerous CPUs, including the socket that this patch is
referring to.

Alex
Stefan Reinauer - 2011-03-12 01:02:08
* Alex G. <mr.nuke.me@gmail.com> [110312 00:32]:
> Umh, the same CAR code is used for all supported Intel CPUs. 

No, it's not. It just happens to live in a directory that seems to imply
this. There are quire a number of Intel CPUs that don't work with that
code (Intel Core/Core 2 and Atom being some of the ones that are
supported by special code). In fact, I think the code in cpu/intel/car
only supports a very small number of Intel CPUs.

Stefan
Alexandru Gagniuc - 2011-03-12 01:38:17
On 03/12/2011 03:02 AM, Stefan Reinauer wrote:
> * Alex G. <mr.nuke.me@gmail.com> [110312 00:32]:
>> Umh, the same CAR code is used for all supported Intel CPUs. 
> 
> No, it's not. It just happens to live in a directory that seems to imply
> this. There are quire a number of Intel CPUs that don't work with that
> code (Intel Core/Core 2 and Atom being some of the ones that are
> supported by special code). In fact, I think the code in cpu/intel/car
> only supports a very small number of Intel CPUs.

You'sa point is well seen; however, your previous arguments about
thrashing these patches are not. As far as debating those arguments, I'm
just too tired to pointlessly try to get people to do something useful. :(

Alex

Patch

The Tyan s2735 is a Socket 604 board that uses CAR.
cache_as_ram.inc is included specifically for this board in
src/arch/x86/Makefile.inc .

This patch makes the option generic to all Socket 604 boards.

Expect the build for the following boards to be broken by this patch:

 dell/s1850
 intel/jarrell
 intel/xe7501devkit
 supermicro/x6dai_g
 supermicro/x6dhe_g
 supermicro/x6dhe_g2
 supermicro/x6dhr_ig
 supermicro/x6dhr_ig2

These boards need to be individually ported to CAR. The job is as
simple as removing "select ROMCC" from each board's Kconfig and
fixing the build errors that appear.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>


Index: src/mainboard/tyan/s2735/Kconfig
===================================================================
--- src/mainboard/tyan/s2735/Kconfig	(revision 6429)
+++ src/mainboard/tyan/s2735/Kconfig	(working copy)
@@ -13,7 +13,6 @@ 
 	select HAVE_MP_TABLE
 	select UDELAY_TSC
 	select HAVE_OPTION_TABLE
-	select CACHE_AS_RAM
 	select USE_WATCHDOG_ON_BOOT
 	select BOARD_ROMSIZE_KB_512
 
Index: src/cpu/intel/socket_mPGA604/Kconfig
===================================================================
--- src/cpu/intel/socket_mPGA604/Kconfig	(revision 6429)
+++ src/cpu/intel/socket_mPGA604/Kconfig	(working copy)
@@ -1,3 +1,23 @@ 
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2011 Alexandru Gagniuc <mr.nuke.me@gmail.com>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+##
+
 config CPU_INTEL_SOCKET_MPGA604
 	bool
 	select CPU_INTEL_MODEL_F2X
@@ -6,6 +26,7 @@ 
 	select MMX
 	select SSE
 	select UDELAY_TSC
+	select CACHE_AS_RAM
 
 # mPGA604 are usually Intel Netburst CPUs which should have SSE2
 # but the ramtest.c code on the Dell S1850 seems to choke on
@@ -14,3 +35,8 @@ 
 	bool
 	default n
 	depends on CPU_INTEL_SOCKET_MPGA604
+
+# We need to specify this in order for cache_as_ram.inc to assemble
+config DCACHE_RAM_SIZE
+	hex
+	default 0x1000
Index: src/cpu/intel/socket_mPGA604/Makefile.inc
===================================================================
--- src/cpu/intel/socket_mPGA604/Makefile.inc	(revision 6429)
+++ src/cpu/intel/socket_mPGA604/Makefile.inc	(working copy)
@@ -1,3 +1,23 @@ 
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2011 Alexandru Gagniuc <mr.nuke.me@gmail.com>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+##
+
 ramstage-y += socket_mPGA604.c
 subdirs-y += ../model_f2x
 subdirs-y += ../model_f3x
@@ -10,3 +30,5 @@ 
 subdirs-y += ../microcode
 subdirs-y += ../hyperthreading
 
+# This is a CAR capable socket god damn it!!!
+cpu_incs += $(src)/cpu/intel/car/cache_as_ram.inc
Index: src/arch/x86/Makefile.inc
===================================================================
--- src/arch/x86/Makefile.inc	(revision 6429)
+++ src/arch/x86/Makefile.inc	(working copy)
@@ -186,13 +186,6 @@ 
 
 crt0s += $(cpu_incs)
 
-#
-# FIXME move to CPU_INTEL_SOCKET_MPGA604
-#
-ifeq ($(CONFIG_BOARD_TYAN_S2735),y)
-crt0s += $(src)/cpu/intel/car/cache_as_ram.inc
-endif
-
 ifeq ($(CONFIG_LLSHELL),y)
 crt0s += $(src)/arch/x86/llshell/llshell.inc
 endif