* [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot
@ 2015-08-27 15:38 Bin Meng
2015-08-27 15:38 ` [U-Boot] [PATCH 2/3] x86: doc: Change to use CONFIG_VGA_BIOS_ADDR Bin Meng
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Bin Meng @ 2015-08-27 15:38 UTC (permalink / raw)
To: u-boot
We have the capability to check regions written after U-Boot that
do not overlap. Since regions can also be written before U-Boot,
add such check for these too.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---
tools/ifdtool.c | 66 ++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 46 insertions(+), 20 deletions(-)
diff --git a/tools/ifdtool.c b/tools/ifdtool.c
index 1f95203..48059c0 100644
--- a/tools/ifdtool.c
+++ b/tools/ifdtool.c
@@ -707,10 +707,12 @@ int inject_region(char *image, int size, int region_type, char *region_fname)
* 8MB ROM the start address is 0xfff80000.
* @write_fname: Filename to add to the image
* @offset_uboot_top: Offset of the top of U-Boot
+ * @offset_uboot_start: Offset of the start of U-Boot
* @return number of bytes written if OK, -ve on error
*/
static int write_data(char *image, int size, unsigned int addr,
- const char *write_fname, int offset_uboot_top)
+ const char *write_fname, int offset_uboot_top,
+ int offset_uboot_start)
{
int write_fd, write_size;
int offset;
@@ -720,13 +722,25 @@ static int write_data(char *image, int size, unsigned int addr,
return write_fd;
offset = (uint32_t)(addr + size);
- if (offset_uboot_top && offset_uboot_top >= offset) {
- fprintf(stderr, "U-Boot image overlaps with region '%s'\n",
- write_fname);
- fprintf(stderr,
- "U-Boot finishes at offset %x, file starts at %x\n",
- offset_uboot_top, offset);
- return -EXDEV;
+ if (offset_uboot_top) {
+ if (offset_uboot_start < offset &&
+ offset_uboot_top >= offset) {
+ fprintf(stderr, "U-Boot image overlaps with region '%s'\n",
+ write_fname);
+ fprintf(stderr,
+ "U-Boot finishes at offset %x, file starts at %x\n",
+ offset_uboot_top, offset);
+ return -EXDEV;
+ }
+ if (offset_uboot_start > offset &&
+ offset_uboot_start <= offset + write_size) {
+ fprintf(stderr, "U-Boot image overlaps with region '%s'\n",
+ write_fname);
+ fprintf(stderr,
+ "U-Boot starts at offset %x, file finishes@%x\n",
+ offset_uboot_start, offset + write_size);
+ return -EXDEV;
+ }
}
debug("Writing %s to offset %#x\n", write_fname, offset);
@@ -927,27 +941,36 @@ static int write_ucode(char *image, int size, struct input_file *fdt,
*/
static int write_uboot(char *image, int size, struct input_file *uboot,
struct input_file *fdt, unsigned int ucode_ptr,
- int collate_ucode)
+ int collate_ucode, int *offset_uboot_top,
+ int *offset_uboot_start)
{
- const void *blob;
int uboot_size, fdt_size;
+ int uboot_top;
- uboot_size = write_data(image, size, uboot->addr, uboot->fname, 0);
+ uboot_size = write_data(image, size, uboot->addr, uboot->fname, 0, 0);
if (uboot_size < 0)
return uboot_size;
fdt->addr = uboot->addr + uboot_size;
debug("U-Boot size %#x, FDT at %#x\n", uboot_size, fdt->addr);
- fdt_size = write_data(image, size, fdt->addr, fdt->fname, 0);
+ fdt_size = write_data(image, size, fdt->addr, fdt->fname, 0, 0);
if (fdt_size < 0)
return fdt_size;
- blob = (void *)image + (uint32_t)(fdt->addr + size);
+
+ uboot_top = (uint32_t)(fdt->addr + size) + fdt_size;
if (ucode_ptr) {
- return write_ucode(image, size, fdt, fdt_size, ucode_ptr,
- collate_ucode);
+ uboot_top = write_ucode(image, size, fdt, fdt_size, ucode_ptr,
+ collate_ucode);
+ if (uboot_top < 0)
+ return uboot_top;
}
- return ((char *)blob + fdt_size) - image;
+ if (offset_uboot_top && offset_uboot_start) {
+ *offset_uboot_top = uboot_top;
+ *offset_uboot_start = (uint32_t)(uboot->addr + size);
+ }
+
+ return 0;
}
static void print_version(void)
@@ -1268,13 +1291,14 @@ int main(int argc, char *argv[])
}
if (mode_write_descriptor)
- ret = write_data(image, size, -size, desc_fname, 0);
+ ret = write_data(image, size, -size, desc_fname, 0, 0);
if (mode_inject)
ret = inject_region(image, size, region_type, inject_fname);
if (mode_write) {
int offset_uboot_top = 0;
+ int offset_uboot_start = 0;
for (wr_idx = 0; wr_idx < wr_num; wr_idx++) {
ifile = &input_file[wr_idx];
@@ -1282,11 +1306,13 @@ int main(int argc, char *argv[])
continue;
} else if (ifile->type == IF_uboot) {
ret = write_uboot(image, size, ifile, fdt,
- ucode_ptr, collate_ucode);
- offset_uboot_top = ret;
+ ucode_ptr, collate_ucode,
+ &offset_uboot_top,
+ &offset_uboot_start);
} else {
ret = write_data(image, size, ifile->addr,
- ifile->fname, offset_uboot_top);
+ ifile->fname, offset_uboot_top,
+ offset_uboot_start);
}
if (ret < 0)
break;
--
1.8.2.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 2/3] x86: doc: Change to use CONFIG_VGA_BIOS_ADDR
2015-08-27 15:38 [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot Bin Meng
@ 2015-08-27 15:38 ` Bin Meng
2015-08-28 17:58 ` Simon Glass
2015-08-27 15:38 ` [U-Boot] [PATCH 3/3] x86: bayleybay: Change default vga bios rom address Bin Meng
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Bin Meng @ 2015-08-27 15:38 UTC (permalink / raw)
To: u-boot
CONFIG_X86_OPTION_ROM_ADDR has been renamed to CONFIG_VGA_BIOS_ADDR.
Update the doc to refer to the new name.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---
doc/README.x86 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/README.x86 b/doc/README.x86
index 3bab5cf..5f9c46f 100644
--- a/doc/README.x86
+++ b/doc/README.x86
@@ -189,7 +189,7 @@ Offset Description Controlling config
001000 me.bin Set by the descriptor
500000 <spare>
700000 u-boot-dtb.bin CONFIG_SYS_TEXT_BASE
-790000 vga.bin CONFIG_X86_OPTION_ROM_ADDR
+790000 vga.bin CONFIG_VGA_BIOS_ADDR
7c0000 fsp.bin CONFIG_FSP_ADDR
7f8000 <spare> (depends on size of fsp.bin)
7fe000 Environment CONFIG_ENV_OFFSET
--
1.8.2.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 3/3] x86: bayleybay: Change default vga bios rom address
2015-08-27 15:38 [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot Bin Meng
2015-08-27 15:38 ` [U-Boot] [PATCH 2/3] x86: doc: Change to use CONFIG_VGA_BIOS_ADDR Bin Meng
@ 2015-08-27 15:38 ` Bin Meng
2015-08-28 17:58 ` Simon Glass
2015-08-27 16:01 ` [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot Andy Pont
[not found] ` <55df3469.027a320a.5207d.5d67SMTPIN_ADDED_BROKEN@mx.google.com>
3 siblings, 1 reply; 10+ messages in thread
From: Bin Meng @ 2015-08-27 15:38 UTC (permalink / raw)
To: u-boot
With multiple microcode blobs included, the generated u-boot-dtb.bin
leaves merely several hundred bytes before the vga bios. Change the
vga bios rom address to make a bigger room for u-boot-dtb.bin.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---
configs/bayleybay_defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/configs/bayleybay_defconfig b/configs/bayleybay_defconfig
index 13bd282..766576d 100644
--- a/configs/bayleybay_defconfig
+++ b/configs/bayleybay_defconfig
@@ -5,6 +5,7 @@ CONFIG_TARGET_BAYLEYBAY=y
CONFIG_HAVE_INTEL_ME=y
CONFIG_SMP=y
CONFIG_HAVE_VGA_BIOS=y
+CONFIG_VGA_BIOS_ADDR=0xfffa0000
CONFIG_GENERATE_PIRQ_TABLE=y
CONFIG_GENERATE_MP_TABLE=y
CONFIG_CMD_CPU=y
--
1.8.2.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot
2015-08-27 15:38 [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot Bin Meng
2015-08-27 15:38 ` [U-Boot] [PATCH 2/3] x86: doc: Change to use CONFIG_VGA_BIOS_ADDR Bin Meng
2015-08-27 15:38 ` [U-Boot] [PATCH 3/3] x86: bayleybay: Change default vga bios rom address Bin Meng
@ 2015-08-27 16:01 ` Andy Pont
[not found] ` <55df3469.027a320a.5207d.5d67SMTPIN_ADDED_BROKEN@mx.google.com>
3 siblings, 0 replies; 10+ messages in thread
From: Andy Pont @ 2015-08-27 16:01 UTC (permalink / raw)
To: u-boot
Bin wrote...
> We have the capability to check regions written after U-Boot that
> do not overlap. Since regions can also be written before U-Boot,
> add such check for these too.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
This fixes the issue I raised this morning with building the .rom file for
Galileo with the latest master, so:
Tested-by: Andy Pont <andy.pont@sdcsystems.com>
Regards,
Andy.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot
[not found] ` <55df3469.027a320a.5207d.5d67SMTPIN_ADDED_BROKEN@mx.google.com>
@ 2015-08-28 17:58 ` Simon Glass
2015-09-01 0:31 ` Simon Glass
0 siblings, 1 reply; 10+ messages in thread
From: Simon Glass @ 2015-08-28 17:58 UTC (permalink / raw)
To: u-boot
On 27 August 2015 at 10:01, Andy Pont <andy.pont@sdcsystems.com> wrote:
> Bin wrote...
>
>> We have the capability to check regions written after U-Boot that
>> do not overlap. Since regions can also be written before U-Boot,
>> add such check for these too.
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>> ---
>
> This fixes the issue I raised this morning with building the .rom file for
> Galileo with the latest master, so:
>
> Tested-by: Andy Pont <andy.pont@sdcsystems.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested on Minnowmax:
Tested-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 2/3] x86: doc: Change to use CONFIG_VGA_BIOS_ADDR
2015-08-27 15:38 ` [U-Boot] [PATCH 2/3] x86: doc: Change to use CONFIG_VGA_BIOS_ADDR Bin Meng
@ 2015-08-28 17:58 ` Simon Glass
2015-09-01 0:31 ` Simon Glass
0 siblings, 1 reply; 10+ messages in thread
From: Simon Glass @ 2015-08-28 17:58 UTC (permalink / raw)
To: u-boot
On 27 August 2015 at 09:38, Bin Meng <bmeng.cn@gmail.com> wrote:
> CONFIG_X86_OPTION_ROM_ADDR has been renamed to CONFIG_VGA_BIOS_ADDR.
> Update the doc to refer to the new name.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
>
> doc/README.x86 | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Acked-by: Simon Glass <sjg@chromium.org>
Tested on Minnowmax:
Tested-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 3/3] x86: bayleybay: Change default vga bios rom address
2015-08-27 15:38 ` [U-Boot] [PATCH 3/3] x86: bayleybay: Change default vga bios rom address Bin Meng
@ 2015-08-28 17:58 ` Simon Glass
2015-09-01 0:31 ` Simon Glass
0 siblings, 1 reply; 10+ messages in thread
From: Simon Glass @ 2015-08-28 17:58 UTC (permalink / raw)
To: u-boot
On 27 August 2015 at 09:38, Bin Meng <bmeng.cn@gmail.com> wrote:
> With multiple microcode blobs included, the generated u-boot-dtb.bin
> leaves merely several hundred bytes before the vga bios. Change the
> vga bios rom address to make a bigger room for u-boot-dtb.bin.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
>
> configs/bayleybay_defconfig | 1 +
> 1 file changed, 1 insertion(+)
Acked-by: Simon Glass <sjg@chromium.org>
Tested on Minnowmax:
Tested-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot
2015-08-28 17:58 ` Simon Glass
@ 2015-09-01 0:31 ` Simon Glass
0 siblings, 0 replies; 10+ messages in thread
From: Simon Glass @ 2015-09-01 0:31 UTC (permalink / raw)
To: u-boot
On 28 August 2015 at 11:58, Simon Glass <sjg@chromium.org> wrote:
> On 27 August 2015 at 10:01, Andy Pont <andy.pont@sdcsystems.com> wrote:
>> Bin wrote...
>>
>>> We have the capability to check regions written after U-Boot that
>>> do not overlap. Since regions can also be written before U-Boot,
>>> add such check for these too.
>>>
>>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>>> ---
>>
>> This fixes the issue I raised this morning with building the .rom file for
>> Galileo with the latest master, so:
>>
>> Tested-by: Andy Pont <andy.pont@sdcsystems.com>
>
> Acked-by: Simon Glass <sjg@chromium.org>
> Tested on Minnowmax:
> Tested-by: Simon Glass <sjg@chromium.org>
Applied to u-boot-x86, thanks!
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 2/3] x86: doc: Change to use CONFIG_VGA_BIOS_ADDR
2015-08-28 17:58 ` Simon Glass
@ 2015-09-01 0:31 ` Simon Glass
0 siblings, 0 replies; 10+ messages in thread
From: Simon Glass @ 2015-09-01 0:31 UTC (permalink / raw)
To: u-boot
On 28 August 2015 at 11:58, Simon Glass <sjg@chromium.org> wrote:
> On 27 August 2015 at 09:38, Bin Meng <bmeng.cn@gmail.com> wrote:
>> CONFIG_X86_OPTION_ROM_ADDR has been renamed to CONFIG_VGA_BIOS_ADDR.
>> Update the doc to refer to the new name.
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>> ---
>>
>> doc/README.x86 | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Acked-by: Simon Glass <sjg@chromium.org>
> Tested on Minnowmax:
> Tested-by: Simon Glass <sjg@chromium.org>
Applied to u-boot-x86, thanks!
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 3/3] x86: bayleybay: Change default vga bios rom address
2015-08-28 17:58 ` Simon Glass
@ 2015-09-01 0:31 ` Simon Glass
0 siblings, 0 replies; 10+ messages in thread
From: Simon Glass @ 2015-09-01 0:31 UTC (permalink / raw)
To: u-boot
On 28 August 2015 at 11:58, Simon Glass <sjg@chromium.org> wrote:
> On 27 August 2015 at 09:38, Bin Meng <bmeng.cn@gmail.com> wrote:
>> With multiple microcode blobs included, the generated u-boot-dtb.bin
>> leaves merely several hundred bytes before the vga bios. Change the
>> vga bios rom address to make a bigger room for u-boot-dtb.bin.
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>> ---
>>
>> configs/bayleybay_defconfig | 1 +
>> 1 file changed, 1 insertion(+)
>
> Acked-by: Simon Glass <sjg@chromium.org>
> Tested on Minnowmax:
> Tested-by: Simon Glass <sjg@chromium.org>
Applied to u-boot-x86, thanks!
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-09-01 0:31 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-27 15:38 [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot Bin Meng
2015-08-27 15:38 ` [U-Boot] [PATCH 2/3] x86: doc: Change to use CONFIG_VGA_BIOS_ADDR Bin Meng
2015-08-28 17:58 ` Simon Glass
2015-09-01 0:31 ` Simon Glass
2015-08-27 15:38 ` [U-Boot] [PATCH 3/3] x86: bayleybay: Change default vga bios rom address Bin Meng
2015-08-28 17:58 ` Simon Glass
2015-09-01 0:31 ` Simon Glass
2015-08-27 16:01 ` [U-Boot] [PATCH 1/3] x86: ifdtool: Support checking region overlap before U-Boot Andy Pont
[not found] ` <55df3469.027a320a.5207d.5d67SMTPIN_ADDED_BROKEN@mx.google.com>
2015-08-28 17:58 ` Simon Glass
2015-09-01 0:31 ` Simon Glass
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox