When building for 64-bit x86 we need an SPL binary in the ROM. Add support for this. Also increase entry test code coverage to 100%. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Bin Meng <bmeng.cn@gmail.com>master
parent
c49deb837c
commit
75db0860b1
@ -0,0 +1,26 @@ |
|||||||
|
# Copyright (c) 2016 Google, Inc |
||||||
|
# Written by Simon Glass <sjg@chromium.org> |
||||||
|
# |
||||||
|
# SPDX-License-Identifier: GPL-2.0+ |
||||||
|
# |
||||||
|
# Entry-type module for BSS padding for spl/u-boot-spl.bin. This padding |
||||||
|
# can be added after the SPL binary to ensure that anything concatenated |
||||||
|
# to it will appear to SPL to be at the end of BSS rather than the start. |
||||||
|
# |
||||||
|
|
||||||
|
import command |
||||||
|
from entry import Entry |
||||||
|
from blob import Entry_blob |
||||||
|
import tools |
||||||
|
|
||||||
|
class Entry_u_boot_spl_bss_pad(Entry_blob): |
||||||
|
def __init__(self, image, etype, node): |
||||||
|
Entry_blob.__init__(self, image, etype, node) |
||||||
|
|
||||||
|
def ObtainContents(self): |
||||||
|
fname = tools.GetInputFilename('spl/u-boot-spl') |
||||||
|
args = [['nm', fname], ['grep', '__bss_size']] |
||||||
|
out = command.RunPipe(args, capture=True).stdout.splitlines() |
||||||
|
bss_size = int(out[0].split()[0], 16) |
||||||
|
self.data = chr(0) * bss_size |
||||||
|
self.contents_size = bss_size |
@ -0,0 +1,28 @@ |
|||||||
|
# Copyright (c) 2016 Google, Inc |
||||||
|
# Written by Simon Glass <sjg@chromium.org> |
||||||
|
# |
||||||
|
# SPDX-License-Identifier: GPL-2.0+ |
||||||
|
# |
||||||
|
# Entry-type module for an SPL binary with an embedded microcode pointer |
||||||
|
# |
||||||
|
|
||||||
|
import struct |
||||||
|
|
||||||
|
import command |
||||||
|
from entry import Entry |
||||||
|
from blob import Entry_blob |
||||||
|
from u_boot_with_ucode_ptr import Entry_u_boot_with_ucode_ptr |
||||||
|
import tools |
||||||
|
|
||||||
|
class Entry_u_boot_spl_with_ucode_ptr(Entry_u_boot_with_ucode_ptr): |
||||||
|
"""U-Boot SPL with embedded microcode pointer |
||||||
|
|
||||||
|
See Entry_u_boot_ucode for full details of the entries involved in this |
||||||
|
process. |
||||||
|
""" |
||||||
|
def __init__(self, image, etype, node): |
||||||
|
Entry_blob.__init__(self, image, etype, node) |
||||||
|
self.elf_fname = 'spl/u-boot-spl' |
||||||
|
|
||||||
|
def GetDefaultFilename(self): |
||||||
|
return 'spl/u-boot-spl.bin' |
@ -0,0 +1,17 @@ |
|||||||
|
# Copyright (c) 2016 Google, Inc |
||||||
|
# Written by Simon Glass <sjg@chromium.org> |
||||||
|
# |
||||||
|
# SPDX-License-Identifier: GPL-2.0+ |
||||||
|
# |
||||||
|
# Entry-type module for the 16-bit x86 start-up code for U-Boot SPL |
||||||
|
# |
||||||
|
|
||||||
|
from entry import Entry |
||||||
|
from blob import Entry_blob |
||||||
|
|
||||||
|
class Entry_x86_start16_spl(Entry_blob): |
||||||
|
def __init__(self, image, etype, node): |
||||||
|
Entry_blob.__init__(self, image, etype, node) |
||||||
|
|
||||||
|
def GetDefaultFilename(self): |
||||||
|
return 'spl/u-boot-x86-16bit-spl.bin' |
@ -0,0 +1,20 @@ |
|||||||
|
/dts-v1/; |
||||||
|
|
||||||
|
/ { |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
|
||||||
|
binman { |
||||||
|
sort-by-pos; |
||||||
|
end-at-4gb; |
||||||
|
size = <0x200>; |
||||||
|
u-boot-with-ucode-ptr { |
||||||
|
}; |
||||||
|
|
||||||
|
u-boot-dtb-with-ucode { |
||||||
|
}; |
||||||
|
|
||||||
|
u-boot-ucode { |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
@ -0,0 +1,26 @@ |
|||||||
|
/dts-v1/; |
||||||
|
|
||||||
|
/ { |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
|
||||||
|
binman { |
||||||
|
sort-by-pos; |
||||||
|
end-at-4gb; |
||||||
|
size = <0x200>; |
||||||
|
u-boot-with-ucode-ptr { |
||||||
|
}; |
||||||
|
|
||||||
|
u-boot-ucode { |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
microcode { |
||||||
|
update@0 { |
||||||
|
data = <0x12345678 0x12345679>; |
||||||
|
}; |
||||||
|
update@1 { |
||||||
|
data = <0xabcd0000 0x78235609>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
@ -0,0 +1,23 @@ |
|||||||
|
/dts-v1/; |
||||||
|
|
||||||
|
/ { |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
|
||||||
|
binman { |
||||||
|
sort-by-pos; |
||||||
|
end-at-4gb; |
||||||
|
size = <0x200>; |
||||||
|
u-boot-with-ucode-ptr { |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
microcode { |
||||||
|
update@0 { |
||||||
|
data = <0x12345678 0x12345679>; |
||||||
|
}; |
||||||
|
update@1 { |
||||||
|
data = <0xabcd0000 0x78235609>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
@ -0,0 +1,28 @@ |
|||||||
|
/dts-v1/; |
||||||
|
|
||||||
|
/ { |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
|
||||||
|
binman { |
||||||
|
sort-by-pos; |
||||||
|
size = <0x200>; |
||||||
|
u-boot-with-ucode-ptr { |
||||||
|
}; |
||||||
|
|
||||||
|
u-boot-dtb-with-ucode { |
||||||
|
}; |
||||||
|
|
||||||
|
u-boot-ucode { |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
microcode { |
||||||
|
update@0 { |
||||||
|
data = <0x12345678 0x12345679>; |
||||||
|
}; |
||||||
|
update@1 { |
||||||
|
data = <0xabcd0000 0x78235609>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
@ -0,0 +1,11 @@ |
|||||||
|
/dts-v1/; |
||||||
|
|
||||||
|
/ { |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
|
||||||
|
binman { |
||||||
|
_testing { |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
@ -0,0 +1,30 @@ |
|||||||
|
/dts-v1/; |
||||||
|
|
||||||
|
/ { |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
|
||||||
|
binman { |
||||||
|
sort-by-pos; |
||||||
|
end-at-4gb; |
||||||
|
size = <0x200>; |
||||||
|
u-boot-with-ucode-ptr { |
||||||
|
optional-ucode; |
||||||
|
}; |
||||||
|
|
||||||
|
u-boot-dtb-with-ucode { |
||||||
|
}; |
||||||
|
|
||||||
|
u-boot-ucode { |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
microcode { |
||||||
|
update@0 { |
||||||
|
data = <0x12345678 0x12345679>; |
||||||
|
}; |
||||||
|
update@1 { |
||||||
|
data = <0xabcd0000 0x78235609>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
Binary file not shown.
@ -0,0 +1,15 @@ |
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016 Google, Inc |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: GPL-2.0+ |
||||||
|
* |
||||||
|
* Simple program to create a bad _dt_ucode_base_size symbol to create an |
||||||
|
* error when it is used. This is used by binman tests. |
||||||
|
* |
||||||
|
* Build with: |
||||||
|
* cc -march=i386 -m32 -o u_boot_no_ucode_ptr -T u_boot_ucode_ptr.lds \
|
||||||
|
-nostdlib u_boot_no_ucode_ptr.c |
||||||
|
*/ |
||||||
|
|
||||||
|
static unsigned long not__dt_ucode_base_size[2] |
||||||
|
__attribute__((section(".ucode"))) = {1, 2}; |
Loading…
Reference in new issue