the following patch was just integrated into master:
commit c522fc8f3815ab33fe11ca58263d84bc8e98417d
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Mon Feb 2 18:25:34 2015 -0600
drivers/xgi/z9s: Port Linux framebuffer initialization to coreboot
Add native XGI Z9s framebuffer support to coreboot
XGI initialization code largely taken from Linux 3.18.5
TEST: Booted KFSN4-DRE with XGI Volari Z9s into SeaBIOS
with SeaVGABIOS enabled. Text appeared correctly on screen
and interaction with graphical comboot menu was successful.
However, Linux cleared the framebuffer on boot, rendering the
screen useless until Linux loaded its native xgifb driver.
Change-Id: I606a3892849fc578b0c4d74536aec0a0adef3be3
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Reviewed-on: http://review.coreboot.org/8331
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
See http://review.coreboot.org/8331 for details.
-gerrit
the following patch was just integrated into master:
commit 5c015f045ddd00d34e56ee407ed2596e97a1433a
Author: Dave Frodin <dave.frodin(a)se-eng.com>
Date: Tue Jan 27 07:19:04 2015 -0700
southbridge/amd/pi: write_hpet requires additional config option
This copies what was done in southbridge/amd/agesa in:
commit 56f46d8 agesa/family15tn: Switch to per-device ACPI
TEST: amd/lamar.
Change-Id: Id8890ccd4a1ea783ad4740333ae6b061b6bbd7fc
Signed-off-by: Dave Frodin <dave.frodin(a)se-eng.com>
Reviewed-on: http://review.coreboot.org/8288
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
See http://review.coreboot.org/8288 for details.
-gerrit
the following patch was just integrated into master:
commit ef9a4e6aeca1305ca05c8946432f9baef050d136
Author: Dave Frodin <dave.frodin(a)se-eng.com>
Date: Tue Jan 27 07:16:03 2015 -0700
southbridge/amd/pi: Update Kconfig and makefiles for bolton
Change-Id: I208c931bdaee572c9df11b35c1e6e9f27609ea6c
Signed-off-by: Dave Frodin <dave.frodin(a)se-eng.com>
Reviewed-on: http://review.coreboot.org/8287
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
See http://review.coreboot.org/8287 for details.
-gerrit
the following patch was just integrated into master:
commit 9cfa742a264442a8796120964b06fcc8e03185bf
Author: Dave Frodin <dave.frodin(a)se-eng.com>
Date: Tue Jan 27 07:19:48 2015 -0700
southbridge/amd/pi: Add the bolton definitions
This adds the PCI and interrupt related definitions
for the bolton specific features.
Change-Id: Ia6530c57ec5a4a5c4525bfbae0eb5db04c0bef9e
Signed-off-by: Dave Frodin <dave.frodin(a)se-eng.com>
Reviewed-on: http://review.coreboot.org/8286
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones(a)se-eng.com>
See http://review.coreboot.org/8286 for details.
-gerrit
Kyösti Mälkki (kyosti.malkki(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8367
-gerrit
commit 09a34e52c1a0b81a9519f183b4cc640679edbb06
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Mon Feb 2 15:56:27 2015 +0200
PCI subsystem: Remove AGP bridge type
There is no auto-detection for AGP type and we have no hardware that
selects this. Furthermore, we treat AGP bridges just like PCI bridges,
there is no optimisation for higher bandwidth.
Change-Id: I4fe87c83411643cb9b8d3216f2af07bf098174d3
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/device/Kconfig | 5 ----
src/device/Makefile.inc | 1 -
src/device/agp_device.c | 75 ------------------------------------------------
src/device/pci_device.c | 4 ---
src/include/device/agp.h | 14 ---------
5 files changed, 99 deletions(-)
diff --git a/src/device/Kconfig b/src/device/Kconfig
index dc00b75..b613a1e 100644
--- a/src/device/Kconfig
+++ b/src/device/Kconfig
@@ -219,11 +219,6 @@ config PCIEXP_PLUGIN_SUPPORT
depends on PCI
default y
-config AGP_PLUGIN_SUPPORT
- bool
- depends on PCI
- default y
-
config CARDBUS_PLUGIN_SUPPORT
bool
depends on PCI
diff --git a/src/device/Makefile.inc b/src/device/Makefile.inc
index 7fdd9b5..8c9ba5d 100644
--- a/src/device/Makefile.inc
+++ b/src/device/Makefile.inc
@@ -6,7 +6,6 @@ ramstage-$(CONFIG_PCI) += pci_device.c
ramstage-$(CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT) += hypertransport.c
ramstage-$(CONFIG_PCIX_PLUGIN_SUPPORT) += pcix_device.c
ramstage-$(CONFIG_PCIEXP_PLUGIN_SUPPORT) += pciexp_device.c
-ramstage-$(CONFIG_AGP_PLUGIN_SUPPORT) += agp_device.c
ramstage-$(CONFIG_CARDBUS_PLUGIN_SUPPORT) += cardbus_device.c
ramstage-$(CONFIG_AZALIA_PLUGIN_SUPPORT) += azalia_device.c
ramstage-$(CONFIG_ARCH_RAMSTAGE_X86_32) += pnp_device.c
diff --git a/src/device/agp_device.c b/src/device/agp_device.c
deleted file mode 100644
index 550297a..0000000
--- a/src/device/agp_device.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2005 Linux Networx
- * (Written by Eric Biederman <ebiederman(a)lnxi.com> for Linux Networx)
- *
- * 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; version 2 of the License.
- *
- * 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
- */
-
-#include <console/console.h>
-#include <device/device.h>
-#include <device/pci.h>
-#include <device/pci_ids.h>
-#include <device/agp.h>
-
-static void agp_tune_dev(device_t dev)
-{
- unsigned int cap;
-
- cap = pci_find_capability(dev, PCI_CAP_ID_AGP);
- if (!cap)
- return;
-
- /* The OS is responsible for AGP tuning so do nothing here. */
-}
-
-unsigned int agp_scan_bus(struct bus *bus, unsigned int min_devfn,
- unsigned int max_devfn, unsigned int max)
-{
- device_t child;
-
- max = pci_scan_bus(bus, min_devfn, max_devfn, max);
-
- for (child = bus->children; child; child = child->sibling) {
- if ((child->path.pci.devfn < min_devfn) ||
- (child->path.pci.devfn > max_devfn)) {
- continue;
- }
- agp_tune_dev(child);
- }
-
- return max;
-}
-
-unsigned int agp_scan_bridge(device_t dev, unsigned int max)
-{
- return do_pci_scan_bridge(dev, max, agp_scan_bus);
-}
-
-/** Default device operations for AGP bridges. */
-static struct pci_operations agp_bus_ops_pci = {
- .set_subsystem = 0,
-};
-
-struct device_operations default_agp_ops_bus = {
- .read_resources = pci_bus_read_resources,
- .set_resources = pci_dev_set_resources,
- .enable_resources = pci_bus_enable_resources,
- .init = 0,
- .scan_bus = agp_scan_bridge,
- .enable = 0,
- .reset_bus = pci_bus_reset,
- .ops_pci = &agp_bus_ops_pci,
-};
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index 862ed0e..127ee32 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -32,7 +32,6 @@
#include <stdint.h>
#include <string.h>
#include <delay.h>
-#include <device/agp.h>
#include <device/cardbus.h>
#include <device/device.h>
#include <device/pci.h>
@@ -771,9 +770,6 @@ static struct device_operations *get_pci_bridge_ops(device_t dev)
return &default_pcix_ops_bus;
}
#endif
-#if CONFIG_AGP_PLUGIN_SUPPORT
- /* How do I detect a PCI to AGP bridge? */
-#endif
#if CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT
unsigned int htpos = 0;
while ((htpos = pci_find_next_capability(dev, PCI_CAP_ID_HT, htpos))) {
diff --git a/src/include/device/agp.h b/src/include/device/agp.h
deleted file mode 100644
index be2b833..0000000
--- a/src/include/device/agp.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* (c) 2005 Linux Networx GPL see COPYING for details */
-
-#ifndef DEVICE_AGP_H
-#define DEVICE_AGP_H
-
-#include <device/device.h>
-
-unsigned int agp_scan_bus(struct bus *bus,
- unsigned min_devfn, unsigned max_devfn, unsigned int max);
-unsigned int agp_scan_bridge(device_t dev, unsigned int max);
-
-extern struct device_operations default_agp_ops_bus;
-
-#endif /* DEVICE_AGP_H */
Kyösti Mälkki (kyosti.malkki(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8365
-gerrit
commit 6aae99711d062192e726d62fa2f29f15c87aff57
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Thu Feb 5 13:36:54 2015 +0200
AMD K8 fam10: Refactor logic around SB_HT_CHAIN_ON_BUS0
Change-Id: I452a93af452073eeac4e6cb9bbc232dc59e911c1
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/northbridge/amd/amdfam10/northbridge.c | 13 ++-----------
src/northbridge/amd/amdk8/northbridge.c | 11 +++--------
2 files changed, 5 insertions(+), 19 deletions(-)
diff --git a/src/northbridge/amd/amdfam10/northbridge.c b/src/northbridge/amd/amdfam10/northbridge.c
index a81dd82..f400558 100644
--- a/src/northbridge/amd/amdfam10/northbridge.c
+++ b/src/northbridge/amd/amdfam10/northbridge.c
@@ -196,20 +196,11 @@ static u32 amdfam10_scan_chain(device_t dev, u32 nodeid, struct bus *link, bool
* so we set the subordinate bus number to 0xff for the moment.
*/
- if (CONFIG_SB_HT_CHAIN_ON_BUS0 == 0) {
+ if ((CONFIG_SB_HT_CHAIN_ON_BUS0 == 0) || !is_sblink)
max++;
- } else if (is_sblink) {
- } else if (CONFIG_SB_HT_CHAIN_ON_BUS0 == 1) {
- max++;
- } else if (CONFIG_SB_HT_CHAIN_ON_BUS0 > 1) {
- // We can have 16 segmment and every segment have 256 bus,
- // For that case need the kernel support mmio pci config.
-
- // one node can have 8 link and segn is the same
- max++;
+ if ((CONFIG_SB_HT_CHAIN_ON_BUS0 > 1) && !is_sblink)
max = ALIGN_UP(max, 8);
- }
link->secondary = max;
link->subordinate = (max & ~0xff) | 0xfc;
diff --git a/src/northbridge/amd/amdk8/northbridge.c b/src/northbridge/amd/amdk8/northbridge.c
index 8fe38ff..312830a 100644
--- a/src/northbridge/amd/amdk8/northbridge.c
+++ b/src/northbridge/amd/amdk8/northbridge.c
@@ -139,17 +139,12 @@ static u32 amdk8_scan_chain(device_t dev, u32 nodeid, struct bus *link, bool is_
* We have no idea how many busses are behind this bridge yet,
* so we set the subordinate bus number to 0xff for the moment.
*/
- if (CONFIG_SB_HT_CHAIN_ON_BUS0 == 0) {
- max++;
- } else if (is_sblink) {
- } else if (CONFIG_SB_HT_CHAIN_ON_BUS0 == 1) {
- max++;
- } else if (CONFIG_SB_HT_CHAIN_ON_BUS0 > 1) {
- // second chain will be on 0x40, third 0x80, forth 0xc0
+ if ((CONFIG_SB_HT_CHAIN_ON_BUS0 == 0) || !is_sblink)
max++;
+
+ if ((CONFIG_SB_HT_CHAIN_ON_BUS0 > 1) && !is_sblink)
max = ALIGN_UP(max, 0x40);
- }
link->secondary = max;
link->subordinate = 0xff;
Kyösti Mälkki (kyosti.malkki(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8363
-gerrit
commit f7840f74b42bb9e48a31f5383b009d1c4b94df31
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Thu Feb 5 08:22:26 2015 +0200
AMD fam10: Eliminate local variable segn
While max gets updated, by definition segn must remain the same.
There is an (old) issue if max=0xff is passed to this function.
Change-Id: I08470b79ff074123e343d5f48181407e02bdf3ad
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/northbridge/amd/amdfam10/northbridge.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/northbridge/amd/amdfam10/northbridge.c b/src/northbridge/amd/amdfam10/northbridge.c
index 0a69d4d..287f468 100644
--- a/src/northbridge/amd/amdfam10/northbridge.c
+++ b/src/northbridge/amd/amdfam10/northbridge.c
@@ -168,7 +168,6 @@ static u32 amdfam10_scan_chain(device_t dev, u32 nodeid, struct bus *link, bool
u32 ht_unitid_base[4]; // here assume only 4 HT device on chain
u32 min_bus;
u32 busses;
- u32 segn = max>>8;
u32 max_devfn;
if (link->link_num > 3) {
@@ -214,11 +213,11 @@ static u32 amdfam10_scan_chain(device_t dev, u32 nodeid, struct bus *link, bool
// one node can have 8 link and segn is the same
min_bus = (((max & 0xff)>>3) + 1) << 3;
- max = min_bus | (segn<<8);
+ max = (max & ~0xff) | min_bus;
}
link->secondary = min_bus;
- link->subordinate = (segn<<8) | 0xfc;
+ link->subordinate = (max & ~0xff) | 0xfc;
/* Read the existing primary/secondary/subordinate bus
* number configuration.