When TPL is used on x86 we may want to program the microcode (at least for the first CPU) early in boot. Add support for this by refactoring the existing code to be more generic. Signed-off-by: Simon Glass <sjg@chromium.org>lime2-spi
parent
e0e5df9310
commit
f025363543
@ -0,0 +1,25 @@ |
||||
# SPDX-License-Identifier: GPL-2.0+ |
||||
# Copyright (c) 2016 Google, Inc |
||||
# Written by Simon Glass <sjg@chromium.org> |
||||
# |
||||
# Entry-type module for U-Boot device tree with the microcode removed |
||||
# |
||||
|
||||
import control |
||||
from entry import Entry |
||||
from u_boot_dtb_with_ucode import Entry_u_boot_dtb_with_ucode |
||||
import tools |
||||
|
||||
class Entry_u_boot_tpl_dtb_with_ucode(Entry_u_boot_dtb_with_ucode): |
||||
"""U-Boot TPL with embedded microcode pointer |
||||
|
||||
This is used when TPL must set up the microcode for U-Boot. |
||||
|
||||
See Entry_u_boot_ucode for full details of the entries involved in this |
||||
process. |
||||
""" |
||||
def __init__(self, section, etype, node): |
||||
Entry_u_boot_dtb_with_ucode.__init__(self, section, etype, node) |
||||
|
||||
def GetDefaultFilename(self): |
||||
return 'tpl/u-boot-tpl.dtb' |
@ -0,0 +1,27 @@ |
||||
# SPDX-License-Identifier: GPL-2.0+ |
||||
# Copyright (c) 2016 Google, Inc |
||||
# Written by Simon Glass <sjg@chromium.org> |
||||
# |
||||
# Entry-type module for an TPL 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_tpl_with_ucode_ptr(Entry_u_boot_with_ucode_ptr): |
||||
"""U-Boot TPL with embedded microcode pointer |
||||
|
||||
See Entry_u_boot_ucode for full details of the entries involved in this |
||||
process. |
||||
""" |
||||
def __init__(self, section, etype, node): |
||||
Entry_u_boot_with_ucode_ptr.__init__(self, section, etype, node) |
||||
self.elf_fname = 'tpl/u-boot-tpl' |
||||
|
||||
def GetDefaultFilename(self): |
||||
return 'tpl/u-boot-tpl-nodtb.bin' |
@ -0,0 +1,29 @@ |
||||
/dts-v1/; |
||||
|
||||
/ { |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
binman { |
||||
sort-by-offset; |
||||
end-at-4gb; |
||||
size = <0x200>; |
||||
u-boot-tpl-with-ucode-ptr { |
||||
}; |
||||
|
||||
u-boot-tpl-dtb-with-ucode { |
||||
}; |
||||
|
||||
u-boot-ucode { |
||||
}; |
||||
}; |
||||
|
||||
microcode { |
||||
update@0 { |
||||
data = <0x12345678 0x12345679>; |
||||
}; |
||||
update@1 { |
||||
data = <0xabcd0000 0x78235609>; |
||||
}; |
||||
}; |
||||
}; |
Loading…
Reference in new issue