Patchwork final set of changes to allow rumba to build with Kconfig

login
register
about
Submitter ron minnich
Date 2009-08-28 14:51:42
Message ID <13426df10908280751w6fc8ebbav3aad578c4b384a0e@mail.gmail.com>
Download mbox | patch
Permalink /patch/225/
State Accepted
Headers show

Comments

ron minnich - 2009-08-28 14:51:42

Myles Watson - 2009-08-28 16:52:04
Acked-by: Myles Watson <mylesgw@gmail.com>
> Remaining problem: in src/arch/i386/Kconfig, I define AP_IN_SIPI_WAIT. But
> in .config, I get:
> #CONFIG_AP_IN_SIPI_WAIT is not set
> Clearly I have more to learn about Kconfig. I want it so that if the
> mainboard Kconfig does not select it, it comes up as 'n'.
I think it's working like you want it to.  If it was not defined it
wouldn't appear in .config.

$ grep CONFIG_AP .config
# CONFIG_AP_IN_SIPI_WAIT is not set

$ grep -Ir SIPI build/
build/coreboot.map:00000000 A CONFIG_AP_IN_SIPI_WAIT
build/ldoptions:CONFIG_AP_IN_SIPI_WAIT = 0;
build/auto.conf:CONFIG_AP_IN_SIPI_WAIT=n
build/config.h:#define CONFIG_AP_IN_SIPI_WAIT 0
build/coreboot_ram.map:00000000 A CONFIG_AP_IN_SIPI_WAIT

Thanks,
Myles
Uwe Hermann - 2009-08-28 17:09:50
On Fri, Aug 28, 2009 at 07:51:42AM -0700, ron minnich wrote:
> Index: src/cpu/x86/tsc/Makefile.inc
> ===================================================================
> --- src/cpu/x86/tsc/Makefile.inc	(revision 4607)
> +++ src/cpu/x86/tsc/Makefile.inc	(working copy)
> @@ -1,7 +1,2 @@
>  obj-y += delay_tsc.o
>  
> -# default CONFIG_TSC_X86RDTSC_CALIBRATE_WITH_TIMER2=0
> -# if CONFIG_UDELAY_TSC
> -# 	default CONFIG_HAVE_INIT_TIMER=1
> -# 	object delay_tsc.o
> -# end

This looks strange. You use "select UDELAY_TSC" below, but that is never
defined anywhere, and also not used here?


> Index: src/mainboard/amd/rumba/Kconfig
> ===================================================================
> --- src/mainboard/amd/rumba/Kconfig	(revision 0)
> +++ src/mainboard/amd/rumba/Kconfig	(revision 0)
> @@ -0,0 +1,62 @@
[...]
> +config BOARD_AMD_RUMBA
> +	bool "Rumba"
> +	select ARCH_X86
> +	select CPU_AMD_GX2
> +	select NORTHBRIDGE_AMD_GX2
> +	select SOUTHBRIDGE_AMD_CS5536
> +	select UDELAY_TSC
> +	select HAVE_PIRQ_TABLE
> +	help
> +	  AMD Rumba mainboard.
[...]
> +config TSC_X86RDTSC_CALIBRATE_WITH_TIMER2
> +	int
> +	default 0
> +	depends on BOARD_AMD_RUMBA

Same as UDELAY_TSC, never defined?


> Index: src/mainboard/amd/rumba/Makefile.inc
> ===================================================================
> --- src/mainboard/amd/rumba/Makefile.inc	(revision 0)
> +++ src/mainboard/amd/rumba/Makefile.inc	(revision 0)
> @@ -0,0 +1 @@
> +include $(src)/mainboard/Makefile.romccboard.inc

We'll have to check if this works. From a quick glance
the Rumba does not have the mmx related lines (which _are_ in
Makefile.romccboard.inc, though):

crt0-y += ../../../../src/cpu/x86/fpu/enable_fpu.inc
crt0-y += ../../../../src/cpu/x86/mmx/enable_mmx.inc
crt0-y += auto.inc
crt0-y += ../../../../src/cpu/x86/mmx/disable_mmx.inc

Rumba only has:

mainboardinit cpu/x86/fpu/enable_fpu.inc
mainboardinit ./auto.inc

It's not a big deal to adapt Makefile.romccboard.inc to handle both
cases, but it would be good to know if those mmx lines are actually
needed in general (and on GX2 specifically).


Uwe.
ron minnich - 2009-08-29 02:53:02
On Fri, Aug 28, 2009 at 10:09 AM, Uwe Hermann<uwe@hermann-uwe.de> wrote:
> On Fri, Aug 28, 2009 at 07:51:42AM -0700, ron minnich wrote:
>> Index: src/cpu/x86/tsc/Makefile.inc
>> ===================================================================
>> --- src/cpu/x86/tsc/Makefile.inc      (revision 4607)
>> +++ src/cpu/x86/tsc/Makefile.inc      (working copy)
>> @@ -1,7 +1,2 @@
>>  obj-y += delay_tsc.o
>>
>> -# default CONFIG_TSC_X86RDTSC_CALIBRATE_WITH_TIMER2=0
>> -# if CONFIG_UDELAY_TSC
>> -#    default CONFIG_HAVE_INIT_TIMER=1
>> -#    object delay_tsc.o
>> -# end
>
> This looks strange. You use "select UDELAY_TSC" below, but that is never
> defined anywhere, and also not used here?

We should define this in either src/cpu/x86/Kconfig or src/cpu/x86/tsc/Kconfig.

I vote for src/cpu/x86/Kconfig because the src/cpu/x86 directory is
really way too fragmented already.
>
>
>> Index: src/mainboard/amd/rumba/Kconfig
>> ===================================================================
>> --- src/mainboard/amd/rumba/Kconfig   (revision 0)
>> +++ src/mainboard/amd/rumba/Kconfig   (revision 0)
>> @@ -0,0 +1,62 @@
> [...]
>> +config BOARD_AMD_RUMBA
>> +     bool "Rumba"
>> +     select ARCH_X86
>> +     select CPU_AMD_GX2
>> +     select NORTHBRIDGE_AMD_GX2
>> +     select SOUTHBRIDGE_AMD_CS5536
>> +     select UDELAY_TSC
>> +     select HAVE_PIRQ_TABLE
>> +     help
>> +       AMD Rumba mainboard.
> [...]
>> +config TSC_X86RDTSC_CALIBRATE_WITH_TIMER2
>> +     int
>> +     default 0
>> +     depends on BOARD_AMD_RUMBA
>
> Same as UDELAY_TSC, never defined?

Defined here, right?  But it really ought to be in the src/cpu/x86
tree somewhere.

>
>
>> Index: src/mainboard/amd/rumba/Makefile.inc
>> ===================================================================
>> --- src/mainboard/amd/rumba/Makefile.inc      (revision 0)
>> +++ src/mainboard/amd/rumba/Makefile.inc      (revision 0)
>> @@ -0,0 +1 @@
>> +include $(src)/mainboard/Makefile.romccboard.inc
>
> We'll have to check if this works. From a quick glance
> the Rumba does not have the mmx related lines (which _are_ in
> Makefile.romccboard.inc, though):

I speculate that rumba ought to just have its own?
>
> crt0-y += ../../../../src/cpu/x86/fpu/enable_fpu.inc
> crt0-y += ../../../../src/cpu/x86/mmx/enable_mmx.inc

Or we need to make these conditional includes. Your call, I think you
know better than I do.
> crt0-y += auto.inc
> crt0-y += ../../../../src/cpu/x86/mmx/disable_mmx.inc
>
> Rumba only has:
>
> mainboardinit cpu/x86/fpu/enable_fpu.inc
> mainboardinit ./auto.inc
>
> It's not a big deal to adapt Makefile.romccboard.inc to handle both
> cases, but it would be good to know if those mmx lines are actually
> needed in general (and on GX2 specifically).

I will hold off on committing until we decide these things, or I get
back to this and this patch has hung  ... it's already acked :-)

ron
ron minnich - 2009-08-29 02:59:54
I went ahead and fixed it, the questions were not that hard.
ron minnich - 2009-08-29 03:01:06
On Fri, Aug 28, 2009 at 7:59 PM, ron minnich<rminnich@gmail.com> wrote:
> I went ahead and fixed it, the questions were not that hard.
>

Except for the Makefile question.

Committed revision 4618.

ron
ron minnich - 2009-08-29 03:03:28
Rumba now builds. I can't say if it will work, but this is a big step.

