Re: [coreboot] Fam10 FIDVID in SVI : disabling microcode update

2011-02-18 Thread Ivaylo Valkov
Xavi Drudis Ferran writes:

 Hello. 

Hello.

 Should I send a patch making a Kconfig option to not upgrade microcode for 
 fam10? Is there any interest in that ? 

I have interest in that. I am working on ECS A740GM-M port and have
asked that question in my mail, but for different reasons. [1] My
patches are not in the repository yet. Still haven't split them. :(
Right now I use a workaround to prevent loading of microcode. I've made
a zero-filled microcode patch file that is kept in the board
directory. The Kconfig option for the microcode file points to that
file. The effect of this is same revision (0) in patch and CPU and the
microcode is not loaded. This worked on Sempron 140 and r6725. Haven't
tested it with recent changes and revisions.

[1] http://www.coreboot.org/pipermail/coreboot/2011-January/063067.html

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


[coreboot] [PATCH] add SPD address mapping to i945

2011-02-18 Thread Sven Schnelle

The current code works only with dual channel if Channel 0 uses SPD address
0x50/0x51, while the second channel has to use 0x52/0x53.

For hardware that uses other addresses (like the ThinkPad X60) this means we
get only one module running instead of both.

This patch adds a second parameter to sdram_initialize, which is an array with
2 * DIMM_SOCKETS members. It should contain the SPD addresses for every single
DIMM socket. If NULL is given as the second parameter, the code uses the old
addressing scheme.
---
 src/mainboard/getac/p470/romstage.c   |2 +-
 src/mainboard/ibase/mb899/romstage.c  |2 +-
 src/mainboard/intel/d945gclf/romstage.c   |2 +-
 src/mainboard/kontron/986lcd-m/romstage.c |2 +-
 src/mainboard/lenovo/x60/romstage.c   |3 +-
 src/mainboard/roda/rk886ex/romstage.c |2 +-
 src/northbridge/intel/i945/raminit.c  |   75 +++--
 src/northbridge/intel/i945/raminit.h  |3 +-
 8 files changed, 47 insertions(+), 44 deletions(-)

diff --git a/src/mainboard/getac/p470/romstage.c b/src/mainboard/getac/p470/romstage.c
index 270a7bd..83cd91e 100644
--- a/src/mainboard/getac/p470/romstage.c
+++ b/src/mainboard/getac/p470/romstage.c
@@ -332,7 +332,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif
 
-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);
 
 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/ibase/mb899/romstage.c b/src/mainboard/ibase/mb899/romstage.c
index d3a0299..e248a27 100644
--- a/src/mainboard/ibase/mb899/romstage.c
+++ b/src/mainboard/ibase/mb899/romstage.c
@@ -283,7 +283,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif
 
-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);
 
 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/intel/d945gclf/romstage.c b/src/mainboard/intel/d945gclf/romstage.c
index f705673..6dfc144 100644
--- a/src/mainboard/intel/d945gclf/romstage.c
+++ b/src/mainboard/intel/d945gclf/romstage.c
@@ -243,7 +243,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif
 
-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);
 
 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/kontron/986lcd-m/romstage.c b/src/mainboard/kontron/986lcd-m/romstage.c
index 925c93e..2cf73e6 100644
--- a/src/mainboard/kontron/986lcd-m/romstage.c
+++ b/src/mainboard/kontron/986lcd-m/romstage.c
@@ -382,7 +382,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif
 
-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);
 
 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/lenovo/x60/romstage.c b/src/mainboard/lenovo/x60/romstage.c
index 5578324..e2b4a40 100644
--- a/src/mainboard/lenovo/x60/romstage.c
+++ b/src/mainboard/lenovo/x60/romstage.c
@@ -294,6 +294,7 @@ void main(unsigned long bist)
 {
 	u32 reg32;
 	int boot_mode = 0;
+	const u8 spd_addrmap[2 * DIMM_SOCKETS] = { 0x50, 0x52, 0x51, 0x53 };
 
 	if (bist == 0)
 		enable_lapic();
@@ -357,7 +358,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif
 
-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, spd_addrmap);
 
 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/roda/rk886ex/romstage.c b/src/mainboard/roda/rk886ex/romstage.c
