[coreboot] [commit] r6341 - trunk/src/southbridge/amd/rs690

2011-02-10 Thread repository service
Author: oxygene
Date: Thu Feb 10 09:49:57 2011
New Revision: 6341
URL: https://tracker.coreboot.org/trac/coreboot/changeset/6341

Log:
RS690: Provide support for MMCONF.

If enabled, set up 0xe000..0xf000 as MMCONF
area. Must still be configured in per-board ACPI for
the OS to pick it up, so it's disabled by default.

Signed-off-by: Josef Kellermannse...@arcor.de
Acked-by: Patrick Georgi patrick.geo...@secunet.com

Modified:
   trunk/src/southbridge/amd/rs690/Kconfig
   trunk/src/southbridge/amd/rs690/ht.c

Modified: trunk/src/southbridge/amd/rs690/Kconfig
==
--- trunk/src/southbridge/amd/rs690/Kconfig Thu Feb 10 08:51:51 2011
(r6340)
+++ trunk/src/southbridge/amd/rs690/Kconfig Thu Feb 10 09:49:57 2011
(r6341)
@@ -20,3 +20,10 @@
 config SOUTHBRIDGE_AMD_RS690
bool
 
+if SOUTHBRIDGE_AMD_RS690
+config EXT_CONF_SUPPORT
+   def_bool n
+   help
+ Select if RS690 should be setup to support MMCONF.
+
+endif

Modified: trunk/src/southbridge/amd/rs690/ht.c
==
--- trunk/src/southbridge/amd/rs690/ht.cThu Feb 10 08:51:51 2011
(r6340)
+++ trunk/src/southbridge/amd/rs690/ht.cThu Feb 10 09:49:57 2011
(r6341)
@@ -22,8 +22,93 @@
 #include device/pci.h
 #include device/pci_ids.h
 #include device/pci_ops.h
+#include lib.h
 #include rs690.h
 
