Marc Jones (marcj303(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at
http://review.coreboot.org/66
-gerrit
commit cd3d80c3e6c6c4b3de63802ddab280da3c96e975
Author: Marc Jones <marcj303(a)gmail.com>
Date: Tue Jun 28 14:30:05 2011 -0600
Libpayload needs to clear the bss region.
Libpayload shouldn't count on coreboot or other payloads to clear memory. This fixes problems with payloads being loaded after or on top of each other.
Change-Id: I30303d47e465e8921f47acab667c7998ba79fca7
Signed-off-by: Marc Jones <marcj303(a)gmail.com>
---
payloads/libpayload/arch/i386/head.S | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/payloads/libpayload/arch/i386/head.S b/payloads/libpayload/arch/i386/head.S
index db18a51..88db412 100644
--- a/payloads/libpayload/arch/i386/head.S
+++ b/payloads/libpayload/arch/i386/head.S
@@ -70,10 +70,17 @@ _init:
movl %esp, %esi
/* Store EAX and EBX */
-
movl %eax,loader_eax
movl %ebx,loader_ebx
+ /* Clear the bss */
+ cld
+ movl $.bss, %edi
+ movl $_end, %ecx
+ subl %edi, %ecx
+ xor %ax, %ax
+ rep stosb
+
/* Setup new stack. */
movl $_stack, %ebx
the following patch was just integrated into master:
commit 284d35814a8b70c7bb995e00710fe7a61cf7f9e7
Author: Sven Schnelle <svens(a)stackframe.org>
Date: Tue Jun 28 08:06:18 2011 +0200
SMM: add guard and include types.h in cpu/x86/smm.h
Change-Id: I002845cf7a37cd6885456131826ae0ba681823ef
Signed-off-by: Sven Schnelle <svens(a)stackframe.org>
See http://review.coreboot.org/64 for details.
-gerrit
the following patch was just integrated into master:
commit 88f214ec674aa77c05742b31553b671e566ce01a
Author: Sven Schnelle <svens(a)stackframe.org>
Date: Tue Jun 28 08:05:26 2011 +0200
X60: remove pci config register save/restore
SMM code already makes sure this register is saved and restored,
so we don't have to do it.
Change-Id: I078e1227de4436fba9c5fb3879a564c981cb0f9a
Signed-off-by: Sven Schnelle <svens(a)stackframe.org>
See http://review.coreboot.org/65 for details.
-gerrit
On Thu, 23 Jun 2011 10:18:55 -0700, Stefan Reinauer wrote:
>> >Is it integrated into the payload? Reading the
>> > QEMU_Build_tutorial, http://www.coreboot.org/QEMU_Build_Tutorial,
>> led me
>> > to try:
>> >
>> > $ qemu -bios build/coreboot.rom -hda /dev/zero -serial stdio
>> >
>> > This resulted in something else entirely, the shell output
>> terminating
>> > in the following:
>> >
>> > coreboot memory table:
>> > 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES
>> > 1. 0000000000001000-000000000009ffff: RAM
>> > 2. 00000000000c0000-0000000017feffff: RAM
>> > 3. 0000000017ff0000-0000000017ffffff: CONFIGURATION TABLES
>> > 4. 00000000ff800000-00000000ffffffff: RESERVED
>> > Wrote coreboot table at: 17ff1400 - 17ff15c4 checksum 6c1c
>> > coreboot table: 452 bytes.
>> > Multiboot Information structure has been written.
>> > 0. FREE SPACE 17ff3400 0000cc00
>> > 1. GDT 17ff0200 00000200
>> > 2. IRQ TABLE 17ff0400 00001000
>> > 3. COREBOOT 17ff1400 00002000
>> > Check CBFS header at fffcfc39
>> > magic is 386f92fa
>> > ERROR: No valid CBFS header found!
>> > CBFS: Could not find file fallback/payload
>> > Boot failed.
>>
>> You're now running coreboot, but coreboot was unable to find your
>> payload (eg, SeaBIOS).
>
> However, it seems the CBFS header is corrupted, so it is not even
> checking for a payload file.
>
> Not sure why, on first sight.
ramstage was found successfully, so this might be a matter of chip
mapping (or rather its emulation)
Patrick
Kerry She (shekairui(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at
http://review.coreboot.org/63
-gerrit
commit d7048ee00e4b8cfe5849c384b957aee1bb407ffc
Author: Kerry She <shekairui(a)gmail.com>
Date: Fri Jun 24 22:52:15 2011 +0800
amd southbirdge sb800 wrapper, pci bridge fix
sb800 pci bridge SHOULD enabled by default according to the chipset document,
but actually not enabled on some mainboard.
enable sb800 pci bridge when told to enable in devicetree.cb.
tested on ibase persimmon mainboard.
Change-Id: I42075907b4a003b2e58e5b19635a2e1b3fe094c3
Signed-off-by: Kerry She <shekairui(a)gmail.com>
---
src/mainboard/advansus/a785e-i/devicetree.cb | 2 +-
src/mainboard/amd/inagua/devicetree.cb | 2 +-
src/mainboard/amd/persimmon/devicetree.cb | 2 +-
src/mainboard/asrock/e350m1/devicetree.cb | 2 +-
src/southbridge/amd/cimx/sb800/late.c | 17 ++++++++++++++++-
5 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/src/mainboard/advansus/a785e-i/devicetree.cb b/src/mainboard/advansus/a785e-i/devicetree.cb
index 25a1f64..79df8c9 100644
--- a/src/mainboard/advansus/a785e-i/devicetree.cb
+++ b/src/mainboard/advansus/a785e-i/devicetree.cb
@@ -98,7 +98,7 @@ chip northbridge/amd/amdfam10/root_complex
end
end #superio/winbond/w83627hf
end # LPC 0x439d
- device pci 14.4 off end # PCI 0x4384 # PCI-b conflict with GPIO.
+ device pci 14.4 off end # PCIB 0x4384, NOTE: PCI interface pins shared with GPIO {GPIO 35:0}
device pci 14.5 on end # USB 2
device pci 14.6 off end # Gec
device pci 15.0 on end # PCIe 0
diff --git a/src/mainboard/amd/inagua/devicetree.cb b/src/mainboard/amd/inagua/devicetree.cb
index 67be34e..82658cf 100644
--- a/src/mainboard/amd/inagua/devicetree.cb
+++ b/src/mainboard/amd/inagua/devicetree.cb
@@ -65,7 +65,7 @@ chip northbridge/amd/agesa/family14/root_complex
end
end # kbc1100
end #LPC
- device pci 14.4 on end # PCI 0x4384
+ device pci 14.4 on end # PCIB 0x4384, NOTE: PCI interface pins shared with GPIO {GPIO 35:0}
device pci 14.5 on end # USB 2
device pci 15.0 on end # PCIe PortA
device pci 15.1 on end # PCIe PortB
diff --git a/src/mainboard/amd/persimmon/devicetree.cb b/src/mainboard/amd/persimmon/devicetree.cb
index a676388..3cb8d1e 100644
--- a/src/mainboard/amd/persimmon/devicetree.cb
+++ b/src/mainboard/amd/persimmon/devicetree.cb
@@ -81,7 +81,7 @@ chip northbridge/amd/agesa/family14/root_complex
end
end # f81865f
end #LPC
- device pci 14.4 on end # PCI 0x4384
+ device pci 14.4 on end # PCIB 0x4384, NOTE: PCI interface pins shared with GPIO {GPIO 35:0}
device pci 14.5 on end # USB 2
device pci 15.0 off end # PCIe PortA
device pci 15.1 off end # PCIe PortB
diff --git a/src/mainboard/asrock/e350m1/devicetree.cb b/src/mainboard/asrock/e350m1/devicetree.cb
index 5983ed2..bff8151 100644
--- a/src/mainboard/asrock/e350m1/devicetree.cb
+++ b/src/mainboard/asrock/e350m1/devicetree.cb
@@ -97,7 +97,7 @@ chip northbridge/amd/agesa/family14/root_complex
end
end
end #LPC
- device pci 14.4 on end # PCI 0x4384
+ device pci 14.4 on end # PCIB 0x4384, NOTE: PCI interface pins shared with GPIO {GPIO 35:0}
device pci 14.5 on end # USB 2
device pci 15.0 on end # PCIe PortA
device pci 15.1 on end # PCIe PortB: NIC
diff --git a/src/southbridge/amd/cimx/sb800/late.c b/src/southbridge/amd/cimx/sb800/late.c
index 7367a18..b16bc50 100644
--- a/src/southbridge/amd/cimx/sb800/late.c
+++ b/src/southbridge/amd/cimx/sb800/late.c
@@ -248,6 +248,21 @@ static const struct pci_driver gec_driver __pci_driver = {
.device = PCI_DEVICE_ID_ATI_SB800_GEC,
};
+/**
+ * @brief Enable PCI Bridge
+ *
+ * PcibConfig [PM_Reg: EAh], PCIDisable [Bit0]
+ * 'PCIDisable' set to 0 to enable P2P bridge.
+ * 'PCIDisable' set to 1 to disable P2P bridge and enable PCI interface pins
+ * to function as GPIO {GPIO 35:0}.
+ */
+static void pci_init(device_t dev)
+{
+ /* PCI Bridge SHOULD be enabled by default according to SB800 rrg,
+ * but actually was disabled in some platform, so I have to enabled it.
+ */
+ RWMEM(ACPI_MMIO_BASE + PMIO_BASE + SB_PMIOA_REGEA, AccWidthUint8, ~BIT0, 0);
+}
static void pcie_init(device_t dev)
{
@@ -258,7 +273,7 @@ static struct device_operations pci_ops = {
.read_resources = pci_bus_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_bus_enable_resources,
- .init = pcie_init,
+ .init = pci_init,
.scan_bus = pci_scan_bridge,
.reset_bus = pci_bus_reset,
.ops_pci = &lops_pci,
On 06/23/2011 10:18 AM, Stefan Reinauer wrote:
> On Tue, Jun 21, 2011 at 8:34 PM, Kevin O'Connor <kevin(a)koconnor.net> wrote:
>>
>> On Mon, Jun 20, 2011 at 10:58:06PM -0700, Darren Hart wrote:
>>> On 06/20/2011 04:09 PM, Cristian Măgherușan-Stanciu wrote:
>>>> Hi,
>>>>
>>>> I documented the latest developments (git and crossgcc) at
>>>> http://www.coreboot.org/Build_HOWTO. Please someone double-check.
>>>
>>> My build succeeded following these instructions. As a first-time user,
>>> it would be helpful to have a quick-start guide which would be basically
>>> this wiki page + the steps necessary to do boot what I built in qemu.
>>> There are bits of that here:
>>>
>>> http://www.coreboot.org/QEMU
>>
>> Unfortunately, it looks like that page has old information on it.
>>
>
> Which version of Qemu was that again?
$ qemu --version
QEMU PC emulator version 0.12.5 (qemu-kvm-0.12.5), Copyright (c)
2003-2008 Fabrice Bellard
>
>>
>>> Is it integrated into the payload? Reading the
>>> QEMU_Build_tutorial, http://www.coreboot.org/QEMU_Build_Tutorial, led me
>>> to try:
>>>
>>> $ qemu -bios build/coreboot.rom -hda /dev/zero -serial stdio
>>>
>>> This resulted in something else entirely, the shell output terminating
>>> in the following:
>>>
>>> coreboot memory table:
>>> 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES
>>> 1. 0000000000001000-000000000009ffff: RAM
>>> 2. 00000000000c0000-0000000017feffff: RAM
>>> 3. 0000000017ff0000-0000000017ffffff: CONFIGURATION TABLES
>>> 4. 00000000ff800000-00000000ffffffff: RESERVED
>>> Wrote coreboot table at: 17ff1400 - 17ff15c4 checksum 6c1c
>>> coreboot table: 452 bytes.
>>> Multiboot Information structure has been written.
>>> 0. FREE SPACE 17ff3400 0000cc00
>>> 1. GDT 17ff0200 00000200
>>> 2. IRQ TABLE 17ff0400 00001000
>>> 3. COREBOOT 17ff1400 00002000
>>> Check CBFS header at fffcfc39
>>> magic is 386f92fa
>>> ERROR: No valid CBFS header found!
>>> CBFS: Could not find file fallback/payload
>>> Boot failed.
>>
>> You're now running coreboot, but coreboot was unable to find your
>> payload (eg, SeaBIOS).
>
> However, it seems the CBFS header is corrupted, so it is not even
> checking for a payload file.
>
> Not sure why, on first sight.
Alright. What I'm trying to do here is demonstrate a known working state
and use-case of coreboot. Once I have that working I want to start
looking at getting it working on my hardware. Is there a better
known-working state of coreboot I can use? I'd prefer to stick with qemu
for this part.
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel