diff options
Diffstat (limited to 'Documentation/releases/coreboot-4.6-relnotes.md')
-rw-r--r-- | Documentation/releases/coreboot-4.6-relnotes.md | 486 |
1 files changed, 486 insertions, 0 deletions
diff --git a/Documentation/releases/coreboot-4.6-relnotes.md b/Documentation/releases/coreboot-4.6-relnotes.md new file mode 100644 index 0000000000..f6c29c699e --- /dev/null +++ b/Documentation/releases/coreboot-4.6-relnotes.md @@ -0,0 +1,486 @@ +Announcing coreboot 4.6 +======================= + +We are happy to announce the April 2017 release of coreboot, version +4.6. + +The 4.6 release covers commit e74f5eaa to commit db508565 + +Since the last release in October 2016, the coreboot project had 1708 +commits by 121 authors. The release tarballs and gpg signatures are +available in the usual place at https://www.coreboot.org/downloads + +There is a pgp signed 4.6 tag in the git repository, and a branch will +be created as needed. + +Changes: Past, ongoing, and future +---------------------------------- + +### CBMEM console development and the Linux Kernel + +Our cbmem debug console was updated with some nice features. The cbmem +console now persists between reboots and is able to be used on some +platforms via late init. Also there is a new Linux kernel driver which +removes the need for the old cbmem tool to read from the cbmem area. You +can find the patch here https://patchwork.kernel.org/patch/9641997/ and +it can be enabled via GOOGLE_MEMCONSOLE_COREBOOT kconfig option in your +kernel - Note that this name may change going forward. + +### Critical bugs in TPM 1.2 support + +coreboot currently has issues with the TPM 1.2 LPC driver +implementation. This leads to a misbehavior in SeaBIOS where the TPM +gets temporarily deactivated. We plan to publish the bugfix release +4.6.1 when we have these issues sorted out. + +### Native graphics and ram init improvements + +The native graphics was reworked a while ago and should finally support +Windows. Numerous bug fixes and EDID support is also now available. +Finally, the native ram initialization for sandybridge/ivybridge +platforms got patched and supports more RAM modules. + +### New and fresh payloads + +SeaBIOS, FiLO, and iPXE were all recently updated to the latest +versions. Https downloads are the default for all payloads now. We +provide the libpayload project which is used for writing own payloads +from scratch. The library is MOSTLY licensed under BSD and recently +received new functionality in order to prepare for the upcoming +replacement for the old nvramcui payload. This new payload is called +cbui and is based on the nuklear graphics library including keyboard and +mouse support. The cbui payload is currently expected to be merged into +the main coreboot tree before the next release. The upstream repository +is here: https://github.com/siro20/coreboot/tree/cbui/payloads/cbui + +### UEFI support: A long road to go + +coreboot can be used with the Tianocore EDK2 UEFI implementation which +is open source and available at Github. Sadly it is not currently +integrated into the coreboot build. This has several reasons: + +* EDK2 only supports GCC 4.8 profile. coreboot is now running on GCC 6.3.0. +* Incompatibilities with code inside the EDK2 which has not been updated. + +We started to make progress with the integration into our sources and +the hope is that by the end of the summer, we finally support the EDK2 +payload out-of-the- box. See the current patch state at +http://review.coreboot.org/#/c/15057/ + +### Fighting blobs and proprietary HW components + +coreboot's ultimate goal would be to replace any closed source firmware +stack with free software components. Unfortunately this is not always +possible due to signed binaries such as the Intel ME firmware, the AMD +PSP and microcode. Recently, a way was discovered to let the Intel ME +run in a functional error state and reduce it from 1.5/5MB to 80KB. It's +not perfect but it works from Nehalem up to Skylake based Intel systems. +The tool is now integrated into the coreboot build system. The upstream +repository is https://github.com/corna/me_cleaner + +Another ongoing improvement is the new utility blobtool. It is currently +used for generating the flash descriptor and GbE configuration data on +older mainboard which are known to be free software. It can easily be +extended for different binaries with well-defined specifications. + +### Did you say Ada? + +coreboot now supports Ada, and a lot work was done integrating Ada into +our toolchain. At the moment only the support for formal verification is +missing and will be soon added. At that point, we can prove the absence +of runtime errors in our Ada code. In short, everybody can start +developing Ada code for our project. + +The existing Ada code which can be used from now on is another native +graphics initialization which will replace in the long term the current +implementation. The native graphics code supports all Intel platforms up +to skylake. We offer support for HDMI, VGA, DVI and DP external +interfaces as well and is ready to be integrated into our mainboard +implementations. + +### Toolchain updates + +A new coreboot toolchain is out. The major toolchain change was going +from GCC version 5.3.0 to 6.3.0. There were also minor version updates +to GMP, MPFR, Binutils, GDB, IASL, and Clang. + +### Deprecation policy for boards + +Starting with this release there will be a policy for deprecating +unmaintained boards. See the end of this announcement for details. + +Change Summary +-------------- + +Build system (20 commits) +* Clean up Kconfig +* Show more useful error messages + +Codebase cleanup (94 commits) +* Many fixes for files to pass checkpatch. Lots more to do here. +* Remove commented out code +* Updates to transition away from device_t +* Work to get rid of included C files + +Documentation (6 commits) +* Start adding technotes/Design docs +* Add Kconfig documentation + +ACPI & acpigen library +* Add GPIO macros +* Clean up and add more functions to ACPIGEN library + +EC (26 commits) +* Add roda/it8518 embedded controller + +TPM (41 commits) +* Cleanup +* Update ACPI ASL, Runtime generate ACPI table for TPM driver +* Make SPI TPM driver CAR-safe +* Update TPM init sequence + +Devices (24 commits) +* Add a new SPI device type +* Allow devicetree accesses in postcar stage +* PCIEXP_ASPM: Unify code with other PCI-e tuning + +Lib (28 commits) +* Add option to use Ada code in ramstage +* bootstate: add arch specific hook at coreboot exit +* cbfs: Add API to locate a file from specific region +* Add library to handle SPD data in CBFS or DIMM +* Add region file support +* Turn CBMEM console into a ring buffer that can persist across reboots + +Commonlib (11 commits) +* Add xmalloc, xzmalloc and dma routines +* Add input and output buffer helpers + +Drivers (29 commits) +* i2c: Pass in i2c_generic_config into i2c_generic_fill_ssdt +* i2c/alps: Add support for ALPS Touchpad driver +* i2c/generic: Add support for GPIO IRQ +* i2c/generic: Enable support for adding PowerResource for device +* i2c/hid: Add generic I2C HID driver +* i2c/max98927: add i2c driver for Maxim 98927 codec +* i2c/wacom_ts: Add support for WCOM touchscreen device driver +* pc80/rtc: Check cmos checksum BEFORE reading cmos value +* regulator: Add driver for handling GPIO-based fixed regulator +* storage: Add SD/MMC/eMMC driver based upon depthcharge + +SPI interface +* Significant cleanup and refactoring + +Include (17 commits) +* cpu/intel: Add MSR to support enabling turbo frequency +* elog: Add all EC event codes + +SuperIO (12 commits) +* Updates for ITE SIOs +* Add 2 new chips +* Consolidate code to use common routines + +Vboot (23 commits) +* Add support for recovery hash space in TPM + +RISC-V (25 commits) +* Add lowRISC System On Chip support +* Cbmem patches, move to common architectural code + +ARM (16 commits) +* Init new serial struct variables for samsung exynos5420 & allwinner + a10 +* Fix verstage to use proper assembly versions of mem*() + +RockChip RK3399 & platforms (46 commits) +* Memory, I2C, USB, SD & Display fixes + +X86 Intel (193 commits) +* Broadwell/Sata: Add support for setting IOBP registers for Ports 2 and + 3. +* cpu/intel/common: Add/Use common function to set virtualization +* drivers/intel/fsp1_1: Fix boot failure for non-verstage case +* drivers/intel/fsp2_0: Reset on invalid stage cache. +* drivers/intel/gma: Add textmode using libgfxinit & use scaling to + simplify config +* drivers/intel/mipi_camera: Add MIPI CSI camera SSDT generator +* broadwell_de: Add SMM code +* intelblocks/msr: Move intel x86 MSR definition into common location +* intel/broadwell: Use the correct SATA port config for setting IOBP + register +* intel/wifi: Create ACPI objects for wifi SAR configuration +* lynxpoint bd82x6x: Enable PCI-to-PCI bridge +* mrc: Add support for separate training cache in recovery mode +* nb/i945/early_init.c: Add FSB800 and 1067 to Egress Port Virtual + Channel +* nb/i945/raminit: Add fixes for 800MHz & 1067MHz FSB CPUs +* nb/intel/gm45: Fix panel-power-sequence clock divisor +* nb/intel/i945: Fix PEG port on 945gc & sdram_enhanced_addressing for + channel1 +* nb/intel/pineview: Move to early cbmem +* nb/pineview/raminit: Skip Jedec init on resume, fix hot reset path +* nb/intel/sandybridge/gma: Always initialize DP buffer translation +* sb/ich7: Use common/gpio.h to set up GPIOs +* sb/intel/bd82x6x: Add TCO_Lock in finalize step +* sb/intel/common/gpio: Support ICH9M and prior +* sb/intel/i82801gx: Add i2c_block_read to smbus.h + +sandybridge/raminit +* Fix CAS Write Latency, disable_channel, normalize_training & odt stretch +* Separate Sandybridge and Ivybridge +* Reset internal state on fallback attempts +* Find CMD rate per channel + +soc/intel/common +* Add common routines for HECI, ITSS, PCR, RTC, systemagent, UART, XHCI, +& LPSS +* Save Memory DIMM Information in SMBIOS table + +Apollolake (183 commits) +* Switch to common routines for LPSS, RTC, ITSS, UART, XHCI, & PCR +* Enable turbo +* Add save/restore variable MRC cache +* Allow ApolloLake SoC to use FSP CAR Init +* Allow USB2 eye pattern configuration in devicetree + +Quark & platforms (14 commits) +* Fix I2c & Serial port config +* Add vboot support + +ga-g41m-es2l, x4x northbridge & LGA775 (23 commits) +* Memory fixes +* Add S3 suspend/resume + +Skylake / Kabylake (208 commits) +* Add devicetree settings for acoustic noise mitigation +* Perform CPU MP Init before FSP-S Init +* Add support for GSPI controller & add GSPI controller get_config +support +* Enable Systemagent IMGU +* Add USB Port Over Current support & Expand USB OC pins support PCH-H +* Extract DIMM Information from FSP MEM INFO HOB +* Add support for eSPI SMI events +* Update ACPI & various methods + +X86 amd (116 commits) +* ACPI S3: Remove HIGH_MEMORY_SAVE where possible +* AMD fam10 binaryPI: Remove invalid PCI ops on CPU domain +* binaryPI platforms: Drop ACPI S3 support +* sb/amd/sb700: Disable LPC ROM mapping when SPI Flash is used +* southbridge/amd: Add LPC bridge acpi path for Family14 and SB800 +* arch/x86: remove CAR global migration when postcar stage is used +* x86/acpi: Add VFCT table + +AMD: vendorcode, AGESA, binaryPI (72 commits) +* Cleanup & consolidate duplicate code +* Fork for new cache-as-ram init code & Fix binaryPI cache-as-ram +* Refactor S3 support functions and Delay ACPI S3 backup until ramstage + loader + +amd/mct: +* Fix CsMux45 configuration, maximum read latency, & DQ mask calculation + +Mainboards (198 commits) +* asus/f2a85-m_le: Activate IOMMU support +* lenovo/h8: Add USB Always On +* google/oak: Enable dual DSI for rowan and the BOE 8-lane MIPI/DSI panel +* google/parrot: Fix keyboard interrupts, DSDT +* google/veyron: Work around RAM code strapping error +* lenovo/t400: Rewrite dock from t60 +* intel/d510mo: enable ACPI resume from S3 +* intel/d945gclf: Fix resume from S3 suspend +* lenovo/t400: Implement hybrid graphic in romstage +* Enable libgfxinit on lenovo/t420 & x230, kontron/ktqm77, google/slippy +* lenovo/x60,t60: Move EC CMOS parameters in checksummed space +* mc_tcu3: Do not abort initialization of PTN3460 when HW-ID is missing +* mc_tcu3: Swap LVDS even and odd lanes for a certain hardware +* purism/librem13: Enable support for M.2 NVMe & Fix M.2 issues + +Payloads (53 commits) +* Update FILO, SeaBIOS, & iPXE versions +* Many libpayload fixes and updates + +Toolchain (19 commits) +* Update GCC, Binutils, GMP, MPFR, GDB, IASL and LLVM + +Utilities: (145 commits) +* abuild: Build saved config files and print failed builds at the end +* autoport: Create superiotool logs and fix romstage generator +* board-status: Update bucketize script and add README file +* cbfstool: Add cbfs-compression-tool and enable adding precompressed + files +* cbmem: Add custom aligned memcpy() implementation +* ectool: Fix timeout on sending EC command and support OpenBSD +* ifdtool: Fix ICH Gbe unlock +* intelmetool: Add support for Wildcat Point LP, fix segfault on edge + cases +* inteltool: Add support for CH6-10, ICH10, Wildcat Point-LP and fix ICH +SPIBAR +* sconfig: Add a new SPI device type +* superiotool: Add new chips - IT8783E/F, W83627DHG, W83627EHG, F71808A + +Changes in chips +---------------- + +Added 1 processor & northbridge: +* amd/pi/00670F00 + +Added 1 soc: +* lowrisc/lowrisc + +Removed 1 northbridge: +* intel/e7501 + +Added 2 sios: +* fintek/f71808a +* ite/it8783ef + +Mainboard changes +----------------- + +Added 52 mainboards and variants: +* AMD Gardenia - AMD Stoney Ridge +* Asus F2A85_M_PRO - AMD Family 15h Trinity +* Asus P5GC_MX - Intel Socket LGA775 +* Gigabyte GA_945GCM_S2L & GA_945GCM_S2C variant - Intel Socket LGA775 +* Google Auron variants: Yuna, Gandof, Lulu - Intel Broadwell +* Google Beltino variants: McCloud, Monroe, Tricky, Zako - Intel Haswell +* Google Eve - Intel Kabylake +* Google Fizz - Intel Kabylake +* Google Gru variants: Bob, Scarlet - RockChip RK3399 +* Google Oak variants: Hana, Rowan - MediaTek MT8173 +* Google Poppy & Soraka variant - Intel Kabylake +* Google Rambi variants: Banjo, Candy, Clapper, Glimmer, Gnawty, Heli, + Kip, Orco, Quawks, Squawks, Sumo, Swanky, & Winky - Intel Baytrail +* Google Reef variants: Sand, Snappy, Nasher - Intel Apollolake +* Google Slippy variants: Leon, Wolf - Intel Haswell +* Intel KBLRVP3 & KBLRVP7 - Intel Kabylake +* Intel LEAFHILL - Intel Apollolake +* Intel MINNOW3 - Intel Apollolake +* Lenovo L520: Intel Sandybridge +* Lenovo S230U: Intel Ivybridge +* Lenovo X1 Carbon GEN1 - Intel Sandybridge +* lowRISC NEXYS4DDR - RiscV +* MSI MS7721 - AMD Bulldozer +* PC Engines APU2 - AMD Jaguar +* RODA RV11 & RW11 variant - Intel Ivybridge +* Sapphire Pure Platinum H61 - Intel Socket LGA1155 +* Siemens MC_APL1 - Intel Apollolake + +Removed 10 mainboard variants: +* Google Auron (Still available as a base-board for variants) +* Google Veyron Chromeboxes: Brain, Danger, Emile, Romy +* Google Veyron Test Projects: Gus, Nicky, Pinky, Shark, Thea + +Utilities +--------- + +Added 2 new utilities: +* blobtool +* me_cleaner + +Submodules +---------- + +Updated 5 submodules +* 3rdparty/blobs (10 commits) +* 3rdparty/arm-trusted-firmware (172 commits) +* 3rdparty/vboot (158 commits) +* 3rdparty/chromeec/ (810 commits) +* util/nvidia/cbootimage (2 commits) + +Tested boards +------------- + +The following boards were tested recently: +* emulation qemu-q35 4.6-1 +* asus kgpe-d16 4.6-1 +* asus kfsn4-dre 4.6-1 +* asus p5gc-mx 4.6-1 +* lenovo x60 4.5-1681 / 4.6-7 +* lenovo x230 4.5-1674 / 4.6-27 +* asrock e350m1 4.5-1662 / 4.6-7 +* lenovo t420 4.5-1640 +* lenovo x200 4.5-1598 / 4.6-33 +* sapphire pureplatinumh61 4.5-1575 +* gigabyte ga-945gcm-s2l 4.5-1568 +* lenovo t400 4.5-1564 +* lenovo t60 4.5-1559 +* gigabyte m57sli 4.5-1526 +* purism librem13 4.5-1503 +* gigabyte ga-g41m-es2l 4.5-1444 +* google slippy 4.5-1441 +* intel d510mo 4.5-1341 + +coreboot statistics from e74f5eaa43 to db508565d2 +------------------------------------------------- + +* Total Commits: 1708 +* Average Commits per day: 8.75 +* Total authors: 121 +* New authors: 34 +* Total Reviewers: 72 +* Total Submitters: 19 +* Total lines added: 177576 +* Total lines removed: - 107460 +* Total difference: 70116 + +Code removal after the 4.6 release +---------------------------------- + +The only platform currently scheduled for removal is the +bifferos/bifferboard & soc/rdc/r8610. This platform is one of two that +still uses romcc to compile romstage and doesn't have cache-as-ram in +romstage - the others were all removed long ago. Additionally, it seems +to be impossible to buy, so as far as it can be determined, no testing +has been done recently. + +Code removal after the 4.7 release +---------------------------------- + +One of the things that the coreboot project has struggled with is how to +maintain the older platforms while still moving the rest of the +platforms forward. Currently there are numerous platforms in the +codebase which have not been well maintained. + +Starting with the 4.7 release in October, the coreboot leadership is +going to set standards that platforms are expected to meet to remain in +the active codebase. These will generally be announced 3 - 6 months in +advance to give time to get changes in. The expectation is not +necessarily even that all work to meet the goal will be completed, but +it is expected that a reasonable effort has started to meet the goal at +the time of the release. Regardless of the work that's been done, +platforms which have not met the goal by the following release will be +removed. + +The next expectation that will need to be met for all platforms is cbmem +in romstage. This currently affects numerous platforms, including most, +if not all of AMD's platforms. Work to update many of these platforms +has started, but there are others that have not made any progress +towards this goal. A list of the platforms that are affected by this +will be sent to the mailing list shortly. + +Code removal after the 4.8 release +---------------------------------- + +To further clean things up, starting with the 4.8 release, any platform +that does not have a successful boot logged in the board_status repo in +the previous year (that is, within the previous two releases) will be +removed from the maintained coreboot codebase. Chips that do not have +any associated boards will also be removed. These platforms will be +announced before the release so that there is time for people to test if +desired. + +This is not meant to be a high bar, but as a measure to clean up the +codebase and eliminate boards and chips that are actually no longer +being used. The cleanup will happen just after the release, so the +removed platforms will still be available in the release branch if +desired. If there is still interest, developers can bring back old chips +and boards by porting them to the new tree (and bringing them to current +standards). + +This gives everyone until April 2018 to get any boards that they care +about tested before the first removal. + +All the code removal information will also be sent to the mailing list +along with additional details. |