Compare commits

..

66 Commits

Author SHA1 Message Date
Sean Rhodes
019baecda0 soc/intel/alderlake: Set UsbTcPortEn based on tcss_port[x]
UsbTcPortEn is configured based on pointers to tcss_usb3_port1,
which is part of the ACPI driver.

This is illogical, as the port might need to be enabled, and
the ACPI not needed or included. Change this so it's configured
based on the tcss_port[x] in devicetree.

Tested by connecting a USB 3.0 hub, and checking that Linux
correctly identifies a new USB 3.0 device.

Change-Id: I07ef0759057f7f40210766a73643c9ccf1dc986d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
2024-06-12 17:22:01 -06:00
Tim Crawford
792996fc8c mb/system76/tgl: Update VBT to version 250
Commit 4c7e97b26a34 ("Update fsp submodule to upstream master branch")
included an update to the VBT from 240 to 250, breaking parsing of
existing VBTs.

Generate blobs for the new version using Intel Display Configuration
Tool (DisCon) v3.3.

Change-Id: I918356d9f660b985ee4408ef77544fbd071ab35f
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-05-21 14:30:46 -06:00
Jeremy Soller
f65d2abb06 Add lemp13-b
Change-Id: Icc82c47f5e9e6885e9d31878c26d471d06e11c34
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-05-17 08:35:04 -06:00
Jeremy Soller
552e524c1b Add darp10-b 2024-05-07 13:46:26 -06:00
Tim Crawford
49122b0ec5 mb/system76/mtl: Add Darter Pro 10 as a variant
Change-Id: I2325e7ab8efc8e39f679edea0f27ef35ee80bebd
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-05-07 13:46:26 -06:00
Tim Crawford
8cd1045572 mb/system76/mtl: Fix crashlog
Enable device required for crashlog at it is force enabled in SoC.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-05-07 13:46:26 -06:00
Tim Crawford
7dbc4052ed soc/intel/mtl: Set HDA subsystem ID during FSP-M
Intel introduced a new UPD for setting the HDA subsystem ID in FSP-M.
Using SiSsidTablePtr in FSP-S no longer works as it will be locked with
a default value of 0 by that point.

Change-Id: I174f9a5faf7e8dbbb370d7a4c3d6e9107fb59123
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-05-07 13:46:26 -06:00
Michał Kopeć
2ff8127cdf include/device/pci_ids.h, soc/intel/mtl: add new MTL-P iGPU DID
Found in a Clevo V560TU with Intel Core Ultra 155H

Change-Id: I0f10808fd0e2d9c122743615fbce656c6d2447cc
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82071
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-05-07 13:46:26 -06:00
Subrata Banik
3a66a8eed9 cpu/intel/microcode: Defer microcode patching until after DRAM init
Follows Intel SoC recommendation to avoid potential cache contention
issues during early (pre-DRAM) microcode loading.

Source: MTL_ARL_Processor_Family_BiosSpec_Rev1p0
Document Number: 729384

BUG=b:330536271
TEST=Able to boot to ChromeOS.

w/o this patch:

[DEBUG]  microcode: sig=0xa06a4 pf=0x80 revision=0x19
[INFO ]  CBFS: Found 'cpu_microcode_a06a4.bin' @0x1d9c0 size 0x21400
    in mcache @0xfef89680
[INFO ]  VB2:vb2_digest_init() 136192 bytes, hash algo 2, HW
    acceleration enabled
[INFO ]  microcode: load microcode patch
[ERROR]  microcode: Update failed

w/ this patch:

[ERROR]  Microcode Error: Early microcode patching is not supported due
    to NEM limitation

Change-Id: I1e433f5bede036800b27900b4b13a399b4f45d6f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81954
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-05-07 13:46:26 -06:00
Subrata Banik
d462108ba8 cpu/x86/mtrr: Error out caching limitation during NEM
Improves user experience by highlighting a possibility of runtime
hangs caused by unsupported WB caching during NEM.

Recently we have encountered an issue on Intel platform and came to
know about the NEM logical limitation where due to cache sets are not
in power_on_two running into a runtime hang upon enabling WB caching.

BUG=b:306677879
BRANCH=firmware-rex-15709.B
TEST=Verified boot on google/ovis and google/rex (including Ovis with
non-power-of-two cache configuration).

Change-Id: Ic4fbef1fcc018856420428139683897634c9f85d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81336
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2024-05-07 13:46:26 -06:00
Subrata Banik
9dad323baf soc/intel/mtl: Enable RAMTOP caching at SoC level for MTL devices
This patch enables the `SOC_INTEL_COMMON_BASECODE_RAMTOP` configuration
at the SoC level for all MTL devices. This change streamlines the
configuration process, avoiding redundant selections on individual
mainboards.

BUG=b:306677879
BRANCH=firmware-rex-15709.B
TEST=Verified boot functionality on google/ovis and google/rex.

Change-Id: I3aa3a83c190d0a0e93c267222a9dca0ac7651f9c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81271
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2024-05-07 13:46:26 -06:00
Subrata Banik
4a0c8c4289 soc/intel/cmn/ramtop: Refactor MTRR handling for RAMTOP range
This patch refactors RAMTOP MTRR type selection to address a critical
NEM logic bug on SoCs with non-power-of-two cache sets. This bug can
cause runtime hangs when Write Back (WB) caching is enabled.

Workaround: Force MTRR type to WC (Write Combining) on affected SoCs
when the cache set count is not a power of two.

BUG=b:306677879
BRANCH=firmware-rex-15709.B
TEST=Verified boot on google/ovis and google/rex (including Ovis with
non-power-of-two cache configuration).

Change-Id: Ia9a8f0d37d581b05c19ea7f9b1a07933caa956d4
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81269
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-05-07 13:46:26 -06:00
Subrata Banik
fc17805ba7 arch/x86: Add API to check if cache sets are power-of-two
Introduce a function to determine whether the number of cache sets is
a power of two. This aligns with common cache design practices that
favor power-of-two counts for efficient indexing and addressing.

BUG=b:306677879
BRANCH=firmware-rex-15709.B
TEST=Verified functionality on google/ovis and google/rex (including
a non-power-of-two Ovis configuration).

Change-Id: I819e0d1aeb4c1dbe1cdf3115b2e172588a6e8da5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81268
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-05-07 13:46:26 -06:00
Jincheng Li
568ef48bda drivers/mrc_cache: Deselect MRC_CACHE_USING_MRC_VERSION by default
EDK2 version binding is irrelevant for MRC_CACHE_USING_MRC_VERSION
as this is SoC FSP choice to enable/disable this feature. So deselect
the option and leave it to SoC codes to enable it depending on needs.

Change-Id: I84fdcfbf3c833a7ccb259a1a1d4be0bcfe291dc3
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80693
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-05-07 13:46:26 -06:00
Jincheng Li
65b8b55f44 soc/intel/meteorlake: Select MRC_CACHE_USING_MRC_VERSION
MRC_CACHE_USING_MRC_VERSION is irrelevant to the EDK2 binding version
and should not be enabled under specific version conditions, so select
this at SoC level.

Change-Id: I10594df7c8fdc5cfe9b68975e01ae65859735544
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80728
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ronak Kanabar <ronak.kanabar@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-05-07 13:46:26 -06:00
Tim Crawford
6a6f7f8db0 mb/system76: Update CMOS layouts
Use the default position for ramtop and exclude it from the checksum.
Fixes invalid checksum after caching ramtop causing things like
disabling CSME to not work.

Change-Id: Ic7e0cac479e88b0c2645511e5ba4fd9622573a17
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-04-05 13:43:38 -06:00
Jeremy Soller
7114256ba7 lemp13: disable CPU C10 reporting
Change-Id: I6592f6ebdd949783321a3846bb4c44a693916326
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-25 14:30:24 -06:00
Jeremy Soller
30ee8e1e97 lemp13: use SPD size of 1024 bytes
Change-Id: Idd9349188b5d74fe0d389582d56d2ac46d6bd3d0
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-22 10:32:11 -06:00
Jeremy Soller
160f0f97a2 Ensure that full DDR5 SPD is read
Change-Id: I8be865e7a3702245f50fd62479dcc52e67933145
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-22 10:32:11 -06:00
Jeremy Soller
9c1710a9a7 Revert "soc/intel/meteorlake: Disable MRC fast boot"
This reverts commit 22a3cb788d63196302dedf9e271ca5a386835e31.
2024-03-22 10:32:11 -06:00
Jeremy Soller
37241d7fa8 soc/intel/common/block/cse: prevent HECI commands when flash descriptor override is set
Sending the disable and EOP commands will not work if flash descriptor
override is set on meteorlake.

Change-Id: I3b5a56229434c9cc326141d48359faa7759541ee
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-22 10:32:11 -06:00
Jeremy Soller
7beec0babd
soc/intel/meteorlake: increase cbfs and preram cbmem console sizes
These values were taken from alderlake.

Change-Id: Ib790c7d52748156b25bad423ed082c1b51a33550
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-21 11:47:21 -06:00
Jeremy Soller
22a3cb788d
soc/intel/meteorlake: Disable MRC fast boot
MRC fast boot causes issues with memory init reusing invalid values
when DIMMs are switched.

Change-Id: Ia053982f747b2e794b974b84d57a9ead61ddd2ea
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-21 11:47:20 -06:00
Sean Rhodes
b1996b212b
soc/intel/meteorlake: Correctly set Usb4CmMode
The ACPI is adjusted based on SOFTWARE_CONNECTION_MANAGER, so set
the UPD to match this to avoid the connection type being
mismatched.

If it's mismatched, the TBT port will timeout.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I3ab68c01f682723dab39870f0676e59ae3d89add
2024-03-21 11:47:19 -06:00
Tim Crawford
a176798a16 mb/system76/rpl: oryp12: Disable AER on TBT port
Change-Id: I93f0d7c912684331c9d5fe79a539488e979d5547
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-03-21 11:11:44 -06:00
Tim Crawford
9bd47b4bed mb/system76/rpl: Add Oryx Pro 12 as a variant
Change-Id: I7c5bee7e188a1fd73ab1d546e941929471227554
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-03-19 13:38:59 -06:00
Jeremy Soller
bcd34461da Add System76 Lemur Pro (lemp13)
Change-Id: I805cf4929bc69d50237603d40bab6adb6fbdc862
Signed-off-by: Jeremy Soller <jeremy@system76.com>
2024-03-19 13:19:47 -06:00
Jeremy Soller
d876776a6b soc/intel/adl,mtl: Use channel 0 only for memory down in mixed topo
Change-Id: Ic30bec272e82535f6f606033c3ba512662cb2c8b
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-19 13:19:47 -06:00
Jeremy Soller
960bfe9d53 soc/intel/meteorlake: set PortResetMessageEnable appropriately
Change-Id: I61f93f70b882b98e079edf24b1b98cd3b7a7d5ee
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-19 13:19:47 -06:00
Jeremy Soller
d14c9c670d soc/intel/meteorlake: Hook up GMA ACPI brightness controls
Change-Id: I436feba1166c0dedb7b0e89458347e6ca2826ae7
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-19 13:19:47 -06:00
Jeremy Soller
b8bf900ce6 soc/intel/meteorlake: set PchHdaAudioLinkHdaEnable
Change-Id: I6f35339d91ce0897e6ba4ff3c922ad5c94036321
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-19 13:19:47 -06:00
Jeremy Soller
7480a5a34e soc/intel/meteorlake: Expand DDR5 channels like soc/intel/alderlake
Change-Id: Id73ed4603e4c6316c099de1e8dbf8eba0a4e1e1f
Signed-off-by: Jeremy Soller <jackpot51@gmail.com>
2024-03-19 13:19:47 -06:00
Tim Crawford
b37a24f403 drivers/i2c/tas5825m: Use I2C instead of SMBus
The latest Clevo boards connect the TAS5825M to one of the I2C
connections instead of the SMBus connection. The I2C ops are compatible
with SMBus, so always use them.

Change-Id: I5152db647094acf473cc798970dd9d97543df4d7
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-03-07 16:50:31 -07:00
Michał Żygowski
f3ecbaeb3b lib/rtc: Fix off-by-one error in February day count in leap year
The month argument passed to rtc_month_days is 0-based, not 1-based.
This results in the RTC being reverted to the build date constantly
on 29th February 2024.

Change-Id: If451e3e3471fef0d429e255cf297050a525ca1a2
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80790
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
2024-02-29 11:29:10 -07:00
CoolStar
e8df441ef2 soc/intel/tigerlake: Remove IOM Mctp command from TCSS ASL
Port fix from Alder Lake to not set/reset IOM MCTP during
D3 cold entry or exit.

