Aaron Durbin (adurbin(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8708
-gerrit
commit 11c2d69b36d58e98af04abfbd089d3300d77302c
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Tue Mar 17 11:43:44 2015 -0500
loaders: add program_loading.h header file
Instead of two headers for payload and ramstage loading
combine the 2 files into one. This also allows for easier
refactoring by keeping header files consistent.
Change-Id: I4a6dffb78ad84c78e6e96c886d361413f9b4a17d
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
---
src/arch/arm/boot.c | 2 +-
src/arch/arm64/boot.c | 2 +-
src/arch/riscv/boot.c | 2 +-
src/arch/x86/boot/boot.c | 2 +-
src/arch/x86/lib/cbfs_and_run.c | 2 +-
src/cpu/x86/mirror_payload.c | 2 +-
src/include/payload_loader.h | 66 -------------------
src/include/program_loading.h | 87 ++++++++++++++++++++++++++
src/include/ramstage_loader.h | 34 ----------
src/lib/hardwaremain.c | 2 +-
src/lib/loaders/cbfs_payload_loader.c | 2 +-
src/lib/loaders/cbfs_ramstage_loader.c | 2 +-
src/lib/loaders/load_and_run_payload.c | 2 +-
src/lib/loaders/load_and_run_ramstage.c | 2 +-
src/lib/selfboot.c | 2 +-
src/vendorcode/google/chromeos/vboot_handoff.c | 2 +-
src/vendorcode/google/chromeos/vboot_loader.c | 2 +-
17 files changed, 101 insertions(+), 114 deletions(-)
diff --git a/src/arch/arm/boot.c b/src/arch/arm/boot.c
index 85b2cce..5217a9f 100644
--- a/src/arch/arm/boot.c
+++ b/src/arch/arm/boot.c
@@ -21,7 +21,7 @@
#include <arch/stages.h>
#include <cbmem.h>
#include <console/console.h>
-#include <payload_loader.h>
+#include <program_loading.h>
void arch_payload_run(const struct payload *payload)
{
diff --git a/src/arch/arm64/boot.c b/src/arch/arm64/boot.c
index 85b2cce..5217a9f 100644
--- a/src/arch/arm64/boot.c
+++ b/src/arch/arm64/boot.c
@@ -21,7 +21,7 @@
#include <arch/stages.h>
#include <cbmem.h>
#include <console/console.h>
-#include <payload_loader.h>
+#include <program_loading.h>
void arch_payload_run(const struct payload *payload)
{
diff --git a/src/arch/riscv/boot.c b/src/arch/riscv/boot.c
index ecaf86f..ff65cc3 100644
--- a/src/arch/riscv/boot.c
+++ b/src/arch/riscv/boot.c
@@ -19,7 +19,7 @@
#include <console/console.h>
#include <arch/stages.h>
-#include <payload_loader.h>
+#include <program_loading.h>
#include <console/uart.h>
void arch_payload_run(const struct payload *payload)
diff --git a/src/arch/x86/boot/boot.c b/src/arch/x86/boot/boot.c
index 29070a0..8f7f0e0 100644
--- a/src/arch/x86/boot/boot.c
+++ b/src/arch/x86/boot/boot.c
@@ -1,6 +1,6 @@
#include <console/console.h>
#include <arch/stages.h>
-#include <payload_loader.h>
+#include <program_loading.h>
#include <ip_checksum.h>
#include <string.h>
diff --git a/src/arch/x86/lib/cbfs_and_run.c b/src/arch/x86/lib/cbfs_and_run.c
index ca8d61b..d279b72 100644
--- a/src/arch/x86/lib/cbfs_and_run.c
+++ b/src/arch/x86/lib/cbfs_and_run.c
@@ -18,7 +18,7 @@
*/
#include <arch/stages.h>
-#include <ramstage_loader.h>
+#include <program_loading.h>
void asmlinkage copy_and_run(void)
{
diff --git a/src/cpu/x86/mirror_payload.c b/src/cpu/x86/mirror_payload.c
index edd2641..0ba8d05 100644
--- a/src/cpu/x86/mirror_payload.c
+++ b/src/cpu/x86/mirror_payload.c
@@ -22,7 +22,7 @@
#include <string.h>
#include <console/console.h>
#include <bootmem.h>
-#include <payload_loader.h>
+#include <program_loading.h>
void mirror_payload(struct payload *payload)
{
diff --git a/src/include/payload_loader.h b/src/include/payload_loader.h
deleted file mode 100644
index 7a3f045..0000000
--- a/src/include/payload_loader.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2014 Google Inc.
- *
- * 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
- */
-#ifndef PAYLOAD_LOADER_H
-#define PAYLOAD_LOADER_H
-
-#include <stdint.h>
-#include <stddef.h>
-
-struct buffer_area {
- void *data;
- size_t size;
-};
-
-struct payload {
- const char *name;
- struct buffer_area backing_store;
- /* Used when payload wants memory coreboot ramstage is running at. */
- struct buffer_area bounce;
- void *entry;
-};
-
-/*
- * Load payload into memory and return pointer to payload structure. Returns
- * NULL on error.
- */
-struct payload *payload_load(void);
-
-/* Run the loaded payload. */
-void payload_run(const struct payload *payload);
-
-/* Mirror the payload to be loaded. */
-void mirror_payload(struct payload *payload);
-
-/* architecture specific function to run payload. */
-void arch_payload_run(const struct payload *payload);
-
-/* Payload loading operations. */
-struct payload_loader_ops {
- const char *name;
- /*
- * Fill in payload_backing_store structure. Return 0 on success, < 0
- * on failure.
- */
- int (*locate)(struct payload *payload);
-};
-
-/* Defined in src/lib/selfboot.c */
-void *selfload(struct payload *payload);
-
-#endif /* PAYLOAD_LOADER_H */
diff --git a/src/include/program_loading.h b/src/include/program_loading.h
new file mode 100644
index 0000000..8ceebc1
--- /dev/null
+++ b/src/include/program_loading.h
@@ -0,0 +1,87 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2015 Google Inc.
+ *
+ * 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
+ */
+#ifndef PROGRAM_LOADING_H
+#define PROGRAM_LOADING_H
+
+#include <stdint.h>
+#include <stddef.h>
+
+
+/************************
+ * RAMSTAGE LOADING *
+ ************************/
+
+struct cbmem_entry;
+
+/* Run ramstage from romstage. */
+void run_ramstage(void);
+
+struct ramstage_loader_ops {
+ const char *name;
+ void *(*load)(uint32_t cbmem_id, const char *name,
+ const struct cbmem_entry **cbmem_entry);
+};
+
+/***********************
+ * PAYLOAD LOADING *
+ ***********************/
+
+struct buffer_area {
+ void *data;
+ size_t size;
+};
+
+struct payload {
+ const char *name;
+ struct buffer_area backing_store;
+ /* Used when payload wants memory coreboot ramstage is running at. */
+ struct buffer_area bounce;
+ void *entry;
+};
+
+/*
+ * Load payload into memory and return pointer to payload structure. Returns
+ * NULL on error.
+ */
+struct payload *payload_load(void);
+
+/* Run the loaded payload. */
+void payload_run(const struct payload *payload);
+
+/* Mirror the payload to be loaded. */
+void mirror_payload(struct payload *payload);
+
+/* architecture specific function to run payload. */
+void arch_payload_run(const struct payload *payload);
+
+/* Payload loading operations. */
+struct payload_loader_ops {
+ const char *name;
+ /*
+ * Fill in payload_backing_store structure. Return 0 on success, < 0
+ * on failure.
+ */
+ int (*locate)(struct payload *payload);
+};
+
+/* Defined in src/lib/selfboot.c */
+void *selfload(struct payload *payload);
+
+
+#endif /* PROGRAM_LOADING_H */
diff --git a/src/include/ramstage_loader.h b/src/include/ramstage_loader.h
deleted file mode 100644
index ad085c0..0000000
--- a/src/include/ramstage_loader.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2014 Google Inc.
- *
- * 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
- */
-#ifndef RAMSTAGE_LOADER_H
-#define RAMSTAGE_LOADER_H
-
-#include <stdint.h>
-struct cbmem_entry;
-
-/* Run ramstage from romstage. */
-void run_ramstage(void);
-
-struct ramstage_loader_ops {
- const char *name;
- void *(*load)(uint32_t cbmem_id, const char *name,
- const struct cbmem_entry **cbmem_entry);
-};
-
-#endif /* RAMSTAGE_LOADER_H */
diff --git a/src/lib/hardwaremain.c b/src/lib/hardwaremain.c
index d16aa09..9917a69 100644
--- a/src/lib/hardwaremain.c
+++ b/src/lib/hardwaremain.c
@@ -33,7 +33,7 @@
#include <stdlib.h>
#include <reset.h>
#include <boot/tables.h>
-#include <payload_loader.h>
+#include <program_loading.h>
#include <lib.h>
#if CONFIG_HAVE_ACPI_RESUME
#include <arch/acpi.h>
diff --git a/src/lib/loaders/cbfs_payload_loader.c b/src/lib/loaders/cbfs_payload_loader.c
index 2c1d179..22f4c2f 100644
--- a/src/lib/loaders/cbfs_payload_loader.c
+++ b/src/lib/loaders/cbfs_payload_loader.c
@@ -18,7 +18,7 @@
*/
#include <cbfs.h>
-#include <payload_loader.h>
+#include <program_loading.h>
static int cbfs_locate_payload(struct payload *payload)
{
diff --git a/src/lib/loaders/cbfs_ramstage_loader.c b/src/lib/loaders/cbfs_ramstage_loader.c
index 5d5cc0b..5155aea 100644
--- a/src/lib/loaders/cbfs_ramstage_loader.c
+++ b/src/lib/loaders/cbfs_ramstage_loader.c
@@ -20,7 +20,7 @@
#include <console/console.h>
#include <cbfs.h>
#include <arch/stages.h>
-#include <ramstage_loader.h>
+#include <program_loading.h>
#include <timestamp.h>
#if CONFIG_RELOCATABLE_RAMSTAGE
diff --git a/src/lib/loaders/load_and_run_payload.c b/src/lib/loaders/load_and_run_payload.c
index 2204090..4bb29c1 100644
--- a/src/lib/loaders/load_and_run_payload.c
+++ b/src/lib/loaders/load_and_run_payload.c
@@ -22,7 +22,7 @@
#include <console/console.h>
#include <fallback.h>
#include <lib.h>
-#include <payload_loader.h>
+#include <program_loading.h>
#include <timestamp.h>
extern const struct payload_loader_ops vboot_payload_loader;
diff --git a/src/lib/loaders/load_and_run_ramstage.c b/src/lib/loaders/load_and_run_ramstage.c
index 5237e20..b24e29f 100644
--- a/src/lib/loaders/load_and_run_ramstage.c
+++ b/src/lib/loaders/load_and_run_ramstage.c
@@ -22,7 +22,7 @@
#include <arch/stages.h>
#include <cbfs.h>
#include <cbmem.h>
-#include <ramstage_loader.h>
+#include <program_loading.h>
#include <romstage_handoff.h>
#include <timestamp.h>
diff --git a/src/lib/selfboot.c b/src/lib/selfboot.c
index de059b0..4c5fbad 100644
--- a/src/lib/selfboot.c
+++ b/src/lib/selfboot.c
@@ -27,7 +27,7 @@
#include <cbfs.h>
#include <lib.h>
#include <bootmem.h>
-#include <payload_loader.h>
+#include <program_loading.h>
/* from ramstage.ld: */
extern unsigned char _ram_seg;
diff --git a/src/vendorcode/google/chromeos/vboot_handoff.c b/src/vendorcode/google/chromeos/vboot_handoff.c
index 7ea21ea..4fb3338 100644
--- a/src/vendorcode/google/chromeos/vboot_handoff.c
+++ b/src/vendorcode/google/chromeos/vboot_handoff.c
@@ -24,7 +24,7 @@
#include <cbfs.h>
#include <cbmem.h>
#include <console/console.h>
-#include <payload_loader.h>
+#include <program_loading.h>
#include "vboot_handoff.h"
int vboot_enable_developer(void)
diff --git a/src/vendorcode/google/chromeos/vboot_loader.c b/src/vendorcode/google/chromeos/vboot_loader.c
index daf5260..0294ac6 100644
--- a/src/vendorcode/google/chromeos/vboot_loader.c
+++ b/src/vendorcode/google/chromeos/vboot_loader.c
@@ -25,9 +25,9 @@
#include <cbmem.h>
#include <console/console.h>
#include <console/vtxprintf.h>
+#include <program_loading.h>
#include <tpm.h>
#include <reset.h>
-#include <ramstage_loader.h>
#include <romstage_handoff.h>
#include <rmodule.h>
#include <string.h>
the following patch was just integrated into master:
commit 425b61e10214f7e4d029b2ec8cbac8913c54dd00
Author: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Date: Sun Mar 15 04:29:35 2015 +0100
arch/x86/Kconfig: Add license header
Add license header with copyright of the original authors.
Change-Id: I8c55bb38a2a2a387ad2461e11d402c7392fa2497
Signed-off-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
Reviewed-on: http://review.coreboot.org/8691
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-by: Patrick Georgi <pgeorgi(a)google.com>
See http://review.coreboot.org/8691 for details.
-gerrit
the following patch was just integrated into master:
commit f364fc7682e6ac68e1614e759a3cdeed46dd9e5b
Author: Dave Frodin <dave.frodin(a)se-eng.com>
Date: Fri Mar 13 08:22:17 2015 -0600
southbridge/amd/pi: Enable early I/O decode to LPC
The decode of UART addresses down to the LPC bus needs
to occur early to allow romstage console messages to
be seen. This enables the decode of most of the I/O
ports typically seen in a system.
Change-Id: I6636946af4ad5320a5a46c2920b4f06345b5f806
Signed-off-by: Dave Frodin <dave.frodin(a)se-eng.com>
Reviewed-on: http://review.coreboot.org/8661
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones(a)se-eng.com>
See http://review.coreboot.org/8661 for details.
-gerrit
the following patch was just integrated into master:
commit 68ec2fce2bcf0f9d8f02d80feb4d6bc4385e9047
Author: David Hendricks <dhendrix(a)chromium.org>
Date: Fri Jul 25 12:59:48 2014 -0700
ipq806x: Break apart large transfers in spi_xfer()
The current spi_xfer() function sets the count in hardware and then
loops while waiting for the requested number of bytes to be sent or
received. However, the number of bytes to be transferred may exceed
the maximum count that can be programmed into the controller.
This patch re-factors spi_xfer() to split the low-level FIFO handling
portions for transmit/receive into their own functions to be called
by loops in spi_xfer() which will break large transfers into smaller
ones.
BUG=chrome-os-partner:30904
BRANCH=storm
TEST=built and booted with a >64KB payload on Storm
Original-Change-Id: I70743487996cf08cfc602449f2181a7fcd99bfa4
Original-Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
Original-Signed-off-by: Vadim Bendebury <vbendeb(a)chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/209838
Original-Reviewed-by: Trevor Bourget <tbourget(a)codeaurora.org>
Original-Tested-by: Trevor Bourget <tbourget(a)codeaurora.org>
(cherry picked from commit 5ec28de11f12c2438356f45ce978a17fbb603bf7)
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
Change-Id: I0033e0dd96006cfd30a7a4f5e5a052f677e05108
Reviewed-on: http://review.coreboot.org/8676
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See http://review.coreboot.org/8676 for details.
-gerrit
the following patch was just integrated into master:
commit c4f08f7f9c56f5f988ecdd86323390c0f5b4232b
Author: Furquan Shaikh <furquan(a)google.com>
Date: Wed Jul 23 13:42:22 2014 -0700
cbfstool: Add relocation codes for arm mode
Add relocation codes required for arm mode. These are required by armv4.
BUG=chrome-os-partner:30784
BRANCH=None
TEST=Compiles successfully for rush
Original-Change-Id: Ie7c5b3e07689c85091036a619a65f9fea1918b6b
Original-Signed-off-by: Furquan Shaikh <furquan(a)google.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/209973
Original-Tested-by: Furquan Shaikh <furquan(a)chromium.org>
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Original-Commit-Queue: Aaron Durbin <adurbin(a)chromium.org>
(cherry picked from commit dc5f411f95e02a02b4a4ef4652303ce62aa220c2)
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
Change-Id: Ie62ed730080299e474c256371ab88f605b54c10f
Reviewed-on: http://review.coreboot.org/8675
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See http://review.coreboot.org/8675 for details.
-gerrit
the following patch was just integrated into master:
commit c8001290097b5b687953dc54f1ac167b16951668
Author: Furquan Shaikh <furquan(a)google.com>
Date: Fri Jul 25 14:50:23 2014 -0700
t132: Add TTB_BUFFER to resource reserved
TTB_BUFFER holds the MMU tables. Thus, this memory needs to be preserved while
performing a wipe in depthcharge. Hence, marking it as reserved
BUG=None
BRANCH=None
TEST=Compiles successfully and boots upto depthcharge. Error wiping memory
tables is fixed.
Original-Change-Id: Idd5cd0235d50f7b9617df2cead3bf71012e3b630
Original-Signed-off-by: Furquan Shaikh <furquan(a)google.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/210000
Original-Tested-by: Furquan Shaikh <furquan(a)chromium.org>
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Original-Commit-Queue: Aaron Durbin <adurbin(a)chromium.org>
(cherry picked from commit 670e21ed11f985ca6cfef4f051c71b3c06f9c6ff)
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
Change-Id: Ifcbdd4fdaad0bd4bfe384698b13cc5013317345e
Reviewed-on: http://review.coreboot.org/8681
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See http://review.coreboot.org/8681 for details.
-gerrit
the following patch was just integrated into master:
commit 64352a7c1b50819828cffdeacd93c757ee91c3ba
Author: Furquan Shaikh <furquan(a)google.com>
Date: Wed Jul 23 13:46:13 2014 -0700
rush: Pull in chromeos.c from nyan into rush
Hardcoded values are set for developer,recovery mode. Change as per requirements
BUG=chrome-os-partner:30784
BRANCH=None
TEST=Compiles succesfully for rush
Original-Change-Id: Ied506a9d1c4e0ba8ee06d57c6ca8c726220998b5
Original-Signed-off-by: Furquan Shaikh <furquan(a)google.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/209974
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Original-Commit-Queue: Furquan Shaikh <furquan(a)chromium.org>
Original-Tested-by: Furquan Shaikh <furquan(a)chromium.org>
(cherry picked from commit 2e6934d47c5b4bb98e60486202b230bae79d927b)
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
Change-Id: I36e384b0d331fdd9e3f47954decfddaf4f31aed3
Reviewed-on: http://review.coreboot.org/8678
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer(a)coreboot.org>
See http://review.coreboot.org/8678 for details.
-gerrit