index fce53da..0797699 100644
--- a/src/mainboard/roda/rk886ex/romstage.c
+++ b/src/mainboard/roda/rk886ex/romstage.c
@@ -320,7 +320,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif
 
-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);
 
 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/northbridge/intel/i945/raminit.c b/src/northbridge/intel/i945/raminit.c
index 1c93435..0970e87 100644
--- a/src/northbridge/intel/i945/raminit.c
+++ b/src/northbridge/intel/i945/raminit.c
@@ -54,9 +54,12 @@ struct cbmem_entry *get_cbmem_toc(void)
 #define RAM_EMRS_2			(0x1  21)
 #define RAM_EMRS_3			(0x2  21)
 
-static inline int spd_read_byte(unsigned device, unsigned address)
+static inline int spd_read_byte(struct sys_info *sys_info, unsigned device, unsigned address)
 {
-	return smbus_read_byte(device, address);
+	if (sys_info-spd_addresses)
+		return smbus_read_byte(sys_info-spd_addresses[device], address);
+	else
+		return smbus_read_byte(DIMM0 + device, address);
 }
 
 static __attribute__((noinline)) void do_ram_command(u32 command)
@@ -367,7 +370,7 @@ static void sdram_get_dram_configuration(struct sys_info *sysinfo)
 	 */
 
 	for (i=0; i(2 * DIMM_SOCKETS); i++) {
-		u8 reg8, device = DIMM0 + i;
+		u8 reg8;
 
 		/* Initialize the socket information with a sane value */
 		sysinfo-dimm[i] = SYSINFO_DIMM_NOT_POPULATED;
@@ -382,24 +385,24 @@ 

Re: [coreboot] [PATCH] Move cmos.default handling to bootblock

2011-02-18 Thread Peter Stuge
Georgi, Patrick wrote:
  Is there a Kconfig option for enabling the NVRAM write? I would like
  that very much. I'd also like it to be off by default.
 
 HAVE_CMOS_DEFAULT. Without this, cmos.default isn't put into CBFS
 (by default), and without that file, no write happens.

But it's a mainboard knob, not a user knob, right?


  Maybe we should consider some coreboot profiles for Kconfig, that
  would autoselect options, which could be manually overridden by
  experts?
 
 profiles? We have those: mainboard defaults.

Call them profiles or maybe personalities. Yes there is one set of
options from the developer creating the original port, but I'm
thinking more of bird's view variations;

* Zero impact coreboot (never writes to NVRAM)
* Normal mode (will fix NVRAM with defaults)
* Strict mode (requires NVRAM to always be correct, or will fail to
  boot. maybe also other extra checks in the code)

There could be other personalities. The point is that they are very
high level (ie. easy for every user to decide on, because they fit or
do not fit) and might control more than one Kconfig option.


//Peter


pgp2EkcPegtlU.pgp
Description: PGP signature
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] [PATCH] add SPD address mapping to i945

2011-02-18 Thread Georgi, Patrick
Am Freitag, den 18.02.2011, 12:09 +0100 schrieb Sven Schnelle:
 The current code works only with dual channel if Channel 0 uses SPD address
 0x50/0x51, while the second channel has to use 0x52/0x53.
 
 For hardware that uses other addresses (like the ThinkPad X60) this means we
 get only one module running instead of both.
 
 This patch adds a second parameter to sdram_initialize, which is an array with
 2 * DIMM_SOCKETS members. It should contain the SPD addresses for every single
 DIMM socket. If NULL is given as the second parameter, the code uses the old
 addressing scheme.
Awww...

Please keep spd_read_byte alone, we have a somewhat unified API there
across the chipsets (and I hope to clean it up even more at some point,
see http://www.coreboot.org/Infrastructure_Projects#Refactor_SMBUS_code)

Maybe you could create a function like

int get_dimm_no(struct sys_info *sys_info, int device) {
 if (sys_info-spd_addresses)
  return sys_info-spd_addresses[device];
 else
  return DIMM0 + device;
}

and use that to determine the addresses where currently DIMM0+i is
used instead?

While this would be changed in a clean-up like referred to above, it
would be less of an effort than to essentially undo your changes.

That should give you the same result with not changing any internal
APIs.


Thanks,
Patrick
-- 
Patrick Georgi
SINA-Development - High Security
secunet Security Networks AG - Mergenthalerallee 77 - 65760 Eschborn, Germany
Phone +49 201 54 54-3610 - Fax +49 201 54 54-1325 - www.secunet.com 

Sitz: Kronprinzenstraße 30, 45128 Essen / Amtsgericht Essen HRB 13615
Vorstand: Dr. Rainer Baumgart (Vors.), Thomas Koelzer, Thomas Pleines
Aufsichtsratsvorsitzender: Dr. Karsten Ottenberg


signature.asc
Description: This is a digitally signed message part
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] [PATCH] Move cmos.default handling to bootblock

2011-02-18 Thread Georgi, Patrick
Am Freitag, den 18.02.2011, 12:15 +0100 schrieb Peter Stuge:
  HAVE_CMOS_DEFAULT. Without this, cmos.default isn't put into CBFS
  (by default), and without that file, no write happens.
 But it's a mainboard knob, not a user knob, right?
We don't deliver cmos.default files, so this is a user setting at this
time.
This might change, and then we should reevaluate how we handle CMOS.
But USE_OPTION_TABLE should disable it _all_ anyway.

So you already have:
- no CMOS at all
- CMOS support, but no cmos.default
- CMOS support with cmos.default

 Call them profiles or maybe personalities. Yes there is one set of
 options from the developer creating the original port, but I'm
 thinking more of bird's view variations;
We already stretch Kconfig beyond its limits. Let's not do it any
further or it will break apart.

 * Strict mode (requires NVRAM to always be correct, or will fail to
   boot. maybe also other extra checks in the code)
Fail to boot? I wonder about its use.


Patrick
-- 
Patrick Georgi
SINA-Development - High Security
secunet Security Networks AG - Mergenthalerallee 77 - 65760 Eschborn, Germany
Phone +49 201 54 54-3610 - Fax +49 201 54 54-1325 - www.secunet.com 

Sitz: Kronprinzenstraße 30, 45128 Essen / Amtsgericht Essen HRB 13615
Vorstand: Dr. Rainer Baumgart (Vors.), Thomas Koelzer, Thomas Pleines
Aufsichtsratsvorsitzender: Dr. Karsten Ottenberg


signature.asc
Description: This is a digitally signed message part
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] [PATCH] add SPD address mapping to i945

2011-02-18 Thread Sven Schnelle
[Missed coreboot List Cc]

Hi Patrick,

thanks for you reply. I've attached a new patch which addresses
those issues.

Thanks,

Sven.
--

For hardware that uses other addresses (like the ThinkPad X60) this means we
get only one module running instead of both.

This patch adds a second parameter to sdram_initialize, which is an array with
2 * DIMM_SOCKETS members. It should contain the SPD addresses for every single
DIMM socket. If NULL is given as the second parameter, the code uses the old
addressing scheme.

Signed-off-by: Sven Schnelle sv...@stackframe.org
---
 src/mainboard/getac/p470/romstage.c   |2 +-
 src/mainboard/ibase/mb899/romstage.c  |2 +-
 src/mainboard/intel/d945gclf/romstage.c   |2 +-
 src/mainboard/kontron/986lcd-m/romstage.c |2 +-
 src/mainboard/lenovo/x60/romstage.c   |3 +-
 src/mainboard/roda/rk886ex/romstage.c |2 +-
 src/northbridge/intel/i945/raminit.c  |   57 +++--
 src/northbridge/intel/i945/raminit.h  |3 +-
 8 files changed, 46 insertions(+), 27 deletions(-)

diff --git a/src/mainboard/getac/p470/romstage.c b/src/mainboard/getac/p470/romstage.c
index 270a7bd..83cd91e 100644
--- a/src/mainboard/getac/p470/romstage.c
+++ b/src/mainboard/getac/p470/romstage.c
@@ -332,7 +332,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif

-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);

 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/ibase/mb899/romstage.c b/src/mainboard/ibase/mb899/romstage.c