+static void ht_dev_set_resources(device_t dev)
+{
+#if CONFIG_EXT_CONF_SUPPORT == 1
+   unsigned reg;   
+   device_t k8_f1;
+   resource_t rbase, rend;
+   u32 base, limit;
+   struct resource *resource;
+   
+   printk(BIOS_DEBUG,%s %s\n, dev_path(dev), __func__);
+   
+   resource = probe_resource(dev, 0x1C);
+   if (resource) {
+   set_nbmisc_enable_bits(dev, 0x0, 1  3, 0  3); // make bar3 
visible  
+   set_nbcfg_enable_bits(dev, 0x7C, 1  30, 1  30); /* 
Enables writes to the BAR3 register. */
+   set_nbcfg_enable_bits(dev, 0x84, 7  16, 0  16); // program 
bus range: 255 busses 
+   pci_write_config32(dev, 0x1C, resource-base);
+   /* Enable MMCONFIG decoding. */
+   set_htiu_enable_bits(dev, 0x32, 1  28, 1  28);  /* 
PCIEMiscInit */
+   set_nbcfg_enable_bits(dev, 0x7C, 1  30, 0  30); /* 
Disable writes to the BAR3 register. */
+   set_nbmisc_enable_bits(dev, 0x0, 1  3, 1  3); // hide bar 3
+   
+   // setup resource nonposted in k8 mmio
+   /* Get the base address */
+   rbase = resource-base;
+   /* Get the limit (rounded up) */
+   rend  = resource_end(resource);
+   printk(BIOS_DEBUG,%s: %s[0x1C] base = %0llx limit = %0llx\n, 
__func__, dev_path(dev), rbase, rend);
+   k8_f1 = dev_find_slot(0,PCI_DEVFN(0x18,1));
+   // find a not assigned resource
+   for( reg = 0xb8; reg = 0x80; reg -= 8 ) {
+   base = pci_read_config32(k8_f1,reg);
+   limit = pci_read_config32(k8_f1,reg+4);
+   if( !(base  3) ) break; // found a not assigned 
resource
+   }
+   if( !(base  3) ) {
+   u32 sblk;
+   device_t k8_f0 = dev_find_slot(0, PCI_DEVFN(0x18, 0));
+   /* Remember this resource has been stored. */
+   resource-flags |= IORESOURCE_STORED;
+   report_resource_stored(dev, resource,  mmconfig);
+   /* Get SBLink value (HyperTransport I/O Hub Link ID). */
+   sblk = (pci_read_config32(k8_f0, 0x64)  8)  0x3;
+   base  = 0x00f0;
+   base  |= ((rbase  8)  0xff00);
+   base  |= 3;
+   limit = 0x0048;
+   limit |= ((rend  8)  0xff00);
+   limit |= (sblk  4);
+   limit |= (1  7); 
+   printk(BIOS_INFO, %s - index %x base %04x limit 
%04x\n, dev_path(k8_f1), reg, base, limit);
+   pci_write_config32(k8_f1, reg+4, limit); 
+   pci_write_config32(k8_f1, reg, base);
+   }
+   }
+#endif
+   pci_dev_set_resources(dev);
+}
+
+static void ht_dev_read_resources(device_t dev)
+{
+#if CONFIG_EXT_CONF_SUPPORT == 1
+   struct resource *res;
+   
+   printk(BIOS_DEBUG,%s %s\n, dev_path(dev), __func__);  
+   set_nbmisc_enable_bits(dev, 0x0, 1  3, 1  3); // hide bar 3 
+#endif
+
+   pci_dev_read_resources(dev);
+   
+#if CONFIG_EXT_CONF_SUPPORT == 1
+   /* Add an MMCONFIG resource. */
+   res = new_resource(dev, 0x1C);
+   res-base = EXT_CONF_BASE_ADDRESS;
+   res-size = 256 * 1024 * 1024; // 256 busses, 1MB memory 

Re: [coreboot] what was 'set' in struct io_info for?

2011-02-10 Thread Mark Marshall

On 08/02/2011 01:38, Jonathan A. Kollasch wrote:

Hi,

I noticed that, other than initialization in almost every superio, the
'set' member of struct io_info doesn't seem to be referenced by the pnp
code.  Worth the removing?

Jonathan Kollasch



I found the same thing as you a while ago.  The io_info structure in 
pnp.h is never referenced by the code, and it's purpose is never really 
defined anywhere.  If you change the name to something else (just in the 
header file) the code still all compiles, so I'd say remove it.


I also asked about it on the news group, but got no reply.

MM


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


[coreboot] searching volunteer to install coreboot on asus m4a78 pro

2011-02-10 Thread Jelle de Jong
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hello everybody,

I would like to start with thanking all volunteers on the coreboot
project! At FOSDEM 2011 I had dinner with two of the volunteers. I have
been watching the coreboot for the past years, as something that I love
to have running on my motherboards but never found the time/resources to
made a first step.

I would like to get coreboot on this system[1]. I would like the
coreboot to be installed by a volunteer. I can provide ssh access (both
ipv4 and ipv6) and a root passwd to the machine, and standby to help
over IRC.

[1] http://debian.pastebin.com/mqphUf5U # details ASUSTeK M4A78 PRO

Features I would like:
* Serial Console Redirection
* AMD Athlon II X4 615e support
* ECC Memory support
* Readout volt,temp,rpm sensors
* Boot 2.6 kernel support
* Grub 2 (lvm, mdadm, ext4) support

I got two M4A78 PRO motherboards that I would like to give new life by
getting coreboot on them.

With kind regards,

Jelle de Jong
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)

iJwEAQECAAYFAk1T/5sACgkQ1WclBW9j5HlTBwP+KOImcCztj3LYsrMKGO5nMO0x
shPLdP+Zaa+kgM4pJP2QX748f9ibZEQGYlljbb3ZdgPzPYEguuGyZrFU+TfjTDHx
ePQhfxf6IiySOMGqMLDJ7Gyd+xBVujuzvZXaF7JXfwEuXX0bQLZyq+qjEI14pKfu
0tVUxrAThodY4+a+SO4=
=x6PR
-END PGP SIGNATURE-

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


[coreboot] [PATCH] cache type for BIOS flash memory should be WP-MMIO, not WB-MMIO

