[coreboot] Intel P35/Q35/G33/Q33/G31/P31

2009-11-02 Thread Loïc Grenié
   Here is a patch for inteltool to print the registers values
 for the P31..Q35 chipset. The registers are (as far as I
 can tell) unchanged with respect to those of the PM965.
 I've no strong ideas on the names: I've chosen
 PCI_DEVICE_ID_INTEL_82[PQG]3[135] as Northbridge
 names, they can obviously be changed to anything else. I've
 given Q35, P35/G33/G31/P31 and Q33 as descriptions,
 they can also be freely changed.

Signed-off-by: Loïc Grenié loic.gre...@gmail.com
Description: adds 82Q35/P35/Q33/G33/G31/P31 capability.

   Please consider for applying,

         Thanks,

                 Loïc
Index: inteltool.h
===
--- inteltool.h	(revision 4892)
+++ inteltool.h	(working copy)
@@ -52,6 +52,9 @@
 #define PCI_DEVICE_ID_INTEL_82945GM		0x27a0
 #define PCI_DEVICE_ID_INTEL_PM965		0x2a00
 #define PCI_DEVICE_ID_INTEL_82975X		0x277c
+#define PCI_DEVICE_ID_INTEL_82Q35		0x29b0
+#define PCI_DEVICE_ID_INTEL_82G33		0x29c0
+#define PCI_DEVICE_ID_INTEL_82Q33		0x29d0
 #define PCI_DEVICE_ID_INTEL_X58			0x3405
 
 #define PCI_DEVICE_ID_INTEL_82443LX		0x7180
Index: pcie.c
===
--- pcie.c	(revision 4892)
+++ pcie.c	(working copy)
@@ -39,6 +39,9 @@
 		epbar_phys = pci_read_long(nb, 0x40)  0xfffe;
 		break;
  	case PCI_DEVICE_ID_INTEL_PM965:
+ 	case PCI_DEVICE_ID_INTEL_82Q35:
+ 	case PCI_DEVICE_ID_INTEL_82G33:
+ 	case PCI_DEVICE_ID_INTEL_82Q33:
  		epbar_phys = pci_read_long(nb, 0x40)  0xfffe;
  		epbar_phys |= ((uint64_t)pci_read_long(nb, 0x44))  32;
  		break;
@@ -86,6 +89,9 @@
 		dmibar_phys = pci_read_long(nb, 0x4c)  0xfffe;
 		break;
  	case PCI_DEVICE_ID_INTEL_PM965:
+ 	case PCI_DEVICE_ID_INTEL_82Q35:
+ 	case PCI_DEVICE_ID_INTEL_82G33:
+ 	case PCI_DEVICE_ID_INTEL_82Q33:
  		dmibar_phys = pci_read_long(nb, 0x68)  0xfffe;
  		dmibar_phys |= ((uint64_t)pci_read_long(nb, 0x6c))  32;
  		break;
@@ -135,6 +141,9 @@
 		pciexbar_reg = pci_read_long(nb, 0x48);
 		break;
  	case PCI_DEVICE_ID_INTEL_PM965:
+ 	case PCI_DEVICE_ID_INTEL_82Q35:
+ 	case PCI_DEVICE_ID_INTEL_82G33:
+ 	case PCI_DEVICE_ID_INTEL_82Q33:
  		pciexbar_reg = pci_read_long(nb, 0x60);
  		pciexbar_reg |= ((uint64_t)pci_read_long(nb, 0x64))  32;
  		break;
Index: memory.c
===
--- memory.c	(revision 4892)
+++ memory.c	(working copy)
@@ -40,6 +40,9 @@
 		mchbar_phys = pci_read_long(nb, 0x44)  0xfffe;
 		break;
  	case PCI_DEVICE_ID_INTEL_PM965:
+ 	case PCI_DEVICE_ID_INTEL_82Q35:
+ 	case PCI_DEVICE_ID_INTEL_82G33:
+ 	case PCI_DEVICE_ID_INTEL_82Q33:
  		mchbar_phys = pci_read_long(nb, 0x48)  0xfffe;
  		mchbar_phys |= ((uint64_t)pci_read_long(nb, 0x4c))  32;
  		break;
Index: inteltool.c
===
--- inteltool.c	(revision 4892)
+++ inteltool.c	(working copy)
@@ -39,6 +39,9 @@
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82945GM, i945GM },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PM965, PM965 },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82975X, i975X },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82Q35, Q35 },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82G33, P35/G33/G31/P31 },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82Q33, Q33 },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_X58, X58 },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10R, ICH10R },
 	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8M, ICH8-M },
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Error executing VGA ROM with coreboot

2009-11-02 Thread Peter Stuge
Mansoor wrote:
  maybe the graphics driver in Linux has the ability to initialize
  hardware completely?
 
 I tried this option. But it didn't initialize VGA

Ok. If you prefer this solution you could, as I mentioned, try to
contact the Linux graphics driver developers. There are people from
Intel working actively there. Search keyword is drm-intel


  Second, you can use both SeaBIOS and FILO together.
 
 Thanks for the detailed explanation. 
 I am using this method as an alternative (coreboot loads SeaBIOS
 then SeaBIOS loads FILO, FILO loads Linux) now. And it works fine.

Nice!


 Extra boot time is the seaBIOS hardware initialization time... and
 I say it is negligible compared to the 20-30 sec delay of factory
 BIOS.

He-he. :)


//Peter

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


Re: [coreboot] [PATCH] D945GCLF

2009-11-02 Thread Andrew Goodbody
If anyone does want to work on the D945GCLF board then you need to 
update the sdram_enable_memory_clocks in 
northbridge/intel/i945/raminit.c in a way that does not break the mobile 
version. The desktop version of the chipset has more clocks and so uses 
more bits in C0DCLKDIS and C1DCLKDIS to control them. Instead of bits 
01 and 23, you need to use bits 012 and 345. A quick and dirty 
hack to get this going would seem to be to define OVERRIDE_CLOCK_DISABLE.


Sorry but I don't have time to do this myself but I thought the 
information might be useful to somebody. It should be enough to get RAM 
init working.


Andrew

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


Re: [coreboot] coreboot hangs on my AMD fam10 board(updatedebugmessage).

2009-11-02 Thread Ward Vandewege
On Mon, Nov 02, 2009 at 02:25:23PM +0800, Bao, Zheng wrote:
 Now I found that the system doesn't hang. It just decompresses the
 image. It is unbearably slow. Do you guys know why it does so slowly?

Ah! I saw that too on Fam10. Mansoor suggested setting

  CONFIG_XIP_ROM_BASE

to solve this. Does that help?

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] [v2] r4905 - trunk/util/inteltool

2009-11-02 Thread svn
Author: hailfinger
Date: 2009-11-02 16:01:49 +0100 (Mon, 02 Nov 2009)
New Revision: 4905

Modified:
   trunk/util/inteltool/inteltool.c
   trunk/util/inteltool/inteltool.h
   trunk/util/inteltool/memory.c
   trunk/util/inteltool/pcie.c
Log:
Add 82Q35/P35/Q33/G33/G31/P31 support to inteltool.
The registers are (as far as I can tell) unchanged with respect to those
of the PM965.

Signed-off-by: Lo?\195?\175c Greni?\195?\169 loic.gre...@gmail.com
Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2...@gmx.net


Modified: trunk/util/inteltool/inteltool.c
===
--- trunk/util/inteltool/inteltool.c2009-11-01 09:18:23 UTC (rev 4904)
+++ trunk/util/inteltool/inteltool.c2009-11-02 15:01:49 UTC (rev 4905)
@@ -39,6 +39,9 @@
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82945GM, i945GM },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PM965, PM965 },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82975X, i975X },
+   { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82Q35, Q35 },
+   { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82G33, P35/G33/G31/P31 },
+   { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82Q33, Q33 },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_X58, X58 },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10R, ICH10R },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8M, ICH8-M },

Modified: trunk/util/inteltool/inteltool.h
===
--- trunk/util/inteltool/inteltool.h2009-11-01 09:18:23 UTC (rev 4904)
+++ trunk/util/inteltool/inteltool.h2009-11-02 15:01:49 UTC (rev 4905)
@@ -52,6 +52,9 @@
 #define PCI_DEVICE_ID_INTEL_82945GM0x27a0
 #define PCI_DEVICE_ID_INTEL_PM965  0x2a00
 #define PCI_DEVICE_ID_INTEL_82975X 0x277c
+#define PCI_DEVICE_ID_INTEL_82Q35  0x29b0
+#define PCI_DEVICE_ID_INTEL_82G33  0x29c0
+#define PCI_DEVICE_ID_INTEL_82Q33  0x29d0
 #define PCI_DEVICE_ID_INTEL_X580x3405
 
 #define PCI_DEVICE_ID_INTEL_82443LX0x7180

Modified: trunk/util/inteltool/memory.c
===
--- trunk/util/inteltool/memory.c   2009-11-01 09:18:23 UTC (rev 4904)
+++ trunk/util/inteltool/memory.c   2009-11-02 15:01:49 UTC (rev 4905)
@@ -40,6 +40,9 @@
mchbar_phys = pci_read_long(nb, 0x44)  0xfffe;
break;
case PCI_DEVICE_ID_INTEL_PM965:
+   case PCI_DEVICE_ID_INTEL_82Q35:
+   case PCI_DEVICE_ID_INTEL_82G33:
+   case PCI_DEVICE_ID_INTEL_82Q33:
mchbar_phys = pci_read_long(nb, 0x48)  0xfffe;
mchbar_phys |= ((uint64_t)pci_read_long(nb, 0x4c))  32;
break;

Modified: trunk/util/inteltool/pcie.c
===
--- trunk/util/inteltool/pcie.c 2009-11-01 09:18:23 UTC (rev 4904)
+++ trunk/util/inteltool/pcie.c 2009-11-02 15:01:49 UTC (rev 4905)
@@ -39,6 +39,9 @@
epbar_phys = pci_read_long(nb, 0x40)  0xfffe;
break;
case PCI_DEVICE_ID_INTEL_PM965:
+   case PCI_DEVICE_ID_INTEL_82Q35:
+   case PCI_DEVICE_ID_INTEL_82G33:
+   case PCI_DEVICE_ID_INTEL_82Q33:
epbar_phys = pci_read_long(nb, 0x40)  0xfffe;
epbar_phys |= ((uint64_t)pci_read_long(nb, 0x44))  32;
break;
@@ -86,6 +89,9 @@
dmibar_phys = pci_read_long(nb, 0x4c)  0xfffe;
break;
case PCI_DEVICE_ID_INTEL_PM965:
+   case PCI_DEVICE_ID_INTEL_82Q35:
+   case PCI_DEVICE_ID_INTEL_82G33:
+   case PCI_DEVICE_ID_INTEL_82Q33:
dmibar_phys = pci_read_long(nb, 0x68)  0xfffe;
dmibar_phys |= ((uint64_t)pci_read_long(nb, 0x6c))  32;
break;
@@ -135,6 +141,9 @@
pciexbar_reg = pci_read_long(nb, 0x48);
break;
case PCI_DEVICE_ID_INTEL_PM965:
+   case PCI_DEVICE_ID_INTEL_82Q35:
+   case PCI_DEVICE_ID_INTEL_82G33:
+   case PCI_DEVICE_ID_INTEL_82Q33:
pciexbar_reg = pci_read_long(nb, 0x60);
pciexbar_reg |= ((uint64_t)pci_read_long(nb, 0x64))  32;
break;


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


Re: [coreboot] Intel P35/Q35/G33/Q33/G31/P31

2009-11-02 Thread Carl-Daniel Hailfinger
On 02.11.2009 10:12, Loïc Grenié wrote:
Here is a patch for inteltool to print the registers values
  for the P31..Q35 chipset. The registers are (as far as I
  can tell) unchanged with respect to those of the PM965.
  I've no strong ideas on the names: I've chosen
  PCI_DEVICE_ID_INTEL_82[PQG]3[135] as Northbridge
  names, they can obviously be changed to anything else. I've
  given Q35, P35/G33/G31/P31 and Q33 as descriptions,
  they can also be freely changed.

 Signed-off-by: Loïc Grenié loic.gre...@gmail.com
 Description: adds 82Q35/P35/Q33/G33/G31/P31 capability.
   

Thanks for your patch!

Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2...@gmx.net
and committed in r4905.

Regards,
Carl-Daniel

-- 
Developer quote of the week: 
We are juggling too many chainsaws and flaming arrows and tigers.


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


Re: [coreboot] [Fwd: Re: [Fwd: Re: [Fwd: Re: arima hdama problem]]]

2009-11-02 Thread Hugh Greenberg

Myles,

Setting it to 1 or 2 gives what looks like the same output.  It causes 
coreboot to fail with the following error:


Initializing CBMEM area to 0x3fff (65536 bytes)
Adding CBMEM entry as no. 1
Moving GDT to 3fff0200...ok
High Tables Base is 3fff.
Copying Interrupt Routing Table to 0x000f... done.
Adding CBMEM entry as no. 2
Copying Interrupt Routing Table to 0x3fff0400... done.
PIRQ table: 176 bytes.
Looking for bad PCIX MHz input
get_pbus: dev is NULL!

--
Hugh Greenberg


Myles Watson wrote:
It turns out that SB_HT_CHAIN_ON_BUS_0 was set incorrectly.  I should 
have had you test if it should have been 2, but at least setting it to 
1 should let SeaBIOS find your devices.


Thanks,
Myles


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


Re: [coreboot] [Fwd: Re: [Fwd: Re: [Fwd: Re: arima hdama problem]]]

2009-11-02 Thread Myles Watson
 Setting it to 1 or 2 gives what looks like the same output.  It causes
 coreboot to fail with the following error:
I guess I shouldn't have committed it until it worked, but 0 was the wrong
value.

 Initializing CBMEM area to 0x3fff (65536 bytes)
 Adding CBMEM entry as no. 1
 Moving GDT to 3fff0200...ok
 High Tables Base is 3fff.
 Copying Interrupt Routing Table to 0x000f... done.
 Adding CBMEM entry as no. 2
 Copying Interrupt Routing Table to 0x3fff0400... done.
 PIRQ table: 176 bytes.
 Looking for bad PCIX MHz input
That message comes from mainboard/arima/hdama/mptable.c

The bus numbers are hard-coded.  The easiest thing to do would be to:

1. Choose 1 or 2 for that config value
2. Find the bus and device numbers in the output
3. Change the hard coded values

Thanks,
Myles


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


Re: [coreboot] [PATCH] The filo crashes if the filo and coreboot overlap.

2009-11-02 Thread Bao, Zheng
If the coreboot and filo overlap, it will slice off a piece at the
beginning or end. In the beginning case, a new segment is inserted
before the current one.  The ptr will move forward and doesn't seem to
have any chance to process the new segment.

ptr -+ move ---
 |
 V
++   ++
||   ||
|  new   | --- |current | --- .
||   ||
++   ++

Now we change the ptr to the previous one and restart the loop. The
new and current segment will both be processed.

  +ptr  move ---
  |
  V
 ++++   ++
 ||||   ||
 |  prev  | ---  |  new   | --- |current | --- .
 ||||   ||
 ++++   ++

It is tested on my Family 10 board.

Zheng

Signed-off-by: Zheng Bao zheng@amd.com


Index: src/boot/selfboot.c
===
--- src/boot/selfboot.c (revision 4892)
+++ src/boot/selfboot.c (working copy)
@@ -211,19 +211,21 @@
return !((end = lb_start) || (start = lb_end));
 }
 
-static void relocate_segment(unsigned long buffer, struct segment *seg)
+static int relocate_segment(unsigned long buffer, struct segment *seg)
 {
/* Modify all segments that want to load onto coreboot
 * to load onto the bounce buffer instead.
 */
-   unsigned long start, middle, end;
+   /* ret:  1 : A new segment is inserted before the seg.
+*   0 : A new segment is inserted after the seg, or no new
one. */
+   unsigned long start, middle, end, ret = 0;
 
printk_spew(lb: [0x%016lx, 0x%016lx)\n, 
lb_start, lb_end);
 
/* I don't conflict with coreboot so get out of here */
if (!overlaps_coreboot(seg))
-   return;
+   return 0;
 
start = seg-s_dstaddr;
middle = start + seg-s_filesz;
@@ -270,6 +272,8 @@
new-s_dstaddr, 
new-s_dstaddr + new-s_filesz,
new-s_dstaddr + new-s_memsz);
+
+   ret = 1;
}

/* Slice off a piece at the end 
@@ -319,6 +323,8 @@
seg-s_dstaddr, 
seg-s_dstaddr + seg-s_filesz, 
seg-s_dstaddr + seg-s_memsz);
+
+   return ret;
 }
 
 
@@ -446,7 +452,10 @@

/* Modify the segment to load onto the bounce_buffer if
necessary.
 */
-   relocate_segment(bounce_buffer, ptr);
+   if (relocate_segment(bounce_buffer, ptr)) {
+   ptr = (ptr-prev)-prev;
+   continue;
+   }
 
printk_debug(Post relocation: addr: 0x%016lx memsz:
0x%016lx filesz: 0x%016lx\n,
ptr-s_dstaddr, ptr-s_memsz, ptr-s_filesz);

-Original Message-
From: coreboot-boun...@coreboot.org
[mailto:coreboot-boun...@coreboot.org] On Behalf Of Bao, Zheng
Sent: Monday, November 02, 2009 11:25 AM
To: Patrick Georgi
Cc: coreboot@coreboot.org
Subject: Re: [coreboot] The filo crashes if the filo and coreboot
overlap.

In relocate_segment().
If the coreboot and filo overlap, it will slice off a piece at the
beginning or end. A new segment is allocated. If it is inserted before
the seg that is being processed, is there any chance that the new
segment will be processed? I am confused about it. On my fam 10 board,
it seems that the new segment was not processed and an error happens
when the code jumps to filo which is actually middle of nowhere.


Zheng

-Original Message-
From: coreboot-bounces+zheng.bao=amd@coreboot.org
[mailto:coreboot-bounces+zheng.bao=amd@coreboot.org] On Behalf Of
Patrick Georgi
Sent: Sunday, November 01, 2009 12:13 AM
To: Zheng Bao
Cc: coreboot@coreboot.org
Subject: Re: [coreboot] The filo crashes if the filo and coreboot
overlap.

Am Samstag, den 31.10.2009, 15:43 + schrieb Zheng Bao:
 The filo crashes if the filo and coreboot overlap.
 Since the CBFS is the must-have feature, my family 10
  board crashes when it jumps to filo. I am trying to
  find out why. I need help.
 Based on current code, the AMD Family 10 will cause the filo
 and coreboot overlap in RAM. The overlaps_coreboot() in selfboot.c
 will return 1. But I am not sure if it will make the system
 crashes.
What revision is that? There was an issue like that but I fixed it
several weeks ago.

 If anybody explains briefly what happens if they
 overlap.
When coreboot and payload overlap, coreboot uses a bounce buffer. The
bounce buffer is twice the size of coreboot. The first half is for the
part of the payload that overlaps coreboot, the other half is for