index d3a0299..e248a27 100644
--- a/src/mainboard/ibase/mb899/romstage.c
+++ b/src/mainboard/ibase/mb899/romstage.c
@@ -283,7 +283,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif

-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);

 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/intel/d945gclf/romstage.c b/src/mainboard/intel/d945gclf/romstage.c
index f705673..6dfc144 100644
--- a/src/mainboard/intel/d945gclf/romstage.c
+++ b/src/mainboard/intel/d945gclf/romstage.c
@@ -243,7 +243,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif

-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);

 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/kontron/986lcd-m/romstage.c b/src/mainboard/kontron/986lcd-m/romstage.c
index 925c93e..2cf73e6 100644
--- a/src/mainboard/kontron/986lcd-m/romstage.c
+++ b/src/mainboard/kontron/986lcd-m/romstage.c
@@ -382,7 +382,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif

-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);

 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/lenovo/x60/romstage.c b/src/mainboard/lenovo/x60/romstage.c
index 5578324..e2b4a40 100644
--- a/src/mainboard/lenovo/x60/romstage.c
+++ b/src/mainboard/lenovo/x60/romstage.c
@@ -294,6 +294,7 @@ void main(unsigned long bist)
 {
 	u32 reg32;
 	int boot_mode = 0;
+	const u8 spd_addrmap[2 * DIMM_SOCKETS] = { 0x50, 0x52, 0x51, 0x53 };

 	if (bist == 0)
 		enable_lapic();
@@ -357,7 +358,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif

-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, spd_addrmap);

 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/mainboard/roda/rk886ex/romstage.c b/src/mainboard/roda/rk886ex/romstage.c
index fce53da..0797699 100644
--- a/src/mainboard/roda/rk886ex/romstage.c
+++ b/src/mainboard/roda/rk886ex/romstage.c
@@ -320,7 +320,7 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif

-	sdram_initialize(boot_mode);
+	sdram_initialize(boot_mode, NULL);

 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
diff --git a/src/northbridge/intel/i945/raminit.c b/src/northbridge/intel/i945/raminit.c
index 1c93435..8b7ffa1 100644
--- a/src/northbridge/intel/i945/raminit.c
+++ b/src/northbridge/intel/i945/raminit.c
@@ -54,6 +54,15 @@ struct cbmem_entry *get_cbmem_toc(void)
 #define RAM_EMRS_2			(0x1  21)
 #define RAM_EMRS_3			(0x2  21)

+static int get_dimm_spd_address(struct sys_info *sysinfo, int device)
+{
+	if (sysinfo-spd_addresses)
+		return sysinfo-spd_addresses[device];
+	else
+		return DIMM0 + device;
+
+}
+
 static inline int spd_read_byte(unsigned device, unsigned address)
 {
 	return smbus_read_byte(device, address);
@@ -367,7 +376,8 @@ static void sdram_get_dram_configuration(struct sys_info *sysinfo)
 	 */

 	for (i=0; i(2 * DIMM_SOCKETS); i++) {
-		u8 reg8, device = DIMM0 + i;
+		int device = get_dimm_spd_address(sysinfo, i);
+		u8 reg8;

 		/* Initialize the socket information with a sane value */
 		sysinfo-dimm[i] = SYSINFO_DIMM_NOT_POPULATED;
@@ -458,7 +468,7 @@ static void sdram_verify_package_type(struct sys_info * 

Re: [coreboot] support request - SOYO 7VBA133

2011-02-18 Thread Corey Osgood
On Thu, Feb 17, 2011 at 11:02 PM, Peter Stuge pe...@stuge.se wrote:
 José Neto wrote:
 Can you support my motherboard???

 No. You will have to do the development yourself, if you want it.


   [Apollo PRO133x] [1106:0691]
            +-01.0-[:01]00.0  Silicon Integrated Systems [SiS] 
 300/305 PCI/AGP VGA Display Adapter [1039:0300]

 SiS is out of the chipset business since years, and v4 has no code
 for this chipset. Maybe you can do surgery from v1.

That's just the VGA card, the Apollo Pro 133 is Via 693+686a.

-Corey



 //Peter

 --
 coreboot mailing list: coreboot@coreboot.org
 http://www.coreboot.org/mailman/listinfo/coreboot

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Fam10 FIDVID in SVI : disabling microcode update

2011-02-18 Thread Ward Vandewege
Hi Xavi,

On Wed, Feb 16, 2011 at 02:45:02PM +0100, Xavi Drudis Ferran wrote:
 Should I send a patch making a Kconfig option to not upgrade microcode for 
 fam10? Is there any interest in that ? 

Yes, please. I would test and ack that. 

Thanks,
Ward.

-- 
Ward Vandewege w...@fsf.org
Free Software Foundation - Senior Systems Administrator

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


[coreboot] New CMOS option sata_mode

2011-02-18 Thread Josef Kellermann

Attached patch implements a new CMOS option 'sata_mode'.
A new Kconfig option 'SATA_MODE' with default 'ide' is added to 
amd/sb600/Kconfig.
The handling of the CMOS option is placed in amd/sb600/sata.c and 
overrides the hardcoded 'ide' mode

in the following way:
if get_option(., sata_mode) returns 0 use CMOS option
in case of -2 grab the Kconfig option CONFIG_SATA_MODE if exist
otherwise use the hardcoded mode.

Signed-off-by: Josef Kellermann se...@arcor.de mailto://se...@arcor.de
From c349a79ea1ac9bcd52376b80f32cfa0552259219 Mon Sep 17 00:00:00 2001
From: Josef Kellermann se...@arcor.de
Date: Fri, 18 Feb 2011 11:44:31 +0100
Subject: [PATCH 1/2] added new cmos option 'sata_mode' and Kconfig option 
'SATA_MODE'
 This options override the default chipset mode 'IDE'
 in the following way: if cmos option exist use cmos option, if Kconfig option
 exist use Kconfig option else use default 'IDE'.

---
 src/southbridge/amd/sb600/Kconfig |5 -
 src/southbridge/amd/sb600/sata.c  |   30 ++
 2 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/src/southbridge/amd/sb600/Kconfig 
b/src/southbridge/amd/sb600/Kconfig
index 4e86999..7831aa3 100644
--- a/src/southbridge/amd/sb600/Kconfig
+++ b/src/southbridge/amd/sb600/Kconfig
@@ -35,4 +35,7 @@ config EHCI_BAR
 config EHCI_DEBUG_OFFSET
hex
default 0xe0 if SOUTHBRIDGE_AMD_SB600
-
+   
+config SATA_MODE
+   string 
+   default ide
diff --git a/src/southbridge/amd/sb600/sata.c b/src/southbridge/amd/sb600/sata.c
index 055e7da..143135e 100644
--- a/src/southbridge/amd/sb600/sata.c
+++ b/src/southbridge/amd/sb600/sata.c
@@ -17,7 +17,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
-
 #include console/console.h
 #include device/device.h
 #include delay.h
@@ -26,6 +25,10 @@
 #include device/pci_ops.h
 #include arch/io.h
 #include sb600.h
+#include pc80/mc146818rtc.h
+
+#define SATA_MODE_IDE 1
+#define SATA_MODE_AHCI !(SATA_MODE_IDE)
 
 static int sata_drive_detect(int portnum, u16 iobar)
 {
@@ -98,10 +101,6 @@ static void sata_init(struct device *dev)
printk(BIOS_SPEW, sata_bar4=%x\n, sata_bar4); /* 3000 */
printk(BIOS_SPEW, sata_bar5=%x\n, sata_bar5); /* e0309000 */
 
-   /* Program the 2C to 0x43801002 */
-   dword = 0x43801002;
-   pci_write_config32(dev, 0x2c, dword);
-
/* SERR-Enable */
word = pci_read_config16(dev, 0x04);
word |= (1  8);
@@ -112,13 +111,28 @@ static void sata_init(struct device *dev)
byte |= (1  2);
pci_write_config8(dev, 0x40, byte);
 
-   /* Set SATA Operation Mode, Set to IDE mode */
+   /* Set SATA Operation Mode */
byte = pci_read_config8(dev, 0x40);
byte |= (1  0);
byte |= (1  4);
pci_write_config8(dev, 0x40, byte);
 
-   dword = 0x01018f00;
+   // 1 means IDE, 0 means AHCI
+   if( get_option(i, sata_mode)  0 ) {
+   // no cmos option
+   i = SATA_MODE_IDE; // default
+#if defined(CONFIG_SATA_MODE)
+   i = ((CONFIG_SATA_MODE[0]  ~0x20) == 'A') ? SATA_MODE_AHCI : 
SATA_MODE_IDE;
+#endif
+   }
+   printk(BIOS_INFO, %s: setting sata mode = %s\n,__func__, (i == 
SATA_MODE_IDE) ? ide : ahci ); 
+   
+   dword = pci_read_config32(dev, 0x8);
+   dword = 0xffff;
+   if( i == SATA_MODE_IDE )
+   dword |= 0x00018f00; // IDE mode
+   else
+   dword |= 0x00060100; // AHCI mode
pci_write_config32(dev, 0x8, dword);
 
byte = pci_read_config8(dev, 0x40);
@@ -245,7 +259,7 @@ static void sata_init(struct device *dev)
 }
 
 static struct pci_operations lops_pci = {
-   /* .set_subsystem = pci_dev_set_subsystem, */
+   .set_subsystem = pci_dev_set_subsystem,
 };
 
 static struct device_operations sata_ops = {
-- 
1.7.1

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] support request - SOYO 7VBA133

2011-02-18 Thread José Neto
Oh sorry...
But i have no idea for where start.
Unfortunately, wanting is not being able to.
Thanks anyway!



On Thu, Feb 17, 2011 at 11:02 PM, Peter Stuge pe...@stuge.se wrote:
  José Neto wrote:
  Can you support my motherboard???
 
  No. You will have to do the development yourself, if you want it.


-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

[coreboot] add Kconfig options in addition/in place of CMOS option

2011-02-18 Thread Josef Kellermann
Attached patch adds sane compile-time defaults via Kconfig options for 
CMOS options

 'iommu, ECC_memory, max_mem_clock, hw_scrubber, interleave_chip_selects'.
Avoid build error if any of these CMOS options are not defined.
Checks the return value of 'get_option(..)', if not done yet, and
if CMOS option not exist grab a Kconfig option otherwise a hardcoded
value is used.

Signed-off-by: Josef Kellermann se...@arcor.de mailto://se...@arcor.de
From 7442dfd6d12bf596fdb64bff370631eb2e75c542 Mon Sep 17 00:00:00 2001
From: Josef Kellermann se...@arcor.de
Date: Fri, 18 Feb 2011 14:25:33 +0100
Subject: [PATCH 2/2] This patch
 adds sane compile-time defaults via Kconfig options for CMOS options
  'iommu, ECC_memory, max_mem_clock, hw_scrubber, interleave_chip_selcts'.
 avoid build error if any of these CMOS options are not defined.
 checks the return value of 'get_option(..)', if not done yet, and
 if CMOS option not exist grab a Kconfig option otherwise a hardcoded
 value is used.

---
 src/cpu/amd/model_fxx/model_fxx_init.c   |   12 +++--
 src/northbridge/amd/amdk8/misc_control.c |9 +-
 src/northbridge/amd/amdk8/raminit_f.c|   37 +++--
 3 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/src/cpu/amd/model_fxx/model_fxx_init.c 
b/src/cpu/amd/model_fxx/model_fxx_init.c
index a5112b3..bfdefa2 100644
--- a/src/cpu/amd/model_fxx/model_fxx_init.c
+++ b/src/cpu/amd/model_fxx/model_fxx_init.c
@@ -263,8 +263,15 @@ static void init_ecc_memory(unsigned node_id)
}
 
/* See if we scrubbing should be enabled */
-   enable_scrubbing = 1;
-   get_option(enable_scrubbing, hw_scrubber);
+   /* fixme: does it make any sense enabling scrubbing if not ECC_memory ? 
*/
+   dcl = pci_read_config32(f2_dev, DRAM_CONFIG_LOW);
+   enable_scrubbing = (dcl  DCL_DimmEccEn) ? 1 : 0; /* default: enable 
scrubbing if ECC_memory */
+   if( get_option(enable_scrubbing, hw_scrubber)  0 ) 
+   {
+#if defined(CONFIG_HW_SCRUBBER)
+   enable_scrubbing = CONFIG_HW_SCRUBBER;
+#endif
+   }
 
/* Enable cache scrubbing at the lowest possible rate */
if (enable_scrubbing) {
@@ -279,7 +286,6 @@ static void init_ecc_memory(unsigned node_id)
}
 
/* If ecc support is not enabled don't touch memory */
-   dcl = pci_read_config32(f2_dev, DRAM_CONFIG_LOW);
if (!(dcl  DCL_DimmEccEn)) {
printk(BIOS_DEBUG, ECC Disabled\n);
return;
diff --git a/src/northbridge/amd/amdk8/misc_control.c 
b/src/northbridge/amd/amdk8/misc_control.c
index fa90a55..e65b2a9 100644
--- a/src/northbridge/amd/amdk8/misc_control.c
+++ b/src/northbridge/amd/amdk8/misc_control.c
@@ -46,9 +46,14 @@ static void mcf3_read_resources(device_t dev)
if (dev-path.pci.devfn != PCI_DEVFN(0x18, 3)) {
return;
}
-
+   
iommu = 1;
-   get_option(iommu, iommu);
+   if( get_option(iommu, iommu)  0 ) 
+   {
+#if defined(CONFIG_IOMMU)
+   iommu = CONFIG_IOMMU;
+#endif
+   }
 
if (iommu) {
/* Add a GART aperture resource */
diff --git a/src/northbridge/amd/amdk8/raminit_f.c 
b/src/northbridge/amd/amdk8/raminit_f.c
index 3135bce..d7d6157 100644
--- a/src/northbridge/amd/amdk8/raminit_f.c
+++ b/src/northbridge/amd/amdk8/raminit_f.c
@@ -1107,6 +1107,15 @@ static unsigned long interleave_chip_selects(const 
struct mem_controller *ctrl,
/* See if all of the memory chip selects are the same size
 * and if so count them.
 */
+#if defined(CMOS_VSTART_interleave_chip_selects)
+   if (read_option(CMOS_VSTART_interleave_chip_selects, 
CMOS_VLEN_interleave_chip_selects, 1) == 0)
+   return 0;
+#else
+#if !defined(CONFIG_INTERLEAVE_CHIP_SELECTS) || 
(CONFIG_INTERLEAVE_CHIP_SELECTS == 0)
+   return 0;
+#endif
+#endif
+
chip_selects = 0;
common_size = 0;
common_cs_mode = 0xff;
@@ -1279,15 +1288,10 @@ static void order_dimms(const struct mem_controller 
*ctrl,
 {
unsigned long tom_k, base_k;
 
-   if (read_option(CMOS_VSTART_interleave_chip_selects,
-   CMOS_VLEN_interleave_chip_selects, 1) != 0) {
-   tom_k = interleave_chip_selects(ctrl, meminfo-is_Width128);
-   } else {
-   printk(BIOS_DEBUG, Interleaving disabled\n);
-   tom_k = 0;
-   }
+   tom_k = interleave_chip_selects(ctrl, meminfo-is_Width128);
 
if (!tom_k) {
+   printk(BIOS_DEBUG, Interleaving disabled\n);
tom_k = order_chip_selects(ctrl);
}
 
@@ -1801,7 +1805,17 @@ static struct spd_set_memclk_result spd_set_memclk(const 
struct mem_controller *
value = pci_read_config32(ctrl-f3, NORTHBRIDGE_CAP);
min_cycle_time = min_cycle_times[(value  NBCAP_MEMCLK_SHIFT)  
NBCAP_MEMCLK_MASK];
bios_cycle_time = min_cycle_times[
-   read_option(CMOS_VSTART_max_mem_clock, 

Re: [coreboot] support request - SOYO 7VBA133

2011-02-18 Thread José Neto
Thanks!

2011/2/18 Alex G. mr.nuke...@gmail.com

 On 02/18/2011 08:51 PM, José Neto wrote:
  Oh sorry...
  But i have no idea for where start.
  Unfortunately, wanting is not being able to.
  Thanks anyway!
 
 Start with Peter Stuge's Bringing coreboot to a system near you video.

 Alex

 --
 coreboot mailing list: coreboot@coreboot.org
 http://www.coreboot.org/mailman/listinfo/coreboot

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

[coreboot] Question: Can I change DQS settings from a user program

2011-02-18 Thread Fengwei Zhang

Hi all,

I have a K8 board. I tried to change the DQS settings from a user 
program, but I failed.
I printed out the DQS settings before my pci_write_long() function. I 
also printed out the DQS settings after the pci writing. The results are 
same.


My question is: can I change DQS settings from a user program? or I need 
to enable some registers before changing?


Thanks,
Fengwei

--
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Support for the new siemens sitemp_g1p1 mainboard

2011-02-18 Thread Marc Jones
On Fri, Feb 18, 2011 at 12:41 PM, Josef Kellermann se...@arcor.de wrote:
 Attached patch provides support for the siemens sitemp_g1p1 mainboard.
 This board is similar to the amd dbm690t. I adapt the code from dbm690t
 according
  to customer requirement specification.
 I have been testing Linux as well as Windows XP booting on this board.

 Signed-off-by: Josef Kellermann se...@arcor.de

Hi Josef,

Thanks for the patches.

I have not looked at the patch in detail yet, but it is easier to
review your changes with a diff based on the reference.
The best way is to do an svn copy of the reference directory, then
apply your changes.

Marc



-- 
http://se-eng.com

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


[coreboot] [PATCH] Correct wrong PCI ID vor VIA K8M890 Chrome

2011-02-18 Thread Alex G.
before anyone bricks a board

Alex.
With the K8T800/M800 patch, the PCI IDs for the VIA chrome were moved
to pci_ids.h. The PCI ID for K8M890 chrome was copied incorrectly.
(3220 instead of 3230).
This patch defines the corect PCI ID for this device.

Signed-off-by: Alexandru Gagniuc mr.nuke...@gmail.com
Acked-by: Alexandru Gagniuc mr.nuke...@gmail.com Trivial

Index: src/include/device/pci_ids.h
===
--- src/include/device/pci_ids.h	(revision 6369)
+++ src/include/device/pci_ids.h	(working copy)
@@ -1260,7 +1260,7 @@
 #define PCI_DEVICE_ID_VIA_K8M890CE_4	0x4336
 #define PCI_DEVICE_ID_VIA_K8M890CE_5	0x5336
 #define PCI_DEVICE_ID_VIA_K8M890CE_7	0x7336
-#define PCI_DEVICE_ID_VIA_K8M890_CHROME	0x3220
+#define PCI_DEVICE_ID_VIA_K8M890_CHROME	0x3230
 #define PCI_DEVICE_ID_VIA_K8T890CE_PEG	0xa238
 #define PCI_DEVICE_ID_VIA_K8T890CE_PEX0	0xc238
 #define PCI_DEVICE_ID_VIA_K8T890CE_PEX1	0xd238
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

[coreboot] P2B-LS help: Onboard SCSI BIOS failed to boot

2011-02-18 Thread Keith Hui
I am trying (again) to get the Adaptec SCSI on my P2B-LS to initialize
properly with coreboot. But it won't boot.

Attached is a serial log of what happened.

After compiling coreboot I checked out SeaBIOS through git and added
the SCSI option rom extracted from my factory bios. A port and a few
other resources is assigned, but no IRQ. The SCSI option rom would
initialize, I can press the hotkey to enter the utility, but that's
it. That option rom hangs before getting any responses from the SCSI
hardware.

I am trying to set up SerialICE to see what is going on. Just looking
for some insights before I reach that point.

I have to jumper off the SCSI to get it to boot. I don't know if this
has anything to do but the Ultra2 port on my other P2B-LS is fubared
and nothing plugged there would register. Afraid the same may befall
this board too.

Thanks
Keith


p2bls.scsi.log
Description: Binary data
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot