Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1251
-gerrit
commit ce2a44e3cbb5766261da8f1893b64e030edd0070
Author: Patrick Georgi <patrick.georgi(a)secunet.com>
Date: Fri Jul 20 12:29:33 2012 +0200
Allow shutting down internal graphics if plugin graphics are preferred
VGA is this part-legacy thing that can cause trouble...
For this, introduce device_t->disable(dev) method, in which a driver
can take care to deregister the device if necessary.
Change-Id: I3fecec07f402e530458b79eda30b2c274101fefa
Signed-off-by: Patrick Georgi <patrick.georgi(a)secunet.com>
---
src/devices/device.c | 8 ++++++++
src/include/device/device.h | 1 +
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/devices/device.c b/src/devices/device.c
index d3f9b52..de27e88 100644
--- a/src/devices/device.c
+++ b/src/devices/device.c
@@ -762,6 +762,14 @@ static void set_vga_bridge_bits(void)
vga = vga_onboard;
}
+ /* If we prefer plugin VGA over chipset VGA, the chipset might
+ want to know. */
+ if (!CONFIG_ONBOARD_VGA_IS_PRIMARY && (vga != vga_onboard) &&
+ vga_onboard && vga_onboard->ops && vga_onboard->ops->disable) {
+ printk(BIOS_DEBUG, "Use plugin graphics over integrated.\n");
+ vga_onboard->ops->disable(vga_onboard);
+ }
+
if (vga) {
/* VGA is first add-on card or the only onboard VGA. */
printk(BIOS_DEBUG, "Setting up VGA for %s\n", dev_path(vga));
diff --git a/src/include/device/device.h b/src/include/device/device.h
index 819b789..8cc937f 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -32,6 +32,7 @@ struct device_operations {
void (*init)(device_t dev);
unsigned int (*scan_bus)(device_t bus, unsigned int max);
void (*enable)(device_t dev);
+ void (*disable)(device_t dev);
void (*set_link)(device_t dev, unsigned int link);
void (*reset_bus)(struct bus *bus);
#if CONFIG_GENERATE_SMBIOS_TABLES
Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1249
-gerrit
commit 3bb096d434e40819c882e841efc93c4b5d68f20a
Author: Patrick Georgi <patrick.georgi(a)secunet.com>
Date: Fri Jul 20 13:44:50 2012 +0200
Allow YABEL to fake write accesses to config space
A new Kconfig option tells YABEL to succeed on write accesses
on other devices' config space without performing the actual
write.
This is enough for some basic bus modification done by some
Option ROMs.
Change-Id: Iab04f3a5c350b96654da4ba26858037f4c4b5c0a
Signed-off-by: Patrick Georgi <patrick.georgi(a)secunet.com>
---
src/devices/Kconfig | 12 ++++++++++++
src/devices/oprom/yabel/io.c | 2 ++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/src/devices/Kconfig b/src/devices/Kconfig
index 5168819..87be8c0 100644
--- a/src/devices/Kconfig
+++ b/src/devices/Kconfig
@@ -105,6 +105,18 @@ config YABEL_PCI_ACCESS_OTHER_DEVICES
onboard graphics chips whose Option ROM needs to reconfigure the
north bridge.
+config YABEL_PCI_FAKE_WRITING_OTHER_DEVICES_CONFIG
+ prompt "Fake success on writing other device's config space"
+ bool
+ depends on YABEL_PCI_ACCESS_OTHER_DEVICES
+ help
+ By default, YABEL aborts when the Option ROM tries to write to other
+ devices' config spaces. With this option enabled, the write doesn't
+ follow through, but the Option ROM is allowed to go on.
+ This can create issues such as hanging Option ROMs (if it depends on
+ that other register changing to the written value), so test for
+ impact before using this option.
+
config YABEL_VIRTMEM_LOCATION
prompt "Location of YABEL's virtual memory"
hex
diff --git a/src/devices/oprom/yabel/io.c b/src/devices/oprom/yabel/io.c
index 00bb1a0..5c19b51 100644
--- a/src/devices/oprom/yabel/io.c
+++ b/src/devices/oprom/yabel/io.c
@@ -524,7 +524,9 @@ pci_cfg_write(X86EMU_pioAddr addr, u32 val, u8 size)
printf
("Config write access invalid! PCI device %x:%x.%x, offs: %x\n",
bus, devfn >> 3, devfn & 7, offs);
+#if !CONFIG_YABEL_PCI_FAKE_WRITING_OTHER_DEVICES_CONFIG
HALT_SYS();
+#endif
} else {
#if CONFIG_PCI_OPTION_ROM_RUN_YABEL
switch (size) {
Problem solved - was error in memory align - so, EHCI go to NULL pointer,
which cause PCI error.
Best regards,
Anton Kochkov.
On Fri, Jul 20, 2012 at 12:22 PM, Антон Кочков <anton.kochkov(a)gmail.com>wrote:
> Sorry, valid mainboard name - Foxconn H61MXV
> http://www.foxconnchannel.com/ProductDetail.aspx?T=motherboard&U=en-us00005…
>
> Best regards,
> Anton Kochkov.
>
>
>
>
> On Fri, Jul 20, 2012 at 12:10 PM, Антон Кочков <anton.kochkov(a)gmail.com>wrote:
>
>> Good day (or any other time)!
>> While working with/on libpayload for EHCI USB driver, i've found strange
>> error, when device is found (port status = 0x1803)
>> and sending first control transaction.
>> (usb_attach_device/get_free_address).
>> Mainboard - Foxconn N15235
>>
>> wait_for_tds(): ERROR with packet
>> ========= EHCI TD at [0x0004d000] =========
>> __EHCI_TD cerr: 0, total_len: 8
>> __EHCI_TD: next_qtd [0x0004d120]
>> __EHCI_TD: alt_next_qtd [0x00000001]
>> __EHCI_TD: token [0x00080248]
>> __EHCI_TD: Bytes to Transfer [8]
>> __EHCI_TD: PID CODE: [2]
>> __EHCI_TD: Interrupt On Complete (IOC) [0]
>> __EHCI_TD: Status Active [0]
>> __EHCI_TD: Status Halted [1]
>> __EHCI_TD: Status Data Buffer Error [0]
>> __EHCI_TD: Status Babble detected [0]
>> __EHCI_TD: Status Transaction Error [1]
>> __EHCI_TD: Status Missed Micro Frame [0]
>> __EHCI_TD: Status Split Transaction State [0]
>> __EHCI_TD: Status Ping State [0]
>> wait_for_tds(): -----------------
>>
>> Attaching full log, where dumping registers/packets on every step.
>> Hope someone know the reason.
>>
>> Best regards,
>> Anton Kochkov.
>>
>>
>
the following patch was just integrated into master:
commit 999c6c4141e41032126f932594aede28baa71645
Author: Patrick Georgi <patrick.georgi(a)secunet.com>
Date: Fri Jul 20 12:47:06 2012 +0200
sconfig: typo fix
eliminate printf format warning.
Change-Id: I51f75a259d28c5de788f57c3d720b76ca638e330
Signed-off-by: Patrick Georgi <patrick.georgi(a)secunet.com>
Build-Tested: build bot (Jenkins) at Fri Jul 20 13:07:55 2012, giving +1
Reviewed-By: Peter Stuge <peter(a)stuge.se> at Fri Jul 20 13:11:46 2012, giving +2
See http://review.coreboot.org/1248 for details.
-gerrit
Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1248
-gerrit
commit 999c6c4141e41032126f932594aede28baa71645
Author: Patrick Georgi <patrick.georgi(a)secunet.com>
Date: Fri Jul 20 12:47:06 2012 +0200
sconfig: typo fix
eliminate printf format warning.
Change-Id: I51f75a259d28c5de788f57c3d720b76ca638e330
Signed-off-by: Patrick Georgi <patrick.georgi(a)secunet.com>
---
util/sconfig/main.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index ca8c3c5..989f747 100644
--- a/util/sconfig/main.c
+++ b/util/sconfig/main.c
@@ -353,7 +353,7 @@ void add_ioapic_info(struct device *dev, int apicid, const char *_srcpin, int ir
}
if (srcpin > 3) {
- printf("ERROR: srcpin '%d' invalid\n");
+ printf("ERROR: srcpin '%d' invalid\n", srcpin);
exit(1);
}
dev->pci_irq_info[srcpin].ioapic_irq_pin = irqpin;
Sorry, valid mainboard name - Foxconn H61MXV
http://www.foxconnchannel.com/ProductDetail.aspx?T=motherboard&U=en-us00005…
Best regards,
Anton Kochkov.
On Fri, Jul 20, 2012 at 12:10 PM, Антон Кочков <anton.kochkov(a)gmail.com>wrote:
> Good day (or any other time)!
> While working with/on libpayload for EHCI USB driver, i've found strange
> error, when device is found (port status = 0x1803)
> and sending first control transaction.
> (usb_attach_device/get_free_address).
> Mainboard - Foxconn N15235
>
> wait_for_tds(): ERROR with packet
> ========= EHCI TD at [0x0004d000] =========
> __EHCI_TD cerr: 0, total_len: 8
> __EHCI_TD: next_qtd [0x0004d120]
> __EHCI_TD: alt_next_qtd [0x00000001]
> __EHCI_TD: token [0x00080248]
> __EHCI_TD: Bytes to Transfer [8]
> __EHCI_TD: PID CODE: [2]
> __EHCI_TD: Interrupt On Complete (IOC) [0]
> __EHCI_TD: Status Active [0]
> __EHCI_TD: Status Halted [1]
> __EHCI_TD: Status Data Buffer Error [0]
> __EHCI_TD: Status Babble detected [0]
> __EHCI_TD: Status Transaction Error [1]
> __EHCI_TD: Status Missed Micro Frame [0]
> __EHCI_TD: Status Split Transaction State [0]
> __EHCI_TD: Status Ping State [0]
> wait_for_tds(): -----------------
>
> Attaching full log, where dumping registers/packets on every step.
> Hope someone know the reason.
>
> Best regards,
> Anton Kochkov.
>
>