Ports 5008d340033d ("soc/intel/adl: Remove IOM Mctp command from TCSS
ASL"):

> Recently as part of s0ix hang issue, it was found that sending IOM
> MCTP command as part of TCSS D3 Cold enter-exit sequence created an
> issue.

> We discovered that due to change in hardware sequence, ADL should not
> set/reset IOM MCTP during D3 cold entry or exit. This patch removes
> the bit setting from ASL file to prevent hang in the system.

> This patch also removes obsolete Pcode mailbox communication which
> is no longer required for ADL.

> BUG=b:220796339
> BRANCH=firmware-brya-14505.B
> TEST=Check if hang issue is resolved with the CL and no other
> regression
> observed

> https://review.coreboot.org/c/coreboot/+/62861

Test: build/boot drobit to Win11. Verify TCSS XHCI power management
working and USB Root Hub doesn't Code 43 in device manager

Change-Id: I40a537fd2b0c821caf282f52aaff1874f54325f1
Signed-off-by: CoolStar <coolstarorganization@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80719
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-02-29 11:29:10 -07:00
CoolStar
e824c88b95 soc/intel/tigerlake: Fix processor hang while plug unplug of TBT device
Port 9c348a7b7ea3 ("soc/intel/alderlake: Fix processor hang while plug
unplug of TBT device") from Alder Lake to fix a similar issue present
on Tiger Lake:

> Processor hang is observed while hot plug unplug of TBT device. BIOS
> should execute TBT PCIe RP RTD3 flow based on the value of
> TBT_DMA_CFG_VS_CAP_9[30]. It should skip TBT PCIe RP RTD3 flow, if
> BIT30 in TBT FW version is not set.

> BUG=b:194880254

> https://review.coreboot.org/c/coreboot/+/56503

Change-Id: Ie5409111d4239be86c0b153f01b4fe5fc6af352c
Signed-off-by: CoolStar <coolstarorganization@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80718
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-02-29 11:29:10 -07:00
Marx Wang
f7cea308fc soc/intel/adl: Set slp-s0 counter frequency
System sleep time (SLP_S0 signal asserted) is measured in ticks, for
Alder Lake soc in 122us (i.e. ~8197Hz) granularity/ticks.

BUG=b:301854636
TEST=/sys/devices/system/cpu/cpuidle/
low_power_idle_system_residency_us" will show system idle residency time

Change-Id: I449f7ed0d9ef891ae5266e8fd784a063a75e38eb
Signed-off-by: Marx Wang <marx.wang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80665
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sukumar Ghorai <sukumar.ghorai@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-02-29 11:29:10 -07:00
Sean Rhodes
566623f0fc soc/intel/alderlake: Sync UPD Usb4CmMode with Kconfig
The ACPI is adjusted based on SOFTWARE_CONNECTION_MANAGER, so set
the UPD to match this to avoid the connection type being mismatched.

If it's mismatched, the TBT port will time out.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I8a99db165301ce08caf55aac0e33ca1994559d62
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80486
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2024-02-29 11:29:10 -07:00
Tim Crawford
2c8c5cf25b
mb/system76/rpl: Fix typo
Change-Id: I9e421023dbd8b30af9c968ca5b78d6e7f803f297
Fixes: c70505ff8d97 ("mb/system76/rpl: addw4: Set dynamic boost values")
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-28 14:24:15 -07:00
Tim Crawford
c70505ff8d mb/system76/rpl: addw4: Set dynamic boost values
Fixes: 7df47320ec55 ("mb/system76/rpl: Add Adder WS 4 as a variant")
Change-Id: I34f637e5cc0d06908d4fdd317705a4270e69d039
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-28 14:20:59 -07:00
Tim Crawford
7df47320ec mb/system76/rpl: Add Adder WS 4 as a variant
Change-Id: Ic9a886445d6280514d62d953765105087a6e60fb
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-28 11:41:55 -07:00
Tim Crawford
6ab4a7243c
mb/system76/adl,rpl: Fix HDA codec init
Commit 2d482386182e ("soc/intel/alderlake: Set PchHdaSdiEnable for Alder
Lake") hooked up a new UPD, overriding the FSP default and causing HDA
init to break. Hook up the new UPD in the devicetree to restore HDA
functionality.

Also remove PchHdaAudioLinkHdaEnable per board romstage, as it set in
the devicetree.

Change-Id: I2533fa829fac4913308379788911339effa36d9f
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-27 09:23:59 -07:00
Tim Crawford
38c3eda699
drivers/intel/dtbt: Fix build after rebase
Change-Id: I1357f3216dd6a14c3909241ae5bd2b39f271672e
Ref: bfb11bec3b3f ("include/device/device.h: Remove CHIP_NAME() macro")
Ref: 7fcd4d58ec7e ("device/device.h: Rename busses for clarity")
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-21 09:54:50 -07:00
Tim Crawford
4a2741633b
drivers/gfx/nvidia: Fix build after rebase
Change-Id: Ie092df13cb50f4f1cfab6157d3e5b4876bd63146
Ref: bfb11bec3b3f ("include/device/device.h: Remove CHIP_NAME() macro")
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-21 09:24:22 -07:00
Dan Campbell
60f3d71981 Resolve ACPI BIOS Errors for RPL systems
On Raptor Lake based systems with TCSS, Linux will report ACPI
errors for \_SB.PCI0.TDM0 and \_SB.PCI0.TRP0. This is due to the
tcss.asl file only being included for one specific mainboard. This
change includes tcss.asl for all Raptor Lake models.

Change-Id: I2d8de7a77cfa91cd8bdbb9c3048e21d0a677d2fa
Signed-off-by: Dan Campbell <dan@compiledworks.com>
2024-02-21 08:18:22 -07:00
Tim Crawford
d6d4c5e355 mb/system76/adl,rpl: Add timeouts for PCIe 3.0 RPs
The FSP may fail to detect PCIe 4.0 devices in PCIe 3.0 slots on S3
resume. This issue has only been experienced on lemp12, and only with
Samsung drives, but implies it could happen on other systems or with
other drives as well.

Tested on lemp12 with Samsung 980 PRO and 990 PRO drives.

Change-Id: Ieacab03f6cb0943ed2a589e9bb7669d3d8fd45ae
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 12:41:06 -07:00
Michał Kopeć
5b13dc0f5e
drivers/smmstore/ramstage.c: retry smmstore init up 5 times
Retry calling the SMI 5 times in case the initial write to APM did not
cause SMM entry immediately.

Fixes occasional SMMSTORE initialization failure on Clevo NV4xPZ with
Intel i5-1240P processor. The issue was especially evident when all
logging in coreboot was disabled.

Based on SMMSTORE implementation in MrChromebox's fork of EDK2:
27854bc8c5

Change-Id: I8929af25c4f69873bbdd835fde5cb60fc324b6ab
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
f941def9dd
mb/system76/rpl: darp9: Add SSD RTD3 configs
Some drives block the CPU from reaching C10 on suspend without the RTD3
config.

Fixes suspend with the following drives:

- Kingston KC3000 (SKC3000D/4096G)
- Kingston HyperX (SHPM2280P2H/240G)
- Solidigm P44 Pro (SSDPFKKW010X7)

The following drives continue to work:

- Samsung 970 Evo (MZVLB250HAHQ)
- WD Black SN770 (WDS250G3X0E)
- WD Green SN350 (WDS240G2G0C-00AJM0)
- WD Blue SN570 (WDS100T3B0C)

Change-Id: I205d78377fa2b0db8d37542cdb94ba86ded1d66e
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Tested-by: Levi Portenier <levi@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
b41369176f
mb/system76: Add custom CMOS default for darp8,darp9
Since these boards will use S0ix they need to leave CSME enabled for the
CPU to reach C10.

Change-Id: I70c908402c9964508bb9c439d48d24773f5a35ab
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
e96476dd65
mb/system76: Enable S0ix for darp8/darp9
The newer batch of these boards do not de-assert VW PLTRST# on S3
resume, causes the units to not power on in the EC code. Switch them to
S0ix by default, but leave S3 available.

Change-Id: I95337c1391102db9e020e82bdd938659c1a4f905
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
9113e145db
mb/system76: Enable EC lockdown on TGL+
Change-Id: I4b07846c404eb93ab4baf0a78a4bbffcc5d8afca
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
bb54e49a54
ec/system76: Support lockdown based on EC security state
Change-Id: I202c0607c2cdac1df59f42fb41735704dd5bd95c
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
be0dfcd68a
mb/system76: Enable dGPUs
Change-Id: I28fe45afaccd60621f2f2456af14306e18df2657
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Jeremy Soller
ed92a6d587
drivers/gfx/nvidia: Add driver for NVIDIA GPU
Add a driver for laptops with NVIDIA Optimus (hybrid) graphics. The
driver provides ACPI support for dynamically powering on and off the
GPU, NVIDIA Dynamic Boost support, and a function for enabling the GPU
power in romstage.

References:
- DG-09845-001: NVIDIA GN20/QN20 Hardware Design Guide
- DG-09954-001: NVIDIA GN20/QN20 Software Design Guide

Change-Id: I2dec7aa2c8db7994f78a7cc1220502676e248465
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
b21bd87af0
soc/intel/alderlake: Add IRQ for non-existent CPU PCIe device
Device 0:01.1 does not exist on ADL-P. I assume this works because the
bridged device has function 1.

Fixes the following error in Linux:

    pcieport 0000:00:01.0: can't derive routing for PCI INT B
    snd_hda_intel 0000:01:00.1: PCI INT B: no GSI - using ISA IRQ 10

Which in turn resolves the conflict with the PCH HDA device...again:

    irq 10: nobody cared (try booting with the "irqpoll" option)
    <snip>
    [<00000000bf549647>] azx_interrupt [snd_hda_codec]
    Disabling IRQ #10

Change-Id: I9d9a0003764a1e031be578c1f406b2a5d7512de7
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
f224ddbc78
mb/system76/bonw14: Enable TAS5825M smart amp
The Bonobo has 2 AMPs: one for the speakers and one for the subwoofer.

Smart AMP data was collected using a logic analyzer connected to the IC
during system start on proprietary firmware. This data is then used to
generate a C file [1].

[1]: https://github.com/system76/smart-amp

Change-Id: I5389a9890563ebd3adb20096b6225f474bc006f9
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
e3033b56fe
mb/system76/rpl: Enable discrete TBT device
The HX board, using PCH-S, use a discrete Thunderbolt device (Intel
Maple Ridge), as opposed to a built-in one like the boards using PCH-P.

Fixes Thunderbolt on RPL-HX boards using the Maple Ridge controller.

Change-Id: I53d18f3ec5a084431e1113782c791bcb42728350
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Jeremy Soller
cfa8635d03
drivers/intel/dtbt: Add discrete Thunderbolt driver
Add a new driver for discrete Thunderbolt controllers. This allows using
Maple Ridge devices on Raptor Point PCH.

Change-Id: Ib78ce43740956fa2c93b9ebddb0eeb319dcc0364
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Jeremy Soller
868c102d2f
lib,soc/intel/common/block/smbus: Use a SPD length of 512 bytes for DDR5
Change-Id: I8bdc4c676a0f571fd8f34e078f6a1c73a2e90a87
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Jeremy Soller
f6ed8684a5
soc/intel/adl: Fill in SPD data on both channels of DDR5 memory
CB:52731 introduced support for reading SPD from the EEPROM via SMBus.
Replace the now unneeded workaround for DDR5 with filling in the correct
channels for DDR5.

Change-Id: I5a92199a7cd2718e9396f0dac8257df40e4f834c
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Meera Ravindranath
920d350c9f
soc/common/smbus: Add support for reading spd data via smbus for DDR5
DDR5 uses a Serial Presence Detect EEPROM with hub function
(SPD5 hub device) to store the spd data.
This CL adds support to read the spd5 hub device via smbus.

BUG=b:180458099
TEST=Boot adlrvp DDR5 board to kernel

Signed-off-by: Meera Ravindranath <meera.ravindranath@intel.com>
Change-Id: Ic5e6c58f255bef86b68ce90a4f853bf4e7c7ccfe
2024-02-20 08:25:25 -07:00
Jeremy Soller
d241bc97c9
soc/intel/alderlake: Hack to preserve SBREG
Change-Id: Ie70905d34a4050aeff4b5cda116eb700f19a18ea
2024-02-20 08:25:25 -07:00
Tim Crawford
70657e373f
security/tpm/tspi: Do TPM Restart if TPM Resume fails
The Infineon SLB 9672 on newer Clevo machines regularly fails TPM Resume
on S3 with the error `TPM_RC_VALUE`.

Per TPM2 spec, handle the failure by performing a TPM Restart.

> The startup behavior defined by this specification is different than
> TPM 1.2 with respect to Startup(STATE). A TPM 1.2 device will enter
> Failure Mode if no state is available when the TPM receives
> Startup(STATE). This is not the case in this specification. It is up
> to the CRTM to take corrective action if it the TPM returns
> TPM_RC_VALUE in response to Startup(STATE).

Fixes the following error from being repeatedly logged in Linux:

> kernel: tpm tpm0: A TPM error (256) occurred attempting get random

Ref: Trusted Platform Module Library, Part 1: Architecture, rev 1.59
Change-Id: I3388007d4448c93bd0dda591c8ca7d1a8dc5306b
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 08:25:25 -07:00
Jeremy Soller
8d5df37c79
intel/block/pcie/rtd3: Also implement _PR3
Change-Id: Id7f4373989dffe8c3bc68a034f59a94d2160dd15
Signed-off-by: Jeremy Soller <jeremy@system76.com>
2024-02-20 08:25:25 -07:00
Jeremy Soller
ed35db9071
intel/block/pcie/rtd3: ACPI debug messages
Change-Id: Icc4a882ff73f62a134b92f1afb0dc298ea809189
Signed-off-by: Jeremy Soller <jeremy@system76.com>
2024-02-20 08:25:25 -07:00
Tim Crawford
f2182a3f95
submodules: Use absolute paths
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Change-Id: If03415f80a6028e263e76a9e3cc10df0cde5cc3c
2024-02-20 08:25:25 -07:00
4081 changed files with 30002 additions and 369731 deletions

5
.gitmodules vendored
View File

@ -13,6 +13,9 @@
[submodule "arm-trusted-firmware"] [submodule "arm-trusted-firmware"]
path = 3rdparty/arm-trusted-firmware path = 3rdparty/arm-trusted-firmware
url = https://review.coreboot.org/arm-trusted-firmware.git url = https://review.coreboot.org/arm-trusted-firmware.git
[submodule "3rdparty/chromeec"]
path = 3rdparty/chromeec
url = https://review.coreboot.org/chrome-ec.git
[submodule "libhwbase"] [submodule "libhwbase"]
path = 3rdparty/libhwbase path = 3rdparty/libhwbase
url = https://review.coreboot.org/libhwbase.git url = https://review.coreboot.org/libhwbase.git
@ -60,7 +63,7 @@
branch = stmpe branch = stmpe
[submodule "util/goswid"] [submodule "util/goswid"]
path = util/goswid path = util/goswid
url = https://review.coreboot.org/goswid url = https://review.coreboot.org/goswid.git
branch = trunk branch = trunk
[submodule "src/vendorcode/amd/opensil/genoa_poc/opensil"] [submodule "src/vendorcode/amd/opensil/genoa_poc/opensil"]
path = src/vendorcode/amd/opensil/genoa_poc/opensil path = src/vendorcode/amd/opensil/genoa_poc/opensil

2
3rdparty/amd_blobs vendored

@ -1 +1 @@
Subproject commit 26c572974bcf7255930b0e9a51da3144ed0104b5 Subproject commit 64cdd7c8ef199f5d79be14e7972fb7316f41beed

@ -1 +1 @@
Subproject commit c5b8de86c8838d08d5d8c9d67c7a432817ee62b8 Subproject commit 17bef2248d4547242463e27cfe48ec96029626b4

2
3rdparty/blobs vendored

@ -1 +1 @@
Subproject commit 45f1b757402f9a0ae8a4e021a8f5745318515308 Subproject commit a8db7dfe823def043368857b8fbfbba86f2e9e47

1
3rdparty/chromeec vendored Submodule

@ -0,0 +1 @@
Subproject commit e486b388a73f1e19f3142774d0b3ee166e8f41ff

2
3rdparty/cmocka vendored

@ -1 +1 @@
Subproject commit 8be37372097d1aa5e03b565936db7891b6180e73 Subproject commit 8931845c35e78b5123d73430b071affd537d5935

2
3rdparty/fsp vendored

@ -1 +1 @@
Subproject commit 800c85770b458ee7f7eeb1276b46e904590d3bd7 Subproject commit 507ef01cce16dc1e1af898e60de96dbb8e9d6d17

@ -1 +1 @@
Subproject commit 2f5650548f37a6fb195e9e423389537a87ac95df Subproject commit ece0d294a29a1375397941a4e6f2f7217910bc89

2
3rdparty/libgfxinit vendored

@ -1 +1 @@
Subproject commit 17cfc92f402493979783585b6581efbd98c0cf07 Subproject commit a4be8a21b0e2c752da0042c79aae5942418f53e2

2
3rdparty/vboot vendored

@ -1 +1 @@
Subproject commit f1f70f46dc5482bb7c654e53ed58d4001e386df2 Subproject commit 3d37d2aafe1f941c532def2a1fbbb58c8dd84182

34
AUTHORS
View File

@ -39,9 +39,7 @@ Alexandru Gagniuc
Alexey Buyanov Alexey Buyanov
Alexey Vazhnov Alexey Vazhnov
Alice Sell Alice Sell
Alicja Michalska
Allen-KH Cheng Allen-KH Cheng
Alper Nebi Yasak
Amanda Hwang Amanda Hwang
American Megatrends International, LLC American Megatrends International, LLC
Amersel Amersel
@ -64,7 +62,6 @@ Anna Karaś
Annie Chen Annie Chen
Anton Kochkov Anton Kochkov
Ao Zhong Ao Zhong
Appukuttan V K
Arashk Mahshidfar Arashk Mahshidfar
Arec Kao Arec Kao
Ariel Fang Ariel Fang
@ -96,7 +93,6 @@ Bora Guvendik
Boris Barbulovski Boris Barbulovski
Boris Mittelberg Boris Mittelberg
Brandon Breitenstein Brandon Breitenstein
Brandon Weeks
Brian Norris Brian Norris
Bryant Ou Bryant Ou
Carl-Daniel Hailfinger Carl-Daniel Hailfinger
@ -105,7 +101,6 @@ Caveh Jalali
Cavium Inc. Cavium Inc.
Chao Gui Chao Gui
Chen-Tsung Hsieh Chen-Tsung Hsieh
Chen. Gang C
Chia-Ling Hou Chia-Ling Hou
Chien-Chih Tseng Chien-Chih Tseng
Chris Wang Chris Wang
@ -133,7 +128,6 @@ Da Lao
Daisuke Nojiri Daisuke Nojiri
Damien Zammit Damien Zammit
Dan Callaghan Dan Callaghan
Dan Campbell
Daniel Campello Daniel Campello
Daniel Gröber Daniel Gröber
Daniel Kang Daniel Kang
@ -187,7 +181,6 @@ Eltan B.V
Eltan B.V. Eltan B.V.
Elyes Haouas Elyes Haouas
Eran Mitrani Eran Mitrani
Eren Peng
Eric Biederman Eric Biederman
Eric Lai Eric Lai
Eric Peers Eric Peers
@ -201,16 +194,13 @@ Evan Green
Evgeny Zinoviev Evgeny Zinoviev
Fabian Groffen Fabian Groffen
Fabian Kunkel Fabian Kunkel
Fabian Meyer
Fabio Aiuto Fabio Aiuto
Fabrice Bellard Fabrice Bellard
Facebook, Inc. Facebook, Inc.
Fei Yan
Felix Friedlander Felix Friedlander
Felix Held Felix Held
Felix Singer Felix Singer
Fengquan Chen Fengquan Chen
Filip Lewiński
Flora Fu Flora Fu
Florian Laufenböck Florian Laufenböck
Francois Toguo Fotso Francois Toguo Fotso
@ -224,7 +214,7 @@ Free Software Foundation, Inc.
Freescale Semiconductor, Inc. Freescale Semiconductor, Inc.
Furquan Shaikh Furquan Shaikh
Gaggery Tsai Gaggery Tsai
Gang C Chen Gang C Chen
Garmin Chang Garmin Chang
Gary Jennejohn Gary Jennejohn
George Trudeau George Trudeau
@ -244,7 +234,6 @@ HardenedLinux
Harsha B R Harsha B R
Harshit Sharma Harshit Sharma
Henry C Chen Henry C Chen
Herbert Wu
Hewlett Packard Enterprise Development LP Hewlett Packard Enterprise Development LP
Hewlett-Packard Development Company, L.P. Hewlett-Packard Development Company, L.P.
Himanshu Sahdev Himanshu Sahdev
@ -297,7 +286,6 @@ Jason Zhao
jason-ch chen jason-ch chen
Jason-jh Lin Jason-jh Lin
Jay Patel Jay Patel
Jean Lucas
Jeff Chase Jeff Chase
Jeff Daly Jeff Daly
Jeff Li Jeff Li
@ -319,7 +307,6 @@ Jitao Shi
Joe Pillow Joe Pillow
Joe Tessler Joe Tessler
Joel Kitching Joel Kitching
Joel Linn
Joey Peng Joey Peng
Johanna Schander Johanna Schander
John Su John Su
@ -338,7 +325,6 @@ Jordan Crouse
Jörg Mische Jörg Mische
Joseph Smith Joseph Smith
Josie Nordrum Josie Nordrum
Juan José García-Castro Crespo
Julia Tsai Julia Tsai
Julian Schroeder Julian Schroeder
Julian Stecklina Julian Stecklina
@ -351,7 +337,6 @@ Kangheui Won
Kapil Porwal Kapil Porwal
Karol Zmyslowski Karol Zmyslowski
Karthik Ramasubramanian Karthik Ramasubramanian
Kei Hiroyoshi
Keith Hui Keith Hui
Keith Packard Keith Packard
Kenneth Chan Kenneth Chan
@ -382,11 +367,9 @@ Lawrence Chang
Leah Rowe Leah Rowe
Lean Sheng Tan Lean Sheng Tan
Lei Wen Lei Wen
Lennart Eichhorn
Lenovo Group Ltd Lenovo Group Ltd
Leo Chou Leo Chou
Li-Ta Lo Li-Ta Lo
Li1 Feng
Liam Flaherty Liam Flaherty
Libra Li Libra Li
Libretrend LDA Libretrend LDA
@ -414,7 +397,6 @@ Marc Bertens
Marc Jones Marc Jones
Marco Chen Marco Chen
Marek Kasiewicz Marek Kasiewicz
Marek Maślanka
Marek Vasut Marek Vasut
Mario Scheithauer Mario Scheithauer
Marius Gröger Marius Gröger
@ -483,12 +465,10 @@ Myles Watson
Nancy.Lin Nancy.Lin
Naresh Solanki Naresh Solanki
Nathan Lu Nathan Lu
Naveen R. Iyer
Neill Corlett Neill Corlett
Network Appliance Inc. Network Appliance Inc.
Nicholas Chin Nicholas Chin
Nicholas Sielicki Nicholas Sielicki
Nicholas Sudsgaard
Nick Barker Nick Barker
Nick Chen Nick Chen
Nick Vaccaro Nick Vaccaro
@ -522,7 +502,6 @@ Paul Fagerburg
Paul Menzel Paul Menzel
Paul2 Huang Paul2 Huang
Paulo Alcantara Paulo Alcantara
Pavan Holla
Pavel Sayekat Pavel Sayekat
Paz Zcharya Paz Zcharya
PC Engines GmbH PC Engines GmbH
@ -541,7 +520,6 @@ Philipp Deppenwiese
Philipp Hug Philipp Hug
Piotr Kleinschmidt Piotr Kleinschmidt
Po Xu Po Xu
Poornima Tom
Prasad Malisetty Prasad Malisetty
Prashant Malani Prashant Malani
Pratik Vishwakarma Pratik Vishwakarma
@ -551,7 +529,6 @@ Protectli
Purism SPC Purism SPC
Purism, SPC Purism, SPC
Qii Wang Qii Wang
Qinghong Zeng
Qualcomm Technologies, Inc. Qualcomm Technologies, Inc.
Quanta Computer INC Quanta Computer INC
Raihow Shi Raihow Shi
@ -595,7 +572,6 @@ Robinson P. Tryon
Rockchip, Inc. Rockchip, Inc.
Rocky Phagura Rocky Phagura
Roger Lu Roger Lu
Roger Wang
Roja Rani Yarubandi Roja Rani Yarubandi
Romain Lievin Romain Lievin
Roman Zippel Roman Zippel
@ -769,14 +745,12 @@ Wojciech Macek
Wolfgang Denk Wolfgang Denk
Won Chung Won Chung
Wonkyu Kim Wonkyu Kim
Wuxy Wuxy
Xiang W
Xin Ji Xin Ji
Xixi Chen Xixi Chen
Xuxin Xiong Xuxin Xiong
YADRO YADRO
Yan Liu Yan Liu
Yang Wu
Yann Collet Yann Collet
Yaroslav Kurlaev Yaroslav Kurlaev
YH Lin YH Lin
@ -793,7 +767,6 @@ Yuanliding
Yuchen He Yuchen He
Yuchen Huang Yuchen Huang
Yunlong Jia Yunlong Jia
Yuval Peress
Zachary Yedidia Zachary Yedidia
Zanxi Chen Zanxi Chen
Zhanyong Wang Zhanyong Wang
@ -803,11 +776,10 @@ Zhi7 Li
Zhiqiang Ma Zhiqiang Ma
Zhixing Ma Zhixing Ma
Zhiyong Tao Zhiyong Tao
Zhongtian Wu zhongtian wu
Zhuohao Lee Zhuohao Lee
Ziang Wang Ziang Wang
Zoey Wu Zoey Wu
Zoltan Baldaszti Zoltan Baldaszti
小田喜陽彦 小田喜陽彦
忧郁沙茶
陳建宏 陳建宏

View File

@ -31,7 +31,8 @@ livesphinx: $(BUILDDIR)
test: test:
@echo "Test for logging purposes - Failing tests will not fail the build" @echo "Test for logging purposes - Failing tests will not fail the build"
-$(MAKE) -f Makefile.sphinx clean && $(MAKE) -k -f Makefile.sphinx html -$(MAKE) -f Makefile.sphinx clean && $(MAKE) -K -f Makefile.sphinx html
-$(MAKE) -f Makefile.sphinx clean && $(MAKE) -K -f Makefile.sphinx doctest
help: help:
@echo "all - Builds all documentation targets" @echo "all - Builds all documentation targets"

View File

@ -1,20 +1,60 @@
## SPDX-License-Identifier: GPL-2.0-only ## SPDX-License-Identifier: GPL-2.0-only
# Minimal makefile for Sphinx documentation # Makefile for Sphinx documentation
# #
# You can set these variables from the command line, and also # You can set these variables from the command line.
# from the environment for the first two. SPHINXOPTS ?=
SPHINXOPTS ?= SPHINXBUILD = sphinx-build
SPHINXBUILD ?= sphinx-build SPHINXAUTOBUILD = sphinx-autobuild
SPHINXAUTOBUILD = sphinx-autobuild PAPER =
SOURCEDIR = . BUILDDIR = _build
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help". # Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help
help: help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " epub3 to make an epub3"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
@echo " dummy to check syntax errors of document sources"
.PHONY: help Makefile.sphinx .PHONY: clean
clean:
rm -rf $(BUILDDIR)
.PHONY: html
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
.PHONY: livehtml .PHONY: livehtml
livehtml: livehtml:
@ -23,7 +63,172 @@ livehtml:
@echo @echo
$(SPHINXAUTOBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR) $(SPHINXAUTOBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)
# Catch-all target: route all unknown targets to Sphinx using the new .PHONY: dirhtml
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). dirhtml:
%: Makefile.sphinx $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
.PHONY: singlehtml
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
.PHONY: pickle
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
.PHONY: json
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
.PHONY: htmlhelp
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
.PHONY: qthelp
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/coreboot.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/coreboot.qhc"
.PHONY: applehelp
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
.PHONY: devhelp
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/coreboot"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/coreboot"
@echo "# devhelp"
.PHONY: epub
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
.PHONY: epub3
epub3:
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
@echo
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
.PHONY: latex
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
.PHONY: latexpdf
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: latexpdfja
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: text
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
.PHONY: man
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
.PHONY: texinfo
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
.PHONY: info
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
.PHONY: gettext
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
.PHONY: changes
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
.PHONY: linkcheck
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
.PHONY: doctest
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
.PHONY: coverage
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
.PHONY: xml
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
.PHONY: pseudoxml
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
.PHONY: dummy
dummy:
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
@echo
@echo "Build finished. Dummy builder generates no files."

View File

@ -5,34 +5,18 @@ backwards support for ACPI 1.0 and is only compatible to ACPI version 2.0 and
upwards. upwards.
```{toctree} - [SSDT UID generation](uid.md)
:maxdepth: 1
SSDT UID generation <uid.md>
```
## GPIO ## GPIO
```{toctree} - [GPIO toggling in ACPI AML](gpio.md)
:maxdepth: 1
GPIO toggling in ACPI AML <gpio.md>
```
## Windows-specific ACPI documentation ## Windows-specific ACPI documentation
```{toctree} - [Windows-specific documentation](windows.md)
:maxdepth: 1
Windows-specific documentation <windows.md>
```
## ACPI specification - Useful links ## ACPI specification - Useful links
```{toctree} - [ACPI Specification 6.5](https://uefi.org/specs/ACPI/6.5/index.html)
:maxdepth: 1 - [ASL 2.0 Syntax](https://uefi.org/specs/ACPI/6.5/19_ASL_Reference.html#asl-2-0-symbolic-operators-and-expressions)
- [Predefined ACPI Names](https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#predefined-acpi-names)
ACPI Specification 6.5 <https://uefi.org/specs/ACPI/6.5/index.html>
ASL 2.0 Syntax <https://uefi.org/specs/ACPI/6.5/19_ASL_Reference.html#asl-2-0-symbolic-operators-and-expressions>
Predefined ACPI Names <https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#predefined-acpi-names>
```

View File

@ -1141,8 +1141,4 @@ Spec](https://uefi.org/specifications) for details, or run the tool
## References: ## References:
```{toctree} * [AMD Glossary of terms](https://www.amd.com/system/files/documents/glossary-of-terms-20220505-for-web.pdf)
:maxdepth: 1
AMD Glossary of terms <https://www.amd.com/system/files/documents/glossary-of-terms-20220505-for-web.pdf>
```

View File

@ -5,15 +5,7 @@ architectures.
## RISC-V ## RISC-V
```{toctree} - [RISC-V documentation](riscv/index.md)
:maxdepth: 1
RISC-V documentation <riscv/index.md>
```
## x86 ## x86
```{toctree} - [x86 documentation](x86/index.md)
:maxdepth: 1
x86 documentation <x86/index.md>
```

View File

@ -2,14 +2,12 @@
This section contains documentation about coreboot on x86 architecture. This section contains documentation about coreboot on x86 architecture.
```{toctree} * [x86 PAE support](pae.md)
:maxdepth: 1
x86 PAE support <pae.md>
```
## State of x86_64 support ## State of x86_64 support
Some SOCs now support 64bit mode. Search for HAVE_X86_64_SUPPORT in Kconfig. At the moment there's only experimental x86_64 support.
The `emulation/qemu-i440fx` and `emulation/qemu-q35` boards do support
*ARCH_RAMSTAGE_X86_64* , *ARCH_POSTCAR_X86_64* and *ARCH_ROMSTAGE_X86_64*.
In order to add support for x86_64 the following assumptions were made: In order to add support for x86_64 the following assumptions were made:
* The CPU supports long mode * The CPU supports long mode
@ -17,6 +15,7 @@ In order to add support for x86_64 the following assumptions were made:
* All code that is to be run must be below 4GiB in physical memory * All code that is to be run must be below 4GiB in physical memory
* The high dword of pointers is always zero * The high dword of pointers is always zero
* The reference implementation is qemu * The reference implementation is qemu
* The CPU supports 1GiB hugepages
* x86 payloads are loaded below 4GiB in physical memory and are jumped * x86 payloads are loaded below 4GiB in physical memory and are jumped
to in *protected mode* to in *protected mode*
@ -44,12 +43,8 @@ Basic support for x86_64 has been implemented for QEMU mainboard target.
## Reference implementation ## Reference implementation
The reference implementation is The reference implementation is
```{toctree} * [QEMU i440fx](../../mainboard/emulation/qemu-i440fx.md)
:maxdepth: 1 * [QEMU Q35](../../mainboard/emulation/qemu-q35.md)
QEMU i440fx <../../mainboard/emulation/qemu-i440fx.md>
QEMU Q35 <../../mainboard/emulation/qemu-q35.md>
```
## TODO ## TODO
* Identity map memory above 4GiB in ramstage * Identity map memory above 4GiB in ramstage
@ -59,6 +54,7 @@ QEMU Q35 <../../mainboard/emulation/qemu-q35.md>
1. Fine grained page tables for SMM: 1. Fine grained page tables for SMM:
* Must not have execute and write permissions for the same page. * Must not have execute and write permissions for the same page.
* Must allow only that TSEG pages can be marked executable * Must allow only that TSEG pages can be marked executable
* Must reside in SMRAM
2. Support 64bit PCI BARs above 4GiB 2. Support 64bit PCI BARs above 4GiB
3. Place and run code above 4GiB 3. Place and run code above 4GiB
@ -66,10 +62,13 @@ QEMU Q35 <../../mainboard/emulation/qemu-q35.md>
* Fix compilation errors * Fix compilation errors
* Test how well CAR works with x86_64 and paging * Test how well CAR works with x86_64 and paging
* Improve mode switches * Improve mode switches
* Test libgfxinit / VGA Option ROMs / FSP
## Known problems on real hardware ## Known bugs on real hardware
Running VGA rom directly fails. Yabel works fine though. According to Intel x86_64 mode hasn't been validated in CAR environments.
Until now it could be verified on various Intel platforms and no issues have
been found.
## Known bugs on KVM enabled qemu ## Known bugs on KVM enabled qemu

View File

@ -1,10 +1,6 @@
# Community # Community
```{toctree} * [Code of Conduct](code_of_conduct.md)
:maxdepth: 1 * [Language style](language_style.md)
* [Community forums](forums.md)
Code of Conduct <code_of_conduct.md> * [coreboot at conferences](conferences.md)
Language style <language_style.md>
Community forums <forums.md>
coreboot at conferences <conferences.md>
```

View File

@ -1,34 +1,46 @@
# Configuration file for the Sphinx documentation builder. # -*- coding: utf-8 -*-
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
import subprocess import subprocess
from recommonmark.parser import CommonMarkParser
import sphinx
project = 'coreboot' # Get Sphinx version
copyright = 'CC-by 4.0 the coreboot project' major = 0
author = 'the coreboot project' minor = 0
patchlevel = 0
version = sphinx.__version__.split(".")
if len(version) > 1:
major = int(version[0])
minor = int(version[1])
if len(version) > 2:
patchlevel = int(version[2])
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
source_suffix = ['.md']
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'coreboot'
copyright = u'CC-by 4.0 the coreboot project'
author = u'the coreboot project'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The full version, including alpha/beta/rc tags.
release = subprocess.check_output(('git', 'describe')).decode("utf-8") release = subprocess.check_output(('git', 'describe')).decode("utf-8")
# The short X.Y version. # The short X.Y version.
version = release.split("-")[0] version = release.split("-")[0]
extensions = []
# -- General configuration --------------------------------------------------- # Load recommonmark, supported since 1.8+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration if major >= 2 or (major == 1 and minor >= 8):
extensions += ['recommonmark']
extensions = ["myst_parser"]
myst_heading_anchors = 5
templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# Try to load DITAA # Try to load DITAA
try: try:
@ -45,11 +57,62 @@ else:
# Usually you set "language" from the command line for these cases. # Usually you set "language" from the command line for these cases.
language = 'en' language = 'en'
# -- Options for HTML output ------------------------------------------------- # List of patterns, relative to source directory, that match files and
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output # directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
# modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
# keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme' html_theme = 'sphinx_rtd_theme'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static'] html_static_path = ['_static']
html_css_files = [ html_css_files = [
'theme_overrides.css', # override wide tables in RTD theme 'theme_overrides.css', # override wide tables in RTD theme
] ]
# Output file base name for HTML help builder.
htmlhelp_basename = 'corebootdoc'
enable_auto_toc_tree = True
class MyCommonMarkParser(CommonMarkParser):
# remove this hack once upstream RecommonMark supports inline code
def visit_code(self, mdnode):
from docutils import nodes
n = nodes.literal(mdnode.literal, mdnode.literal)
self.current_node.append(n)
def setup(app):
from recommonmark.transform import AutoStructify
# Load recommonmark on old Sphinx
if major == 1 and minor < 8:
app.add_source_parser('.md', MyCommonMarkParser)
app.add_config_value('recommonmark_config', {
'enable_auto_toc_tree': True,
'enable_auto_doc_ref': False, # broken in Sphinx 1.6+
'enable_eval_rst': True,
'url_resolver': lambda url: '/' + url
}, True)
app.add_transform(AutoStructify)

View File

@ -395,8 +395,8 @@ Gerrit user roles
There are a few relevant roles a user can have on Gerrit: There are a few relevant roles a user can have on Gerrit:
- The anonymous user can check out source code. - The anonymous user can check out source code.
- A registered user can also comment and give "+1" code reviews. - A registered user can also comment and give "+1" and "-1" code reviews.
- A reviewer can give "-1" and "+2" code reviews. - A reviewer can also give "+2" code reviews.
- A core developer can also give "-2" (that is, blocking) code reviews - A core developer can also give "-2" (that is, blocking) code reviews
and submit changes. and submit changes.

View File

@ -1,11 +1,7 @@
# Contributing # Contributing
```{toctree} * [Coding Style](coding_style.md)
:maxdepth: 1 * [Gerrit Guidelines](gerrit_guidelines.md)
* [Project Ideas](project_ideas.md)
Coding Style <coding_style.md> * [Documentation Ideas](documentation_ideas.md)
Gerrit Guidelines <gerrit_guidelines.md> * [Google Summer of Code](gsoc.md)
Project Ideas <project_ideas.md>
Documentation Ideas <documentation_ideas.md>
Google Summer of Code <gsoc.md>
```

View File

@ -29,7 +29,7 @@ sealings are sent via encrypted email.
### NovaCustom laptops ### NovaCustom laptops
[NovaCustom](https://novacustom.com) sells configurable laptops with [NovaCustom](https://configurelaptop.eu/) sells configurable laptops with
[Dasharo](https://dasharo.com/) coreboot based firmware on board, maintained by [Dasharo](https://dasharo.com/) coreboot based firmware on board, maintained by
[3mdeb](https://3mdeb.com/). NovaCustom offers full GNU/Linux and Microsoft [3mdeb](https://3mdeb.com/). NovaCustom offers full GNU/Linux and Microsoft
Windows compatibility. NovaCustom ensures security updates via fwupd for 5 years Windows compatibility. NovaCustom ensures security updates via fwupd for 5 years

View File

@ -8,14 +8,10 @@ For details on how to connect device drivers to a mainboard, see [Driver Devicet
Some of the drivers currently available include: Some of the drivers currently available include:
```{toctree} * [Intel DPTF](dptf.md)
:maxdepth: 1 * [IPMI KCS](ipmi_kcs.md)
* [SMMSTORE](smmstore.md)
Intel DPTF <dptf.md> * [SMMSTOREv2](smmstorev2.md)
IPMI KCS <ipmi_kcs.md> * [SoundWire](soundwire.md)
SMMSTORE <smmstore.md> * [USB4 Retimer](retimer.md)
SMMSTOREv2 <smmstorev2.md> * [CBFS SMBIOS hooks](cbfs_smbios.md)
SoundWire <soundwire.md>
USB4 Retimer <retimer.md>
CBFS SMBIOS hooks <cbfs_smbios.md>
```

View File

@ -128,11 +128,7 @@ data or modify the currently running kernel.*
## External links ## External links
```{toctree} * [A Tour Beyond BIOS Implementing UEFI Authenticated Variables in SMM with EDKI](https://software.intel.com/sites/default/files/managed/cf/ea/a_tour_beyond_bios_implementing_uefi_authenticated_variables_in_smm_with_edkii.pdf)
:maxdepth: 1
A Tour Beyond BIOS Implementing UEFI Authenticated Variables in SMM with EDKI <https://software.intel.com/sites/default/files/managed/cf/ea/a_tour_beyond_bios_implementing_uefi_authenticated_variables_in_smm_with_edkii.pdf>
```
Note, this differs significantly from coreboot's implementation. Note, this differs significantly from coreboot's implementation.
[SMM]: ../security/smm.md [SMM]: ../security/smm.md

View File

@ -124,9 +124,25 @@ additional calling arguments are passed via `%ebx`.
**NOTE**: The size of the struct entries are in the native word size of **NOTE**: The size of the struct entries are in the native word size of
smihandler. This means 32 bits in almost all cases. smihandler. This means 32 bits in almost all cases.
#### - SMMSTORE_CMD_INIT_DEPRECATED = 4 #### - SMMSTORE_CMD_INIT = 4
Unused, returns SMMSTORE_REG_UNSUPPORTED. This installs the communication buffer to use and thus enables the
SMMSTORE handler. This command can only be executed once and is done
by the firmware. Calling this function at runtime has no effect.
The additional parameter buffer `%ebx` contains a pointer to the
following struct:
```C
struct smmstore_params_init {
uint32_t com_buffer;
uint32_t com_buffer_size;
} __packed;
```
INPUT:
- `com_buffer`: Physical address of the communication buffer (CBMEM)
- `com_buffer_size`: Size in bytes of the communication buffer
#### - SMMSTORE_CMD_RAW_READ = 5 #### - SMMSTORE_CMD_RAW_READ = 5
@ -199,11 +215,7 @@ running kernel.
## External links ## External links
```{toctree} * [A Tour Beyond BIOS Implementing UEFI Authenticated Variables in SMM with EDKI](https://software.intel.com/sites/default/files/managed/cf/ea/a_tour_beyond_bios_implementing_uefi_authenticated_variables_in_smm_with_edkii.pdf)
:maxdepth: 1
A Tour Beyond BIOS Implementing UEFI Authenticated Variables in SMM with EDKI <https://software.intel.com/sites/default/files/managed/cf/ea/a_tour_beyond_bios_implementing_uefi_authenticated_variables_in_smm_with_edkii.pdf>
```
Note that this differs significantly from coreboot's implementation. Note that this differs significantly from coreboot's implementation.
[SMM]: ../security/smm.md [SMM]: ../security/smm.md

View File

@ -17,21 +17,13 @@ Please add any helpful or informational links and sections as you see fit.
* [Part 1: PCI-based systems](https://resources.infosecinstitute.com/topic/system-address-map-initialization-in-x86x64-architecture-part-1-pci-based-systems/) * [Part 1: PCI-based systems](https://resources.infosecinstitute.com/topic/system-address-map-initialization-in-x86x64-architecture-part-1-pci-based-systems/)
* [Part 2: PCI express-based systems](https://resources.infosecinstitute.com/topic/system-address-map-initialization-x86x64-architecture-part-2-pci-express-based-systems/) * [Part 2: PCI express-based systems](https://resources.infosecinstitute.com/topic/system-address-map-initialization-x86x64-architecture-part-2-pci-express-based-systems/)
* [PCIe elastic buffer](https://www.mindshare.com/files/resources/mindshare_pcie_elastic_buffer.pdf) * [PCIe elastic buffer](https://www.mindshare.com/files/resources/mindshare_pcie_elastic_buffer.pdf)
```{toctree} * [Boot Guard and PSB have user-hostile defaults](https://mjg59.dreamwidth.org/58424.html)
:maxdepth: 1
Boot Guard and PSB have user-hostile defaults <https://mjg59.dreamwidth.org/58424.html>
```
## General Information ## General Information
```{toctree} * [OS Dev](https://wiki.osdev.org/Categorized_Main_Page)
:maxdepth: 1 * [Interface BUS](http://www.interfacebus.com/)
OS Dev <https://wiki.osdev.org/Categorized_Main_Page>
Interface BUS <http://www.interfacebus.com/>
```
## OpenSecurityTraining2 ## OpenSecurityTraining2
@ -51,14 +43,10 @@ modified works back to the community.
Below is a list of currently available courses that can help understand the Below is a list of currently available courses that can help understand the
inner workings of coreboot and other firmware-related topics: inner workings of coreboot and other firmware-related topics:
```{toctree} * [coreboot design principles and boot process](https://ost2.fyi/Arch4031)
:maxdepth: 1 * [x86-64 Assembly](https://ost2.fyi/Arch1001)
* [x86-64 OS Internals](https://ost2.fyi/Arch2001)
coreboot design principles and boot process <https://ost2.fyi/Arch4031> * [x86-64 Intel Firmware Attack & Defense](https://ost2.fyi/Arch4001)
x86-64 Assembly <https://ost2.fyi/Arch1001>
x86-64 OS Internals <https://ost2.fyi/Arch2001>
x86-64 Intel Firmware Attack & Defense <https://ost2.fyi/Arch4001>
```
There are [additional security courses](https://p.ost2.fyi/courses) at the site There are [additional security courses](https://p.ost2.fyi/courses) at the site
as well (such as as well (such as
@ -66,79 +54,47 @@ as well (such as
## Firmware Specifications & Information ## Firmware Specifications & Information
```{toctree} * [System Management BIOS - SMBIOS](https://www.dmtf.org/standards/smbios)
:maxdepth: 1 * [Desktop and Mobile Architecture for System Hardware - DASH](https://www.dmtf.org/standards/dash)
* [PNP BIOS](https://www.intel.com/content/dam/support/us/en/documents/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf)
System Management BIOS - SMBIOS <https://www.dmtf.org/standards/smbios>
Desktop and Mobile Architecture for System Hardware - DASH <https://www.dmtf.org/standards/dash>
PNP BIOS <https://www.intel.com/content/dam/support/us/en/documents/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf>
```
### ACPI ### ACPI
```{toctree} * [ACPI Specs](https://uefi.org/acpi/specs)
:maxdepth: 1 * [ACPI in Linux](https://www.kernel.org/doc/ols/2005/ols2005v1-pages-59-76.pdf)
* [ACPI 5 Linux](https://blog.linuxplumbersconf.org/2012/wp-content/uploads/2012/09/LPC2012-ACPI5.pdf)
ACPI Specs <https://uefi.org/acpi/specs> * [ACPI 6 Linux](https://events.static.linuxfound.org/sites/events/files/slides/ACPI_6_and_Linux_0.pdf)
ACPI in Linux <https://www.kernel.org/doc/ols/2005/ols2005v1-pages-59-76.pdf>
ACPI 5 Linux <https://blog.linuxplumbersconf.org/2012/wp-content/uploads/2012/09/LPC2012-ACPI5.pdf>
ACPI 6 Linux <https://events.static.linuxfound.org/sites/events/files/slides/ACPI_6_and_Linux_0.pdf>
```
### Security ### Security
```{toctree} * [Intel Boot Guard](https://edk2-docs.gitbook.io/understanding-the-uefi-secure-boot-chain/secure_boot_chain_in_uefi/intel_boot_guard)
:maxdepth: 1
Intel Boot Guard <https://edk2-docs.gitbook.io/understanding-the-uefi-secure-boot-chain/secure_boot_chain_in_uefi/intel_boot_guard>
```
## Hardware information ## Hardware information
```{toctree} * [WikiChip](https://en.wikichip.org/wiki/WikiChip)
:maxdepth: 1 * [Sandpile](https://www.sandpile.org/)
* [CPU-World](https://www.cpu-world.com/index.html)
WikiChip <https://en.wikichip.org/wiki/WikiChip> * [CPU-Upgrade](https://www.cpu-upgrade.com/index.html)
Sandpile <https://www.sandpile.org/>
CPU-World <https://www.cpu-world.com/index.html>
CPU-Upgrade <https://www.cpu-upgrade.com/index.html>
```
### Hardware Specifications & Standards ### Hardware Specifications & Standards
* [Bluetooth](https://www.bluetooth.com/specifications/specs/) - Bluetooth SIG * [Bluetooth](https://www.bluetooth.com/specifications/specs/) - Bluetooth SIG
```{toctree} * [eMMC](https://www.jedec.org/) - JEDEC - (LOGIN REQUIRED)
:maxdepth: 1
eMMC <https://www.jedec.org/) - JEDEC - (LOGIN REQUIRED>
```
* [eSPI](https://cdrdv2.intel.com/v1/dl/getContent/645987) - Intel * [eSPI](https://cdrdv2.intel.com/v1/dl/getContent/645987) - Intel
* [I2c Spec](https://web.archive.org/web/20170704151406/https://www.nxp.com/docs/en/user-guide/UM10204.pdf), * [I2c Spec](https://web.archive.org/web/20170704151406/https://www.nxp.com/docs/en/user-guide/UM10204.pdf),
[Appnote](https://www.nxp.com/docs/en/application-note/AN10216.pdf) - NXP [Appnote](https://www.nxp.com/docs/en/application-note/AN10216.pdf) - NXP
* [I2S](https://www.nxp.com/docs/en/user-manual/UM11732.pdf) - NXP * [I2S](https://www.nxp.com/docs/en/user-manual/UM11732.pdf) - NXP
```{toctree} * [I3C](https://www.mipi.org/specifications/i3c-sensor-specification) - MIPI Alliance (LOGIN REQUIRED)
:maxdepth: 1 * [Memory](https://www.jedec.org/) - JEDEC - (LOGIN REQUIRED)
I3C <https://www.mipi.org/specifications/i3c-sensor-specification) - MIPI Alliance (LOGIN REQUIRED>
Memory <https://www.jedec.org/) - JEDEC - (LOGIN REQUIRED>
```
* [NVMe](https://nvmexpress.org/developers/) - NVMe Specifications * [NVMe](https://nvmexpress.org/developers/) - NVMe Specifications
* [LPC](https://www.intel.com/content/dam/www/program/design/us/en/documents/low-pin-count-interface-specification.pdf) - Intel * [LPC](https://www.intel.com/content/dam/www/program/design/us/en/documents/low-pin-count-interface-specification.pdf) - Intel
```{toctree} * [PCI / PCIe / M.2](https://pcisig.com/specifications) - PCI-SIG - (LOGIN REQUIRED)
:maxdepth: 1
PCI / PCIe / M.2 <https://pcisig.com/specifications) - PCI-SIG - (LOGIN REQUIRED>
```
* [Power Delivery](https://www.usb.org/documents) - USB Implementers Forum * [Power Delivery](https://www.usb.org/documents) - USB Implementers Forum
```{toctree} * [SATA](https://sata-io.org/developers/purchase-specification) - SATA-IO (LOGIN REQUIRED)
:maxdepth: 1
SATA <https://sata-io.org/developers/purchase-specification) - SATA-IO (LOGIN REQUIRED>
```
* [SMBus](http://www.smbus.org/specs/) - System Management Interface Forum * [SMBus](http://www.smbus.org/specs/) - System Management Interface Forum
* [Smart Battery](http://smartbattery.org/specs/) - Smart Battery System Implementers Forum * [Smart Battery](http://smartbattery.org/specs/) - Smart Battery System Implementers Forum
* [USB](https://www.usb.org/documents) - USB Implementers Forum * [USB](https://www.usb.org/documents) - USB Implementers Forum
@ -177,9 +133,5 @@ SATA <https://sata-io.org/developers/purchase-specification) - SATA-IO (LOGIN RE
## Infrastructure software ## Infrastructure software
```{toctree} * [Kconfig](https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html)
:maxdepth: 1 * [GNU Make](https://www.gnu.org/software/make/manual/)
Kconfig <https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html>
GNU Make <https://www.gnu.org/software/make/manual/>
```

View File

@ -75,7 +75,7 @@ $(call add_intermediate, add_mrc_data)
Note that the second line must start with a tab, not spaces. Note that the second line must start with a tab, not spaces.
```{eval-rst} ```eval_rst
See also :doc:`../tutorial/managing_local_additions`. See also :doc:`../tutorial/managing_local_additions`.
``` ```

View File

@ -84,8 +84,8 @@ the operating system.
* U-boot, depthcharge, FILO, etc. * U-boot, depthcharge, FILO, etc.
Theres [https://doc.coreboot.org/payloads.html](https://doc.coreboot.org/payloads.html) Theres [https://doc.coreboot.org/payloads.html](https://doc.coreboot.org/payloads.
with a list, although its not complete. html) with a list, although its not complete.
### What does coreboot leave in memory after it's done initializing the hardware? ### What does coreboot leave in memory after it's done initializing the hardware?

View File

@ -167,7 +167,7 @@ could cause catastrophic failures, up to and including your mainboard!
As per Intel Platform Controller Hub (PCH) EDS since Skylake, a GPIO PAD register As per Intel Platform Controller Hub (PCH) EDS since Skylake, a GPIO PAD register
supports four different types of GPIO reset as: supports four different types of GPIO reset as:
```{eval-rst} ```eval_rst
+------------------------+----------------+-------------+-------------+ +------------------------+----------------+-------------+-------------+
| | | PAD Reset ? | | | | PAD Reset ? |
+ PAD Reset Config + Platform Reset +-------------+-------------+ + PAD Reset Config + Platform Reset +-------------+-------------+

View File

@ -1,14 +1,10 @@
# Getting Started # Getting Started
```{toctree} * [coreboot architecture](architecture.md)
:maxdepth: 1 * [Build System](build_system.md)
* [Submodules](submodules.md)
coreboot architecture <architecture.md> * [Kconfig](kconfig.md)
Build System <build_system.md> * [Writing Documentation](writing_documentation.md)
Submodules <submodules.md> * [Setting up GPIOs](gpio.md)
Kconfig <kconfig.md> * [Adding devices to a device tree](devicetree.md)
Writing Documentation <writing_documentation.md> * [Frequently Asked Questions](faq.md)
Setting up GPIOs <gpio.md>
Adding devices to a device tree <devicetree.md>
Frequently Asked Questions <faq.md>
```

View File

@ -11,12 +11,8 @@ configuration front end in coreboot today.
The official Kconfig source and documentation is kept at kernel.org: The official Kconfig source and documentation is kept at kernel.org:
```{toctree} - [Kconfig source](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/scripts/kconfig)
:maxdepth: 1 - [Kconfig Language Documentation](https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt)
Kconfig source <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/scripts/kconfig>
Kconfig Language Documentation <https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt>
```
The advantage to using Kconfig is that it allows users to easily select the The advantage to using Kconfig is that it allows users to easily select the
high level features of the project to be enabled or disabled at build time. high level features of the project to be enabled or disabled at build time.
@ -200,9 +196,9 @@ values to be set based on other values.
visible in the front end. visible in the front end.
### Keywords ## Keywords
#### bool ### bool
The 'bool' keyword assigns a boolean type to a symbol. The allowable values for The 'bool' keyword assigns a boolean type to a symbol. The allowable values for
a boolean type are 'n' or 'y'. The keyword can be followed by an optional prompt a boolean type are 'n' or 'y'. The keyword can be followed by an optional prompt
@ -238,7 +234,7 @@ bool \[prompt\] \[if &lt;expr&gt;\]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### choice ### choice
This creates a selection list of one or more boolean symbols. For bools, only This creates a selection list of one or more boolean symbols. For bools, only
one of the symbols can be selected, and one will be be forced to be selected, one of the symbols can be selected, and one will be be forced to be selected,
@ -301,7 +297,7 @@ choice \[symbol\]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### comment ### comment
This keyword defines a line of text that is displayed to the user in the This keyword defines a line of text that is displayed to the user in the
configuration frontend and is additionally written to the output files. configuration frontend and is additionally written to the output files.
@ -326,7 +322,7 @@ comment &lt;prompt&gt;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### config ### config
This is the keyword that starts a block defining a Kconfig symbol. The symbol This is the keyword that starts a block defining a Kconfig symbol. The symbol
modifiers follow the 'config' statement. modifiers follow the 'config' statement.
@ -363,7 +359,7 @@ config &lt;symbol&gt;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### default ### default
The default keyword assigns a value to a symbol in the case where no preset The default keyword assigns a value to a symbol in the case where no preset
value exists, i.e. the symbol is not present and assigned in .config. If there value exists, i.e. the symbol is not present and assigned in .config. If there
@ -403,7 +399,7 @@ default &lt;expr&gt; \[if &lt;expr&gt;\]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### def_bool ### def_bool
def_bool is similar to the 'bool' keyword in that it sets a symbols type to def_bool is similar to the 'bool' keyword in that it sets a symbols type to
boolean. It lets you set the type and default value at the same time, instead boolean. It lets you set the type and default value at the same time, instead
@ -437,7 +433,7 @@ def_bool &lt;expr&gt; \[if &lt;expr&gt;\]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### depends on ### depends on
This defines a dependency for a menu entry, including symbols and comments. It This defines a dependency for a menu entry, including symbols and comments. It
behaves the same as surrounding the menu entry with an if/endif block. If the behaves the same as surrounding the menu entry with an if/endif block. If the
@ -466,28 +462,28 @@ depends on &lt;expr&gt;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### endchoice ### endchoice
This ends a choice block. See the 'choice' keyword for more information and an This ends a choice block. See the 'choice' keyword for more information and an
example. example.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### endif ### endif
This ends a block started by the 'if' keyword. See the 'if' keyword for more This ends a block started by the 'if' keyword. See the 'if' keyword for more
information and an example. information and an example.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### endmenu ### endmenu
This ends a menu block. See the 'menu' keyword for more information and an This ends a menu block. See the 'menu' keyword for more information and an
example. example.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### help ### help
The 'help' keyword defines the subsequent block of text as help for a config or The 'help' keyword defines the subsequent block of text as help for a config or
choice block. The help block is started by the 'help' keyword on a line by choice block. The help block is started by the 'help' keyword on a line by
@ -519,7 +515,7 @@ help &lt;help text&gt;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### hex ### hex
This is another symbol type specifier, specifying an unsigned integer value This is another symbol type specifier, specifying an unsigned integer value
formatted as hexadecimal. formatted as hexadecimal.
@ -555,7 +551,7 @@ hex &lt;expr&gt; \[if &lt;expr&gt;\]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### if ### if
The 'if' keyword is overloaded, used in two different ways. The first definition The 'if' keyword is overloaded, used in two different ways. The first definition
enables and disables various other keywords, and follows the other keyword enables and disables various other keywords, and follows the other keyword
@ -596,7 +592,7 @@ endif
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### int ### int
A type setting keyword, defines a symbol as an integer, accepting only signed A type setting keyword, defines a symbol as an integer, accepting only signed
numeric values. The values can be further restricted with the range keyword. numeric values. The values can be further restricted with the range keyword.
@ -632,7 +628,7 @@ int &lt;expr&gt; \[if &lt;expr&gt;\]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### mainmenu ### mainmenu
The 'mainmenu' keyword sets the title or title bar of the configuration front The 'mainmenu' keyword sets the title or title bar of the configuration front
end, depending on how the configuration program decides to use it. It can only end, depending on how the configuration program decides to use it. It can only
@ -652,7 +648,7 @@ mainmenu "coreboot configuration"
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### menu ### menu
The 'menu' and 'endmenu' keywords tell the configuration front end that the The 'menu' and 'endmenu' keywords tell the configuration front end that the
enclosed statements are part of a group of related pieces. enclosed statements are part of a group of related pieces.
@ -699,7 +695,7 @@ endmenu
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### prompt ### prompt
The 'prompt' keyword sets the text displayed for a config symbol or choice in The 'prompt' keyword sets the text displayed for a config symbol or choice in
configuration front end. configuration front end.
@ -752,7 +748,7 @@ prompt &lt;prompt&gt; \[if &lt;expr&gt;\]
prompt "Prompt value 2" prompt "Prompt value 2"
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### range ### range
This sets the allowable minimum and maximum entries for hex or int type config This sets the allowable minimum and maximum entries for hex or int type config
symbols. symbols.
@ -774,7 +770,7 @@ range &lt;symbol&gt; &lt;symbol&gt; \[if &lt;expr&gt;\]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### select ### select
The select keyword is used within a bool type config block. In coreboot (and The select keyword is used within a bool type config block. In coreboot (and
other projects that don't use modules), the 'select' keyword can force an other projects that don't use modules), the 'select' keyword can force an
@ -818,7 +814,7 @@ select &lt;symbol&gt; \[if &lt;expr&gt;\]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### source ### source
The 'source' keyword functions much the same as an 'include' statement in c. The 'source' keyword functions much the same as an 'include' statement in c.
This pulls one or more files into Kconfig at the location of the 'source' This pulls one or more files into Kconfig at the location of the 'source'
@ -877,7 +873,7 @@ statements that generate a list of all the platform names:
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#### string ### string
The last of the symbol type assignment keywords. 'string' allows a text value to The last of the symbol type assignment keywords. 'string' allows a text value to
be entered. be entered.
@ -923,7 +919,7 @@ keyword later. See the prompt keyword for more notes.
### Keywords not used in coreboot at the time of writing: ## Keywords not used in coreboot at the time of writing:
- allnoconfig_y: - allnoconfig_y:
- defconfig_list - defconfig_list
@ -948,7 +944,7 @@ statements:
#define SYMBOL NAME XXX #define SYMBOL NAME XXX
#### Symbol types: ##### Symbol types:
- bool, int, and hex types - Every symbol of one of these types created in the - bool, int, and hex types - Every symbol of one of these types created in the
Kconfig tree is defined. It doesnt matter whether theyre in an if/endif Kconfig tree is defined. It doesnt matter whether theyre in an if/endif
block, or have a depends on statement - they ALL end up being defined in block, or have a depends on statement - they ALL end up being defined in
@ -1168,19 +1164,19 @@ saved .config file. As always, a 'select' statement overrides any specified
## Kconfig Editor Highlighting ## Kconfig Editor Highlighting
### vim: #### vim:
vim has syntax highlighting for Kconfig built in (or at least as a part of vim has syntax highlighting for Kconfig built in (or at least as a part of
vim-common), but most editors do not. vim-common), but most editors do not.
### ultraedit: #### ultraedit:
https://github.com/martinlroth/wordfiles/blob/master/kconfig.uew https://github.com/martinlroth/wordfiles/blob/master/kconfig.uew
### atom: #### atom:
https://github.com/martinlroth/language-kconfig https://github.com/martinlroth/language-kconfig

View File

@ -99,7 +99,7 @@ To reference documents use the TOC tree or inline RST code.
Under Sphinx markdown tables are not supported. Therefore you can use following Under Sphinx markdown tables are not supported. Therefore you can use following
code block to write tables in reStructuredText and embed them into the markdown: code block to write tables in reStructuredText and embed them into the markdown:
```{eval-rst} ```eval_rst
+------------+------------+-----------+ +------------+------------+-----------+
| Header 1 | Header 2 | Header 3 | | Header 1 | Header 2 | Header 3 |
+============+============+===========+ +============+============+===========+
@ -144,7 +144,7 @@ you'll see the following warning:
You can import CSV files and let sphinx automatically convert them to human You can import CSV files and let sphinx automatically convert them to human
readable tables, using the following reStructuredText snipped: readable tables, using the following reStructuredText snipped:
```{eval-rst} ```eval_rst
.. csv-table:: .. csv-table::
:header: "Key", "Value" :header: "Key", "Value"
:file: keyvalues.csv :file: keyvalues.csv

View File

@ -22,7 +22,7 @@ the power sequence timing parameters, which are usually named T[N] and also
referenced in Intel's respective registers listing. You need the values for referenced in Intel's respective registers listing. You need the values for
`PP_ON_DELAYS`, `PP_OFF_DELAYS` and `PP_DIVISOR` for your `devicetree.cb`: `PP_ON_DELAYS`, `PP_OFF_DELAYS` and `PP_DIVISOR` for your `devicetree.cb`:
```{eval-rst} ```eval_rst
+-----------------------------+---------------------------------------+-----+ +-----------------------------+---------------------------------------+-----+
| Intel docs | devicetree.cb | eDP | | Intel docs | devicetree.cb | eDP |
+-----------------------------+---------------------------------------+-----+ +-----------------------------+---------------------------------------+-----+

View File

@ -139,45 +139,6 @@ Every now and then, coreboot is present in one way or another at
[conferences](community/conferences.md). If you're around, come and [conferences](community/conferences.md). If you're around, come and
say hello! say hello!
## Blob policy in the coreboot project
The goal of the coreboot project is to provide a FOSS firmware solution across
multiple CPU architectures, such as ARM, x86, and RISC-V. While fully open
source implementations for these architectures are encouraged and preferred,
we understand that a fully open implementation whereby every firmware component
is available as source code for modern platforms is not always feasible.
Different reasons inhibit the availability of fully open implementations,
including limited development resources, 3rd party license constraints of
IP blocks, or a legacy mindset of the silicon vendors.
It is important for the coreboot project to have support for modern CPU
platforms in order to provide a viable alternative for proprietary firmware
implementations. We do not have direct control over how hardware vendors design
their products, however we can provide an attractive alternative to the
expensive and complicated proprietary firmware model that exists today.
For modern platforms, we are largely dependent on the silicon
vendor to provide additional information on how to properly initialize the
hardware, as the required datasheets are often only available with an NDA.
Therefore, one possible way to have coreboot support for the latest platforms
is binary code (aka, a blob) provided by the silicon vendor. While we do
discourage this solution, it can be a door opener for coreboots support of a
given platform and thus keep coreboot functional on modern platforms. It is
clearly not the goal of the project to accept every blob a silicon vendor wishes
to use without question. On the contrary, each new blob needs to be examined
critically by the community, evaluating the need, risk, and alternative options.
Wherever possible, introducing new blobs should be avoided. That said, there
can be situations where a piece of code provided as a blob will enable the rest
of the fully open source firmware stack on a brand new platform. If blocking
this blob would lead to no support at all for the platform in question in
coreboot, this situation needs to be examined carefully. While these kinds
of discussion will be coordinated closely with the community (e.g. on the
mailing list or dedicated meetings), ultimately it is up to the leadership to
decide if there is no agreement between the community and the vendor pushing for
the new blob. This decision will be communicated on the mailing list.
Please see additionally
[coreboot binary policy](https://github.com/coreboot/blobs/blob/master/README.md).
## Getting the source code ## Getting the source code
coreboot is primarily developed in the coreboot is primarily developed in the
@ -209,38 +170,34 @@ for example OpenBSD, is probably the closest cousin of our approach.
Contents: Contents:
```{toctree} * [Getting Started](getting_started/index.md)
:maxdepth: 1 * [Tutorial](tutorial/index.md)
* [Contributing](contributing/index.md)
Getting Started <getting_started/index.md> * [Community](community/index.md)
Tutorial <tutorial/index.md> * [Payloads](payloads.md)
Contributing <contributing/index.md> * [Distributions](distributions.md)
Community <community/index.md> * [Technotes](technotes/index.md)
Payloads <payloads.md> * [ACPI](acpi/index.md)
Distributions <distributions.md> * [Native Graphics Initialization with libgfxinit](gfx/libgfxinit.md)
Technotes <technotes/index.md> * [Display panel](gfx/display-panel.md)
ACPI <acpi/index.md> * [CPU Architecture](arch/index.md)
Native Graphics Initialization with libgfxinit <gfx/libgfxinit.md> * [Platform independent drivers](drivers/index.md)
Display panel <gfx/display-panel.md> * [Northbridge](northbridge/index.md)
CPU Architecture <arch/index.md> * [System on Chip](soc/index.md)
Platform independent drivers <drivers/index.md> * [Mainboard](mainboard/index.md)
Northbridge <northbridge/index.md> * [Payloads](lib/payloads/index.md)
System on Chip <soc/index.md> * [Libraries](lib/index.md)
Mainboard <mainboard/index.md> * [Options](lib/option.md)
Payloads <lib/payloads/index.md> * [Security](security/index.md)
Libraries <lib/index.md> * [SuperIO](superio/index.md)
Options <lib/option.md> * [Vendorcode](vendorcode/index.md)
Security <security/index.md> * [Utilities](util.md)
SuperIO <superio/index.md> * [Software Bill of Materials](sbom/sbom.md)
Vendorcode <vendorcode/index.md> * [Project infrastructure & services](infrastructure/index.md)
Utilities <util.md> * [Boards supported in each release directory](releases/boards_supported_on_branches.md)
Software Bill of Materials <sbom/sbom.md> * [Release notes](releases/index.md)
Project infrastructure & services <infrastructure/index.md> * [Acronyms & Definitions](acronyms.md)
Boards supported in each release directory <releases/boards_supported_on_branches.md> * [External Resources](external_docs.md)
Release notes <releases/index.md> * [Documentation License](documentation_license.md)
Acronyms & Definitions <acronyms.md>
External Resources <external_docs.md>
Documentation License <documentation_license.md>
```
[Documentation]: https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/main/Documentation/ [Documentation]: https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/main/Documentation/

View File

@ -93,19 +93,11 @@ You can see all the builds in the main jenkins interface:
Most of the time on the builders is taken up by the coreboot main and Most of the time on the builders is taken up by the coreboot main and
coreboot gerrit builds. coreboot gerrit builds.
```{toctree} * [coreboot gerrit build](https://qa.coreboot.org/job/coreboot-gerrit/)
:maxdepth: 1
coreboot gerrit build <https://qa.coreboot.org/job/coreboot-gerrit/>
```
([Time trend](https://qa.coreboot.org/job/coreboot-gerrit/buildTimeTrend)) ([Time trend](https://qa.coreboot.org/job/coreboot-gerrit/buildTimeTrend))
```{toctree} * [coreboot main build](https://qa.coreboot.org/job/coreboot/)
:maxdepth: 1
coreboot main build <https://qa.coreboot.org/job/coreboot/>
```
([Time trend](https://qa.coreboot.org/job/coreboot/buildTimeTrend)) ([Time trend](https://qa.coreboot.org/job/coreboot/buildTimeTrend))

View File

@ -4,17 +4,9 @@ This section contains documentation about our infrastructure
## Services ## Services
```{toctree} * [Project services](services.md)
:maxdepth: 1 * [Administrator's handbook](admin.md)
Project services <services.md>
Administrator's handbook <admin.md>
```
## Jenkins builders and builds ## Jenkins builders and builds
```{toctree} * [Setting up Jenkins build machines](builders.md)
:maxdepth: 1 * [Coverity Scan integration](coverity.md)
Setting up Jenkins build machines <builders.md>
Coverity Scan integration <coverity.md>
```

View File

@ -3,11 +3,7 @@
This section contains documentation about coreboot internal technical This section contains documentation about coreboot internal technical
information and libraries. information and libraries.
```{toctree} - [Flashmap and Flashmap Descriptor](flashmap.md)
:maxdepth: 1 - [ABI data consumption](abi-data-consumption.md)
- [Timestamps](timestamp.md)
Flashmap and Flashmap Descriptor <flashmap.md> - [Firmware Configuration Interface](fw_config.md)
ABI data consumption <abi-data-consumption.md>
Timestamps <timestamp.md>
Firmware Configuration Interface <fw_config.md>
```

View File

@ -8,8 +8,4 @@ selected mainboard.
## FIT ## FIT
```{toctree} - [uImage.FIT support](fit.md)
:maxdepth: 1
uImage.FIT support <fit.md>
```

View File

@ -5,7 +5,7 @@ Acer models Aspire M3800, Aspire M5800 and possibly more.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | Intel G43 (called x4x in coreboot code) | | Northbridge | Intel G43 (called x4x in coreboot code) |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
@ -69,7 +69,7 @@ Tests were done with SeaBIOS 1.14.0 and slackware64-live from 2019-07-12
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+-------------------+---------------------+ +-------------------+---------------------+
| Type | Value | | Type | Value |
+===================+=====================+ +===================+=====================+
@ -122,7 +122,7 @@ $ sudo flashrom \
-w coreboot.rom -w coreboot.rom
``` ```
```{eval-rst} ```eval_rst
In addition to the information here, please see the In addition to the information here, please see the
:doc:`../../tutorial/flashing_firmware/index`. :doc:`../../tutorial/flashing_firmware/index`.
``` ```

View File

@ -33,7 +33,7 @@ Three items are marked in this picture
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+--------------------+ +---------------------+--------------------+
| Type | Value | | Type | Value |
+=====================+====================+ +=====================+====================+
@ -53,7 +53,7 @@ Three items are marked in this picture
## Technology ## Technology
```{eval-rst} ```eval_rst
+---------------+------------------------------+ +---------------+------------------------------+
| Fan control | Using fintek F81803A | | Fan control | Using fintek F81803A |
+---------------+------------------------------+ +---------------+------------------------------+
@ -63,7 +63,7 @@ Three items are marked in this picture
## Description of pictures within this document ## Description of pictures within this document
```{eval-rst} ```eval_rst
+----------------------------+----------------------------------------+ +----------------------------+----------------------------------------+
|pademelon.jpg | Motherboard with components identified | |pademelon.jpg | Motherboard with components identified |
+----------------------------+----------------------------------------+ +----------------------------+----------------------------------------+

View File

@ -11,7 +11,7 @@ Intel company provides [Firmware Support Package (2.0)](../../soc/intel/fsp/inde
FSP Information: FSP Information:
```{eval-rst} ```eval_rst
+-----------------------------+-------------------+-------------------+ +-----------------------------+-------------------+-------------------+
| FSP Project Name | Directory | Specification | | FSP Project Name | Directory | Specification |
+-----------------------------+-------------------+-------------------+ +-----------------------------+-------------------+-------------------+
@ -114,7 +114,7 @@ facing towards the bottom of the board.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| CPU | Intel Skylake/Kaby Lake (LGA1151) | | CPU | Intel Skylake/Kaby Lake (LGA1151) |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -5,7 +5,7 @@ Bridge and Ivy Bridge CPUs.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
@ -71,7 +71,7 @@ extlinux
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -115,7 +115,7 @@ $ sudo flashrom --noverify-all --ifd -i bios -p internal -w coreboot.rom
The use of `--noverify-all` is required since the Management Engine The use of `--noverify-all` is required since the Management Engine
region is not readable even by the host. region is not readable even by the host.
```{eval-rst} ```eval_rst
In addition to the information here, please see the In addition to the information here, please see the
:doc:`../../tutorial/flashing_firmware/index`. :doc:`../../tutorial/flashing_firmware/index`.
``` ```

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [ASRock H81M-HDS].
## Required proprietary blobs ## Required proprietary blobs
```{eval-rst} ```eval_rst
Please see :doc:`../../northbridge/intel/haswell/mrc.bin`. Please see :doc:`../../northbridge/intel/haswell/mrc.bin`.
``` ```
@ -75,7 +75,7 @@ facing towards the bottom of the board.
in coreboot. The `coretemp` driver can still be used for accurate CPU in coreboot. The `coretemp` driver can still be used for accurate CPU
temperature readings from an OS. temperature readings from an OS.
```{eval-rst} ```eval_rst
Please also see :doc:`../../northbridge/intel/haswell/known-issues`. Please also see :doc:`../../northbridge/intel/haswell/known-issues`.
``` ```
@ -111,7 +111,7 @@ Please also see :doc:`../../northbridge/intel/haswell/known-issues`.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/haswell/index` | | Northbridge | :doc:`../../northbridge/intel/haswell/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -14,7 +14,7 @@ and their GPU is [Sea Islands] (GCN2-based).
A10 Richland is recommended for the best performance and working IOMMU. A10 Richland is recommended for the best performance and working IOMMU.
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| A88XM-E | | | A88XM-E | |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
@ -36,7 +36,7 @@ A10 Richland is recommended for the best performance and working IOMMU.
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+

View File

@ -15,7 +15,7 @@ Both "Trinity" and "Richland" desktop processing units are working,
the CPU architecture in these CPUs/APUs is [Piledriver], the CPU architecture in these CPUs/APUs is [Piledriver],
and their GPU is [TeraScale 3] (VLIW4-based). and their GPU is [TeraScale 3] (VLIW4-based).
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| F2A85-M | | | F2A85-M | |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
@ -35,7 +35,7 @@ and their GPU is [TeraScale 3] (VLIW4-based).
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
``` ```
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| F2A85-M LE | | | F2A85-M LE | |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
@ -55,7 +55,7 @@ and their GPU is [TeraScale 3] (VLIW4-based).
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
``` ```
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| F2A85-M PRO | | | F2A85-M PRO | |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
@ -77,7 +77,7 @@ and their GPU is [TeraScale 3] (VLIW4-based).
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+

View File

@ -10,7 +10,7 @@ This page describes how to run coreboot on the ASUS P2B-LS mainboard.
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+---------------------------+ +---------------------+---------------------------+
| Type | Value | | Type | Value |
+=====================+===========================+ +=====================+===========================+
@ -90,7 +90,7 @@ for only CPU models that the board will actually be run with.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | Intel I440BX | | Northbridge | Intel I440BX |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the ASUS P3B-F mainboard.
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+---------------------------+ +---------------------+---------------------------+
| Type | Value | | Type | Value |
+=====================+===========================+ +=====================+===========================+
@ -88,7 +88,7 @@ for only CPU models that the board will actually be run with.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | Intel I440BX | | Northbridge | Intel I440BX |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -32,7 +32,7 @@ This page describes how to run coreboot on the [ASUS P5Q] desktop board.
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+-------------------+----------------+ +-------------------+----------------+
| Type | Value | | Type | Value |
+===================+================+ +===================+================+
@ -56,7 +56,7 @@ You can flash coreboot into your motherboard using [this guide].
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+---------------------------------------------------+ +------------------+---------------------------------------------------+
| Northbridge | Intel P45 (called x4x in coreboot code) | | Northbridge | Intel P45 (called x4x in coreboot code) |
+------------------+---------------------------------------------------+ +------------------+---------------------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [ASUS P8H77-V].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+----------------+ +---------------------+----------------+
| Type | Value | | Type | Value |
+=====================+================+ +=====================+================+
@ -69,7 +69,7 @@ flash externally.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [ASUS P8H61-M LX].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -84,7 +84,7 @@ region is not readable even by the host.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [ASUS P8H61-M Pro].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -78,7 +78,7 @@ region is not readable even by the host.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [ASUS P8H77-V].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+----------------+ +---------------------+----------------+
| Type | Value | | Type | Value |
+=====================+================+ +=====================+================+
@ -56,7 +56,7 @@ work. The flash chip is socketed, so it's easy to remove and reflash.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [ASUS P8Z77-M].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+----------------+ +---------------------+----------------+
| Type | Value | | Type | Value |
+=====================+================+ +=====================+================+
@ -112,7 +112,7 @@ therefore they currently do nothing under coreboot.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [ASUS P8Z77-M PRO]
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+----------------+ +---------------------+----------------+
| Type | Value | | Type | Value |
+=====================+================+ +=====================+================+
@ -143,7 +143,7 @@ easy to remove and reflash.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [ASUS P8Z77-V].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+----------------+ +---------------------+----------------+
| Type | Value | | Type | Value |
+=====================+================+ +=====================+================+
@ -86,7 +86,7 @@ See [Asus Wi-Fi Go! v1].
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -8,7 +8,7 @@ through a proprietary 16-1 pin connector.
I managed to grope the most pinout of the proprietary connector. I managed to grope the most pinout of the proprietary connector.
See [Mini PCIe pinout] for more info. See [Mini PCIe pinout] for more info.
```{eval-rst} ```eval_rst
+------------+----------+-----------+------------+----------+-----------+ +------------+----------+-----------+------------+----------+-----------+
| WIFIGO Pin | Usage | mPCIe pin | WIFIGO Pin | Usage | mPCIe pin | | WIFIGO Pin | Usage | mPCIe pin | WIFIGO Pin | Usage | mPCIe pin |
+============+==========+===========+============+==========+===========+ +============+==========+===========+============+==========+===========+

View File

@ -17,7 +17,7 @@
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+----------------+ +---------------------+----------------+
| Type | Value | | Type | Value |
+=====================+================+ +=====================+================+
@ -58,7 +58,7 @@
## Technology ## Technology
```{eval-rst} ```eval_rst
+---------------+----------------------------------------+ +---------------+----------------------------------------+
| SoC | :doc:`../../soc/cavium/cn81xx/index` | | SoC | :doc:`../../soc/cavium/cn81xx/index` |
+---------------+----------------------------------------+ +---------------+----------------------------------------+

View File

@ -2,7 +2,7 @@
## Hardware ## Hardware
### Technology ### Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------+ +------------------+--------------------------------+
| CPU | Intel i7-8550U | | CPU | Intel i7-8550U |
+------------------+--------------------------------+ +------------------+--------------------------------+
@ -15,7 +15,7 @@
``` ```
### Flash chip ### Flash chip
```{eval-rst} ```eval_rst
+---------------------+-----------------+ +---------------------+-----------------+
| Type | Value | | Type | Value |
+=====================+=================+ +=====================+=================+

View File

@ -1,83 +0,0 @@
# Dell Latitude E7240
This page is about the notebook [Dell Latitude E7240].
## Release status
Dell Latitude E7240 was released in 2013 and is now end of life.
It can be bought from a secondhand market like Taobao or eBay.
## Required proprietary blobs
The following blobs are required to operate the hardware:
1. mrc.bin
2. Intel ME firmware
Memory reference code in mrc.bin is used to initialize the Haswell platform.
You need this blob to build a working coreboot image. Please read
[mrc.bin](../../northbridge/intel/haswell/mrc.bin) for instructions on
retrieving and using it.
Intel ME firmware is in the flash chip. It is not needed when building coreboot.
It can be extracted from the OEM firmware. You can also flash only the BIOS
region to leave Intel ME firmware untouched.
## Programming
The laptop can be flashed internally under OEM firmware using [dell-flash-unlock].
To flash with an external programmer, you need to remove the battery and the base cover.
![Dell Latitude E7240 mainboard](e7240.webp)
For more details have a look at the general [flashing tutorial].
It is also possible to flash internally under coreboot.
## Debugging
The board can be debugged with EHCI debug. The EHCI debug port is next to the miniDP port.
There's a serial port on dock, but it's not yet supported in coreboot.
Schematic of this laptop can be found online. The board name is Compal LA-9431P.
## Test status
### Not working
- EC ACPI
- SD/MMC card reader (kernel reports "Timeout waiting for hardware cmd interrupt.")
- No internal display before booting to OS when connected with a dock
### Working
- Integrated graphics init with libgfxinit
- mSATA
- WLAN
- USB
- Keyboard
- Touchpad and the buttons on it
- Dock: all USB ports, DisplayPort, eSATA
- Internal flashing
## Technology
```{eval-rst}
+------------------+-----------------------------+
| CPU | Intel Haswell-ULT |
+------------------+-----------------------------+
| PCH | Intel Lynx Point Low Power |
+------------------+-----------------------------+
| EC | SMSC MEC5075 |
+------------------+-----------------------------+
| Super I/O | SMSC ECE5048 |
+------------------+-----------------------------+
| Coprocessor | Intel Management Engine |
+------------------+-----------------------------+
```
[Dell Latitude E7240]: https://www.dell.com/support/home/en-us/product-support/product/latitude-e7240-ultrabook/docs
[dell-flash-unlock]: https://github.com/nic3-14159/dell-flash-unlock
[flashing tutorial]: ../../tutorial/flashing_firmware/ext_power.md

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

View File

@ -6,7 +6,7 @@ This page describes how to run coreboot on Dell OptiPlex 9010 SFF.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------+---------------------------------------------------------------+ +------------+---------------------------------------------------------------+
| CPU | Intel Core 2nd Gen (Sandybridge) or 3rd Gen (Ivybridge) | | CPU | Intel Core 2nd Gen (Sandybridge) or 3rd Gen (Ivybridge) |
+------------+---------------------------------------------------------------+ +------------+---------------------------------------------------------------+
@ -28,7 +28,7 @@ More specifications on [Dell OptiPlex 9010 specifications].
## Required proprietary blobs ## Required proprietary blobs
```{eval-rst} ```eval_rst
+------------------+---------------------------------+---------------------+ +------------------+---------------------------------+---------------------+
| Binary file | Apply | Required / Optional | | Binary file | Apply | Required / Optional |
+==================+=================================+=====================+ +==================+=================================+=====================+
@ -50,7 +50,7 @@ signature `SMSCUBIM`. The easiest way to do this is to use [UEFITool] and
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+--------------------------+ +---------------------+--------------------------+
| Type | Value | | Type | Value |
+=====================+==========================+ +=====================+==========================+

View File

@ -3,9 +3,6 @@
## Building coreboot and running it in QEMU ## Building coreboot and running it in QEMU
- Configure coreboot and run `make` as usual - Configure coreboot and run `make` as usual
- Run `util/riscv/make-spike-elf.sh build/coreboot.rom build/coreboot.elf` to
Run QEMU convert coreboot to an ELF that QEMU can load
``` - Run `qemu-system-riscv64 -M virt -m 1024M -nographic -kernel build/coreboot.elf`
qemu-system-riscv64 -M virt -m 1G -nographic -bios build/coreboot.rom \
-drive if=pflash,file=./build/coreboot.rom,format=raw
```

View File

@ -1,42 +0,0 @@
# QEMU SBSA emulator
This page describes how to build and run ```coreboot``` for QEMU's sbsa-ref machine.
The qemu-sbsa ```coreboot``` image acts as BL-3.3 for Arm Trusted Firmware (```TF-A```) and
mainly takes care of setting up SMBIOS and ACPI tables, hence, in order to boot,
you also need to supply a ```TF-A``` image.
## Building TF-A
You can build ```TF-A``` from source by fetching
```
https://github.com/ARM-software/arm-trusted-firmware
```
and building the qemu-sbsa platform
```
PLAT=qemu_sbsa
```
Upon entry, ```coreboot``` expects a FDT pointer in x0, so make sure to compile ```TF-A``` with
```
ARM_LINUX_KERNEL_AS_BL33=1
```
This will force ```TF-A``` to pass a pointer to the FDT in x0.
## Building coreboot
Simply select the qemu-sbsa board and, optionally, configure a payload. We recommend
the ```leanefi``` payload. ```leanefi``` will setup a minimal set of UEFI services, just enough
to boot into a linux kernel.
## Running coreboot in QEMU
Once you have obtained ```TF-A``` and ```coreboot``` images, launch qemu via
```bash
qemu-system-aarch64 -nographic -m 1024 -M sbsa-ref -pflash <path/to/TFA.fd> \
-pflash <path/to/coreboot.rom>
```
## LBBR bootflow
arm and 9elements worked together in order to create a LBBR compliant bootflow
consisting of ```TF-A```, ```coreboot```, ```leanefi``` and ```LinuxBoot```. A proof of concept
can be found here https://gitlab.arm.com/systemready/firmware-build/linuxboot/lbbr-coreboot-poc

View File

@ -63,7 +63,7 @@ Specifically, it's a Winbond W25Q64FV (3.3V), whose datasheet can be found
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| SoC | Intel Atom Processor N3710 | | SoC | Intel Atom Processor N3710 |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -14,7 +14,7 @@ Intel company provides [Firmware Support Package (2.0)](../../soc/intel/fsp/inde
FSP Information: FSP Information:
```{eval-rst} ```eval_rst
+-----------------------------+-------------------+-------------------+ +-----------------------------+-------------------+-------------------+
| FSP Project Name | Directory | Specification | | FSP Project Name | Directory | Specification |
+-----------------------------+-------------------+-------------------+ +-----------------------------+-------------------+-------------------+
@ -116,7 +116,7 @@ output.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| SoC | Intel Kaby Lake U | | SoC | Intel Kaby Lake U |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -14,7 +14,7 @@ The default options for this board should result in a fully working image:
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+--------+ +---------------------+--------+
| Type | Value | | Type | Value |
+=====================+========+ +=====================+========+
@ -56,7 +56,7 @@ To do this gently take the SPI flash out of its socket and flash with your progr
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+------------------+ +------------------+------------------+
| Northbridge | Intel Pinevew | | Northbridge | Intel Pinevew |
+------------------+------------------+ +------------------+------------------+

View File

@ -6,7 +6,7 @@ This motherboard [also works with Libreboot](https://libreboot.org/docs/install/
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Type | Value | | Type | Value |
+==================+==================================================+ +==================+==================================================+
@ -30,7 +30,7 @@ This motherboard [also works with Libreboot](https://libreboot.org/docs/install/
## Preparation ## Preparation
```{eval-rst} ```eval_rst
For more datails how to get sources and build the toolchain, see :doc:`../../tutorial/part1`. For more datails how to get sources and build the toolchain, see :doc:`../../tutorial/part1`.
``` ```
@ -140,7 +140,7 @@ Built gigabyte/ga-g41m-es2l (GA-G41M-ES2L)
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
In addition to the information here, please see the In addition to the information here, please see the
:doc:`../../tutorial/flashing_firmware/index`. :doc:`../../tutorial/flashing_firmware/index`.
``` ```

View File

@ -5,7 +5,7 @@ from [Gigabyte].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -59,7 +59,7 @@ However, this makes DualBIOS unable to recover from a bad flash for some reason.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -74,7 +74,7 @@ The EHCI debug port is the left USB3 port.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| CPU | Intel Sandy/Ivy Bridge (FCPGA988) | | CPU | Intel Sandy/Ivy Bridge (FCPGA988) |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -80,7 +80,7 @@ Schematic of this laptop can be found on [Lab One].
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| CPU | Intel Sandy/Ivy Bridge (FCPGA988) | | CPU | Intel Sandy/Ivy Bridge (FCPGA988) |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -1,80 +0,0 @@
# HP EliteBook 8560w
This page describes how to run coreboot on the [HP EliteBook 8560w].
## Required proprietary blobs
- Intel Firmware Descriptor, ME and GbE firmware
- EC: please read [HP Laptops with KBC1126 Embedded Controller](hp_kbc1126_laptops)
## Flashing instructions
When running vendor firmware, external flashing is needed.
HP EliteBook 8560w has an 8MiB SOIC-8 flash chip on the bottom of the
mainboard. You just need to remove the service cover, and use an SOIC-8
clip to read and flash the chip.
![8560w_chip_location](8560w_flash.webp)
```{eval-rst}
+---------------------+------------+
| Type | Value |
+=====================+============+
| Socketed flash | no |
+---------------------+------------+
| Model | MX25L6406E |
+---------------------+------------+
| Size | 8 MiB |
+---------------------+------------+
| Package | SOIC-8 |
+---------------------+------------+
| Write protection | no |
+---------------------+------------+
| Dual BIOS feature | no |
+---------------------+------------+
| In circuit flashing | yes |
+---------------------+------------+
| Internal flashing | yes |
+---------------------+------------+
```
## Working
- i7-2720QM, 8G+8G
- Arch Linux boot from SeaBIOS payload
- EHCI debug: the port is beside the eSATA port
- SATA
- eSATA
- USB2 and USB3
- keyboard
- Gigabit Ethernet
- WLAN
- WWAN
- VGA and DisplayPort
- audio
- EC ACPI
- Using `me_cleaner`
- dock: PS/2 keyboard, USB, DisplayPort
- TPM
- S3 suspend/resume
## Technology
```{eval-rst}
+------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+
| Southbridge | bd82x6x |
+------------------+--------------------------------------------------+
| CPU | model_206ax |
+------------------+--------------------------------------------------+
| Super I/O | SMSC LPC47n217 |
+------------------+--------------------------------------------------+
| EC | SMSC KBC1126 |
+------------------+--------------------------------------------------+
| Coprocessor | Intel Management Engine |
+------------------+--------------------------------------------------+
```
[HP EliteBook 8560w]: https://support.hp.com/us-en/product/hp-elitebook-8560w-mobile-workstation/5071171

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

View File

@ -7,7 +7,7 @@ checkout the [code on gerrit] to build coreboot for the laptop.
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -66,7 +66,7 @@ clip to read and flash the chip.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -13,7 +13,7 @@ The following things are still missing from this coreboot port:
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+-------------------------+ +---------------------+-------------------------+
| Type | Value | | Type | Value |
+=====================+=========================+ +=====================+=========================+
@ -128,7 +128,7 @@ as otherwise there's not enough space near the flash.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -5,7 +5,7 @@ from [HP].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+-------------+ +---------------------+-------------+
| Type | Value | | Type | Value |
+=====================+=============+ +=====================+=============+
@ -42,7 +42,7 @@ Wake on LAN is active works great.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -124,7 +124,7 @@ The board can be debugged with EHCI debug. The EHCI debug port is the USB port o
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+-----------------------------+ +------------------+-----------------------------+
| SoC | Intel Broadwell | | SoC | Intel Broadwell |
+------------------+-----------------------------+ +------------------+-----------------------------+

View File

@ -138,7 +138,7 @@ The board can be debugged with EHCI debug. The EHCI debug port is the USB port o
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+-----------------------------+ +------------------+-----------------------------+
| CPU | Intel Haswell-ULT | | CPU | Intel Haswell-ULT |
+------------------+-----------------------------+ +------------------+-----------------------------+

View File

@ -1,103 +0,0 @@
# HP Pro 3500 Series
This page describes how to run coreboot on the [Pro 3500 Series]
desktop from [HP].
## State
All peripherals should work. Automatic fan control as well as S3 are
working. The board was tested to boot Linux and Windows. EHCI debug
is untested. When using MrChromebox edk2 with secure boot build in, the
board will hang on each boot for about 20 seconds before continuing.
With disabled ME, the SuperIO will not get CPU temperatures via PECI and
therefore the automatic fan control will not increase the fan speed.
## Flashing coreboot
```{eval-rst}
+---------------------+-------------------------+
| Type | Value |
+=====================+=========================+
| Socketed flash | No |
+---------------------+-------------------------+
| Model | W25Q64FVSIG |
+---------------------+-------------------------+
| Size | 8 MiB |
+---------------------+-------------------------+
| In circuit flashing | Yes |
+---------------------+-------------------------+
| Package | SOIC-8 |
+---------------------+-------------------------+
| Write protection | See below |
+---------------------+-------------------------+
| Dual BIOS feature | No |
+---------------------+-------------------------+
| Internal flashing | Yes |
+---------------------+-------------------------+
```
### Flash layout
The original layout of the flash should look like this:
```
00000000:00000fff fd
00400000:007fffff bios
00001000:003fffff me
00fff000:00000fff gbe
00fff000:00000fff pd
```
### Internal programming
The SPI flash can be accessed using [flashrom] (although it reports as
"N25Q064..3E", it works fine).
With a missing FDO jumper, `fd` region is read-only, `bios` region is
read-write and `me` region is locked. Vendor firmware will additionally
protect the flash chip. After shorting the FDO jumper (E2) full
read-write access is granted.
Do **NOT shutdown** the operating system **after flashing** coreboot
from the vendor firmware! This will brick your device because the bios
region will be modified on shutdown. Cut the AC power or do a restart
from the OS.
**Position of FDO jumper (E2) close to the F_USB3**
![][pro_3500_jumper]
[pro_3500_jumper]: pro_3500_series_jumper.avif
### External programming
External programming with an SPI adapter and [flashrom] does work, but
it powers the whole southbridge complex. The average current will be
400mA but spikes may be higher. Connect the power to the flash or the
programming header next to the flash otherwise programming is unstable.
The supply needs to quickly reach 3V3 or else the chip is also unstable
until cleanly power cycled.
**Position of SOIC-8 flash and pin-header near ATX power connector**
![][pro_3500_flash]
[pro_3500_flash]: pro_3500_series_flash.avif
## Technology
```{eval-rst}
+------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+
| Southbridge | bd82x6x (bd82h61) |
+------------------+--------------------------------------------------+
| CPU | model_206ax |
+------------------+--------------------------------------------------+
| SuperIO | IT8779E (identifies as IT8772F via register) |
+------------------+--------------------------------------------------+
| EC | Fixed function as part of SuperIO |
+------------------+--------------------------------------------------+
| Coprocessor | Intel ME |
+------------------+--------------------------------------------------+
```
[Pro 3500 Series]: https://support.hp.com/us-en/document/c03364089
[HP]: https://www.hp.com/
[flashrom]: https://flashrom.org/Flashrom

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@ -13,7 +13,7 @@ The following things are still missing from this coreboot port:
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+-------------+ +---------------------+-------------+
| Type | Value | | Type | Value |
+=====================+=============+ +=====================+=============+
@ -58,7 +58,7 @@ even interchangeable, so should do coreboot images built for them.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -4,397 +4,240 @@ This section contains documentation about coreboot on specific mainboards.
## 51NB ## 51NB
```{toctree} - [X210](51nb/x210.md)
:maxdepth: 1
X210 <51nb/x210.md>
```
## Acer ## Acer
```{toctree} - [G43T-AM3](acer/g43t-am3.md)
:maxdepth: 1
G43T-AM3 <acer/g43t-am3.md>
```
## AMD ## AMD
```{toctree} - [pademelon](amd/pademelon/pademelon.md)
:maxdepth: 1
pademelon <amd/pademelon/pademelon.md>
```
## ASRock ## ASRock
```{toctree} - [H77 Pro4-M](asrock/h77pro4-m.md)
:maxdepth: 1 - [H81M-HDS](asrock/h81m-hds.md)
- [H110M-DVS](asrock/h110m-dvs.md)
H77 Pro4-M <asrock/h77pro4-m.md>
H81M-HDS <asrock/h81m-hds.md>
H110M-DVS <asrock/h110m-dvs.md>
```
## ASUS ## ASUS
```{toctree} - [A88XM-E](asus/a88xm-e.md)
:maxdepth: 1 - [F2A85-M](asus/f2a85-m.md)
- [P2B-LS](asus/p2b-ls.md)
A88XM-E <asus/a88xm-e.md> - [P3B-F](asus/p3b-f.md)
F2A85-M <asus/f2a85-m.md> - [P5Q](asus/p5q.md)
P2B-LS <asus/p2b-ls.md> - [P8C WS](asus/p8c_ws.md)
P3B-F <asus/p3b-f.md> - [P8H61-M LX](asus/p8h61-m_lx.md)
P5Q <asus/p5q.md> - [P8H61-M Pro](asus/p8h61-m_pro.md)
P8C WS <asus/p8c_ws.md> - [P8H77-V](asus/p8h77-v.md)
P8H61-M LX <asus/p8h61-m_lx.md> - [P8Z77-M](asus/p8z77-m.md)
P8H61-M Pro <asus/p8h61-m_pro.md> - [P8Z77-M Pro](asus/p8z77-m_pro.md)
P8H77-V <asus/p8h77-v.md> - [P8Z77-V](asus/p8z77-v.md)
P8Z77-M <asus/p8z77-m.md> - [wifigo_v1](asus/wifigo_v1.md)
P8Z77-M Pro <asus/p8z77-m_pro.md>
P8Z77-V <asus/p8z77-v.md>
wifigo_v1 <asus/wifigo_v1.md>
```
## Cavium ## Cavium
```{toctree} - [CN81XX EVB SFF](cavium/cn8100_sff_evb.md)
:maxdepth: 1
CN81XX EVB SFF <cavium/cn8100_sff_evb.md>
```
## Clevo ## Clevo
```{toctree} - [N130WU / N131WU](clevo/n130wu/index.md)
:maxdepth: 1
N130WU / N131WU <clevo/n130wu/index.md>
```
## Dell ## Dell
```{toctree} - [OptiPlex 9010 SFF](dell/optiplex_9010.md)
:maxdepth: 1
Latitude E7240 <dell/e7240.md>
OptiPlex 9010 SFF <dell/optiplex_9010.md>
```
## Emulation ## Emulation
The boards in this section are not real mainboards, but emulators. The boards in this section are not real mainboards, but emulators.
```{toctree} - [Spike RISC-V emulator](emulation/spike-riscv.md)
:maxdepth: 1 - [QEMU RISC-V emulator](emulation/qemu-riscv.md)
- [QEMU AArch64 emulator](emulation/qemu-aarch64.md)
Spike RISC-V emulator <emulation/spike-riscv.md> - [QEMU x86 Q35](emulation/qemu-q35.md)
QEMU RISC-V emulator <emulation/qemu-riscv.md> - [QEMU x86 PC](emulation/qemu-i440fx.md)
QEMU AArch64 emulator <emulation/qemu-aarch64.md> - [QEMU POWER9](emulation/qemu-power9.md)
QEMU SBSA emulator <emulation/qemu-sbsa.md>
QEMU x86 Q35 <emulation/qemu-q35.md>
QEMU x86 PC <emulation/qemu-i440fx.md>
QEMU POWER9 <emulation/qemu-power9.md>
```
## Facebook ## Facebook
```{toctree} - [FBG-1701](facebook/fbg1701.md)
:maxdepth: 1 - [Monolith](facebook/monolith.md)
FBG-1701 <facebook/fbg1701.md>
Monolith <facebook/monolith.md>
```
## Foxconn ## Foxconn
```{toctree} - [D41S](foxconn/d41s.md)
:maxdepth: 1
D41S <foxconn/d41s.md>
```
## Gigabyte ## Gigabyte
```{toctree} - [GA-G41M-ES2L](gigabyte/ga-g41m-es2l.md)
:maxdepth: 1 - [GA-H61M-S2PV](gigabyte/ga-h61m-s2pv.md)
GA-G41M-ES2L <gigabyte/ga-g41m-es2l.md>
GA-H61M-S2PV <gigabyte/ga-h61m-s2pv.md>
```
## HP ## HP
```{toctree} - [Compaq 8200 Elite SFF](hp/compaq_8200_sff.md)
:maxdepth: 1 - [Compaq Elite 8300 USDT](hp/compaq_8300_usdt.md)
- [Z220 Workstation SFF](hp/z220_sff.md)
Compaq 8200 Elite SFF <hp/compaq_8200_sff.md>
Compaq Elite 8300 USDT <hp/compaq_8300_usdt.md>
Pro 3500 Series <hp/pro_3500_series.md>
Z220 Workstation SFF <hp/z220_sff.md>
```
### EliteBook series ### EliteBook series
```{toctree} - [HP Laptops with KBC1126 EC](hp/hp_kbc1126_laptops.md)
:maxdepth: 1 - [HP Sure Start](hp/hp_sure_start.md)
- [EliteBook 2170p](hp/2170p.md)
HP Laptops with KBC1126 EC <hp/hp_kbc1126_laptops.md> - [EliteBook 2560p](hp/2560p.md)
HP Sure Start <hp/hp_sure_start.md> - [EliteBook 8760w](hp/8760w.md)
EliteBook 2170p <hp/2170p.md> - [EliteBook Folio 9480m](hp/folio_9480m.md)
EliteBook 2560p <hp/2560p.md> - [EliteBook 820 G2](hp/elitebook_820_g2.md)
EliteBook 8560w <hp/8560w.md>
EliteBook 8760w <hp/8760w.md>
EliteBook Folio 9480m <hp/folio_9480m.md>
EliteBook 820 G2 <hp/elitebook_820_g2.md>
```
## Intel ## Intel
```{toctree} - [DG43GT](intel/dg43gt.md)
:maxdepth: 1 - [DQ67SW](intel/dq67sw.md)
- [KBLRVP11](intel/kblrvp11.md)
DG43GT <intel/dg43gt.md>
DQ67SW <intel/dq67sw.md>
KBLRVP11 <intel/kblrvp11.md>
```
## Kontron ## Kontron
```{toctree} - [mAL-10](kontron/mal10.md)
:maxdepth: 1
mAL-10 <kontron/mal10.md>
```
## Lenovo ## Lenovo
```{toctree} - [Mainboard codenames](lenovo/codenames.md)
:maxdepth: 1 - [Hardware Maintenance Manual of ThinkPads](lenovo/thinkpad_hmm.md)
- [R60](lenovo/r60.md)
Mainboard codenames <lenovo/codenames.md> - [T4xx common](lenovo/t4xx_series.md)
Hardware Maintenance Manual of ThinkPads <lenovo/thinkpad_hmm.md> - [X2xx common](lenovo/x2xx_series.md)
R60 <lenovo/r60.md> - [vboot](lenovo/vboot.md)
T4xx common <lenovo/t4xx_series.md>
X2xx common <lenovo/x2xx_series.md>
vboot <lenovo/vboot.md>
```
### GM45 series ### GM45 series
```{toctree} - [X200 / T400 / T500 / X301 common](lenovo/montevina_series.md)
:maxdepth: 1 - [X301](lenovo/x301.md)
X200 / T400 / T500 / X301 common <lenovo/montevina_series.md>
X301 <lenovo/x301.md>
```
### Arrandale series ### Arrandale series
```{toctree} - [T410](lenovo/t410.md)
:maxdepth: 1
T410 <lenovo/t410.md>
```
### Sandy Bridge series ### Sandy Bridge series
```{toctree} - [T420](lenovo/t420.md)
:maxdepth: 1 - [T420 / T520 / X220 / T420s / W520 common](lenovo/Sandy_Bridge_series.md)
- [X1](lenovo/x1.md)
T420 <lenovo/t420.md>
T420 / T520 / X220 / T420s / W520 common <lenovo/Sandy_Bridge_series.md>
X1 <lenovo/x1.md>
```
### Ivy Bridge series ### Ivy Bridge series
```{toctree} - [T430](lenovo/t430.md)
:maxdepth: 1 - [T530 / W530](lenovo/w530.md)
- [T430 / T530 / X230 / W530 common](lenovo/Ivy_Bridge_series.md)
T430 <lenovo/t430.md> - [T431s](lenovo/t431s.md)
T530 / W530 <lenovo/w530.md> - [X230s](lenovo/x230s.md)
T430 / T530 / X230 / W530 common <lenovo/Ivy_Bridge_series.md> - [Internal flashing](lenovo/ivb_internal_flashing.md)
T431s <lenovo/t431s.md>
X230s <lenovo/x230s.md>
Internal flashing <lenovo/ivb_internal_flashing.md>
```
### Haswell series ### Haswell series
```{toctree} - [T440p](lenovo/t440p.md)
:maxdepth: 1
T440p <lenovo/t440p.md>
```
## Libretrend ## Libretrend
```{toctree} - [LT1000](libretrend/lt1000.md)
:maxdepth: 1
LT1000 <libretrend/lt1000.md>
```
## MSI ## MSI
```{toctree} - [MS-7707](msi/ms7707/ms7707.md)
:maxdepth: 1
MS-7707 <msi/ms7707/ms7707.md>
```
## OCP ## OCP
```{toctree} - [Delta Lake](ocp/deltalake.md)
:maxdepth: 1 - [Tioga Pass](ocp/tiogapass.md)
Delta Lake <ocp/deltalake.md>
Tioga Pass <ocp/tiogapass.md>
```
## Open Cellular ## Open Cellular
```{toctree} - [Elgon](opencellular/elgon.md)
:maxdepth: 1
Elgon <opencellular/elgon.md>
```
## PC Engines ## PC Engines
```{toctree} - [APU1](pcengines/apu1.md)
:maxdepth: 1 - [APU2](pcengines/apu2.md)
APU1 <pcengines/apu1.md>
APU2 <pcengines/apu2.md>
```
## Portwell ## Portwell
```{toctree} - [PQ7-M107](portwell/pq7-m107.md)
:maxdepth: 1
PQ7-M107 <portwell/pq7-m107.md>
```
## Prodrive ## Prodrive
```{toctree} - [Hermes](prodrive/hermes.md)
:maxdepth: 1
Hermes <prodrive/hermes.md>
```
## Purism ## Purism
```{toctree} - [Librem 14](purism/librem_14.md)
:maxdepth: 1 - [Librem Mini](purism/librem_mini.md)
Librem 14 <purism/librem_14.md>
Librem Mini <purism/librem_mini.md>
```
## Protectli ## Protectli
```{toctree} - [FW2B / FW4B](protectli/fw2b_fw4b.md)
:maxdepth: 1 - [FW6A / FW6B / FW6C](protectli/fw6.md)
- [VP2420](protectli/vp2420.md)
FW2B / FW4B <protectli/fw2b_fw4b.md> - [VP4630 / VP4650 / VP4670](protectli/vp46xx.md)
FW6A / FW6B / FW6C <protectli/fw6.md>
VP2420 <protectli/vp2420.md>
VP4630 / VP4650 / VP4670 <protectli/vp46xx.md>
```
## Roda ## Roda
```{toctree} - [RK9 Flash Header](roda/rk9/flash_header.md)
:maxdepth: 1
RK9 Flash Header <roda/rk9/flash_header.md>
```
## SiFive ## SiFive
```{toctree} - [SiFive HiFive Unleashed](sifive/hifive-unleashed.md)
:maxdepth: 1
SiFive HiFive Unleashed <sifive/hifive-unleashed.md>
```
## Star Labs Systems ## Star Labs Systems
```{toctree} - [LabTop Mk III](starlabs/labtop_kbl.md)
:maxdepth: 1 - [LabTop Mk IV](starlabs/labtop_cml.md)
- [StarLite Mk III](starlabs/lite_glk.md)
LabTop Mk III <starlabs/labtop_kbl.md> - [StarLite Mk IV](starlabs/lite_glkr.md)
LabTop Mk IV <starlabs/labtop_cml.md> - [StarBook Mk V](starlabs/starbook_tgl.md)
StarLite Mk III <starlabs/lite_glk.md> - [StarBook Mk VI](starlabs/starbook_adl.md)
StarLite Mk IV <starlabs/lite_glkr.md> - [Flashing devices](starlabs/common/flashing.md)
StarLite Mk V <starlabs/lite_adl.md>
StarBook Mk V <starlabs/starbook_tgl.md>
StarBook Mk VI <starlabs/starbook_adl.md>
Flashing devices <starlabs/common/flashing.md>
```
## Supermicro ## Supermicro
```{toctree} - [X9SAE](supermicro/x9sae.md)
:maxdepth: 1 - [X10SLM+-F](supermicro/x10slm-f.md)
- [X11 LGA1151 series](supermicro/x11-lga1151-series/x11-lga1151-series.md)
X9SAE <supermicro/x9sae.md> - [Flashing using the BMC](supermicro/flashing_on_vendorbmc.md)
X10SLM+-F <supermicro/x10slm-f.md>
X11 LGA1151 series <supermicro/x11-lga1151-series/x11-lga1151-series.md>
Flashing using the BMC <supermicro/flashing_on_vendorbmc.md>
```
## System76 ## System76
```{toctree} - [Adder Workstation 1](system76/addw1.md)
:maxdepth: 1 - [Adder Workstation 2](system76/addw2.md)
- [Adder Workstation 3](system76/addw3.md)
Adder Workstation 1 <system76/addw1.md> - [Bonobo Workstation 14](system76/bonw14.md)
Adder Workstation 2 <system76/addw2.md> - [Bonobo Workstation 15](system76/bonw15.md)
Adder Workstation 3 <system76/addw3.md> - [Darter Pro 6](system76/darp6.md)
Bonobo Workstation 14 <system76/bonw14.md> - [Darter Pro 7](system76/darp7.md)
Bonobo Workstation 15 <system76/bonw15.md> - [Darter Pro 8](system76/darp8.md)
Darter Pro 6 <system76/darp6.md> - [Darter Pro 9](system76/darp9.md)
Darter Pro 7 <system76/darp7.md> - [Galago Pro 4](system76/galp4.md)
Darter Pro 8 <system76/darp8.md> - [Galago Pro 5](system76/galp5.md)
Darter Pro 9 <system76/darp9.md> - [Galago Pro 6](system76/galp6.md)
Galago Pro 4 <system76/galp4.md> - [Galago Pro 7](system76/galp7.md)
Galago Pro 5 <system76/galp5.md> - [Gazelle 15](system76/gaze15.md)
Galago Pro 6 <system76/galp6.md> - [Gazelle 16](system76/gaze16.md)
Galago Pro 7 <system76/galp7.md> - [Gazelle 17](system76/gaze17.md)
Gazelle 15 <system76/gaze15.md> - [Gazelle 18](system76/gaze18.md)
Gazelle 16 <system76/gaze16.md> - [Lemur Pro 9](system76/lemp9.md)
Gazelle 17 <system76/gaze17.md> - [Lemur Pro 10](system76/lemp10.md)
Gazelle 18 <system76/gaze18.md> - [Lemur Pro 11](system76/lemp11.md)
Lemur Pro 9 <system76/lemp9.md> - [Lemur Pro 12](system76/lemp12.md)
Lemur Pro 10 <system76/lemp10.md> - [Oryx Pro 5](system76/oryp5.md)
Lemur Pro 11 <system76/lemp11.md> - [Oryx Pro 6](system76/oryp6.md)
Lemur Pro 12 <system76/lemp12.md> - [Oryx Pro 7](system76/oryp7.md)
Oryx Pro 5 <system76/oryp5.md> - [Oryx Pro 8](system76/oryp8.md)
Oryx Pro 6 <system76/oryp6.md> - [Oryx Pro 9](system76/oryp9.md)
Oryx Pro 7 <system76/oryp7.md> - [Oryx Pro 10](system76/oryp10.md)
Oryx Pro 8 <system76/oryp8.md> - [Oryx Pro 11](system76/oryp11.md)
Oryx Pro 9 <system76/oryp9.md> - [Serval Workstation 13](system76/serw13.md)
Oryx Pro 10 <system76/oryp10.md>
Oryx Pro 11 <system76/oryp11.md>
Serval Workstation 13 <system76/serw13.md>
```
## Texas Instruments ## Texas Instruments
```{toctree} - [Beaglebone Black](ti/beaglebone-black.md)
:maxdepth: 1
Beaglebone Black <ti/beaglebone-black.md>
```
## UP ## UP
```{toctree} - [Squared](up/squared/index.md)
:maxdepth: 1
Squared <up/squared/index.md>
```

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on the [Intel DG43GT] desktop.
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -79,7 +79,7 @@ The layout of the header is:
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+---------------------------------------------------+ +------------------+---------------------------------------------------+
| Northbridge | Intel G43 (called x4x in coreboot code) | | Northbridge | Intel G43 (called x4x in coreboot code) |
+------------------+---------------------------------------------------+ +------------------+---------------------------------------------------+

View File

@ -4,7 +4,7 @@ The Intel DQ67SW is a microATX-sized desktop board for Intel Sandy Bridge CPUs.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` | | Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
@ -67,7 +67,7 @@ The Intel DQ67SW is a microATX-sized desktop board for Intel Sandy Bridge CPUs.
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -104,7 +104,7 @@ the PCI configuration space of the LPC Interface Bridge, is set.
It is possible to program the chip is to attach an external programmer It is possible to program the chip is to attach an external programmer
with an SOIC-8 clip. with an SOIC-8 clip.
```{eval-rst} ```eval_rst
Another way is to boot the vendor firmware in UEFI mode and exploit the Another way is to boot the vendor firmware in UEFI mode and exploit the
unpatched S3 Boot Script vulnerability. See this page for a similar procedure: unpatched S3 Boot Script vulnerability. See this page for a similar procedure:
:doc:`../lenovo/ivb_internal_flashing`. :doc:`../lenovo/ivb_internal_flashing`.
@ -126,7 +126,7 @@ The boot script contains an entry that writes 0x02 to memory at address
Interface Bridge [0][1]. The value 0x02 sets the BLE bit, and the modification Interface Bridge [0][1]. The value 0x02 sets the BLE bit, and the modification
prevents this by making it write a 0 instead. prevents this by making it write a 0 instead.
```{eval-rst} ```eval_rst
After suspending and resuming the board, the BIOS region can be flashed with After suspending and resuming the board, the BIOS region can be flashed with
a coreboot image, e.g. using flashrom. Note that the ME region is not readable, a coreboot image, e.g. using flashrom. Note that the ME region is not readable,
so the `--noverify-all` flag is necessary. Please refer to the so the `--noverify-all` flag is necessary. Please refer to the

View File

@ -23,7 +23,7 @@
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -65,7 +65,7 @@ $ flashrom -p internal --ifd -i bios -w coreboot.rom --noverify-all
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+---------------------------------------------------+ +------------------+---------------------------------------------------+
| CPU | Kaby lake H (i7-7820EQ) | | CPU | Kaby lake H (i7-7820EQ) |
+------------------+---------------------------------------------------+ +------------------+---------------------------------------------------+

View File

@ -6,7 +6,7 @@ processors.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+----------------------------------+ +------------------+----------------------------------+
| COMe Type | mini pin-out type 10 | | COMe Type | mini pin-out type 10 |
+------------------+----------------------------------+ +------------------+----------------------------------+

View File

@ -3,7 +3,7 @@
This information is valid for all supported models, except T430s, [T431s](t431s.md) and [X230s](x230s.md). This information is valid for all supported models, except T430s, [T431s](t431s.md) and [X230s](x230s.md).
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+--------------------------------+ +---------------------+--------------------------------+
| Type | Value | | Type | Value |
+=====================+================================+ +=====================+================================+
@ -37,7 +37,7 @@ This information is valid for all supported models, except T430s, [T431s](t431s.
exceed 4MiB in size, which means CONFIG_CBFS_SIZE must be smaller than 4MiB. exceed 4MiB in size, which means CONFIG_CBFS_SIZE must be smaller than 4MiB.
* ROM chip size should be set to 12MiB. * ROM chip size should be set to 12MiB.
```{eval-rst} ```eval_rst
Please also have a look at :doc:`../../tutorial/flashing_firmware/index`. Please also have a look at :doc:`../../tutorial/flashing_firmware/index`.
``` ```
@ -82,7 +82,7 @@ It is possible to reduce the Intel ME firmware size to free additional
space for the `bios` region. This is usually referred to as *cleaning the ME* or space for the `bios` region. This is usually referred to as *cleaning the ME* or
*stripping the ME*. *stripping the ME*.
After reducing the Intel ME firmware size you must modify the original IFD, After reducing the Intel ME firmware size you must modify the original IFD,
[split the resulting coreboot ROM](#splitting-the-corebootrom) and then write [split the resulting coreboot ROM](#splitting-the-coreboot-rom) and then write
each ROM using an [external programmer]. each ROM using an [external programmer].
Have a look at [me_cleaner] for more information. Have a look at [me_cleaner] for more information.

View File

@ -1,7 +1,7 @@
# Lenovo Sandy Bridge series # Lenovo Sandy Bridge series
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+--------------------+ +---------------------+--------------------+
| Type | Value | | Type | Value |
+=====================+====================+ +=====================+====================+

View File

@ -1,6 +1,6 @@
# Lenovo mainboard codenames # Lenovo mainboard codenames
```{eval-rst} ```eval_rst
.. csv-table:: .. csv-table::
:header: "Marketing name", "Development codename" :header: "Marketing name", "Development codename"
:file: codenames.csv :file: codenames.csv

View File

@ -19,11 +19,7 @@ that was discovered and fixed later.
- USB drive (in case you need to downgrade BIOS) - USB drive (in case you need to downgrade BIOS)
- Linux install that (can be) loaded in UEFI mode - Linux install that (can be) loaded in UEFI mode
```{toctree} - [CHIPSEC](https://github.com/chipsec/chipsec)
:maxdepth: 1
CHIPSEC <https://github.com/chipsec/chipsec>
```
## BIOS versions ## BIOS versions
@ -31,7 +27,7 @@ Below is a table of BIOS versions that are vulnerable enough for our
goals, per model. The version number means that you need to downgrade to goals, per model. The version number means that you need to downgrade to
that or earlier version. that or earlier version.
```{eval-rst} ```eval_rst
+------------+--------------+ +------------+--------------+
| Model | BIOS version | | Model | BIOS version |
+============+==============+ +============+==============+

View File

@ -20,7 +20,7 @@ touch any other regions:
## Installing without ME firmware ## Installing without ME firmware
```{eval-rst} ```eval_rst
.. Note:: .. Note::
**ThinkPad R500** has slightly different flash layout (it doesn't have **ThinkPad R500** has slightly different flash layout (it doesn't have
``gbe`` region), so the process would be a little different for that model. ``gbe`` region), so the process would be a little different for that model.
@ -46,12 +46,12 @@ Now you need to patch the flash descriptor. You can either [modify the one from
your backup with **ifdtool**](#modifying-flash-descriptor-using-ifdtool), or your backup with **ifdtool**](#modifying-flash-descriptor-using-ifdtool), or
[use one from the coreboot repository](#using-checked-in-flash-descriptor-via-bincfg). [use one from the coreboot repository](#using-checked-in-flash-descriptor-via-bincfg).
### Modifying flash descriptor using ifdtool #### Modifying flash descriptor using ifdtool
Pick the layout according to your chip size from the table below and save it to Pick the layout according to your chip size from the table below and save it to
the `new_layout.txt` file: the `new_layout.txt` file:
```{eval-rst} ```eval_rst
+---------------------------+---------------------------+---------------------------+ +---------------------------+---------------------------+---------------------------+
| 4 MiB chip | 8 MiB chip | 16 MiB chip | | 4 MiB chip | 8 MiB chip | 16 MiB chip |
+===========================+===========================+===========================+ +===========================+===========================+===========================+
@ -88,7 +88,7 @@ $ mv flashregion_0_flashdescriptor.bin.new.new flashregion_0_flashdescriptor.bin
Continue to the [Configuring coreboot](#configuring-coreboot) section. Continue to the [Configuring coreboot](#configuring-coreboot) section.
### Using checked-in flash descriptor via bincfg #### Using checked-in flash descriptor via bincfg
There is a copy of an X200's flash descriptor checked into the coreboot There is a copy of an X200's flash descriptor checked into the coreboot
repository. It is supposed to work for the T400/T500 as well. The descriptor repository. It is supposed to work for the T400/T500 as well. The descriptor
@ -102,7 +102,7 @@ $ make
If your flash is not 8 MiB, you need to change values of `flcomp_density1` and If your flash is not 8 MiB, you need to change values of `flcomp_density1` and
`flreg1_limit` in the `ifd-x200.set` file according to following table: `flreg1_limit` in the `ifd-x200.set` file according to following table:
```{eval-rst} ```eval_rst
+-----------------+-------+-------+--------+ +-----------------+-------+-------+--------+
| | 4 MiB | 8 MiB | 16 MiB | | | 4 MiB | 8 MiB | 16 MiB |
+=================+=======+=======+========+ +=================+=======+=======+========+
@ -119,7 +119,7 @@ $ make gen-ifd-x200
It will be saved to the `flashregion_0_fd.bin` file. It will be saved to the `flashregion_0_fd.bin` file.
### Configuring coreboot #### Configuring coreboot
Now configure coreboot. You need to select correct chip size and specify paths Now configure coreboot. You need to select correct chip size and specify paths
to flash descriptor and gbe dump. to flash descriptor and gbe dump.
@ -144,7 +144,7 @@ Then build coreboot and flash whole `build/coreboot.rom` to the chip.
The flash layouts of the OEM firmware are as follows: The flash layouts of the OEM firmware are as follows:
```{eval-rst} ```eval_rst
+---------------------------------+---------------------------------+ +---------------------------------+---------------------------------+
| 4 MiB chip | 8 MiB chip | | 4 MiB chip | 8 MiB chip |
+=================================+=================================+ +=================================+=================================+

View File

@ -5,7 +5,7 @@
* TPM not working with VBOOT and C_ENV bootblock (works without C_ENV BB) * TPM not working with VBOOT and C_ENV bootblock (works without C_ENV BB)
## Flashing instructions ## Flashing instructions
```{eval-rst} ```eval_rst
+---------------------+--------------------------------+ +---------------------+--------------------------------+
| Type | Value | | Type | Value |
+=====================+================================+ +=====================+================================+

View File

@ -10,7 +10,7 @@ Librebox).
To build a minimal working coreboot image some blobs are required (assuming To build a minimal working coreboot image some blobs are required (assuming
only the BIOS region is being modified). only the BIOS region is being modified).
```{eval-rst} ```eval_rst
+-----------------+---------------------------------+---------------------+ +-----------------+---------------------------------+---------------------+
| Binary file | Apply | Required / Optional | | Binary file | Apply | Required / Optional |
+=================+=================================+=====================+ +=================+=================================+=====================+
@ -98,7 +98,7 @@ The platform contains an LR-i7S65T1 baseboard (LR-i7S65T2 with two NICs not
sold yet). More details on [baseboard site]. Unfortunately the board manual is sold yet). More details on [baseboard site]. Unfortunately the board manual is
not publicly available. not publicly available.
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| CPU | Intel Core i7-6500U | | CPU | Intel Core i7-6500U |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

View File

@ -9,7 +9,7 @@
* IME 7.0.4.1197 * IME 7.0.4.1197
## Flash chip (Winbond 25Q32BV) ## Flash chip (Winbond 25Q32BV)
```{eval-rst} ```eval_rst
+---------------------+--------------------+ +---------------------+--------------------+
| Type | Value | | Type | Value |
+=====================+====================+ +=====================+====================+

View File

@ -200,7 +200,7 @@ and [u-root] as initramfs.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------------+---------------------------------------------+ +------------------------+---------------------------------------------+
| Processor (1 socket) | Intel Cooper Lake Scalable Processor | | Processor (1 socket) | Intel Cooper Lake Scalable Processor |
+------------------------+---------------------------------------------+ +------------------------+---------------------------------------------+

View File

@ -80,7 +80,7 @@ u-root.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------------+---------------------------------------------+ +------------------------+---------------------------------------------+
| Processor (2 sockets) | Intel Skylake Scalable Processor LGA3647 | | Processor (2 sockets) | Intel Skylake Scalable Processor LGA3647 |
+------------------------+---------------------------------------------+ +------------------------+---------------------------------------------+

View File

@ -9,7 +9,7 @@ from [OpenCellular].
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+------------+ +---------------------+------------+
| Type | Value | | Type | Value |
+=====================+============+ +=====================+============+
@ -69,7 +69,7 @@ Dediprog compatible pinout.
## Technology ## Technology
```{eval-rst} ```eval_rst
+---------------+----------------------------------------+ +---------------+----------------------------------------+
| SoC | :doc:`../../soc/cavium/cn81xx/index` | | SoC | :doc:`../../soc/cavium/cn81xx/index` |
+---------------+----------------------------------------+ +---------------+----------------------------------------+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on PC Engines APU1 platform.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------+--------------------------------------------------------+ +------------+--------------------------------------------------------+
| CPU | AMD G series T40E APU | | CPU | AMD G series T40E APU |
+------------+--------------------------------------------------------+ +------------+--------------------------------------------------------+
@ -23,7 +23,7 @@ This page describes how to run coreboot on PC Engines APU1 platform.
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+--------------------------+ +---------------------+--------------------------+
| Type | Value | | Type | Value |
+=====================+==========================+ +=====================+==========================+

View File

@ -4,7 +4,7 @@ This page describes how to run coreboot on PC Engines APU2 platform.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------+---------------------------------------------------------------+ +------------+---------------------------------------------------------------+
| CPU | AMD G series GX-412TC | | CPU | AMD G series GX-412TC |
+------------+---------------------------------------------------------------+ +------------+---------------------------------------------------------------+
@ -25,7 +25,7 @@ This page describes how to run coreboot on PC Engines APU2 platform.
To build working coreboot image some blobs are needed. To build working coreboot image some blobs are needed.
```{eval-rst} ```eval_rst
+-----------------+---------------------------------+---------------------+ +-----------------+---------------------------------+---------------------+
| Binary file | Apply | Required / Optional | | Binary file | Apply | Required / Optional |
+=================+=================================+=====================+ +=================+=================================+=====================+
@ -41,7 +41,7 @@ blobs are listed and available is: *3rdparty/southbridge/amd/avalon/PSP*
## Flashing coreboot ## Flashing coreboot
```{eval-rst} ```eval_rst
+---------------------+--------------------------+ +---------------------+--------------------------+
| Type | Value | | Type | Value |
+=====================+==========================+ +=====================+==========================+

View File

@ -61,7 +61,7 @@ serial/video/pcie ports might be available.
## Technology ## Technology
```{eval-rst} ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| SoC | Intel Atom Processor N3710 | | SoC | Intel Atom Processor N3710 |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+

Some files were not shown because too many files have changed in this diff Show More