2011-02-10 Thread Scott Duplichan
According to AMD documentation, cache type WP should be used for
execution from flash memory. Coreboot uses WB. While there is no
noticeable performance difference between the two settings, use
of WB can cause a problem for a jtag debugger. The attached
patch changes AMD cache as ram setting for flash execution from
WB to WP.

Signed-off-by: Scott Duplichan sc...@notabs.org

Index: src/cpu/amd/car/cache_as_ram.inc
===
--- src/cpu/amd/car/cache_as_ram.inc(revision 6341)
+++ src/cpu/amd/car/cache_as_ram.inc(working copy)
@@ -294,11 +294,11 @@
xorl%edx, %edx
/*
 * IMPORTANT: The two lines below can _not_ be written like this:
-*   movl $(REAL_XIP_ROM_BASE | MTRR_TYPE_WRBACK), %eax
+*   movl $(REAL_XIP_ROM_BASE | MTRR_TYPE_WRPROT), %eax
 * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
 */
movl$REAL_XIP_ROM_BASE, %eax
-   orl $MTRR_TYPE_WRBACK, %eax
+   orl $MTRR_TYPE_WRPROT, %eax
wrmsr
 
movl$MTRRphysMask_MSR(1), %ecx


wbToWp.patch
Description: Binary data
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] [PATCH] cache type for BIOS flash memory should be WP-MMIO, not WB-MMIO

2011-02-10 Thread Marc Jones
On Thu, Feb 10, 2011 at 12:32 PM, Scott Duplichan sc...@notabs.org wrote:
 According to AMD documentation, cache type WP should be used for
 execution from flash memory. Coreboot uses WB. While there is no
 noticeable performance difference between the two settings, use
 of WB can cause a problem for a jtag debugger. The attached
 patch changes AMD cache as ram setting for flash execution from
 WB to WP.

 Signed-off-by: Scott Duplichan sc...@notabs.org

 Index: src/cpu/amd/car/cache_as_ram.inc
 ===
 --- src/cpu/amd/car/cache_as_ram.inc    (revision 6341)
 +++ src/cpu/amd/car/cache_as_ram.inc    (working copy)
 @@ -294,11 +294,11 @@
        xorl    %edx, %edx
        /*
         * IMPORTANT: The two lines below can _not_ be written like this:
 -        *   movl $(REAL_XIP_ROM_BASE | MTRR_TYPE_WRBACK), %eax
 +        *   movl $(REAL_XIP_ROM_BASE | MTRR_TYPE_WRPROT), %eax
         * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
         */
        movl    $REAL_XIP_ROM_BASE, %eax
 -       orl     $MTRR_TYPE_WRBACK, %eax
 +       orl     $MTRR_TYPE_WRPROT, %eax
        wrmsr

        movl    $MTRRphysMask_MSR(1), %ecx

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


Acked-by: Marc Jones marcj...@gmail.com

-- 
http://se-eng.com

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


[coreboot] [commit] r6342 - trunk/src/cpu/amd/car

2011-02-10 Thread repository service
Author: sduplichan
Date: Thu Feb 10 21:49:56 2011
New Revision: 6342
URL: https://tracker.coreboot.org/trac/coreboot/changeset/6342

Log:
According to AMD documentation, cache type WP should be used for
execution from flash memory. Coreboot uses WB. While there is no
noticeable performance difference between the two settings, use
of WB can cause a problem for a jtag debugger. The attached
patch changes AMD cache as ram setting for flash execution from
WB to WP.

Signed-off-by: Scott Duplichan sc...@notabs.org
Acked-by: Marc Jones marcj...@gmail.com

Modified:
   trunk/src/cpu/amd/car/cache_as_ram.inc

Modified: trunk/src/cpu/amd/car/cache_as_ram.inc
==
--- trunk/src/cpu/amd/car/cache_as_ram.inc  Thu Feb 10 09:49:57 2011
(r6341)
+++ trunk/src/cpu/amd/car/cache_as_ram.inc  Thu Feb 10 21:49:56 2011
(r6342)
@@ -294,11 +294,11 @@
xorl%edx, %edx
/*
 * IMPORTANT: The two lines below can _not_ be written like this:
-*   movl $(REAL_XIP_ROM_BASE | MTRR_TYPE_WRBACK), %eax
+*   movl $(REAL_XIP_ROM_BASE | MTRR_TYPE_WRPROT), %eax
 * http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
 */