ron
Stefan Reinauer - 2009-08-29 17:10:23
On 8/29/09 5:03 AM, ron minnich wrote:
> Rumba now builds. I can't say if it will work, but this is a big step.
>
>   

Do you get VSA from CBFS already?
ron minnich - 2009-08-29 17:44:20
On Sat, Aug 29, 2009 at 1:10 PM, Stefan Reinauer<stepan@coresystems.de> wrote:
> On 8/29/09 5:03 AM, ron minnich wrote:
>> Rumba now builds. I can't say if it will work, but this is a big step.
>>
>>
>
> Do you get VSA from CBFS already?

That's next. I was going to put it in / and call it VSA.

ron

Patch

This is the final set of changes to allow rumba to build. Rumba is not
tested. 

Remaining problem: in src/arch/i386/Kconfig, I define AP_IN_SIPI_WAIT. But
in .config, I get:
#CONFIG_AP_IN_SIPI_WAIT is not set
Clearly I have more to learn about Kconfig. I want it so that if the 
mainboard Kconfig does not select it, it comes up as 'n'. 

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>

Index: src/southbridge/amd/Kconfig
===================================================================
--- src/southbridge/amd/Kconfig	(revision 4607)
+++ src/southbridge/amd/Kconfig	(working copy)
@@ -1,10 +1,10 @@ 
 source src/southbridge/amd/amd8111/Kconfig
 source src/southbridge/amd/amd8131/Kconfig
+source src/southbridge/amd/cs5536/Kconfig
 #source src/southbridge/amd/amd8131-disable/Kconfig
 #source src/southbridge/amd/amd8132/Kconfig
 #source src/southbridge/amd/amd8151/Kconfig
 #source src/southbridge/amd/cs5530/Kconfig
 #source src/southbridge/amd/cs5535/Kconfig
-#source src/southbridge/amd/cs5536/Kconfig
 source src/southbridge/amd/rs690/Kconfig
 source src/southbridge/amd/sb600/Kconfig
Index: src/cpu/amd/Kconfig
===================================================================
--- src/cpu/amd/Kconfig	(revision 4607)
+++ src/cpu/amd/Kconfig	(working copy)
@@ -8,3 +8,4 @@ 
 source src/cpu/amd/socket_S1G1/Kconfig
 
 source src/cpu/amd/model_fxx/Kconfig
+source src/cpu/amd/model_gx2/Kconfig
Index: src/cpu/amd/Makefile.inc
===================================================================
--- src/cpu/amd/Makefile.inc	(revision 4607)
+++ src/cpu/amd/Makefile.inc	(working copy)
@@ -1,4 +1,5 @@ 
 subdirs-$(CONFIG_CPU_AMD_SOCKET_F) += socket_F
 subdirs-$(CONFIG_CPU_AMD_SOCKET_940) += socket_940
 subdirs-$(CONFIG_CPU_AMD_SOCKET_AM2) += socket_AM2
+subdirs-$(CONFIG_CPU_AMD_GX2) += model_gx2
 subdirs-$(CONFIG_CPU_AMD_SOCKET_S1G1) += socket_S1G1
Index: src/cpu/x86/tsc/Makefile.inc
===================================================================
--- src/cpu/x86/tsc/Makefile.inc	(revision 4607)
+++ src/cpu/x86/tsc/Makefile.inc	(working copy)
@@ -1,7 +1,2 @@ 
 obj-y += delay_tsc.o
 
-# default CONFIG_TSC_X86RDTSC_CALIBRATE_WITH_TIMER2=0
-# if CONFIG_UDELAY_TSC
-# 	default CONFIG_HAVE_INIT_TIMER=1
-# 	object delay_tsc.o
-# end
Index: src/mainboard/amd/Kconfig
===================================================================
--- src/mainboard/amd/Kconfig	(revision 4607)
+++ src/mainboard/amd/Kconfig	(working copy)
@@ -1 +1,9 @@ 
-source "src/mainboard/amd/serengeti_cheetah/Kconfig"
\ No newline at end of file
+choice
+	prompt "Mainboard model"
+	depends on VENDOR_AMD
+
+source "src/mainboard/amd/serengeti_cheetah/Kconfig"
+source "src/mainboard/amd/rumba/Kconfig"
+
+endchoice
+
Index: src/mainboard/amd/rumba/Kconfig
===================================================================
--- src/mainboard/amd/rumba/Kconfig	(revision 0)
+++ src/mainboard/amd/rumba/Kconfig	(revision 0)
@@ -0,0 +1,62 @@ 
+
+
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de>
+##
+## 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 BOARD_AMD_RUMBA
+	bool "Rumba"
+	select ARCH_X86
+	select CPU_AMD_GX2
+	select NORTHBRIDGE_AMD_GX2
+	select SOUTHBRIDGE_AMD_CS5536
+	select UDELAY_TSC
+	select HAVE_PIRQ_TABLE
+	help
+	  AMD Rumba mainboard.
+
+config MAINBOARD_DIR
+	string
+	default amd/rumba
+	depends on BOARD_AMD_RUMBA
+
+config MAINBOARD_PART_NUMBER
+	string
+	default "Rumba"
+	depends on BOARD_AMD_RUMBA
+
+config HAVE_OPTION_TABLE
+	bool
+	default n
+	depends on BOARD_AMD_RUMBA
+
+config IRQ_SLOT_COUNT
+	int
+	default 2
+	depends on BOARD_AMD_RUMBA
+
+config USE_INIT
+	int
+	default 0
+	depends on BOARD_AMD_RUMBA
+
+
+config TSC_X86RDTSC_CALIBRATE_WITH_TIMER2
+	int
+	default 0
+	depends on BOARD_AMD_RUMBA
Index: src/mainboard/amd/rumba/Makefile.inc
===================================================================
--- src/mainboard/amd/rumba/Makefile.inc	(revision 0)
+++ src/mainboard/amd/rumba/Makefile.inc	(revision 0)
@@ -0,0 +1 @@ 
+include $(src)/mainboard/Makefile.romccboard.inc
Index: src/mainboard/amd/serengeti_cheetah/Kconfig
===================================================================
--- src/mainboard/amd/serengeti_cheetah/Kconfig	(revision 4607)
+++ src/mainboard/amd/serengeti_cheetah/Kconfig	(working copy)
@@ -1,7 +1,3 @@ 
-choice
-	prompt "Mainboard model"
-	depends on VENDOR_AMD
-
 config BOARD_AMD_SERENGETI_CHEETAH
 	bool "Serengeti Cheetah"
 	select ARCH_X86
@@ -17,7 +13,6 @@ 
 	select USE_DCACHE_RAM
 	help
 	 AMD Serengeti Cheetah mainboard.
-endchoice
 
 config MAINBOARD_DIR
 	string
@@ -74,10 +69,6 @@ 
 	default "Serengeti-Cheetah"
 	depends on BOARD_AMD_SERENGETI_CHEETAH
 
-config PCI_64BIT_PREF_MEM
-	int
-	default 0
-	depends on BOARD_AMD_SERENGETI_CHEETAH
 
 config USE_FAILOVER_IMAGE
 	int
Index: src/northbridge/amd/Kconfig
===================================================================
--- src/northbridge/amd/Kconfig	(revision 4607)
+++ src/northbridge/amd/Kconfig	(working copy)
@@ -1,7 +1,8 @@ 
+source src/northbridge/amd/amdk8/Kconfig
+source src/northbridge/amd/gx2/Kconfig
+
 #source src/northbridge/amd/amdfam10/Kconfig
 #source src/northbridge/amd/amdht/Kconfig
-source src/northbridge/amd/amdk8/Kconfig
 #source src/northbridge/amd/amdmct/Kconfig
 #source src/northbridge/amd/gx1/Kconfig
-#source src/northbridge/amd/gx2/Kconfig
 #source src/northbridge/amd/lx/Kconfig
Index: src/arch/i386/Kconfig
===================================================================
--- src/arch/i386/Kconfig	(revision 4607)
+++ src/arch/i386/Kconfig	(working copy)
@@ -4,6 +4,14 @@ 
 	  This option is used to set the architecture of a mainboard.
 	  It is usually set in mainboard/*/Kconfig.
 
+config AP_IN_SIPI_WAIT
+	bool
+	default n
+	depends on ARCH_X86
+	help
+	  This is an SMP option. It relates to starting up APs. 
+	  It is usually set in mainboard/*/Kconfig.
+
 config ARCH
 	string
 	default i386