Documentation/releases: Update 4.15 release notes
Update details for upcoming 4.15 release Signed-off-by: Jason Glenesk <jason.glenesk@amd.corp-partner.google.com> Change-Id: I4517f7c17ce5788c82a1eafb1589e39b1ce403ff Reviewed-on: https://review.coreboot.org/c/coreboot/+/58422 Reviewed-by: Martin Roth <martinroth@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
9a56ff9c2d
commit
2c78ee2997
|
@ -1,14 +1,57 @@
|
||||||
Upcoming release - coreboot 4.15
|
Upcoming release - coreboot 4.15
|
||||||
================================
|
================================
|
||||||
|
|
||||||
The 4.15 release is planned for October 2021.
|
The 4.15 release is planned for November 1st, 2021.
|
||||||
|
|
||||||
Update this document with changes that should be in the release notes.
|
Since 4.14 there have been more than 2448 new commits by more than 219 developers.
|
||||||
|
Of these, over 73 contributed to coreboot for the first time.
|
||||||
|
|
||||||
* Please use Markdown.
|
Welcome to the project!
|
||||||
* See the past few release notes for the general format.
|
|
||||||
* The chip and board additions and removals will be updated right
|
|
||||||
before the release, so those do not need to be added.
|
|
||||||
|
Thank you to all the developers who continue to make coreboot the
|
||||||
|
great open source firmware project that it is.
|
||||||
|
|
||||||
|
New mainboards
|
||||||
|
--------------
|
||||||
|
* Asus p8h61-m_pro_cm6630
|
||||||
|
* Asus p8h77-v
|
||||||
|
* Asus p8z77-v
|
||||||
|
* Google nipperkin
|
||||||
|
* Lenovo w541
|
||||||
|
* Siemens mc_ehl
|
||||||
|
* SuperMicro x9sae
|
||||||
|
* System76 addw1
|
||||||
|
* System76 darp6
|
||||||
|
* System76 darp7
|
||||||
|
* System76 galp4
|
||||||
|
* System76 galp5
|
||||||
|
* System76 lemp10
|
||||||
|
|
||||||
|
Removed mainboards
|
||||||
|
------------------
|
||||||
|
* Google Mancomb
|
||||||
|
|
||||||
|
Deprecations and incompatible changes
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
### COREBOOTPAYLOAD option
|
||||||
|
|
||||||
|
Drop the deprecated COREBOOTPAYLOAD option, and replace it with MrChromebox's
|
||||||
|
updated UefiPayloadPkg option. Simplify the Kconfig options to make it easier
|
||||||
|
to build from upstream edk2 master. Drop the TIANOCORE_USE_8254_TIMER Kconfig
|
||||||
|
option since it applied only to CorebootPayloadPkg. Clean up the Makefile now
|
||||||
|
that we're only building from a single Tianocore package/target.
|
||||||
|
|
||||||
|
### Remove old lp4x and ddr4 versions of spd_tools
|
||||||
|
|
||||||
|
The migration to the new unified version of spd_tools is complete, so
|
||||||
|
the old lp4x and ddr4 versions can be removed.
|
||||||
|
|
||||||
|
### Remove AMD PI 00630F01
|
||||||
|
|
||||||
|
No board currently uses AMD PI 00630F01 so remove it.
|
||||||
|
|
||||||
Significant changes
|
Significant changes
|
||||||
-------------------
|
-------------------
|
||||||
|
@ -37,4 +80,35 @@ payload)
|
||||||
Unit testing of libpayload is now possible in the same fashion as in the main
|
Unit testing of libpayload is now possible in the same fashion as in the main
|
||||||
coreboot tree.
|
coreboot tree.
|
||||||
|
|
||||||
### Add significant changes here
|
### Introduce new method for accessing cpu_info
|
||||||
|
|
||||||
|
There is currently a fundamental flaw in the current cpu_info()
|
||||||
|
implementation. It assumes that current stack is CONFIG_STACK_SIZE
|
||||||
|
aligned. This assumption breaks down when performing SMM relocation.
|
||||||
|
|
||||||
|
The first step in performing SMM relocation is changing the SMBASE. This
|
||||||
|
is accomplished by installing the smmstub at 0x00038000, which is the
|
||||||
|
default SMM entry point. The stub is configured to set up a new stack
|
||||||
|
with the size of 1 KiB (CONFIG_SMM_STUB_STACK_SIZE), and an entry point
|
||||||
|
of smm_do_relocation located in RAMSTAGE RAM.
|
||||||
|
|
||||||
|
This means that when smm_do_relocation is executed, it is running in SMM
|
||||||
|
with a different sized stack. When cpu_info() gets called it will be
|
||||||
|
using CONFIG_STACK_SIZE to calculate the location of the cpu_info
|
||||||
|
struct. This results in reading random memory. Since cpu_info() has to
|
||||||
|
run in multiple environments, we can't use a compile time constant to
|
||||||
|
locate the cpu_info struct.
|
||||||
|
|
||||||
|
This CL introduces a new way of locating cpu_info. It uses a per-cpu
|
||||||
|
segment descriptor that points to a per-cpu segment that is allocated on
|
||||||
|
the stack. By using a segment descriptor to point to the per-cpu data,
|
||||||
|
we no longer need to calculate the location of the cpu_info struct. This
|
||||||
|
has the following advantages:
|
||||||
|
* Stacks no longer need to be CONFIG_STACK_SIZE aligned.
|
||||||
|
* Accessing an unconfigured segment will result in an exception. This
|
||||||
|
ensures no one can call cpu_info() from an unsupported environment.
|
||||||
|
* Segment selectors are cleared when entering SMM and restored when
|
||||||
|
leaving SMM.
|
||||||
|
* There is a 1:1 mapping between cpu and cpu_info. When using
|
||||||
|
COOP_MULTITASKING, a new cpu_info is currently allocated at the top of
|
||||||
|
each thread's stack. This no longer needs to happen.
|
||||||
|
|
Loading…
Reference in New Issue