Hello, This patch adds a new socket for FCPGA370 and PGA370 CPU's. This new socket (called socket_FC_PGA370) will make the CAR transition alot easier. When done transitioning all the boards and cpu's the old socket_PGA370 (kind of misleading for the FC's) can be deleted as well as model_6xx. I will be testing a bunch of 370 cpu's this week so hopefully the model_6xx will be no longer needed. This patch also includes first CAR support for model_68x FCPGA CPU's.
Build and boot tested.
Signed-off by: Joseph Smith joe@settoplinux.org
On 6/20/10 10:04 AM, Joseph Smith wrote:
Hello, This patch adds a new socket for FCPGA370 and PGA370 CPU's. This new socket (called socket_FC_PGA370) will make the CAR transition alot easier. When done transitioning all the boards and cpu's the old socket_PGA370 (kind of misleading for the FC's) can be deleted as well as model_6xx. I will be testing a bunch of 370 cpu's this week so hopefully the model_6xx will be no longer needed. This patch also includes first CAR support for model_68x FCPGA CPU's.
Build and boot tested.
Signed-off by: Joseph Smith joe@settoplinux.org
with two caveats:
Acked-by: Stefan Reinauer stepan@coresystems.de
Index: src/cpu/intel/Kconfig
--- src/cpu/intel/Kconfig (revision 5634) +++ src/cpu/intel/Kconfig (working copy)
@@ -17,6 +18,7 @@ source src/cpu/intel/bga956/Kconfig source src/cpu/intel/slot_2/Kconfig source src/cpu/intel/slot_1/Kconfig +source src/cpu/intel/socket_FC_PGA370/Kconfig
FCPGA
Index: src/cpu/intel/Makefile.inc
--- src/cpu/intel/Makefile.inc (revision 5634) +++ src/cpu/intel/Makefile.inc (working copy) @@ -6,6 +6,7 @@ subdirs-$(CONFIG_CPU_INTEL_SOCKET_441) += socket_441 subdirs-$(CONFIG_CPU_INTEL_SOCKET_BGA956) += bga956 subdirs-$(CONFIG_CPU_INTEL_EP80579) += ep80579 +subdirs-$(CONFIG_CPU_INTEL_SOCKET_FC_PGA370) += socket_FC_PGA370
FCPGA
Index: src/cpu/intel/socket_FC_PGA370/Kconfig
--- src/cpu/intel/socket_FC_PGA370/Kconfig (revision 0) +++ src/cpu/intel/socket_FC_PGA370/Kconfig (revision 0)
+config CPU_INTEL_SOCKET_FC_PGA370
FCPGA
Index: src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c
--- src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c (revision 0) +++ src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c (revision 0) @@ -0,0 +1,26 @@
+#include <device/device.h> +#include "chip.h"
+struct chip_operations cpu_intel_socket_FC_PGA370_ops = {
FCPGA
- CHIP_NAME("(FC)PGA370 CPU")
+}; Index: src/cpu/intel/socket_FC_PGA370/Makefile.inc =================================================================== --- src/cpu/intel/socket_FC_PGA370/Makefile.inc (revision 0) +++ src/cpu/intel/socket_FC_PGA370/Makefile.inc (revision 0) @@ -0,0 +1,30 @@ +## +## This file is part of the coreboot project. +## +## Copyright (C) 2010 Joseph Smith joe@settoplinux.org +## +## 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 +##
+obj-y += socket_FC_PGA370.o
FCPGA
+extern struct chip_operations cpu_intel_socket_FC_PGA370_ops;
+struct cpu_intel_socket_FC_PGA370_config { +};
This should be FCPGA370 or mFCPGA370
Index: src/cpu/intel/model_68x/model_68x_init.c
--- src/cpu/intel/model_68x/model_68x_init.c (revision 0) +++ src/cpu/intel/model_68x/model_68x_init.c (revision 0)
[..]
+static struct cpu_device_id cpu_table[] = {
Do add 680 here too. In fact, if you add 680 all the others can be omitted.
- { X86_VENDOR_INTEL, 0x0681 },
- { X86_VENDOR_INTEL, 0x0683 },
- { X86_VENDOR_INTEL, 0x0686 },
- { X86_VENDOR_INTEL, 0x068a },
- { 0, 0 },
+};
+static const struct cpu_driver driver __cpu_driver = {
- .ops = &cpu_dev_ops,
- .id_table = cpu_table,
+};
On 06/20/2010 07:46 AM, Stefan Reinauer wrote:
On 6/20/10 10:04 AM, Joseph Smith wrote:
Hello, This patch adds a new socket for FCPGA370 and PGA370 CPU's. This new socket (called socket_FC_PGA370) will make the CAR transition alot easier. When done transitioning all the boards and cpu's the old socket_PGA370 (kind of misleading for the FC's) can be deleted as well as model_6xx. I will be testing a bunch of 370 cpu's this week so hopefully the model_6xx will be no longer needed. This patch also includes first CAR support for model_68x FCPGA CPU's.
Build and boot tested.
Signed-off by: Joseph Smith joe@settoplinux.org
with two caveats:
Acked-by: Stefan Reinauer stepan@coresystems.de
Index: src/cpu/intel/Kconfig
--- src/cpu/intel/Kconfig (revision 5634) +++ src/cpu/intel/Kconfig (working copy)
@@ -17,6 +18,7 @@ source src/cpu/intel/bga956/Kconfig source src/cpu/intel/slot_2/Kconfig source src/cpu/intel/slot_1/Kconfig +source src/cpu/intel/socket_FC_PGA370/Kconfig
FCPGA
I wanted to keep them separated because Socket 370 supports PGA370 and FCPGA370 processors, this way they are both covered.
Index: src/cpu/intel/Makefile.inc
--- src/cpu/intel/Makefile.inc (revision 5634) +++ src/cpu/intel/Makefile.inc (working copy) @@ -6,6 +6,7 @@ subdirs-$(CONFIG_CPU_INTEL_SOCKET_441) += socket_441 subdirs-$(CONFIG_CPU_INTEL_SOCKET_BGA956) += bga956 subdirs-$(CONFIG_CPU_INTEL_EP80579) += ep80579 +subdirs-$(CONFIG_CPU_INTEL_SOCKET_FC_PGA370) += socket_FC_PGA370
FCPGA
Index: src/cpu/intel/socket_FC_PGA370/Kconfig
--- src/cpu/intel/socket_FC_PGA370/Kconfig (revision 0) +++ src/cpu/intel/socket_FC_PGA370/Kconfig (revision 0)
+config CPU_INTEL_SOCKET_FC_PGA370
FCPGA
Index: src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c
--- src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c (revision 0) +++ src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c (revision 0) @@ -0,0 +1,26 @@
+#include<device/device.h> +#include "chip.h"
+struct chip_operations cpu_intel_socket_FC_PGA370_ops = {
FCPGA
- CHIP_NAME("(FC)PGA370 CPU")
+}; Index: src/cpu/intel/socket_FC_PGA370/Makefile.inc =================================================================== --- src/cpu/intel/socket_FC_PGA370/Makefile.inc (revision 0) +++ src/cpu/intel/socket_FC_PGA370/Makefile.inc (revision 0) @@ -0,0 +1,30 @@ +## +## This file is part of the coreboot project. +## +## Copyright (C) 2010 Joseph Smithjoe@settoplinux.org +## +## 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 +##
+obj-y += socket_FC_PGA370.o
FCPGA
+extern struct chip_operations cpu_intel_socket_FC_PGA370_ops;
+struct cpu_intel_socket_FC_PGA370_config { +};
This should be FCPGA370 or mFCPGA370
No, "m" means mobile chip. Socket 370 is not a mobile chip.
Index: src/cpu/intel/model_68x/model_68x_init.c
--- src/cpu/intel/model_68x/model_68x_init.c (revision 0) +++ src/cpu/intel/model_68x/model_68x_init.c (revision 0)
[..]
+static struct cpu_device_id cpu_table[] = {
Do add 680 here too. In fact, if you add 680 all the others can be omitted.
ok, why? 680 will cover everything?
- { X86_VENDOR_INTEL, 0x0681 },
- { X86_VENDOR_INTEL, 0x0683 },
- { X86_VENDOR_INTEL, 0x0686 },
- { X86_VENDOR_INTEL, 0x068a },
- { 0, 0 },
+};
+static const struct cpu_driver driver __cpu_driver = {
- .ops =&cpu_dev_ops,
- .id_table = cpu_table,
+};
On 20.06.2010, at 14:44, Joseph Smith joe@settoplinux.org wrote:
On 06/20/2010 07:46 AM, Stefan Reinauer wrote:
On 6/20/10 10:04 AM, Joseph Smith wrote:
Hello, This patch adds a new socket for FCPGA370 and PGA370 CPU's. This new socket (called socket_FC_PGA370) will make the CAR transition alot easier. When done transitioning all the boards and cpu's the old socket_PGA370 (kind of misleading for the FC's) can be deleted as well as model_6xx. I will be testing a bunch of 370 cpu's this week so hopefully the model_6xx will be no longer needed. This patch also includes first CAR support for model_68x FCPGA CPU's.
Build and boot tested.
Signed-off by: Joseph Smith joe@settoplinux.org
with two caveats:
Acked-by: Stefan Reinauer stepan@coresystems.de
Index: src/cpu/intel/Kconfig
--- src/cpu/intel/Kconfig (revision 5634) +++ src/cpu/intel/Kconfig (working copy)
@@ -17,6 +18,7 @@ source src/cpu/intel/bga956/Kconfig source src/cpu/intel/slot_2/Kconfig source src/cpu/intel/slot_1/Kconfig +source src/cpu/intel/socket_FC_PGA370/Kconfig
FCPGA
I wanted to keep them separated because Socket 370 supports PGA370 and FCPGA370 processors, this way they are both covered.
Hm ok
Index: src/cpu/intel/Makefile.inc
--- src/cpu/intel/Makefile.inc (revision 5634) +++ src/cpu/intel/Makefile.inc (working copy) @@ -6,6 +6,7 @@ subdirs-$(CONFIG_CPU_INTEL_SOCKET_441) += socket_441 subdirs-$(CONFIG_CPU_INTEL_SOCKET_BGA956) += bga956 subdirs-$(CONFIG_CPU_INTEL_EP80579) += ep80579 +subdirs-$(CONFIG_CPU_INTEL_SOCKET_FC_PGA370) += socket_FC_PGA370
FCPGA
Index: src/cpu/intel/socket_FC_PGA370/Kconfig
--- src/cpu/intel/socket_FC_PGA370/Kconfig (revision 0) +++ src/cpu/intel/socket_FC_PGA370/Kconfig (revision 0)
+config CPU_INTEL_SOCKET_FC_PGA370
FCPGA
Index: src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c
--- src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c (revision 0) +++ src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c (revision 0) @@ -0,0 +1,26 @@
+#include<device/device.h> +#include "chip.h"
+struct chip_operations cpu_intel_socket_FC_PGA370_ops = {
FCPGA
- CHIP_NAME("(FC)PGA370 CPU")
+}; Index: src/cpu/intel/socket_FC_PGA370/Makefile.inc =================================================================== --- src/cpu/intel/socket_FC_PGA370/Makefile.inc (revision 0) +++ src/cpu/intel/socket_FC_PGA370/Makefile.inc (revision 0) @@ -0,0 +1,30 @@ +## +## This file is part of the coreboot project. +## +## Copyright (C) 2010 Joseph Smithjoe@settoplinux.org +## +## 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 +##
+obj-y += socket_FC_PGA370.o
FCPGA
+extern struct chip_operations cpu_intel_socket_FC_PGA370_ops;
+struct cpu_intel_socket_FC_PGA370_config { +};
This should be FCPGA370 or mFCPGA370
No, "m" means mobile chip. Socket 370 is not a mobile chip.
Afaik the m in mfcpga means micro
Index: src/cpu/intel/model_68x/model_68x_init.c
--- src/cpu/intel/model_68x/model_68x_init.c (revision 0) +++ src/cpu/intel/model_68x/model_68x_init.c (revision 0)
[..]
+static struct cpu_device_id cpu_table[] = {
Do add 680 here too. In fact, if you add 680 all the others can be omitted.
ok, why? 680 will cover everything?
Yes. It will mask the ID with fff0
- { X86_VENDOR_INTEL, 0x0681 },
- { X86_VENDOR_INTEL, 0x0683 },
- { X86_VENDOR_INTEL, 0x0686 },
- { X86_VENDOR_INTEL, 0x068a },
- { 0, 0 },
+};
+static const struct cpu_driver driver __cpu_driver = {
- .ops =&cpu_dev_ops,
- .id_table = cpu_table,
+};
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
This should be FCPGA370 or mFCPGA370
No, "m" means mobile chip. Socket 370 is not a mobile chip.
Afaik the m in mfcpga means micro
Ah yes sorry. No the Socket 370 is still not a micro or mobile chip.
Index: src/cpu/intel/model_68x/model_68x_init.c
--- src/cpu/intel/model_68x/model_68x_init.c (revision 0) +++ src/cpu/intel/model_68x/model_68x_init.c (revision 0)
[..]
+static struct cpu_device_id cpu_table[] = {
Do add 680 here too. In fact, if you add 680 all the others can be omitted.
ok, why? 680 will cover everything?
Yes. It will mask the ID with fff0
ok
- { X86_VENDOR_INTEL, 0x0681 },
- { X86_VENDOR_INTEL, 0x0683 },
- { X86_VENDOR_INTEL, 0x0686 },
- { X86_VENDOR_INTEL, 0x068a },
- { 0, 0 },
+};
+static const struct cpu_driver driver __cpu_driver = {
- .ops =&cpu_dev_ops,
- .id_table = cpu_table,
+};
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
Index: src/cpu/intel/model_68x/model_68x_init.c
--- src/cpu/intel/model_68x/model_68x_init.c (revision 0) +++ src/cpu/intel/model_68x/model_68x_init.c (revision 0)
[..]
+static struct cpu_device_id cpu_table[] = {
Do add 680 here too. In fact, if you add 680 all the others can be omitted.
ok, why? 680 will cover everything?
Yes. It will mask the ID with fff0
ok
- { X86_VENDOR_INTEL, 0x0681 },
- { X86_VENDOR_INTEL, 0x0683 },
- { X86_VENDOR_INTEL, 0x0686 },
- { X86_VENDOR_INTEL, 0x068a },
- { 0, 0 },
+};
+static const struct cpu_driver driver __cpu_driver = {
- .ops =&cpu_dev_ops,
- .id_table = cpu_table,
+};
Hmm. If I add 0x0680 and delete the others I get:
Initializing CPU #0 CPU: vendor Intel device 68a CPU: family 06, model 08, stepping 0a Using generic cpu ops (good) Enabling cache microcode_info: sig = 0x0000068a pf=0x00000010 rev = 0x00000000 microcode updated to revision: 00000001 from revision 00000000
---- Before I did not get the "Using generic cpu ops (good)" is that ok?
Joseph Smith wrote:
Hmm. If I add 0x0680 and delete the others I get:
CPU: vendor Intel device 68a CPU: family 06, model 08, stepping 0a Using generic cpu ops (good) Enabling cache
Before I did not get the "Using generic cpu ops (good)" is that ok?
The message seems to suggest so..
//Peter
On Mon, 21 Jun 2010 09:57:36 +0200, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
Hmm. If I add 0x0680 and delete the others I get:
CPU: vendor Intel device 68a CPU: family 06, model 08, stepping 0a Using generic cpu ops (good) Enabling cache
Before I did not get the "Using generic cpu ops (good)" is that ok?
The message seems to suggest so..
Hmm, to me it suggests it is using a _fail_safe_ because it can't find the correct (0x068a) device. It works fine eithor way but I don't think the _fail_safe_ is supposed to be the "normal" method.
Joseph Smith wrote:
Before I did not get the "Using generic cpu ops (good)" is that ok?
The message seems to suggest so..
Hmm, to me it suggests it is using a _fail_safe_ because it can't find the correct (0x068a) device. It works fine eithor way but I don't think the _fail_safe_ is supposed to be the "normal" method.
It says "generic" and "good" - not even "default" nor anything else that might suggest a failure to me. :)
As could be expected from the code, that message is printed after the CPU is known when disregarding stepping.
$ grep -rn 'Using generic cpu ops' .|grep -v '/.svn/' ./arch/i386/lib/cpu.c:253: printk(BIOS_DEBUG, "Using generic cpu ops (good)\n");
//Peter
On Mon, 21 Jun 2010 11:48:33 +0200, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
Before I did not get the "Using generic cpu ops (good)" is that ok?
The message seems to suggest so..
Hmm, to me it suggests it is using a _fail_safe_ because it can't find the correct (0x068a) device. It works fine eithor way but I don't think the _fail_safe_ is supposed to be the "normal" method.
It says "generic" and "good" - not even "default" nor anything else that might suggest a failure to me. :)
As could be expected from the code, that message is printed after the CPU is known when disregarding stepping.
$ grep -rn 'Using generic cpu ops' .|grep -v '/.svn/' ./arch/i386/lib/cpu.c:253: printk(BIOS_DEBUG, "Using generic cpu ops (good)\n");
Ok, now lets look at the whole function:
/* Lookup the cpu's operations */ set_cpu_ops(cpu);
if(!cpu->ops) { /* mask out the stepping and try again */ cpu->device -= c.x86_mask; set_cpu_ops(cpu); cpu->device += c.x86_mask; if(!cpu->ops) die("Unknown cpu"); printk(BIOS_DEBUG, "Using generic cpu ops (good)\n"); }
Hmm, to me this is a _fail_safe_ or _fall_back_. cpu->ops fails because it is not able to find cpu->device so it runs this function to "try again".
On 6/21/10 12:15 PM, Joseph Smith wrote:
On Mon, 21 Jun 2010 11:48:33 +0200, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
Before I did not get the "Using generic cpu ops (good)" is that ok?
The message seems to suggest so..
Hmm, to me it suggests it is using a _fail_safe_ because it can't find the correct (0x068a) device. It works fine eithor way but I don't think the _fail_safe_ is supposed to be the "normal" method.
It says "generic" and "good" - not even "default" nor anything else that might suggest a failure to me. :)
As could be expected from the code, that message is printed after the CPU is known when disregarding stepping.
$ grep -rn 'Using generic cpu ops' .|grep -v '/.svn/' ./arch/i386/lib/cpu.c:253: printk(BIOS_DEBUG, "Using generic cpu ops (good)\n");
Ok, now lets look at the whole function:
/* Lookup the cpu's operations */ set_cpu_ops(cpu); if(!cpu->ops) { /* mask out the stepping and try again */ cpu->device -= c.x86_mask; set_cpu_ops(cpu); cpu->device += c.x86_mask; if(!cpu->ops) die("Unknown cpu"); printk(BIOS_DEBUG, "Using generic cpu ops (good)\n"); }
Hmm, to me this is a _fail_safe_ or _fall_back_. cpu->ops fails because it is not able to find cpu->device so it runs this function to "try again"
Yes, it tries without the mask, i.e for 681 - 68f it tries 680. Then, if that does not match, it dies with "Unknown CPU". There is no failsafe nor fallback involved. What makes you think there is? It just means adding 1 entry to the table instead of 16.
Stefan.
On Mon, 21 Jun 2010 12:35:13 +0200, Stefan Reinauer stepan@coresystems.de wrote:
On 6/21/10 12:15 PM, Joseph Smith wrote:
On Mon, 21 Jun 2010 11:48:33 +0200, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
Before I did not get the "Using generic cpu ops (good)" is that ok?
The message seems to suggest so..
Hmm, to me it suggests it is using a _fail_safe_ because it can't find the correct (0x068a) device. It works fine eithor way but I don't think the _fail_safe_ is supposed to be the "normal" method.
It says "generic" and "good" - not even "default" nor anything else that might suggest a failure to me. :)
As could be expected from the code, that message is printed after the CPU is known when disregarding stepping.
$ grep -rn 'Using generic cpu ops' .|grep -v '/.svn/' ./arch/i386/lib/cpu.c:253: printk(BIOS_DEBUG, "Using
generic
cpu ops (good)\n");
Ok, now lets look at the whole function:
/* Lookup the cpu's operations */ set_cpu_ops(cpu); if(!cpu->ops) { /* mask out the stepping and try again */ cpu->device -= c.x86_mask; set_cpu_ops(cpu); cpu->device += c.x86_mask; if(!cpu->ops) die("Unknown cpu"); printk(BIOS_DEBUG, "Using generic cpu ops (good)\n"); }
Hmm, to me this is a _fail_safe_ or _fall_back_. cpu->ops fails because it is not able to find cpu->device so it runs
this
function to "try again"
Yes, it tries without the mask, i.e for 681 - 68f it tries 680. Then, if that does not match, it dies with "Unknown CPU". There is no failsafe nor fallback involved. What makes you think there is? It just means adding 1 entry to the table instead of 16.
Ok, if it is not a _fail_safe_ or _fall_back_ why don't we just always do this as a default? Why print out a "generic" message?
Yes, it tries without the mask, i.e for 681 - 68f it tries 680. Then, if that does not match, it dies with "Unknown CPU". There is no failsafe nor fallback involved. What makes you think there is? It just means adding 1 entry to the table instead of 16.
Ok, if it is not a _fail_safe_ or _fall_back_ why don't we just always do this as a default?
My understanding is that barring errata, the stepping shouldn't matter. Just in case it does, we check it. If there isn't a specific entry for the stepping, we go to the "normal" case of using the ops without the stepping information.
Why print out a "generic" message?
I think it just means "not-stepping-specific"
Thanks, Myles
On 06/20/2010 08:52 AM, Stefan Reinauer wrote:
On 20.06.2010, at 14:44, Joseph Smith joe@settoplinux.org wrote:
On 06/20/2010 07:46 AM, Stefan Reinauer wrote:
On 6/20/10 10:04 AM, Joseph Smith wrote:
Hello, This patch adds a new socket for FCPGA370 and PGA370 CPU's. This new socket (called socket_FC_PGA370) will make the CAR transition alot easier. When done transitioning all the boards and cpu's the old socket_PGA370 (kind of misleading for the FC's) can be deleted as well as model_6xx. I will be testing a bunch of 370 cpu's this week so hopefully the model_6xx will be no longer needed. This patch also includes first CAR support for model_68x FCPGA CPU's.
Build and boot tested.
Signed-off by: Joseph Smith joe@settoplinux.org
with two caveats:
Acked-by: Stefan Reinauer stepan@coresystems.de
Index: src/cpu/intel/Kconfig
--- src/cpu/intel/Kconfig (revision 5634) +++ src/cpu/intel/Kconfig (working copy)
@@ -17,6 +18,7 @@ source src/cpu/intel/bga956/Kconfig source src/cpu/intel/slot_2/Kconfig source src/cpu/intel/slot_1/Kconfig +source src/cpu/intel/socket_FC_PGA370/Kconfig
FCPGA
I wanted to keep them separated because Socket 370 supports PGA370 and FCPGA370 processors, this way they are both covered.
Hm ok
Index: src/cpu/intel/Makefile.inc
--- src/cpu/intel/Makefile.inc (revision 5634) +++ src/cpu/intel/Makefile.inc (working copy) @@ -6,6 +6,7 @@ subdirs-$(CONFIG_CPU_INTEL_SOCKET_441) += socket_441 subdirs-$(CONFIG_CPU_INTEL_SOCKET_BGA956) += bga956 subdirs-$(CONFIG_CPU_INTEL_EP80579) += ep80579 +subdirs-$(CONFIG_CPU_INTEL_SOCKET_FC_PGA370) += socket_FC_PGA370
FCPGA
Index: src/cpu/intel/socket_FC_PGA370/Kconfig
--- src/cpu/intel/socket_FC_PGA370/Kconfig (revision 0) +++ src/cpu/intel/socket_FC_PGA370/Kconfig (revision 0)
+config CPU_INTEL_SOCKET_FC_PGA370
FCPGA
Index: src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c
--- src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c (revision 0) +++ src/cpu/intel/socket_FC_PGA370/socket_FC_PGA370.c (revision 0) @@ -0,0 +1,26 @@
+#include<device/device.h> +#include "chip.h"
+struct chip_operations cpu_intel_socket_FC_PGA370_ops = {
FCPGA
- CHIP_NAME("(FC)PGA370 CPU")
+}; Index: src/cpu/intel/socket_FC_PGA370/Makefile.inc =================================================================== --- src/cpu/intel/socket_FC_PGA370/Makefile.inc (revision 0) +++ src/cpu/intel/socket_FC_PGA370/Makefile.inc (revision 0) @@ -0,0 +1,30 @@ +## +## This file is part of the coreboot project. +## +## Copyright (C) 2010 Joseph Smithjoe@settoplinux.org +## +## 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 +##
+obj-y += socket_FC_PGA370.o
FCPGA
+extern struct chip_operations cpu_intel_socket_FC_PGA370_ops;
+struct cpu_intel_socket_FC_PGA370_config { +};
This should be FCPGA370 or mFCPGA370
No, "m" means mobile chip. Socket 370 is not a mobile chip.
Afaik the m in mfcpga means micro
Index: src/cpu/intel/model_68x/model_68x_init.c
--- src/cpu/intel/model_68x/model_68x_init.c (revision 0) +++ src/cpu/intel/model_68x/model_68x_init.c (revision 0)
[..]
+static struct cpu_device_id cpu_table[] = {
Do add 680 here too. In fact, if you add 680 all the others can be omitted.
ok, why? 680 will cover everything?
Yes. It will mask the ID with fff0
- { X86_VENDOR_INTEL, 0x0681 },
- { X86_VENDOR_INTEL, 0x0683 },
- { X86_VENDOR_INTEL, 0x0686 },
- { X86_VENDOR_INTEL, 0x068a },
- { 0, 0 },
+};
+static const struct cpu_driver driver __cpu_driver = {
- .ops =&cpu_dev_ops,
- .id_table = cpu_table,
+};
Done, thanks r5636
This should be FCPGA370 or mFCPGA370
No, "m" means mobile chip. Socket 370 is not a mobile chip.
Afaik the m in mfcpga means micro
FYI, after a little reading it looks like the Tualatin was actually the first unofficial micro cpu. The first official micro cpu's started with the mobile PIII and Celerons. That is probably why I got the two confused :-)