the following patch was just integrated into master:
commit 0135702802601c19937eec57513f3a6e2f4d1e00
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Fri Mar 22 20:23:17 2013 -0500
x86: mark .textfirst as allocatable and executable
When the linking of ramstage was changed to use an intermeidate
object with all ramstage objects in it the .textfirst section
was introduced to keep the entry point at 0. However, the
section was not marked allocatable or executable. Nor was it
marked as @progbits. That didn't cause an issue on its own since
.textfirst was directly called out in the linker script. However,
the rmodule infrastructure relies on all the relocation entries
being included in the rmodule. Without the proper section attributes
the .rel.textfirst section entries were not being included in
the final ramstage rmodule.
Change-Id: I54e7055a19bee6c86e269eba047d9a560702afde
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2885
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Build-Tested: build bot (Jenkins) at Sat Mar 23 04:05:02 2013, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Sat Mar 23 19:38:52 2013, giving +2
See http://review.coreboot.org/2885 for details.
-gerrit
the following patch was just integrated into master:
commit b467f1ddafb0ad4769b5d51b88563966af7d563c
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Fri Mar 22 19:59:52 2013 -0500
relocatable ramstage: fix linking
The ramstage is now linked using an intermediate object that
is created from the complete list of ramstage object files.
The rmodule code was developed when ramstage was linked using
an archive file. Because of the fact that the rmodule headers
are not referenced from any other object the link could start
by specifying the rmodule header object for ramstage. That,
however, is not the case as all ramstage objects are included
in the intermediate linked object. Therefore, the
ramstage_module_header.ramstage.o object file needs to be removed
from the object list for the ramstage rmodule.
Change-Id: I6a79b6f8dd1dbfe40fdc7753297243c3c9b45fae
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2884
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Build-Tested: build bot (Jenkins) at Sat Mar 23 03:52:32 2013, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Sat Mar 23 19:37:41 2013, giving +2
See http://review.coreboot.org/2884 for details.
-gerrit
the following patch was just integrated into master:
commit c875e2aaabb1226b0ecbf98df6112ef8ce28dd41
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Fri Mar 22 19:48:39 2013 -0500
vboot module: fix compilation issues
There were 3 things stopping the vboot module from being
compiled:
1. The vboot_reference code removed in the firmware/arch/$(ARCH)/include
directory. This caused romcc to fail because romcc fails if -I<dir>
points to non-existent directory.
2. The rmodule API does not have the no-clearing-of-bss variant of the
load function.
3. cbfs API changes.
Change-Id: I1e1296c71c5831d56fc9acfaa578c84a948b4ced
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2881
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Build-Tested: build bot (Jenkins) at Sat Mar 23 03:08:00 2013, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Sat Mar 23 19:34:57 2013, giving +2
See http://review.coreboot.org/2881 for details.
-gerrit
the following patch was just integrated into master:
commit 1989b4bd560045b524fad2f5d189907e4a8abe26
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Fri Mar 22 19:52:42 2013 -0500
x86: expose console_tx_flush in romstage
The vboot module relied on being able to flush the console
after it called vtxprintf() from its log wrapper function.
Expose the console_tx_flush() function in romstage so the
vboot module can ensure messages are flushed.
Change-Id: I578053df4b88c2068bd9cc90eea5573069a0a4e8
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2882
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Build-Tested: build bot (Jenkins) at Sat Mar 23 03:25:31 2013, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Sat Mar 23 19:35:54 2013, giving +2
See http://review.coreboot.org/2882 for details.
-gerrit
the following patch was just integrated into master:
commit d23e292ef624ae1000b700399ece00c72946ede1
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Fri Mar 22 19:55:35 2013 -0500
rmodule: align ld script with latest x86 ld script
The x86 linker script added a .textfirst section. In
order to properly link ramstage as a relocatable module
the .textfirst section needs to be included.
Also, the support for code coverage was added by including
the constructor section and symbols. Coverage has not been
tested as I suspect it might not work in a relocatable
environment without some tweaking. However, the section
and symbols are there if needed.
Change-Id: Ie1f6d987d6eb657ed4aa3a8918b2449dafaf9463
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2883
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Build-Tested: build bot (Jenkins) at Sat Mar 23 03:38:57 2013, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Sat Mar 23 19:36:18 2013, giving +2
See http://review.coreboot.org/2883 for details.
-gerrit
the following patch was just integrated into master:
commit 2bd2e37536a7bc31023233cf3b7c6682cbd8176b
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Fri Mar 22 19:46:16 2013 -0500
cbfs: fix relocation ramstage compiler errors
There were some cbfs calls that did not get transitioned
to the new cbfs API. Fix the callsites to conform to the
actual cbfs, thus fixing the copilation errors.
Change-Id: Ia9fe2c4efa32de50982e21bd01457ac218808bd3
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2880
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Build-Tested: build bot (Jenkins) at Sat Mar 23 02:54:46 2013, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Sat Mar 23 19:34:15 2013, giving +2
See http://review.coreboot.org/2880 for details.
-gerrit
the following patch was just integrated into master:
commit 73982c3c685395b74b611cde7f13f0145b8c0a4d
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Fri Mar 22 19:35:56 2013 -0500
xcompile: honor LINKER_SUFFIX variable
In commit e820e5cb3aed810fa9ba6047ce9b8bf352335e32 titled
"Make xcompile support multiple architectures" the LINKER_SUFFIX
variable was introduced to bypass gold if the bfd linker was
available. However, the LINKER_SUFFIX wasn't honored when
the compiler evironment variables were set. Fix the original
intention.
Change-Id: I608f1e0cc3d0bea3ba1e51b167d88c66d266bceb
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2879
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Build-Tested: build bot (Jenkins) at Sat Mar 23 02:41:09 2013, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Sat Mar 23 19:32:43 2013, giving +2
See http://review.coreboot.org/2879 for details.
-gerrit
Aaron Durbin (adurbin(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2897
-gerrit
commit 1a63f0b0fe329cfd2324ccf0a4f918e9317287ee
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Sat Mar 23 00:12:19 2013 -0500
x86: dynamic cbmem: fix acpi reservations
If a configuration was not using RELOCTABLE_RAMSTAGE, but it
was using HAVE_ACPI_RESUME then the ACPI memory was not being
marked as reserved to the OS. The reason is that memory is marked as
reserved during write_coreboot_table(). These reservations were
being added to cbmem after the call to write_coreboot_table(). In
the non-dynamic cbmem case this sequence is fine because cbmem area
is a fixed size and is already reserved. For the dynamic cbmem case
that no longer holds by the nature of the dynamic cbmem.
Change-Id: I9aa44205205bfef75a9e7d9f02cf5c93d7c457b2
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
---
src/arch/x86/boot/tables.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/arch/x86/boot/tables.c b/src/arch/x86/boot/tables.c
index 4448333..6355a1b 100644
--- a/src/arch/x86/boot/tables.c
+++ b/src/arch/x86/boot/tables.c
@@ -203,6 +203,22 @@ struct lb_memory *write_tables(void)
}
#endif
+ post_code(0x9e);
+
+#if CONFIG_HAVE_ACPI_RESUME
+/* Only add CBMEM_ID_RESUME when the ramstage isn't relocatable. */
+#if !CONFIG_RELOCATABLE_RAMSTAGE
+ /* Let's prepare the ACPI S3 Resume area now already, so we can rely on
+ * it begin there during reboot time. We don't need the pointer, nor
+ * the result right now. If it fails, ACPI resume will be disabled.
+ */
+ cbmem_add(CBMEM_ID_RESUME, HIGH_MEMORY_SAVE);
+#endif
+#if CONFIG_NORTHBRIDGE_AMD_AGESA_FAMILY14 || CONFIG_NORTHBRIDGE_AMD_AGESA_FAMILY15_TN
+ cbmem_add(CBMEM_ID_RESUME_SCRATCH, CONFIG_HIGH_SCRATCH_MEMORY_SIZE);
+#endif
+#endif
+
#define MAX_COREBOOT_TABLE_SIZE (32 * 1024)
post_code(0x9d);
@@ -230,22 +246,6 @@ struct lb_memory *write_tables(void)
rom_table_start, rom_table_end);
}
- post_code(0x9e);
-
-#if CONFIG_HAVE_ACPI_RESUME
-/* Only add CBMEM_ID_RESUME when the ramstage isn't relocatable. */
-#if !CONFIG_RELOCATABLE_RAMSTAGE
- /* Let's prepare the ACPI S3 Resume area now already, so we can rely on
- * it begin there during reboot time. We don't need the pointer, nor
- * the result right now. If it fails, ACPI resume will be disabled.
- */
- cbmem_add(CBMEM_ID_RESUME, HIGH_MEMORY_SAVE);
-#endif
-#if CONFIG_NORTHBRIDGE_AMD_AGESA_FAMILY14 || CONFIG_NORTHBRIDGE_AMD_AGESA_FAMILY15_TN
- cbmem_add(CBMEM_ID_RESUME_SCRATCH, CONFIG_HIGH_SCRATCH_MEMORY_SIZE);
-#endif
-#endif
-
#if CONFIG_MULTIBOOT
post_code(0x9d);
Aaron Durbin (adurbin(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2895
-gerrit
commit 3a73b5de23b9c67bc21bb42b30d1aa63d7b27a0c
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Sat Mar 23 00:00:54 2013 -0500
dynamic cbmem: fix memconsole and timestamps
There are assumptions that COLLECT_TIMESTAMPS and CONSOLE_CBMEM
rely on EARLY_CBMEM_INIT. This isn't true in the face of
DYNAMIC_CBMEM as it provides the same properties as EARLY_CBMEM_INIT.
Therefore, allow one to select COLLECT_TIMESTAMPS and CONSOLE_CBMEM
when DYNAMIC_CBMEM is selected. Lastly, don't hard code the cbmem
implementation when COLLECT_TIMESTAMPS is selected.
Change-Id: I053ebb385ad54a90a202da9d70b9d87ecc963656
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
---
src/Kconfig | 2 +-
src/console/Kconfig | 2 +-
src/lib/Makefile.inc | 3 ++-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig
index 18b5bad..c3cc6bf 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -189,7 +189,7 @@ config DYNAMIC_CBMEM
config COLLECT_TIMESTAMPS
bool "Create a table of timestamps collected during boot"
- depends on EARLY_CBMEM_INIT
+ depends on (EARLY_CBMEM_INIT || DYNAMIC_CBMEM)
help
Make coreboot create a table of timer-ID/timer-value pairs to
allow measuring time spent at different phases of the boot process.
diff --git a/src/console/Kconfig b/src/console/Kconfig
index 7fbed4a..d2cff57 100644
--- a/src/console/Kconfig
+++ b/src/console/Kconfig
@@ -219,7 +219,7 @@ config CONSOLE_NE2K_IO_PORT
boundary, qemu needs broader align)
config CONSOLE_CBMEM
- depends on EARLY_CBMEM_INIT
+ depends on (EARLY_CBMEM_INIT || DYNAMIC_CBMEM)
bool "Send console output to a CBMEM buffer"
default n
help
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index e8ed4f4..9d3588e 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -47,7 +47,8 @@ romstage-$(CONFIG_CONSOLE_SERIAL8250MEM) += uart8250mem.c
romstage-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
romstage-$(CONFIG_CONSOLE_NE2K) += ne2k.c
romstage-$(CONFIG_USBDEBUG) += usbdebug.c
-romstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c cbmem.c
+romstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c
+romstage-$(CONFIG_EARLY_CBMEM_INIT) += cbmem.c
romstage-y += compute_ip_checksum.c
romstage-y += memmove.c
romstage-$(CONFIG_ARCH_X86) += gcc.c