Stefan Reinauer (stefan.reinauer(a)coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/425
-gerrit
commit e13a5edca121b2781a3fa05f7b4b23476d60ee65
Author: Stefan Reinauer <reinauer(a)chromium.org>
Date: Mon Nov 7 12:56:12 2011 -0800
selfboot: fix bug in valid_area()
valid_area will accept a region as valid for the payload if only a part
of coreboot fits in that region. This means if a payload reaches into a
neighboring RESERVED region, coreboot would not care and happily
overwrite that region, as long as the payload also writes to some RAM.
Change-Id: Ie263f83be18009b01a31c71e7285c998747d097f
Signed-off-by: Stefan Reinauer <reinauer(a)google.com>
---
src/boot/selfboot.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/boot/selfboot.c b/src/boot/selfboot.c
index 573dd5e..ab0bf21 100644
--- a/src/boot/selfboot.c
+++ b/src/boot/selfboot.c
@@ -140,10 +140,10 @@ static int valid_area(struct lb_memory *mem, unsigned long buffer,
mtype = mem->map[i].type;
mstart = unpack_lb64(mem->map[i].start);
mend = mstart + unpack_lb64(mem->map[i].size);
- if ((mtype == LB_MEM_RAM) && (start < mend) && (end > mstart)) {
+ if ((mtype == LB_MEM_RAM) && (start >= mstart) && (end < mend)) {
break;
}
- if ((mtype == LB_MEM_TABLE) && (start < mend) && (end > mstart)) {
+ if ((mtype == LB_MEM_TABLE) && (start >= mstart) && (end < mend)) {
printk(BIOS_ERR, "Payload is overwriting coreboot tables.\n");
break;
}
Stefan Reinauer (stefan.reinauer(a)coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/424
-gerrit
commit 8a703fb508b048380007cccc0d24fd2ae629bae7
Author: Stefan Reinauer <reinauer(a)chromium.org>
Date: Mon Nov 7 12:43:03 2011 -0800
selfboot: cleanup
- move cbfs_load_payload to the end so we can drop the prototype
- move lb_start and lb_end to the beginning so they can be used
in other functions.
- drop two unused function declarations
- break a 80+ characters line
- fix a comment
Change-Id: I460aa1e2ccf9d95ac12233af001076f73ab0268e
Signed-off-by: Stefan Reinauer <reinauer(a)google.com>
---
src/boot/selfboot.c | 69 +++++++++++++++++++++-----------------------------
1 files changed, 29 insertions(+), 40 deletions(-)
diff --git a/src/boot/selfboot.c b/src/boot/selfboot.c
index cdb1fa1..573dd5e 100644
--- a/src/boot/selfboot.c
+++ b/src/boot/selfboot.c
@@ -31,15 +31,18 @@
#include <cbfs.h>
#include <lib.h>
-/* Maximum physical address we can use for the coreboot bounce buffer.
- */
+/* Maximum physical address we can use for the coreboot bounce buffer. */
#ifndef MAX_ADDR
#define MAX_ADDR -1UL
#endif
+/* from coreboot_ram.ld: */
extern unsigned char _ram_seg;
extern unsigned char _eram_seg;
+static const unsigned long lb_start = (unsigned long)&_ram_seg;
+static const unsigned long lb_end = (unsigned long)&_eram_seg;
+
struct segment {
struct segment *next;
struct segment *prev;
@@ -52,36 +55,6 @@ struct segment {
int compression;
};
-struct verify_callback {
- struct verify_callback *next;
- int (*callback)(struct verify_callback *vcb,
- Elf_ehdr *ehdr, Elf_phdr *phdr, struct segment *head);
- unsigned long desc_offset;
- unsigned long desc_addr;
-};
-
-struct ip_checksum_vcb {
- struct verify_callback data;
- unsigned short ip_checksum;
-};
-
-static int selfboot(struct lb_memory *mem, struct cbfs_payload *payload);
-
-void * cbfs_load_payload(struct lb_memory *lb_mem, const char *name)
-{
- struct cbfs_payload *payload;
-
- payload = (struct cbfs_payload *)cbfs_find_file(name, CBFS_TYPE_PAYLOAD);
- if (payload == NULL)
- return (void *) -1;
- printk(BIOS_DEBUG, "Got a payload\n");
-
- selfboot(lb_mem, payload);
- printk(BIOS_EMERG, "SELFBOOT RETURNED!\n");
-
- return (void *) -1;
-}
-
/* The problem:
* Static executables all want to share the same addresses
* in memory because only a few addresses are reliably present on
@@ -100,7 +73,6 @@ void * cbfs_load_payload(struct lb_memory *lb_mem, const char *name)
* - Coreboot is preserved, so it can be returned to.
* - The implementation is still relatively simple,
* and much simpler than the general case implemented in kexec.
- *
*/
static unsigned long bounce_size, bounce_buffer;
@@ -111,10 +83,12 @@ static void get_bounce_buffer(struct lb_memory *mem, unsigned long req_size)
unsigned long mem_entries;
unsigned long buffer;
int i;
- lb_size = (unsigned long)(&_eram_seg - &_ram_seg);
- /* Double coreboot size so I have somewhere to place a copy to return to */
+ lb_size = lb_end - lb_start;
+ /* Plus coreboot size so I have somewhere
+ * to place a copy to return to.
+ */
lb_size = req_size + lb_size;
- mem_entries = (mem->size - sizeof(*mem))/sizeof(mem->map[0]);
+ mem_entries = (mem->size - sizeof(*mem)) / sizeof(mem->map[0]);
buffer = 0;
for(i = 0; i < mem_entries; i++) {
unsigned long mstart, mend;
@@ -149,7 +123,8 @@ static int valid_area(struct lb_memory *mem, unsigned long buffer,
*/
int i;
unsigned long end = start + len;
- unsigned long mem_entries = (mem->size - sizeof(*mem))/sizeof(mem->map[0]);
+ unsigned long mem_entries = (mem->size - sizeof(*mem)) /
+ sizeof(mem->map[0]);
/* See if I conflict with the bounce buffer */
if (end >= buffer) {
@@ -194,8 +169,6 @@ static int valid_area(struct lb_memory *mem, unsigned long buffer,
return 1;
}
-static const unsigned long lb_start = (unsigned long)&_ram_seg;
-static const unsigned long lb_end = (unsigned long)&_eram_seg;
static int overlaps_coreboot(struct segment *seg)
{
@@ -211,7 +184,8 @@ static int relocate_segment(unsigned long buffer, struct segment *seg)
* to load onto the bounce buffer instead.
*/
/* ret: 1 : A new segment is inserted before the seg.
- * 0 : A new segment is inserted after the seg, or no new one. */
+ * 0 : A new segment is inserted after the seg, or no new one.
+ */
unsigned long start, middle, end, ret = 0;
printk(BIOS_SPEW, "lb: [0x%016lx, 0x%016lx)\n",
@@ -559,3 +533,18 @@ static int selfboot(struct lb_memory *mem, struct cbfs_payload *payload)
return 0;
}
+void *cbfs_load_payload(struct lb_memory *lb_mem, const char *name)
+{
+ struct cbfs_payload *payload;
+
+ payload = (struct cbfs_payload *)cbfs_find_file(name, CBFS_TYPE_PAYLOAD);
+ if (payload == NULL)
+ return (void *) -1;
+ printk(BIOS_DEBUG, "Got a payload\n");
+
+ selfboot(lb_mem, payload);
+ printk(BIOS_EMERG, "SELFBOOT RETURNED!\n");
+
+ return (void *) -1;
+}
+
Jonathan A. Kollasch (jakllsch(a)kollasch.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/423
-gerrit
commit 02b1ce47657abe3db2cab7e0c2a6b114f0423086
Author: Jonathan A. Kollasch <jakllsch(a)kollasch.net>
Date: Mon Nov 7 13:05:18 2011 -0600
buildgcc: don't download python and expat if disabled
Change-Id: I18cb1426e935c46ead30c72685829c20d186f9d8
Signed-off-by: Jonathan A. Kollasch <jakllsch(a)kollasch.net>
---
util/crossgcc/buildgcc | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc
index 748b944..f86332d 100755
--- a/util/crossgcc/buildgcc
+++ b/util/crossgcc/buildgcc
@@ -211,7 +211,9 @@ if [ $SKIPGDB -eq 1 ]; then
fi
fi
if [ $SKIPPYTHON -eq 1 ]; then
+ PYTHON_ARCHIVE=""
PYTHON_PACKAGE=""
+ EXPAT_ARCHIVE=""
EXPAT_PACKAGE=""
fi
Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/422
-gerrit
commit 924df9b71a38bf7d7a16faea3d84a49d5d9d015d
Author: Patrick Georgi <patrick(a)georgi-clan.de>
Date: Mon Nov 7 19:01:54 2011 +0100
abuild: Don't try to use files that don't exist
Collecting per-board abuild.xml is bound to fail if there
are no such files.
Change-Id: I6bd6b4389beda51654005e0380f0e52f006642db
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
util/abuild/abuild | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/util/abuild/abuild b/util/abuild/abuild
index 8b81ea1..78a4718 100755
--- a/util/abuild/abuild
+++ b/util/abuild/abuild
@@ -656,7 +656,7 @@ if [ "$target" != "" ]; then
fi
build_target $VENDOR $MAINBOARD $CONFIG
test_target $VENDOR $MAINBOARD
- cat $TARGET/${VENDOR}_${MAINBOARD}/abuild.xml >> $REAL_XMLFILE
+ test "$mode" != "text" && cat $TARGET/${VENDOR}_${MAINBOARD}/abuild.xml >> $REAL_XMLFILE
XMLFILE=$REAL_XMLFILE
else
# build all boards per default
@@ -667,9 +667,11 @@ else
remove_target $VENDOR $MAINBOARD
done
done
- for xmlfile in $TARGET/*_*/abuild.xml; do
- cat $xmlfile >> $REAL_XMLFILE
- done
+ if [ "$mode" != "text" ]; then
+ for xmlfile in $TARGET/*_*/abuild.xml; do
+ cat $xmlfile >> $REAL_XMLFILE
+ done
+ fi
XMLFILE=$REAL_XMLFILE
fi
xml '</abuild>'
the following patch was just integrated into master:
commit a3f5358e99e8b04932137a79ba1448e0cca16259
Author: Florian Zumbiehl <florz(a)florz.de>
Date: Tue Nov 1 20:19:01 2011 +0100
rename vt8237r_cfg() to k8x8xx_vt8237r_cfg() and make publicly accessible
Change-Id: I82d1ec5117a58aaa8cfd2a342b7172a2786f5680
Signed-off-by: Florian Zumbiehl <florz(a)florz.de>
Reviewed-By: Patrick Georgi <patrick(a)georgi-clan.de> at Mon Nov 7 19:12:45 2011, giving +2
See http://review.coreboot.org/379 for details.
-gerrit
the following patch was just integrated into master:
commit 28be6c68a96a99a6e85cc3fc878a2ce748ea7637
Author: Florian Zumbiehl <florz(a)florz.de>
Date: Tue Nov 1 20:18:30 2011 +0100
factor out common config for k8x8xx's dram_enable() and vt8237r_cfg()
Instead of writing to config registers in k8x8xx's dram_enable()
and reading those back in vt8237r_cfg(), factor out generation of
the values and reuse that in both places.
Change-Id: I87a37398efe84b33e6678df74cd40b5abfe4f879
Signed-off-by: Florian Zumbiehl <florz(a)florz.de>
Reviewed-By: Patrick Georgi <patrick(a)georgi-clan.de> at Mon Nov 7 19:17:12 2011, giving +2
See http://review.coreboot.org/378 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/422
-gerrit
commit 2562633abcc66b2fc908e00f7b6f5eb2a22f0473
Author: Patrick Georgi <patrick(a)georgi-clan.de>
Date: Mon Nov 7 19:01:54 2011 +0100
abuild: Don't try to use files that don't exist
Collecting per-board abuild.xml is bound to fail if there
are no such files.
Change-Id: I6bd6b4389beda51654005e0380f0e52f006642db
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
util/abuild/abuild | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/util/abuild/abuild b/util/abuild/abuild
index 8b81ea1..78a4718 100755
--- a/util/abuild/abuild
+++ b/util/abuild/abuild
@@ -656,7 +656,7 @@ if [ "$target" != "" ]; then
fi
build_target $VENDOR $MAINBOARD $CONFIG
test_target $VENDOR $MAINBOARD
- cat $TARGET/${VENDOR}_${MAINBOARD}/abuild.xml >> $REAL_XMLFILE
+ test "$mode" != "text" && cat $TARGET/${VENDOR}_${MAINBOARD}/abuild.xml >> $REAL_XMLFILE
XMLFILE=$REAL_XMLFILE
else
# build all boards per default
@@ -667,9 +667,11 @@ else
remove_target $VENDOR $MAINBOARD
done
done
- for xmlfile in $TARGET/*_*/abuild.xml; do
- cat $xmlfile >> $REAL_XMLFILE
- done
+ if [ "$mode" != "text" ]; then
+ for xmlfile in $TARGET/*_*/abuild.xml; do
+ cat $xmlfile >> $REAL_XMLFILE
+ done
+ fi
XMLFILE=$REAL_XMLFILE
fi
xml '</abuild>'
the following patch was just integrated into master:
commit 57f31907876dc6ea941ca53547e22b655ac22179
Author: Florian Zumbiehl <florz(a)florz.de>
Date: Tue Nov 1 20:19:02 2011 +0100
add support for 1106:3188 (host controller of the old version of k8t800)
Change-Id: Id61678f03e1f7d964f7180a062dd6a689852d4ac
Signed-off-by: Florian Zumbiehl <florz(a)florz.de>
Build-Tested: build bot (Jenkins) at Fri Nov 4 23:25:53 2011, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Mon Nov 7 18:37:02 2011, giving +2
See http://review.coreboot.org/401 for details.
-gerrit