movl$REAL_XIP_ROM_BASE, %eax
-   orl $MTRR_TYPE_WRBACK, %eax
+   orl $MTRR_TYPE_WRPROT, %eax
wrmsr
 
movl$MTRRphysMask_MSR(1), %ecx

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


[coreboot] inteltool: first preview for machine-readable output

2011-02-10 Thread Антон Кочков
inteltool: first preview for machine-readable output
Signed-off-by: Anton Kochkov anton.koch...@gmail.com
---

This is only for preview and discussion, it's still ugly and dont safe/clear.


inteltool_machine_readable_first_preview.patch
Description: Binary data
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] what was 'set' in struct io_info for?

2011-02-10 Thread Stefan Reinauer
* Mark Marshall mark.marsh...@csr.com [110210 11:52]:
 I found the same thing as you a while ago.  The io_info structure in
 pnp.h is never referenced by the code, and it's purpose is never
 really defined anywhere.  If you change the name to something else
 (just in the header file) the code still all compiles, so I'd say
 remove it.
 
 I also asked about it on the news group, but got no reply.

Oh, we have a news group? 

 

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


Re: [coreboot] how Coreboot keeps the right offsets of the sections

2011-02-10 Thread Stefan Reinauer
* Peter Stuge pe...@stuge.se [110209 20:44]:
  I checked the content of build/coreboot.rom and the last byte was
  0x0a!! Which is written probably on the top of our EEPROM. Right?
 
  but src/arch/i386/init/ldscript.ld specifies the last byte as 0x00!!
  SECTIONS {
  _ROMTOP = 0xfff0;
  . = _ROMTOP;
  .resetvector . : {
  *(.reset)
  . = 15 ;
  BYTE(0x00);
  }
  }
  
  Please help me with this puzzle. Thank you.
 
 What is the concrete problem? You should not rule out that there are
 binutils bugs. Just be happy that the reset vector has the right
 opcodes.

cbfstool updates those memory regions.


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


[coreboot] Fwd: inteltool: first preview for machine-readable output

2011-02-10 Thread Антон Кочков
inteltool: first preview for machine-readable output
Signed-off-by: Anton Kochkov anton.koch...@gmail.com
---

This is only for preview and discussion, it's still ugly and dont safe/clear.


inteltool_machine_readable_first_preview.patch
Description: Binary data
#include stdio.h

#include inteltool.h
/*
char *xml_header = ?xml version=1.0 encoding=UTF-8? \
		database xmlns=http://nouveau.freedesktop.org/; \
		xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; \
		xsi:schemaLocation=http://nouveau.freedesktop.org/ rules-ng.xsd
*/

void machine_readable_printf(reg_t *reg) {

#ifdef XML
	printf(register domain='%s' base='0x%x' offset='0x%x' size='%d' value='0x%x' name='%s' description='%s' /\n,
		reg-domain, reg-base_addr, reg-offset, reg-size, reg-value, reg-name, reg-desc);
#endif

#ifndef XML
	printf(domain: %s\n, reg-domain);
	printf(base addr: 0x%x\n, reg-base_addr);
	printf(offset: 0x%x\n, reg-offset);
	printf(size: %d\n, reg-size);
	printf(value: 0x%x\n, reg-value);
	printf(name: %s\n, reg-name);
	printf(description: %s\n, reg-desc);
#endif
}

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

[coreboot] inteltool: first preview for machine-readable output, fixes

2011-02-10 Thread Антон Кочков
inteltool: first preview for machine-readable output, fixes
Signed-off-by: Anton Kochkov anton.koch...@gmail.com
---

This is only for preview and discussion, it's still ugly and dont safe/clear.


inteltool_machine_readable_second_preview.patch
Description: Binary data
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot