Compare commits
96 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a4e1066ca7 | ||
|
67448c33f1 | ||
|
ab46c18afd | ||
|
7f50bcca93 | ||
|
ead437f143 | ||
|
471de17fd5 | ||
|
facdfe4622 | ||
|
139cb06b77 | ||
|
3d7a5bdf58 | ||
|
8fc68816a9 | ||
|
7687e7767f | ||
|
d627f7b4f7 | ||
|
ee15c2ead8 | ||
|
a1459caa88 | ||
|
d97bd1574b | ||
|
ce655f5bd5 | ||
|
0c602b614d | ||
|
09202cce26 | ||
|
8b703954c3 | ||
|
81da643c13 | ||
|
c12b290c5d | ||
|
8e42ebeea2 | ||
|
b792f6a2b9 | ||
|
5790a05237 | ||
|
668b8ccad3 | ||
|
536ea50c53 | ||
|
ae57f1d2dc | ||
|
aacf35cca3 | ||
|
d7c88c2308 | ||
|
f40f4a6e23 | ||
|
b2893e22e6 | ||
|
8a58483072 | ||
|
c61be60b97 | ||
|
93be5d5d07 | ||
|
055b874658 | ||
|
1e3138fe0b | ||
|
6319ef9718 | ||
|
2cd2263c32 | ||
|
80bd3ac5fe | ||
|
2c3cded4bc | ||
|
354a2456ac | ||
|
4ff1d63fc4 | ||
|
53a43f14da | ||
|
fa17a9d03c | ||
|
33a5722bd7 | ||
|
bfdefc2f9a | ||
|
4f014835e1 | ||
|
1312ef49b3 | ||
|
1f9eadabbb | ||
|
f442eadcad | ||
|
6117a2d296 | ||
|
7f99551d5c | ||
|
a9d8531c8c | ||
|
b18726da2f | ||
|
00e92f4538 | ||
|
d6c2e054f8 | ||
|
303a895d77 | ||
|
711f84d177 | ||
|
377153d58d | ||
|
736d4d25df | ||
|
06cb997b0a | ||
|
58a309a8f3 | ||
|
eb6642d8e4 | ||
|
c740c65fb9 | ||
|
d597320d8e | ||
|
4eaa0a929f | ||
|
020d43e553 | ||
|
7f5c6d21c6 | ||
|
d64da18c4a | ||
|
f860d5aba0 | ||
|
fb69c56971 | ||
|
939d07ea35 | ||
|
34ce8c7377 | ||
|
d68bb7c84f | ||
|
af1782cdcb | ||
|
1c8f5c7f1b | ||
|
7e00d51c39 | ||
|
7fcdb9f902 | ||
|
767ff9127b | ||
|
59d5092454 | ||
|
d571a2f8a1 | ||
|
8900323c4f | ||
|
1855cb4644 | ||
|
40c740584b | ||
|
8cc8b3c14b | ||
|
52354ea463 | ||
|
11bd917ca4 | ||
|
02295db726 | ||
|
b951bdc156 | ||
|
3eed673659 | ||
|
16a01d9f34 | ||
|
1ecba25d12 | ||
|
b6392ef4d7 | ||
|
048c2f2ac0 | ||
|
eb08ae4ce1 | ||
|
fae1eb3e66 |
2
3rdparty/intel-microcode
vendored
2
3rdparty/intel-microcode
vendored
Submodule 3rdparty/intel-microcode updated: 6f36ebde45...6788bb07eb
2
3rdparty/vboot
vendored
2
3rdparty/vboot
vendored
Submodule 3rdparty/vboot updated: 0c11187c75...24cb127a5e
@@ -11,6 +11,9 @@ upwards.
|
||||
|
||||
- [GPIO toggling in ACPI AML](gpio.md)
|
||||
|
||||
## Windows-specific ACPI documentation
|
||||
|
||||
- [Windows-specific documentation](windows.md)
|
||||
|
||||
## ACPI specification - Useful links
|
||||
|
||||
|
9
Documentation/acpi/windows.md
Normal file
9
Documentation/acpi/windows.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Testing ACPI changes under Windows
|
||||
|
||||
When testing ACPI changes in coreboot against Windows 8 or newer, beware that
|
||||
during a normal boot after a clean shutdown, Windows will use the fast startup
|
||||
mechanism which results in it not evaluating the changed ACPI code but instead
|
||||
using some cached version which won't include the changes that were supposed to
|
||||
be tested. In order for Windows to actually use the new ACPI tables, either
|
||||
disable the fast startup or just tell Windows to do a reboot which will make it
|
||||
read and use the ACPI tables in memory instead of an outdated cached version.
|
@@ -1,7 +1,5 @@
|
||||
# Firmware and Computer Acronyms, Initialisms and Definitions
|
||||
|
||||
** Note that this document even more of a work in progress than most **
|
||||
** of the coreboot documentation **
|
||||
|
||||
## _0-9
|
||||
|
||||
@@ -20,24 +18,25 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
initialization that happens from the PSP. Significantly, Memory
|
||||
Initialization.
|
||||
* AC - Electricity: [**Alternating Current**](https://en.wikipedia.org/wiki/Alternating_current)
|
||||
* Ack - Acknowledgment
|
||||
* Ack - Acknowledgment / Acknowledged
|
||||
* ACM – [**Authenticated Code Module**](https://doc.coreboot.org/security/intel/acm.html)
|
||||
* ACP - [**Average CPU power**](https://en.wikipedia.org/wiki/Thermal_design_power)
|
||||
* ACPI - The [**Advanced Configuration and Power
|
||||
Interface**](http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface)
|
||||
is an industry standard for letting the OS control power management.
|
||||
* [http://www.acpi.info/](http://www.acpi.info/)
|
||||
* [https://uefi.org/specifications](https://uefi.org/specifications)
|
||||
* [http://kernelslacker.livejournal.com/88243.html](http://kernelslacker.livejournal.com/88243.html)
|
||||
* ADC - [**Analog-to-Digital Converter**](https://en.wikipedia.org/wiki/Analog-to-digital_converter)
|
||||
* ADL - Intel: [**Alder Lake**](https://en.wikichip.org/wiki/intel/microarchitectures/alder_lake)
|
||||
* AES - [**Advanced Encryption Standard**](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
|
||||
* AESKL - Intel: AES Key Locker
|
||||
* AGESA - [**AMD Generic Encapsulated Software Architecture**](https://en.wikipedia.org/wiki/AGESA_)
|
||||
* AGP - The [**Accelerated Graphics
|
||||
Port**](http://en.wikipedia.org/wiki/Accelerated_Graphics_Port) is an
|
||||
Port**](https://en.wikipedia.org/wiki/Accelerated_Graphics_Port) is an
|
||||
older (1997-2004) point-to-point bus for video cards to communicate
|
||||
with the processor.
|
||||
* AHCI - The [**Advanced Host Controller
|
||||
Interface**](http://en.wikipedia.org/wiki/Advanced_Host_Controller_Interface)
|
||||
Interface**](https://en.wikipedia.org/wiki/Advanced_Host_Controller_Interface)
|
||||
is a standard register set for communicating with a SATA controller.
|
||||
* [http://www.intel.com/technology/serialata/ahci.htm](http://www.intel.com/technology/serialata/ahci.htm)
|
||||
* [http://download.intel.com/technology/serialata/pdf/rev1_3.pdf](http://download.intel.com/technology/serialata/pdf/rev1_3.pdf)
|
||||
@@ -51,10 +50,11 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
An open standard to connect and manage functional blocks in an SoC
|
||||
(System on a Chip)
|
||||
* AMD64 - Another name for [**x86-64**](https://en.wikipedia.org/wiki/X86-64)
|
||||
* AMD-Vi AMD: The AMD name for their IOMMU implementation
|
||||
* AMPL - AMD: [**Advanced Platform Management Link**](https://web.archive.org/web/20220509053546/https://developer.amd.com/wordpress/media/2012/10/419181.pdf) - Also referred to as
|
||||
SBI: Sideband Interface
|
||||
* AMT - Intel: [**Active Management Technology**](https://en.wikipedia.org/wiki/Intel_Active_Management_Technology)
|
||||
* ANSI - [**American National Standards Institute**](American_National_Standards_Institute)
|
||||
* ANSI - [**American National Standards Institute**](https://en.wikipedia.org/wiki/American_National_Standards_Institute)
|
||||
* AOAC - AMD: Always On, Always Connected
|
||||
* AP - Application processor - The main processor on the board (as
|
||||
opposed to the embedded controller or other processors that may be on
|
||||
@@ -63,7 +63,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* APCB - AMD: AMD PSP Customization Block
|
||||
* API - [**Application Programming Interface**](https://en.wikipedia.org/wiki/API)
|
||||
* APIC - [**Advanced Programmable Interrupt
|
||||
Controller**](http://en.wikipedia.org/wiki/Advanced_Programmable_Interrupt_Controller)
|
||||
Controller**](https://en.wikipedia.org/wiki/Advanced_Programmable_Interrupt_Controller)
|
||||
this is an advanced version of a PIC that can handle interrupts from
|
||||
and for multiple CPUs. Modern systems usually have several APICs:
|
||||
Local APICs (LAPIC) are CPU-bound, IO-APICs are bridge-bound.
|
||||
@@ -98,7 +98,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
|
||||
## B
|
||||
|
||||
* BAR - [**Base Address Register**](http://en.wikipedia.org/wiki/Base_Address_Register) This generally refers to one of the
|
||||
* BAR - [**Base Address Register**](https://en.wikipedia.org/wiki/Base_Address_Register) This generally refers to one of the
|
||||
base address registers in the PCI config space of a PCI device
|
||||
* Baud - [**Baud**](https://en.wikipedia.org/wiki/Baud) - Not an acronym - Symbol rate unit of symbols per second, named
|
||||
after Émile Baudot
|
||||
@@ -117,7 +117,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
the entire 4GiB of the 32-bit address space. Also known as flat mode
|
||||
or [**Unreal mode**](https://en.wikipedia.org/wiki/Unreal_mode).
|
||||
* BIOS - [**Basic Input/Output
|
||||
System**](http://en.wikipedia.org/wiki/BIOS)
|
||||
System**](https://en.wikipedia.org/wiki/BIOS)
|
||||
* BIST - The [**Built-in Self Test**](https://en.wikipedia.org/wiki/Built-in_self-test) is a test run by the processor on
|
||||
itself when it is first started. Usually, any nonzero value indicates
|
||||
that the selftest failed.
|
||||
@@ -183,7 +183,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
generally used to describe a section of NVRAM (Non-volatile RAM), in
|
||||
this case a section battery-backed memory in the RTC (Real Time Clock)
|
||||
that is typically used to store BIOS settings.
|
||||
*[http://en.wikipedia.org/wiki/Nonvolatile_BIOS_memory](http://en.wikipedia.org/wiki/Nonvolatile_BIOS_memory)
|
||||
*[https://en.wikipedia.org/wiki/Nonvolatile_BIOS_memory](https://en.wikipedia.org/wiki/Nonvolatile_BIOS_memory)
|
||||
* CNL - Intel: [**Cannon Lake**](https://en.wikichip.org/wiki/intel/microarchitectures/cannon_lake) (formerly Skymont)
|
||||
* CNVi - Intel: [**Connectivity Integration**](https://en.wikipedia.org/wiki/CNVi)
|
||||
* CPL - x86: Current Privilege Level - Privilege levels range from 0-3; lower numbers are more privileged.
|
||||
@@ -191,14 +191,14 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* CPPC - AMD: Collaborative Processor Performance Controls
|
||||
* CPS - Characters Per Second
|
||||
* CPU - [**Central Processing
|
||||
Unit**](http://en.wikipedia.org/wiki/Central_processing_unit)
|
||||
Unit**](https://en.wikipedia.org/wiki/Central_processing_unit)
|
||||
* CPUID - x86: [**CPU Identification**](https://en.wikipedia.org/wiki/CPUID) opcode
|
||||
* Cr50 - Google: The first generation Google Security Chip (GSC) used on
|
||||
ChromeOS devices.
|
||||
* CRB - Customer Reference Board
|
||||
* CRLF - Carriage Return, Line Feed - \\r\\n - The standard window EOL
|
||||
(End-of-Line) marker.
|
||||
* crt0 - [**C Run Time 0**](http://en.wikipedia.org/wiki/Crt0)
|
||||
* crt0 - [**C Run Time 0**](https://en.wikipedia.org/wiki/Crt0)
|
||||
* crt0s - crt0 Source code
|
||||
* CRT - [**Cathode Ray Tube**](https://en.wikipedia.org/wiki/Cathode-ray_tube)
|
||||
* CSE - Intel: Converged Security Engine
|
||||
@@ -207,6 +207,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* CSME - Intel: Converged Security and Management Engine
|
||||
* CTLE - Intel: Continuous Time Linear Equalization
|
||||
* CVE - [**Common Vulnerabilities and Exposures**](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures)
|
||||
* CXMT - ChangXin Memory Technologies
|
||||
* CZN - AMD: [**Cezanne**](https://en.wikichip.org/wiki/amd/cores/cezanne) - CPU Family 19h, Model 50h
|
||||
|
||||
|
||||
@@ -225,8 +226,9 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
still has power.
|
||||
* D3 Cold - ACPI Device power state: Power is completely removed from
|
||||
the device.
|
||||
* DASH - [**Desktop and mobile Architecture for System Hardware**](Desktop_and_mobile_Architecture_for_System_Hardware)
|
||||
* DASH - [**Desktop and mobile Architecture for System Hardware**](https://en.wikipedia.org/wiki/Desktop_and_mobile_Architecture_for_System_Hardware)
|
||||
* DB - DaughterBoard
|
||||
* DbC - USB: Debug Capability on the USB host controller
|
||||
* DC - Electricity: Direct Current
|
||||
* DCP - Digital Content Protection
|
||||
* DCR - **Decode Control Register** This is a way of identifying the
|
||||
@@ -242,7 +244,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* DIMM - [**Dual Inline Memory Module**](https://en.wikipedia.org/wiki/DIMM)
|
||||
* DIP - [**Dual inline package**](https://en.wikipedia.org/wiki/Dual_in-line_package)
|
||||
* DMA - [**Direct Memory
|
||||
Access**](http://en.wikipedia.org/wiki/Direct_memory_access) Allows
|
||||
Access**](https://en.wikipedia.org/wiki/Direct_memory_access) Allows
|
||||
certain hardware subsystems within a computer to access system memory
|
||||
for reading and/or writing independently of the main CPU. Examples of
|
||||
systems that use DMA: Hard Disk Controller, Disk Drive Controller,
|
||||
@@ -250,7 +252,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
computers, as it allows devices of different speeds to communicate
|
||||
without subjecting the CPU to a massive interrupt load.
|
||||
* DMI - Direct Media Interface is a link/bus between CPU and PCH.
|
||||
* DMI - [**Desktop Management Interface**](Desktop_Management_Interface)
|
||||
* DMI - [**Desktop Management Interface**](https://en.wikipedia.org/wiki/Desktop_Management_Interface)
|
||||
* DMIC - Digital Microphone
|
||||
* DMTF - [**Distributed Management Task Force**](https://en.wikipedia.org/wiki/Distributed_Management_Task_Force)
|
||||
* DMZ - Demilitarized Zone
|
||||
@@ -259,6 +261,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* DOS - Disk Operating System
|
||||
* DP - DisplayPort
|
||||
* DPM - Mediatek: DRAM Power Manager
|
||||
* DPTC - AMD: Dynamic Power and Thermal Control
|
||||
* DPTF - Intel: Dynamic Power and Thermal Framework
|
||||
* DRAM - Memory: [**Dynamic Random Access Memory**](https://en.wikipedia.org/wiki/Dynamic_random-access_memory)
|
||||
* DRTM - Dynamic Root of Trust for Measurement
|
||||
@@ -285,6 +288,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
vs Integrated TPMs or fTPMs (Firmware TPMs).
|
||||
* DTS - U-Boot: Device Tree Source
|
||||
* DUT - Device Under Test
|
||||
* DvC - USB: Debug Capability on the USB Device (Device Capability)
|
||||
* DVFS - ARM: Dynamic Voltage and Frequency Scaling
|
||||
* DVI - [**Digital Video Interface**](https://en.wikipedia.org/wiki/Digital_Visual_Interface)
|
||||
* DVT - Production Timeline: Design Validation Test
|
||||
@@ -297,12 +301,13 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
|
||||
## E
|
||||
|
||||
* EAPD - Intel: [**External Amplifier Power Down**](https://web.archive.org/web/20210203194800/https://www.eeweb.com/hd-audio-eapd/)
|
||||
* EBDA - Extended BIOS Data Area
|
||||
* EBG - Intel: Emmitsburg PCH
|
||||
* ECC - [**Error Correction Code**](https://en.wikipedia.org/wiki/Error_correction_code) - Typically used to refer to a type of
|
||||
memory that can detect and correct memory errors.
|
||||
* EDID - [**Extended Display Identification Data**](https://en.wikipedia.org/wiki/Extended_Display_Identification_Data)
|
||||
* edk2 - EFI Development Kit 2
|
||||
* EDK2 - EFI Development Kit 2
|
||||
* EDO - Memory: [**Extended Data
|
||||
Out**](https://en.wikipedia.org/wiki/Dynamic_random-access_memory#Extended_data_out_DRAM)
|
||||
- A DRAM standard introduced in 1994 that improved upon, but was
|
||||
@@ -324,6 +329,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* EOL - End of Life
|
||||
* EPP - Intel: Energy-Performance Preference
|
||||
* EPROM - Erasable Programmable Read-Only Memory
|
||||
* EROFS - Linux: [**Enhanced Read-Only File System**](https://en.wikipedia.org/wiki/EROFS)
|
||||
* ESD - Electrostatic discharge
|
||||
* eSPI - Enhanced System Peripheral Interface
|
||||
* EVT - Production Timeline: Engineering Validation Test
|
||||
@@ -334,6 +340,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* FADT - ACPI Table: Fixed ACPI Description Table
|
||||
* FAE - Field Application Engineer
|
||||
* FAT - File Allocation Table
|
||||
* FBVDDQ - Nvidia Power: Framebuffer Voltage
|
||||
* FCH - AMD: Firmware Control Hub
|
||||
* FCS - Production Timeline: First Customer Shipment
|
||||
* FDD - Floppy Disk Drive
|
||||
@@ -351,7 +358,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* FPDT - ACPI: Firmware Performance Data Table
|
||||
* FPGA - [**Field-Programmable Gate Array**](https://en.wikipedia.org/wiki/Field-programmable_gate_array)
|
||||
* Framebuffer - The
|
||||
[**framebuffer**](http://en.wikipedia.org/wiki/Framebuffer) is a part
|
||||
[**framebuffer**](https://en.wikipedia.org/wiki/Framebuffer) is a part
|
||||
of RAM in a computer which is allocated to hold the graphics
|
||||
information for one frame or picture. This information typically
|
||||
consists of color values for every pixel on the screen. A framebuffer
|
||||
@@ -363,12 +370,15 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* FPM - Memory: [**Fast Page Mode**](https://en.wikipedia.org/wiki/Dynamic_random-access_memory#Page_mode_DRAM) - A DRAM standard introduced in 1990.
|
||||
* FPU - [**Floating-Point Unit**](https://en.wikipedia.org/wiki/Floating-point_unit)
|
||||
* FSB - [**Front-Side Bus**](https://en.wikipedia.org/wiki/Front-side_bus)
|
||||
* FSM - Finite State Machine
|
||||
* FSP - Intel: Firmware Support Package
|
||||
* FSR - Intel: Firmware Status Register
|
||||
* FTP - Network Protocol: [**File Transfer Protocol**](https://en.wikipedia.org/wiki/File_Transfer_Protocol)
|
||||
* fTPM - Firmware TPM (Trusted Platform Module). This is a TPM that is
|
||||
based in firmware instead of actual hardware. It typically runs in
|
||||
some sort of TEE (Trusted Execution Environment).
|
||||
* FWCM Intel: firmware Connection Manager
|
||||
* FWID - Firmware Identifier
|
||||
|
||||
|
||||
## G
|
||||
@@ -389,6 +399,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* GMA - Intel: [**Graphics Media
|
||||
Accelerator**](https://en.wikipedia.org/wiki/Intel_GMA)
|
||||
* GNB - Graphics NorthBridge
|
||||
* GND - Power: Ground
|
||||
* GNVS - Global Non-Volatile Storage
|
||||
* GPD - PCH GPIO in Deep Sleep well (D5 power)
|
||||
* GPE - ACPI: General Purpose Event
|
||||
@@ -405,23 +416,28 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* GSC - Google Security Chip - Typically Cr50/Ti50, though could also refer to the titan chips
|
||||
* GSPI - Generic SPI - These are SPI controllers available for general
|
||||
use, not dedicated to flash, for example.
|
||||
* GTDT - ACPI: Generic Timer Description Table
|
||||
* GTT - [**Graphics Translation Table**](https://en.wikipedia.org/wiki/Graphics_address_remapping_table)
|
||||
* GUID - UEFI: [**Globally Unique IDentifier**](https://en.wikipedia.org/wiki/Universally_unique_identifier)
|
||||
|
||||
|
||||
## H
|
||||
|
||||
* HBP - Graphics: [**Horizontal Back Porch**](https://en.wikipedia.org/wiki/Horizontal_blanking_interval) In the Horizontal blanking interval, this is the blank area past the end of the scanline
|
||||
* HDA - [**High Definition Audio**](https://en.wikipedia.org/wiki/Intel_High_Definition_Audio)
|
||||
* HDCP - [**High-bandwidth Digital Content Protection**](https://en.wikipedia.org/wiki/High-bandwidth_Digital_Content_Protection)
|
||||
* HDD - Hard Disk Drive
|
||||
* HDMI - [**High-Definition Multimedia Interface**](https://en.wikipedia.org/wiki/HDMI)
|
||||
* HDR - [**High Dynamic Range**](https://en.wikipedia.org/wiki/High_dynamic_range)
|
||||
* HECI - Intel: [**Host Embedded Controller Interface**](https://en.wikipedia.org/wiki/Host_Embedded_Controller_Interface) (Replaced by MEI)
|
||||
* HFP - Graphics: [**Horizontal Front Porch**](https://en.wikipedia.org/wiki/Horizontal_blanking_interval) In the Horizontal blanking interval, this is the blank before the start of the next scanline.
|
||||
* HID - [**Human Interface
|
||||
Device**](https://en.wikipedia.org/wiki/Human_interface_device)
|
||||
* HOB - UEFI: Hand-Off Block
|
||||
* HPD - Hot-Plug Detect
|
||||
* HPET - [**High Precision Event Timer**](https://en.wikipedia.org/wiki/High_Precision_Event_Timer)
|
||||
* HSP - AMD: Hardware Security Processor
|
||||
* HSPHY - USB: USB3 High-Speed PHY
|
||||
* HSTI - Hardware Security Test Interface
|
||||
* HSW - Intel: Haswell
|
||||
* Hybrid S3 - System Power State: This is where the operating system
|
||||
@@ -430,7 +446,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
resume quickly from S3 if the system stays powered, and resume from
|
||||
the disk if power is lost.
|
||||
* Hypertransport - AMD: The
|
||||
[**Hypertransport**](http://en.wikipedia.org/wiki/Hypertransport) bus
|
||||
[**Hypertransport**](https://en.wikipedia.org/wiki/Hypertransport) bus
|
||||
is an older (2001-2017) high-speed electrical interconnection protocol
|
||||
specification between CPU, Memory, and (occasionally) peripheral
|
||||
devices. This was originally called the Lightning Data Transport
|
||||
@@ -451,6 +467,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
- Also known as SenseWire
|
||||
* IA - Intel Architecture
|
||||
* IA-64 - Intel Itanium 64-bit architecture
|
||||
* IAFC - RISC-V: [**RISC-V Base Integer instruction set**](https://en.wikipedia.org/wiki/RISC-V), plus atomic instructions, single precision floating point instructions, and compressed instructions
|
||||
* IBB – Initial Boot Block
|
||||
* IBV - Independent BIOS Vendor
|
||||
* IC - Integrated Circuit
|
||||
@@ -468,6 +485,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
Fabric**](https://en.wikipedia.org/wiki/HyperTransport#Infinity_Fabric)
|
||||
is a superset of AMD's earlier Hypertransport interconnect.
|
||||
* IFD - Intel: Intel Flash Descriptor
|
||||
* IMAFC - RISC-V: [**RISC-V Base Integer instruction set**](https://en.wikipedia.org/wiki/RISC-V), plus integer multiply & divide, atomic instructions, single precision floating point instructions, and compressed instructions
|
||||
* IMC - AMD: Integrated micro-controller - An 8051 microcontroller built
|
||||
into some AMD FCHs (Fusion Controller Hubs) and Southbridge chips.
|
||||
This never worked well for anything beyond fan control and caused
|
||||
@@ -479,6 +497,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* IoC - Security: Indicator of Compromise
|
||||
* IOC - Intel: I/O Cache
|
||||
* IOE - Intel: I/O Expander
|
||||
* IOHC - AMD: I/O Hub Controller
|
||||
* IOM - Intel: I/O Manager
|
||||
* IOMMU - [**I/O Memory Management Unit**](https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit)
|
||||
* IOMUX - AMD: The I/O Mux block controls how each GPIO is configured.
|
||||
@@ -579,12 +598,14 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* MBR - Master Boot Record
|
||||
* MCA - [**Machine Check Architecture**](https://en.wikipedia.org/wiki/Machine_Check_Architecture)
|
||||
* MCR - Machine Check Registers
|
||||
* MCTP - [**Management Component Transport Protocol**](https://en.wikipedia.org/wiki/Management_Component_Transport_Protocol)
|
||||
* MCU - Memory Control Unit
|
||||
* MCU - [**MicroController
|
||||
Unit**](https://en.wikipedia.org/wiki/Microcontroller)
|
||||
* MCTP - [**Management Component Transport Protocol**](https://en.wikipedia.org/wiki/Management_Component_Transport_Protocol)
|
||||
* MCUPM - Mediatek: MCUPM is a hardware module which is used for MCUSYS Power Management. MCUPM firmware (mcupm.bin) is loaded into MCUPM SRAM at system initialization.
|
||||
* MDFIO - Intel: Multi-Die Fabric IO
|
||||
* MDN - AMD: Mendocino
|
||||
* mDP - Mini DisplayPort connector
|
||||
* ME - Intel: Management Engine
|
||||
* MEI - Intel: ME Interface (Previously known as HECI)
|
||||
* Memory training - the process of finding the best speeds, voltages,
|
||||
@@ -601,7 +622,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* MKBP - Matrix Keyboard Protocol
|
||||
* MMC - [**MultiMedia
|
||||
Card**](https://en.wikipedia.org/wiki/MultiMediaCard)
|
||||
* MMIO - [**Memory Mapped I/O**](http://en.wikipedia.org/wiki/MMIO)
|
||||
* MMIO - [**Memory Mapped I/O**](https://en.wikipedia.org/wiki/MMIO)
|
||||
allows peripherals' memory or registers to be accessed directly
|
||||
through the memory bus. When the memory bus size was very small, this
|
||||
was initially done by hiding any memory at that address, effectively
|
||||
@@ -628,16 +649,17 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* MSB - Most Significant Bit
|
||||
* MSI - Message Signaled Interrupt
|
||||
* MSR - Machine-Specific Register
|
||||
* MT/s - MegaTransfers per second
|
||||
* MTS or MT/s - MegaTransfers per second
|
||||
* MTL - Intel: Meteor Lake
|
||||
* MTL - ARM: MHU Transport Layer
|
||||
* MTRR - [**Memory Type and Range Register**](http://en.wikipedia.org/wiki/MTRR)
|
||||
* MTRR - [**Memory Type and Range Register**](https://en.wikipedia.org/wiki/MTRR)
|
||||
allows to set the cache behaviour on memory access in x86. Basically,
|
||||
it tells the CPU how to cache certain ranges of memory
|
||||
(e.g. write-through, write-combining, write-back...). Memory ranges
|
||||
are specified over physical address ranges. In Linux, they are visible
|
||||
over `/proc/mtrr` and they can be modified there. For further
|
||||
information, see the [**Linux documentation**](https://www.kernel.org/doc/html/v5.19/x86/pat.html).
|
||||
* MXM - PCIe: [**Mobile PCI Express Module**](https://en.wikipedia.org/wiki/Mobile_PCI_Express_Module)
|
||||
|
||||
|
||||
## N
|
||||
@@ -663,6 +685,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* NVME - Non-Volatile Memory Express - An SSD interface that allows
|
||||
access to the flash memory through a PCIe bus.
|
||||
* NVPCF - Nvidia Platform and Control Framework
|
||||
* NVVDD - Nvidia Power: Core voltage
|
||||
* NX - No Execute
|
||||
|
||||
|
||||
@@ -708,17 +731,17 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* PCD - UEFI: Platform Configuration Database
|
||||
* PCH - Intel: [**Platform Controller Hub**](https://en.wikipedia.org/wiki/Platform_Controller_Hub)
|
||||
* PCI - [**Peripheral Control
|
||||
Interconnect**](http://en.wikipedia.org/wiki/Peripheral_Component_Interconnect)
|
||||
Interconnect**](https://en.wikipedia.org/wiki/Peripheral_Component_Interconnect)
|
||||
- Replaced generally by PCIe (PCI Express)
|
||||
* PCI Configuration Space - The [**PCI Config
|
||||
space**](http://en.wikipedia.org/wiki/PCI_Configuration_Space) is an
|
||||
space**](https://en.wikipedia.org/wiki/PCI_Configuration_Space) is an
|
||||
[address space](https://en.wikipedia.org/wiki/Address_space) for all
|
||||
PCI devices. Originally, this address space was accessed through an
|
||||
index/data pair by writing the address that you wanted to read/write
|
||||
into the I/O address 0xCF8, then reading or writing I/O Address 0xCFC.
|
||||
This has been updated to an MMIO method which increases each PCI
|
||||
function's configuration space from 256 bytes to 4K.
|
||||
* PCIe - [**PCI Express**](http://en.wikipedia.org/wiki/Pci_express)
|
||||
* PCIe - [**PCI Express**](https://en.wikipedia.org/wiki/Pci_express)
|
||||
* PCMCIA: Personal Computer Memory Card International Association
|
||||
* PCO - AMD: [**Picasso**](https://en.wikichip.org/wiki/amd/cores/picasso)
|
||||
* PCR: TPM: Platform Configuration Register
|
||||
@@ -732,8 +755,9 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* PEI - UEFI: Pre-EFI Initialization
|
||||
* PEIM - UEFI: PEI Module
|
||||
* PEP - Intel: Power Engine Plug-in
|
||||
* PEXVDD - Nvidia Power: PCIExpress Voltage
|
||||
* PHX - AMD: Phoenix SoC
|
||||
* PHY - [**PHYsical layer**](http://en.wikipedia.org/wiki/PHY) - The
|
||||
* PHY - [**PHYsical layer**](https://en.wikipedia.org/wiki/PHY) - The
|
||||
hardware that implements the send/receive functionality of a
|
||||
communication protocol.
|
||||
* PI - Platform Initialization
|
||||
@@ -752,7 +776,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* PIT - Generally refers to the 8253/8254 [**Programmable Interval
|
||||
Timer**](https://en.wikipedia.org/wiki/Programmable_interval_timer).
|
||||
* PLCC - [**Plastic leaded chip
|
||||
carrier**](http://en.wikipedia.org/wiki/Plastic_leaded_chip_carrier)
|
||||
carrier**](https://en.wikipedia.org/wiki/Plastic_leaded_chip_carrier)
|
||||
* PLL - [**Phase-Locked
|
||||
Loop**](https://en.wikipedia.org/wiki/Phase-locked_loop)
|
||||
* PM - Platform Management
|
||||
@@ -783,6 +807,8 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* PSF - Intel: Primary Sideband Fabric
|
||||
* PSP - AMD: Platform Security Processor
|
||||
* PSPP - AMD: PCIE Speed Power Policy
|
||||
* PSR - Intel: Platform Service Record
|
||||
* PSR - Graphics: Panel Self-Refresh - This is a power-savings feature specified in eDP
|
||||
* PTT - Intel: Platform Trust Technology - Intel's firmware based TPM.
|
||||
* PU - GPIOs: Pull-Up - Drives the pin to reference voltage through a
|
||||
resistor. The resistor allows the signal to still be set to ground
|
||||
@@ -809,6 +835,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
a set of 3 or 4 GPIOs to allow 8 to 16 different memory chips to be
|
||||
used.
|
||||
* RAPL - Running Average Power Limit
|
||||
* RCB - PCIe: Read Completion Boundary - Sets the address alignment on which a read request may be serviced with multiple completions
|
||||
* RCS - [**Revision control
|
||||
system**](https://en.wikipedia.org/wiki/Revision_Control_System)
|
||||
* Real mode - The original 20-bit addressing mode of the 8086 & 8088
|
||||
@@ -816,7 +843,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
Segment:Offset index pair. In 2022, this is still the mode that
|
||||
x86-64 processors are in at the reset vector!
|
||||
* RDMA - [**Remote Direct Memory
|
||||
Access**](http://en.wikipedia.org/wiki/Remote_Direct_Memory_Access) is
|
||||
Access**](https://en.wikipedia.org/wiki/Remote_Direct_Memory_Access) is
|
||||
a concept whereby two or more computers communicate via DMA directly
|
||||
from main memory of one system to the main memory of another.
|
||||
* RFC - Request for Comment
|
||||
@@ -829,6 +856,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* ROM - Read Only Memory
|
||||
* RoT - Root of Trust
|
||||
* RPL - Intel: [**Raptor Lake**](https://en.wikipedia.org/wiki/Raptor_Lake)
|
||||
* RPP - Intel: Raptor Point PCH
|
||||
* RRG - AMD (ATI): Register Reference Guide
|
||||
* RSDP - Root System Description Pointer
|
||||
* RTC - Real Time Clock
|
||||
@@ -920,6 +948,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* SMBus - [**System Management
|
||||
Bus**](https://en.wikipedia.org/wiki/System_Management_Bus)
|
||||
* [http://www.smbus.org/](http://www.smbus.org/)
|
||||
* SME - AMD: Secure Memory Encryption
|
||||
* SMI - System management interrupt
|
||||
* SMM - [**System management
|
||||
mode**](https://en.wikipedia.org/wiki/System_Management_Mode)
|
||||
@@ -933,7 +962,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* SO-DIMM: Small Outline Dual In-Line Memory Module
|
||||
* SoC - System on a Chip
|
||||
* SOIC - [**Small-Outline Integrated
|
||||
Circuit**](http://en.wikipedia.org/wiki/Small-outline_integrated_circuit)
|
||||
Circuit**](https://en.wikipedia.org/wiki/Small-outline_integrated_circuit)
|
||||
* SPD - [**Serial Presence
|
||||
Detect**](https://en.wikipedia.org/wiki/Serial_presence_detect)
|
||||
* SPI - [**Serial Peripheral
|
||||
@@ -958,6 +987,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* SSI-TEB - Physical board format: [**SSI Thin Electronics
|
||||
Bay**](https://en.wikipedia.org/wiki/SSI_CEB)
|
||||
* SSP - [**Speech Signal Processor**](https://en.wikipedia.org/wiki/Speech_processing)
|
||||
* SSPHY - USB: USB3 Super-Speed PHY
|
||||
* STAPM - AMD: Skin Temperature Aware Power Management
|
||||
* STB - AMD: Smart Trace Buffer
|
||||
* SuperIO - The [**Super I/O**](https://en.wikipedia.org/wiki/Super_I/O)
|
||||
@@ -965,13 +995,16 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
peripherals. Most common are: A PS/2 Keyboard and mouse port, LPT
|
||||
Ports, UARTS, Watchdog Timers, Floppy drive Controllers, GPIOs, or any
|
||||
of a number of various other devices.
|
||||
* SVC - ARM: Supervisor Call
|
||||
* SVI2/3 - Serial VID (Voltage Identification) Interface 2.0 / 3.0
|
||||
* SWCM - Intel: Software Connection Manager
|
||||
|
||||
|
||||
## T
|
||||
|
||||
* TBT - Thunderbolt
|
||||
* TBT - Intel: Turbo Boost Technology
|
||||
* tBUF - I2C: The bus free time between a STOP and START condition
|
||||
* TCC - Intel: Thermal Control Circuit
|
||||
* TCP - Transmission Control Protocol
|
||||
* TCPC - Type C Port Controller
|
||||
@@ -1013,6 +1046,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* uCode - [**Microcode**](https://en.wikipedia.org/wiki/Microcode)
|
||||
* UDK - UEFI: UEFI Development Kit
|
||||
* UDP - User Datagram Protocol
|
||||
* UDMA - ATA: [**Ultra DMA**](https://en.wikipedia.org/wiki/UDMA) - The fastest transfer mode for ATA Hard Drives
|
||||
* UEFI - Unified Extensible Firmware Interface
|
||||
* UFC - User Facing Camera
|
||||
* UFP - USB: Upstream Facing Port
|
||||
@@ -1030,6 +1064,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* UPS - Uninterruptible Power Supply
|
||||
* USART - Universal Synchronous/Asynchronous Receiver/Transmitter
|
||||
* USB - Universal Serial Bus
|
||||
* USF - Intel: Universal Scalable Firmware
|
||||
|
||||
|
||||
## V
|
||||
@@ -1038,6 +1073,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* VBNV - Vboot Non-Volatile storage
|
||||
* VBT - [**Video BIOS
|
||||
Table**](https://www.kernel.org/doc/html/latest/gpu/i915.html#video-bios-table-vbt)
|
||||
* VDDQ Memory/Power: The supply voltage to the output buffers of a memory chip.
|
||||
* VESA - Video Electronics Standards Association
|
||||
* VGA: Video Graphics Array
|
||||
* VID: Vendor Identifier
|
||||
@@ -1045,12 +1081,17 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* VLB - VESA Local Bus
|
||||
* VOIP - Voice over IP
|
||||
* Voodoo mode - a silly name for Big Real mode.
|
||||
* VMX - Intel: CPU flag for Hardware Virtualization
|
||||
* VPD - Vital Product Data
|
||||
* VPN - Virtual Private Network
|
||||
* VPU - Intel: Versatile Processor Unit
|
||||
* VR - Voltage Regulator
|
||||
* VRAM - Video Random Access Memory
|
||||
* VREF Memory/Power: Reference voltage for the input lines of a chip that determines the voltage level at which the threshold between a logical 1 and a logical 0 occurs. Usually 1/2 VDDQ.
|
||||
* VRM - Voltage Regulator Module
|
||||
* VT-d - Intel: Virtualization Technology for Directed I/O
|
||||
* VTT Memory/Power: Tracking Termination Voltage
|
||||
* vUART - Virtual UART
|
||||
|
||||
|
||||
## W
|
||||
@@ -1068,6 +1109,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
* WLAN - Wireless LAN (Local Area Network)
|
||||
* WWAN - Telecommunication: Wireless WAN (Wide Area Network)
|
||||
* WP - Cache policy: [**Write-Protected**](https://en.wikipedia.org/wiki/Cache_%28computing%29)
|
||||
* WPT - Intel: Wildcat Point - PCH for Broadwell
|
||||
* WO - Write-only
|
||||
* WOL - [**Wake-on-LAN**](https://en.wikipedia.org/wiki/Wake-on-LAN)
|
||||
* WT - Cache Policy: [**Write Through**](https://en.wikipedia.org/wiki/Cache_%28computing%29)
|
||||
@@ -1088,9 +1130,10 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
||||
supporting 1.x, 2.0, and 3.x devices.
|
||||
|
||||
|
||||
|
||||
## Y
|
||||
|
||||
* YCC - Color Space: [**YCbCr**](https://en.wikipedia.org/wiki/YCbCr) - A family of color spaces used in video
|
||||
|
||||
|
||||
## Z
|
||||
|
||||
|
@@ -62,6 +62,23 @@ supported options are:
|
||||
|
||||
`position` and `align` are mutually exclusive.
|
||||
|
||||
### Adding Makefile fragments
|
||||
|
||||
You can use the `add_intermediate` helper to add new post-processing steps for
|
||||
the final `coreboot.rom` image. For example you can add new files to CBFS by
|
||||
adding something like this to `site-local/Makefile.inc`
|
||||
|
||||
```
|
||||
$(call add_intermediate, add_mrc_data)
|
||||
$(CBFSTOOL) $< write -r RW_MRC_CACHE -f site-local/my-mrc-recording.bin
|
||||
```
|
||||
|
||||
Note that the second line must start with a tab, not spaces.
|
||||
|
||||
```eval_rst
|
||||
See also :doc:`../tutorial/managing_local_additions`.
|
||||
```
|
||||
|
||||
#### FMAP region support
|
||||
With the addition of FMAP flash partitioning support to coreboot, there was a
|
||||
need to extend the specification of files to provide more precise control
|
||||
|
@@ -92,7 +92,7 @@ for only CPU models that the board will actually be run with.
|
||||
|
||||
```eval_rst
|
||||
+------------------+--------------------------------------------------+
|
||||
| Northbridge | :doc:`../../northbridge/intel/i440bx/index` |
|
||||
| Northbridge | Intel I440BX |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Southbridge | i82371eb |
|
||||
+------------------+--------------------------------------------------+
|
||||
|
@@ -90,7 +90,7 @@ for only CPU models that the board will actually be run with.
|
||||
|
||||
```eval_rst
|
||||
+------------------+--------------------------------------------------+
|
||||
| Northbridge | :doc:`../../northbridge/intel/i440bx/index` |
|
||||
| Northbridge | Intel I440BX |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Southbridge | i82371eb |
|
||||
+------------------+--------------------------------------------------+
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# HP Compaq 8300 Elite USDT
|
||||
# HP Compaq Elite 8300 USDT
|
||||
|
||||
This page describes how to run coreboot on the [Compaq 8300 Elite USDT] desktop
|
||||
This page describes how to run coreboot on the [Compaq Elite 8300 USDT] desktop
|
||||
from [HP].
|
||||
|
||||
## Flashing coreboot
|
||||
@@ -27,9 +27,8 @@ from [HP].
|
||||
|
||||
### Internal programming
|
||||
|
||||
TODO: investigate
|
||||
|
||||
The board has two jumpers that might be relevant: FDO (Flash Descriptor Override) and BB (?).
|
||||
Internal programming is possible. Shorting the Flash Descriptor Override
|
||||
(FDO) jumper bypasses all write protections.
|
||||
|
||||
### External programming
|
||||
|
||||
@@ -62,5 +61,5 @@ Wake on LAN is active works great.
|
||||
This board has a Nuvoton NPCD379 SuperIO chip. Fan speed and PS/2 keyboard work
|
||||
fine using coreboot's existing code for :doc:`../../superio/nuvoton/npcd378`.
|
||||
|
||||
[Compaq 8300 USDT]: https://support.hp.com/gb-en/product/hp-compaq-elite-8300-ultra-slim-pc/5232866
|
||||
[Compaq Elite 8300 USDT]: https://support.hp.com/gb-en/product/hp-compaq-elite-8300-ultra-slim-pc/5232866
|
||||
[HP]: https://www.hp.com/
|
||||
|
@@ -75,6 +75,7 @@ The boards in this section are not real mainboards, but emulators.
|
||||
## HP
|
||||
|
||||
- [Compaq 8200 Elite SFF](hp/compaq_8200_sff.md)
|
||||
- [Compaq Elite 8300 USDT](hp/compaq_8300_usdt.md)
|
||||
- [Z220 Workstation SFF](hp/z220_sff.md)
|
||||
|
||||
### EliteBook series
|
||||
@@ -124,8 +125,7 @@ The boards in this section are not real mainboards, but emulators.
|
||||
### Ivy Bridge series
|
||||
|
||||
- [T430](lenovo/t430.md)
|
||||
- [T530](lenovo/w530.md)
|
||||
- [W530](lenovo/w530.md)
|
||||
- [T530 / W530](lenovo/w530.md)
|
||||
- [T430 / T530 / X230 / W530 common](lenovo/Ivy_Bridge_series.md)
|
||||
- [T431s](lenovo/t431s.md)
|
||||
- [X230s](lenovo/x230s.md)
|
||||
|
@@ -13,7 +13,6 @@ Update this document with changes that should be in the release notes.
|
||||
A final version of the notes are done after the release.
|
||||
|
||||
### Significant or interesting changes
|
||||
----------------------------------
|
||||
|
||||
* Add changes that need a full description here
|
||||
|
||||
@@ -25,7 +24,6 @@ Update this document with changes that should be in the release notes.
|
||||
* To be filled in immediately before the release by the release team
|
||||
|
||||
### Additional coreboot changes
|
||||
---------------------------
|
||||
|
||||
The following are changes across a number of patches, or changes worth
|
||||
noting, but not needing a full description.
|
||||
@@ -33,22 +31,18 @@ noting, but not needing a full description.
|
||||
* Changes that only need a line or two of description go here.
|
||||
|
||||
### Platform Updates
|
||||
----------------
|
||||
|
||||
* To be filled in immediately before the release by the release team
|
||||
|
||||
### Plans to move platform support to a branch
|
||||
------------------------------------------
|
||||
|
||||
* Section to be filled in or removed after discussion
|
||||
|
||||
### Statistics from the 4.21 to the 4.22 release
|
||||
--------------------------------------------
|
||||
|
||||
* To be filled in immediately before the release by the release team
|
||||
|
||||
|
||||
### Significant Known and Open Issues
|
||||
---------------------------------
|
||||
|
||||
* To be filled in immediately before the release by the release team
|
||||
|
@@ -1,20 +1,20 @@
|
||||
# Writing unit tests for coreboot
|
||||
|
||||
## Introduction
|
||||
General thoughts about unit testing coreboot can be found in [Unit
|
||||
testing coreboot](../technotes/2020-03-unit-testing-coreboot.md).
|
||||
General thoughts about unit testing coreboot can be found in
|
||||
[Unit-testing coreboot](../technotes/2020-03-unit-testing-coreboot.md).
|
||||
Additionally, [code coverage](../technotes/2021-05-code-coverage.md)
|
||||
support is available for unit tests.
|
||||
|
||||
This document aims to guide developers through the process of adding and
|
||||
writing unit tests for coreboot modules.
|
||||
|
||||
As an example of unit under test, `src/device/i2c.c` (referred hereafter
|
||||
As an example of unit-under-test, `src/device/i2c.c` (referred hereafter
|
||||
as UUT "Unit Under Test") will be used. This is simple module, thus it
|
||||
should be easy for the reader to focus solely on the testing logic,
|
||||
without the need to spend too much time on digging deeply into the
|
||||
source code details and flow of operations. That being said, a good
|
||||
understanding of what the unit under test is doing is crucial for
|
||||
understanding of what the unit-under-test is doing is crucial for
|
||||
writing unit tests.
|
||||
|
||||
This tutorial should also be helpful for developers who want to follow
|
||||
@@ -23,7 +23,7 @@ though TDD has a different work flow of building tests first, followed
|
||||
by the code that satisfies them, the process of writing tests and adding
|
||||
them to the tree is the same.
|
||||
|
||||
## Analysis of unit under test
|
||||
## Analysis of unit-under-test
|
||||
First of all, it is necessary to precisely establish what we want to
|
||||
test in a particular module. Usually this will be an externally exposed
|
||||
API, which can be used by other modules.
|
||||
@@ -69,7 +69,7 @@ UUT and not on the other modules. While some software dependencies may
|
||||
be hard to be mock (for example due to complicated dependencies) and
|
||||
thus should be simply linked into the test binaries, all hardware
|
||||
dependencies need to be mocked out, since in the user-space host
|
||||
environment, targets hardware is not available.
|
||||
environment, target hardware is not available.
|
||||
|
||||
```eval_rst
|
||||
.. admonition:: i2c-test example
|
||||
@@ -142,12 +142,12 @@ for coreboot `make unit-tests`.
|
||||
make unit-tests
|
||||
```
|
||||
|
||||
When trying to build test binary, one can often see linker complains
|
||||
about `undefined reference` to couple of symbols. This is one of
|
||||
When trying to build test binary, one can often see the linker complaining
|
||||
about `undefined reference` for a couple of symbols. This is one of the
|
||||
solutions to determine all external dependencies of UUT - iteratively
|
||||
build test and resolve errors one by one. At this step, developer should
|
||||
decide either it's better to add an extra module to provide necessary
|
||||
definitions or rather mock such dependency. Quick guide through adding
|
||||
definitions or rather mock such dependency. A quick guide about adding
|
||||
mocks is provided later in this doc.
|
||||
|
||||
## Writing new tests
|
||||
@@ -324,8 +324,8 @@ a described range.
|
||||
.. admonition:: i2c-test example
|
||||
|
||||
In our example, we may want to check that `platform_i2c_transfer` is
|
||||
fed with number of segments bigger than 0, each segment has flags
|
||||
which are in supported range and each segment has buf which is
|
||||
fed with a number of segments bigger than 0, each segment has flags
|
||||
which are in the supported range and each segment has a buf which is
|
||||
non-NULL. We are expecting such values for _every_ call, thus the
|
||||
last parameter in `expect*` macros is -1.
|
||||
|
||||
@@ -375,16 +375,16 @@ API documentation.
|
||||
|
||||
### Test runner
|
||||
Finally, the developer needs to implement the test `main()` function.
|
||||
All tests should be registered there and cmocka test runner invoked. All
|
||||
methods for invoking Cmocka test are described
|
||||
All tests should be registered there and the cmocka test runner invoked.
|
||||
All methods for invoking Cmocka test are described
|
||||
[here](https://api.cmocka.org/group__cmocka__exec.html).
|
||||
|
||||
```eval_rst
|
||||
.. admonition:: i2c-test example
|
||||
|
||||
We don't need any extra setup and teardown functions for i2c-test, so
|
||||
let's simply register test for `i2c_read_field` and return from main
|
||||
value which is output of Cmocka's runner (it returns number of tests
|
||||
let's simply register the test for `i2c_read_field` and return from
|
||||
main the output of Cmocka's runner (it returns number of tests
|
||||
that failed).
|
||||
|
||||
.. code-block:: c
|
||||
|
@@ -49,8 +49,8 @@ file `Python`
|
||||
* __cbmem__ - CBMEM parser to read e.g. timestamps and console log `C`
|
||||
* __chromeos__ - These scripts can be used to access ChromeOS
|
||||
resources, for example to extract System Agent reference code and other
|
||||
blobs (e.g. mrc.bin, refcode, VGA option roms) from a ChromeOS
|
||||
recovery image. `C`
|
||||
blobs (e.g. mrc.bin, refcode, VGA option roms) from a ChromeOS recovery
|
||||
image. `C`
|
||||
* __crossgcc__ - A cross toolchain builder for -elf toolchains (ie. no
|
||||
libc support) `Bash`
|
||||
* __docker__ - Dockerfiles for _coreboot-sdk_, _coreboot-jenkins-node_,
|
||||
@@ -88,7 +88,7 @@ firmware of many HP laptops with 8051-based SMSC KBC1098/KBC1126
|
||||
embedded controller and insert them to the firmware image. `C`
|
||||
* __kconfig__ - Build system `Make`
|
||||
* __lint__ - Source linter and linting rules `Shell`
|
||||
* __liveiso__ - A script and NixOS configuration files to create an ISO
|
||||
* __nixos__ - A script and NixOS configuration files to create an ISO
|
||||
image for testing purposes and for working on firmware. `Bash`
|
||||
* __mainboard__ - mainboard specific scripts
|
||||
* _google_ - Directory for google mainboard specific scripts
|
||||
@@ -138,6 +138,10 @@ for the files modified in a patch or for a file `Perl`
|
||||
license headers `Shell`
|
||||
* _parse-maintainers.pl_ - Script to alphabetize MAINTAINERS
|
||||
file `Perl`
|
||||
* _rm_unused_code_ - Remove all code not used for a platform
|
||||
from the local git repository for auditing or release `Bash`
|
||||
* _show_platforms.sh_ - Makes a list of platforms in the tree.
|
||||
Does not show variants. `Shell`
|
||||
* _ucode_h_to_bin.sh_ - Microcode conversion tool `Bash`
|
||||
* _update_submodules_ - Check all submodules for updates `Bash`
|
||||
* __showdevicetree__ - Compile and dump the device tree `C`
|
||||
@@ -162,9 +166,9 @@ the documentation `Bash`
|
||||
* __x86__ - Generates 32-bit PAE page tables based on a CSV input file.
|
||||
`Go`
|
||||
* __xcompile__ - Cross compile setup `Bash`
|
||||
|
||||
## In depth documentation
|
||||
|
||||
* [abuild](util/abuild/index.md)
|
||||
* [cbfstool](util/cbfstool/index.md)
|
||||
* [ifdtool](util/ifdtool/index.md)
|
||||
* [intelp2m](util/intelp2m/index.md)
|
||||
|
20
MAINTAINERS
20
MAINTAINERS
@@ -340,7 +340,7 @@ F: src/mainboard/gizmosphere/
|
||||
|
||||
GOOGLE REX MAINBOARDS
|
||||
M: Subrata Banik <subratabanik@google.com>
|
||||
M: Tarun Tuli <taruntuli@google.com>
|
||||
M: Tarun Tuli <tstuli@gmail.com>
|
||||
M: Kapil Porwal <kapilporwal@google.com>
|
||||
M: Jakub Czapiga <jacz@semihalf.com>
|
||||
M: Eran Mitrani <mitrani@google.com>
|
||||
@@ -348,12 +348,14 @@ S: Maintained
|
||||
F: src/mainboard/google/rex/
|
||||
|
||||
GOOGLE BRYA MAINBOARDS
|
||||
M: Tarun Tuli <taruntuli@google.com>
|
||||
M: Subrata Banik <subratabanik@google.com>
|
||||
M: Nick Vaccaro <nvaccaro@chromium.org>
|
||||
S: Maintained
|
||||
F: src/mainboard/google/brya/
|
||||
|
||||
GOOGLE HATCH MAINBOARDS
|
||||
M: Tarun Tuli <taruntuli@google.com>
|
||||
M: Subrata Banik <subratabanik@google.com>
|
||||
M: Nick Vaccaro <nvaccaro@chromium.org>
|
||||
S: Maintained
|
||||
F: src/mainboard/google/hatch/
|
||||
|
||||
@@ -866,7 +868,7 @@ F: src/soc/amd/stoneyridge/
|
||||
|
||||
INTEL METEORLAKE SOC
|
||||
M: Subrata Banik <subratabanik@google.com>
|
||||
M: Tarun Tuli <taruntuli@google.com>
|
||||
M: Tarun Tuli <tstuli@gmail.com>
|
||||
M: Kapil Porwal <kapilporwal@google.com>
|
||||
M: Jakub Czapiga <jacz@semihalf.com>
|
||||
M: Eran Mitrani <mitrani@google.com>
|
||||
@@ -875,7 +877,7 @@ F: src/soc/intel/meteorlake/
|
||||
|
||||
INTEL ALDERLAKE SOC
|
||||
M: Subrata Banik <subratabanik@google.com>
|
||||
M: Tarun Tuli <taruntuli@google.com>
|
||||
M: Nick Vaccaro <nvaccaro@chromium.org>
|
||||
S: Maintained
|
||||
F: src/soc/intel/alderlake/
|
||||
|
||||
@@ -910,7 +912,7 @@ F: src/soc/intel/elkhartlake/
|
||||
|
||||
INTEL TIGERLAKE SOC
|
||||
M: Subrata Banik <subratabanik@google.com>
|
||||
M: Tarun Tuli <taruntuli@google.com>
|
||||
M: Nick Vaccaro <nvaccaro@chromium.org>
|
||||
S: Maintained
|
||||
F: src/soc/intel/tigerlake/
|
||||
|
||||
@@ -966,6 +968,12 @@ M: Stefan Reinauer <stefan.reinauer@coreboot.org>
|
||||
M: Martin Roth <gaumless@gmail.com>
|
||||
F: payloads/external/
|
||||
|
||||
COREDOOM PAYLOAD INTEGRATION
|
||||
M: Nicholas Chin <nic.c3.14@gmail.com>
|
||||
W: https://github.com/nic3-14159/coreDOOM
|
||||
S: Maintained
|
||||
F: payloads/external/coreDOOM/
|
||||
|
||||
LINUXBOOT PAYLOAD INTEGRATION
|
||||
M: Christian Walter <christian.walter@9elements.com>
|
||||
M: Marcello Sylvester Bauer <info@marcellobauer.com>
|
||||
|
13
Makefile
13
Makefile
@@ -85,7 +85,7 @@ help_coreboot help::
|
||||
@echo ' clean - Remove coreboot build artifacts'
|
||||
@echo ' distclean - Remove build artifacts and config files'
|
||||
@echo ' sphinx - Build sphinx documentation for coreboot'
|
||||
@echo ' sphinx-lint - Build sphinx documenttion for coreboot with warnings as errors'
|
||||
@echo ' sphinx-lint - Build sphinx documentation for coreboot with warnings as errors'
|
||||
@echo ' filelist - Show files used in current build'
|
||||
@echo ' printall - print makefile info for debugging'
|
||||
@echo ' gitconfig - set up git to submit patches to coreboot'
|
||||
@@ -316,6 +316,11 @@ $(eval $(postinclude-hooks))
|
||||
# Eliminate duplicate mentions of source files in a class
|
||||
$(foreach class,$(classes),$(eval $(class)-srcs:=$(sort $($(class)-srcs))))
|
||||
|
||||
ifeq ($(CONFIG_IWYU),y)
|
||||
MAKEFLAGS += -k
|
||||
SAVE_IWYU_OUTPUT := 2>&1 | grep "should\|\#include\|---\|include-list\|^[[:blank:]]\?\'" | tee -a $$(obj)/iwyu.txt
|
||||
endif
|
||||
|
||||
# Build Kconfig .ads if necessary
|
||||
ifeq ($(CONFIG_ROMSTAGE_ADA),y)
|
||||
romstage-srcs += $(obj)/romstage/$(notdir $(KCONFIG_AUTOADS))
|
||||
@@ -382,7 +387,7 @@ $$(call src-to-obj,$1,$$(1).$2): $$(1).$2 $(KCONFIG_AUTOHEADER) $(4)
|
||||
@printf " CC $$$$(subst $$$$(obj)/,,$$$$(@))\n"
|
||||
$(CC_$(1)) \
|
||||
-MMD $$$$(CPPFLAGS_$(1)) $$$$(CFLAGS_$(1)) -MT $$$$(@) \
|
||||
$(3) -c -o $$$$@ $$$$<
|
||||
$(3) -c -o $$$$@ $$$$< $(SAVE_IWYU_OUTPUT)
|
||||
end$(EMPTY)if
|
||||
en$(EMPTY)def
|
||||
end$(EMPTY)if
|
||||
@@ -463,10 +468,10 @@ cscope:
|
||||
cscope -bR
|
||||
|
||||
sphinx:
|
||||
$(MAKE) -C Documentation -f Makefile.sphinx html
|
||||
$(MAKE) -C Documentation sphinx
|
||||
|
||||
sphinx-lint:
|
||||
$(MAKE) SPHINXOPTS=-W -C Documentation -f Makefile.sphinx html
|
||||
$(MAKE) SPHINXOPTS=-W -C Documentation sphinx
|
||||
|
||||
symlink:
|
||||
@echo "Creating Symbolic Links.."; \
|
||||
|
@@ -1,10 +0,0 @@
|
||||
CONFIG_COLLECT_TIMESTAMPS=y
|
||||
CONFIG_VENDOR_INTEL=y
|
||||
CONFIG_BOARD_INTEL_GALILEO=y
|
||||
# CONFIG_GALILEO_GEN2 is not set
|
||||
# CONFIG_FSP_DEBUG_ALL is not set
|
||||
# CONFIG_ENABLE_SD_TESTING is not set
|
||||
CONFIG_BOOTBLOCK_NORMAL=y
|
||||
CONFIG_ON_DEVICE_ROM_LOAD=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
CONFIG_CONSOLE_SERIAL_460800=y
|
@@ -1,9 +0,0 @@
|
||||
CONFIG_COLLECT_TIMESTAMPS=y
|
||||
CONFIG_VENDOR_INTEL=y
|
||||
CONFIG_BOARD_INTEL_GALILEO=y
|
||||
# CONFIG_FSP_DEBUG_ALL is not set
|
||||
# CONFIG_ENABLE_SD_TESTING is not set
|
||||
CONFIG_BOOTBLOCK_NORMAL=y
|
||||
CONFIG_ON_DEVICE_ROM_LOAD=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
CONFIG_CONSOLE_SERIAL_921600=y
|
@@ -1,13 +0,0 @@
|
||||
CONFIG_COLLECT_TIMESTAMPS=y
|
||||
CONFIG_VENDOR_INTEL=y
|
||||
CONFIG_BOARD_INTEL_GALILEO=y
|
||||
# CONFIG_FSP_DEBUG_ALL is not set
|
||||
CONFIG_DISPLAY_MTRRS=y
|
||||
CONFIG_DISPLAY_ESRAM_LAYOUT=y
|
||||
CONFIG_BOOTBLOCK_NORMAL=y
|
||||
CONFIG_ON_DEVICE_ROM_LOAD=y
|
||||
CONFIG_VERIFY_HOBS=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
CONFIG_BOOTBLOCK_CONSOLE=y
|
||||
CONFIG_POSTCAR_CONSOLE=y
|
||||
CONFIG_CONSOLE_SERIAL_921600=y
|
@@ -1,8 +0,0 @@
|
||||
CONFIG_COLLECT_TIMESTAMPS=y
|
||||
CONFIG_VENDOR_INTEL=y
|
||||
CONFIG_BOARD_INTEL_GALILEO=y
|
||||
# CONFIG_ENABLE_SD_TESTING is not set
|
||||
CONFIG_BOOTBLOCK_NORMAL=y
|
||||
CONFIG_ON_DEVICE_ROM_LOAD=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
CONFIG_CONSOLE_SERIAL_921600=y
|
@@ -1,18 +0,0 @@
|
||||
CONFIG_COLLECT_TIMESTAMPS=y
|
||||
CONFIG_VENDOR_INTEL=y
|
||||
CONFIG_BOARD_INTEL_GALILEO=y
|
||||
# CONFIG_FSP_DEBUG_ALL is not set
|
||||
CONFIG_BOOTBLOCK_NORMAL=y
|
||||
CONFIG_ON_DEVICE_ROM_LOAD=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
CONFIG_COMMONLIB_STORAGE_MMC=y
|
||||
CONFIG_STORAGE_ERASE=y
|
||||
CONFIG_STORAGE_EARLY_ERASE=y
|
||||
CONFIG_STORAGE_WRITE=y
|
||||
CONFIG_STORAGE_EARLY_WRITE=y
|
||||
CONFIG_SD_MMC_DEBUG=y
|
||||
CONFIG_SD_MMC_TRACE=y
|
||||
CONFIG_SDHC_TRACE=y
|
||||
CONFIG_BOOTBLOCK_CONSOLE=y
|
||||
CONFIG_POSTCAR_CONSOLE=y
|
||||
CONFIG_CONSOLE_SERIAL_921600=y
|
@@ -1,9 +0,0 @@
|
||||
CONFIG_VENDOR_INTEL=y
|
||||
CONFIG_BOARD_INTEL_GALILEO=y
|
||||
# CONFIG_FSP_DEBUG_ALL is not set
|
||||
CONFIG_VBOOT_WITH_CRYPTO_SHIELD=y
|
||||
# CONFIG_ENABLE_SD_TESTING is not set
|
||||
CONFIG_BOOTBLOCK_NORMAL=y
|
||||
CONFIG_ON_DEVICE_ROM_LOAD=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
CONFIG_CONSOLE_SERIAL_921600=y
|
@@ -1,15 +0,0 @@
|
||||
CONFIG_VENDOR_SCALEWAY=y
|
||||
CONFIG_BOARD_SCALEWAY_TAGADA=y
|
||||
CONFIG_CBFS_SIZE=0x400000
|
||||
CONFIG_CONSOLE_POST=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
# CONFIG_IQAT_ENABLE is not set
|
||||
CONFIG_LEGACY_UART_MODE=y
|
||||
CONFIG_USE_DENVERTON_NS_FSP_CAR=y
|
||||
CONFIG_SPI_FLASH_NO_FAST_READ=y
|
||||
CONFIG_PAYLOAD_ELF=y
|
||||
CONFIG_PAYLOAD_FILE="UEFIPAYLOAD.fd"
|
||||
CONFIG_DISPLAY_FSP_CALLS_AND_STATUS=y
|
||||
CONFIG_DISPLAY_FSP_HEADER=y
|
||||
CONFIG_DEBUG_CBFS=y
|
||||
CONFIG_DEBUG_BOOT_STATE=y
|
4
payloads/external/Makefile.inc
vendored
4
payloads/external/Makefile.inc
vendored
@@ -24,9 +24,9 @@ ifeq ($(CONFIG_PAYLOAD_LINUX)$(CONFIG_PAYLOAD_LINUXBOOT),y)
|
||||
ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_COMMAND_LINE))),)
|
||||
ADDITIONAL_PAYLOAD_CONFIG+=-C $(CONFIG_LINUX_COMMAND_LINE)
|
||||
endif
|
||||
ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD))),)
|
||||
ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS_PATH))),)
|
||||
ifneq ($(CONFIG_LINUXBOOT_ARM64),y)
|
||||
ADDITIONAL_PAYLOAD_CONFIG+=-I $(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS)$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX)
|
||||
ADDITIONAL_PAYLOAD_CONFIG+=-I $(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS_PATH)$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX)
|
||||
prebuilt-files += $(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS)))
|
||||
endif
|
||||
endif
|
||||
|
2
payloads/external/U-Boot/Kconfig.name
vendored
2
payloads/external/U-Boot/Kconfig.name
vendored
@@ -1,5 +1,5 @@
|
||||
config PAYLOAD_UBOOT
|
||||
bool "U-Boot (Experimental)"
|
||||
bool "U-Boot"
|
||||
depends on ARCH_X86
|
||||
help
|
||||
Select this option if you want to build a coreboot image
|
||||
|
2
payloads/external/U-Boot/Makefile
vendored
2
payloads/external/U-Boot/Makefile
vendored
@@ -5,7 +5,7 @@ TAG-$(CONFIG_UBOOT_STABLE)=$(STABLE_COMMIT_ID)
|
||||
|
||||
project_name=U-Boot
|
||||
project_dir=u-boot
|
||||
project_git_repo=http://git.denx.de/u-boot.git
|
||||
project_git_repo=http://github.com/u-boot/u-boot/
|
||||
project_build_dir=build
|
||||
project_config_file=$(project_build_dir)/.config
|
||||
|
||||
|
@@ -26,7 +26,9 @@
|
||||
## SUCH DAMAGE.
|
||||
##
|
||||
|
||||
ifneq ($(CONFIG_LP_COMPILER_LLVM_CLANG),y)
|
||||
CFLAGS += -mpreferred-stack-boundary=2
|
||||
endif
|
||||
|
||||
head.o-y += head.S
|
||||
libc-y += main.c sysinfo.c
|
||||
|
@@ -1326,7 +1326,7 @@ _nc_Synchronize_Options(FIELD *field, Field_Options newopts)
|
||||
field->opts = oldopts;
|
||||
returnCode(E_CURRENT);
|
||||
}
|
||||
if ((form->curpage == field->page))
|
||||
if (form->curpage == field->page)
|
||||
{
|
||||
if (changed_opts & O_VISIBLE)
|
||||
{
|
||||
|
59
payloads/libpayload/include/delay.h
Normal file
59
payloads/libpayload/include/delay.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause */
|
||||
|
||||
#ifndef LIBPAYLOAD_DELAY_H
|
||||
#define LIBPAYLOAD_DELAY_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define NSECS_PER_SEC 1000000000
|
||||
#define USECS_PER_SEC 1000000
|
||||
#define MSECS_PER_SEC 1000
|
||||
#define NSECS_PER_MSEC (NSECS_PER_SEC / MSECS_PER_SEC)
|
||||
#define NSECS_PER_USEC (NSECS_PER_SEC / USECS_PER_SEC)
|
||||
#define USECS_PER_MSEC (USECS_PER_SEC / MSECS_PER_SEC)
|
||||
|
||||
unsigned int get_cpu_speed(void);
|
||||
|
||||
void arch_ndelay(uint64_t n);
|
||||
|
||||
/**
|
||||
* Delay for a specified number of nanoseconds.
|
||||
*
|
||||
* @param ns Number of nanoseconds to delay for.
|
||||
*/
|
||||
static inline void ndelay(unsigned int ns)
|
||||
{
|
||||
arch_ndelay((uint64_t)ns);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delay for a specified number of microseconds.
|
||||
*
|
||||
* @param us Number of microseconds to delay for.
|
||||
*/
|
||||
static inline void udelay(unsigned int us)
|
||||
{
|
||||
arch_ndelay((uint64_t)us * NSECS_PER_USEC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delay for a specified number of milliseconds.
|
||||
*
|
||||
* @param ms Number of milliseconds to delay for.
|
||||
*/
|
||||
static inline void mdelay(unsigned int ms)
|
||||
{
|
||||
arch_ndelay((uint64_t)ms * NSECS_PER_MSEC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delay for a specified number of seconds.
|
||||
*
|
||||
* @param s Number of seconds to delay for.
|
||||
*/
|
||||
static inline void delay(unsigned int s)
|
||||
{
|
||||
arch_ndelay((uint64_t)s * NSECS_PER_SEC);
|
||||
}
|
||||
|
||||
#endif /* LIBPAYLOAD_DELAY_H */
|
@@ -68,6 +68,7 @@
|
||||
#include <sysinfo.h>
|
||||
#include <pci.h>
|
||||
#include <archive.h>
|
||||
#include <delay.h>
|
||||
|
||||
#define BIT(x) (1ul << (x))
|
||||
|
||||
@@ -510,53 +511,11 @@ void lib_sysinfo_get_memranges(struct memrange **ranges,
|
||||
|
||||
/* Timer functions. */
|
||||
/* Defined by each architecture. */
|
||||
unsigned int get_cpu_speed(void);
|
||||
uint64_t timer_hz(void);
|
||||
uint64_t timer_raw_value(void);
|
||||
uint64_t timer_us(uint64_t base);
|
||||
void arch_ndelay(uint64_t n);
|
||||
/* Generic. */
|
||||
|
||||
/**
|
||||
* Delay for a specified number of nanoseconds.
|
||||
*
|
||||
* @param ns Number of nanoseconds to delay for.
|
||||
*/
|
||||
static inline void ndelay(unsigned int ns)
|
||||
{
|
||||
arch_ndelay((uint64_t)ns);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delay for a specified number of microseconds.
|
||||
*
|
||||
* @param us Number of microseconds to delay for.
|
||||
*/
|
||||
static inline void udelay(unsigned int us)
|
||||
{
|
||||
arch_ndelay((uint64_t)us * NSECS_PER_USEC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delay for a specified number of milliseconds.
|
||||
*
|
||||
* @param ms Number of milliseconds to delay for.
|
||||
*/
|
||||
static inline void mdelay(unsigned int ms)
|
||||
{
|
||||
arch_ndelay((uint64_t)ms * NSECS_PER_MSEC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delay for a specified number of seconds.
|
||||
*
|
||||
* @param s Number of seconds to delay for.
|
||||
*/
|
||||
static inline void delay(unsigned int s)
|
||||
{
|
||||
arch_ndelay((uint64_t)s * NSECS_PER_SEC);
|
||||
}
|
||||
|
||||
/**
|
||||
* @defgroup readline Readline functions
|
||||
* This interface provides a simple implementation of the standard readline()
|
||||
|
@@ -26,11 +26,4 @@ typedef __SIZE_TYPE__ size_t;
|
||||
typedef __SIZE_TYPE__ ssize_t;
|
||||
#undef unsigned
|
||||
|
||||
#define NSECS_PER_SEC 1000000000
|
||||
#define USECS_PER_SEC 1000000
|
||||
#define MSECS_PER_SEC 1000
|
||||
#define NSECS_PER_MSEC (NSECS_PER_SEC / MSECS_PER_SEC)
|
||||
#define NSECS_PER_USEC (NSECS_PER_SEC / USECS_PER_SEC)
|
||||
#define USECS_PER_MSEC (USECS_PER_SEC / MSECS_PER_SEC)
|
||||
|
||||
#endif
|
||||
|
@@ -112,7 +112,7 @@ void init_dma_memory(void *start, u32 size)
|
||||
#endif
|
||||
}
|
||||
|
||||
int dma_initialized()
|
||||
int dma_initialized(void)
|
||||
{
|
||||
return dma != heap;
|
||||
}
|
||||
|
@@ -47,8 +47,15 @@ config CBFS_PREFIX
|
||||
Select the prefix to all files put into the image. It's "fallback"
|
||||
by default, "normal" is a common alternative.
|
||||
|
||||
config DEFAULT_COMPILER_LLVM_CLANG
|
||||
bool
|
||||
help
|
||||
Allows to override the default compiler. This can for instance be
|
||||
set in site-local/Kconfig.
|
||||
|
||||
choice
|
||||
prompt "Compiler to use"
|
||||
default COMPILER_LLVM_CLANG if DEFAULT_COMPILER_LLVM_CLANG
|
||||
default COMPILER_GCC
|
||||
help
|
||||
This option allows you to select the compiler used for building
|
||||
|
@@ -23,6 +23,7 @@
|
||||
#include <cpu/cpu.h>
|
||||
#include <device/mmio.h>
|
||||
#include <device/pci.h>
|
||||
#include <drivers/uart/pl011.h>
|
||||
#include <string.h>
|
||||
#include <types.h>
|
||||
#include <version.h>
|
||||
@@ -817,12 +818,48 @@ static void acpi_create_dbg2(acpi_dbg2_header_t *dbg2,
|
||||
header->checksum = acpi_checksum((uint8_t *)dbg2, header->length);
|
||||
}
|
||||
|
||||
static unsigned long acpi_write_dbg2_uart(acpi_rsdp_t *rsdp, unsigned long current,
|
||||
int space_id, uint64_t base, uint32_t size,
|
||||
int access_size, const char *name)
|
||||
{
|
||||
acpi_dbg2_header_t *dbg2 = (acpi_dbg2_header_t *)current;
|
||||
acpi_addr_t address;
|
||||
|
||||
memset(&address, 0, sizeof(address));
|
||||
|
||||
address.space_id = space_id;
|
||||
address.addrl = (uint32_t)base;
|
||||
address.addrh = (uint32_t)((base >> 32) & 0xffffffff);
|
||||
address.access_size = access_size;
|
||||
|
||||
int subtype;
|
||||
/* 16550-compatible with parameters defined in Generic Address Structure */
|
||||
if (CONFIG(DRIVERS_UART_8250IO) || CONFIG(DRIVERS_UART_8250MEM))
|
||||
subtype = ACPI_DBG2_PORT_SERIAL_16550;
|
||||
else if (CONFIG(DRIVERS_UART_PL011))
|
||||
subtype = ACPI_DBG2_PORT_SERIAL_ARM_PL011;
|
||||
else
|
||||
return current;
|
||||
|
||||
acpi_create_dbg2(dbg2,
|
||||
ACPI_DBG2_PORT_SERIAL,
|
||||
subtype,
|
||||
&address, size,
|
||||
name);
|
||||
|
||||
if (dbg2->header.length) {
|
||||
current += dbg2->header.length;
|
||||
current = acpi_align_current(current);
|
||||
acpi_add_table(rsdp, dbg2);
|
||||
}
|
||||
|
||||
return current;
|
||||
}
|
||||
|
||||
unsigned long acpi_write_dbg2_pci_uart(acpi_rsdp_t *rsdp, unsigned long current,
|
||||
const struct device *dev, uint8_t access_size)
|
||||
{
|
||||
acpi_dbg2_header_t *dbg2 = (acpi_dbg2_header_t *)current;
|
||||
struct resource *res;
|
||||
acpi_addr_t address;
|
||||
|
||||
if (!dev) {
|
||||
printk(BIOS_DEBUG, "%s: Device not found\n", __func__);
|
||||
@@ -839,33 +876,25 @@ unsigned long acpi_write_dbg2_pci_uart(acpi_rsdp_t *rsdp, unsigned long current,
|
||||
return current;
|
||||
}
|
||||
|
||||
memset(&address, 0, sizeof(address));
|
||||
int space_id;
|
||||
if (res->flags & IORESOURCE_IO)
|
||||
address.space_id = ACPI_ADDRESS_SPACE_IO;
|
||||
space_id = ACPI_ADDRESS_SPACE_IO;
|
||||
else if (res->flags & IORESOURCE_MEM)
|
||||
address.space_id = ACPI_ADDRESS_SPACE_MEMORY;
|
||||
space_id = ACPI_ADDRESS_SPACE_MEMORY;
|
||||
else {
|
||||
printk(BIOS_ERR, "%s: Unknown address space type\n", __func__);
|
||||
return current;
|
||||
}
|
||||
|
||||
address.addrl = (uint32_t)res->base;
|
||||
address.addrh = (uint32_t)((res->base >> 32) & 0xffffffff);
|
||||
address.access_size = access_size;
|
||||
return acpi_write_dbg2_uart(rsdp, current, space_id, res->base, res->size, access_size, acpi_device_path(dev));
|
||||
}
|
||||
|
||||
acpi_create_dbg2(dbg2,
|
||||
ACPI_DBG2_PORT_SERIAL,
|
||||
ACPI_DBG2_PORT_SERIAL_16550,
|
||||
&address, res->size,
|
||||
acpi_device_path(dev));
|
||||
|
||||
if (dbg2->header.length) {
|
||||
current += dbg2->header.length;
|
||||
current = acpi_align_current(current);
|
||||
acpi_add_table(rsdp, dbg2);
|
||||
}
|
||||
|
||||
return current;
|
||||
unsigned long acpi_pl011_write_dbg2_uart(acpi_rsdp_t *rsdp, unsigned long current,
|
||||
uint64_t base, const char *name)
|
||||
{
|
||||
return acpi_write_dbg2_uart(rsdp, current, ACPI_ADDRESS_SPACE_MEMORY, base,
|
||||
sizeof(struct pl011_uart), ACPI_ACCESS_SIZE_DWORD_ACCESS,
|
||||
name);
|
||||
}
|
||||
|
||||
static void acpi_create_facs(void *header)
|
||||
|
@@ -369,6 +369,13 @@ struct elog_event_extended_event {
|
||||
#define ELOG_FW_EARLY_SOL_CSE_SYNC 0x0
|
||||
#define ELOG_FW_EARLY_SOL_MRC 0x1
|
||||
|
||||
/* Platform Service Record(PSR) Events */
|
||||
#define ELOG_TYPE_PSR_DATA_BACKUP 0xb9
|
||||
#define ELOG_PSR_DATA_BACKUP_SUCCESS 0x0
|
||||
#define ELOG_PSR_DATA_BACKUP_FAILED 0x1
|
||||
|
||||
#define ELOG_TYPE_PSR_DATA_LOST 0xba
|
||||
|
||||
/* Only the 7-LSB are used for size */
|
||||
#define ELOG_MAX_EVENT_SIZE 0x7F
|
||||
|
||||
|
@@ -68,8 +68,7 @@ $(FSP_M_CBFS)-options := --xip $(TXTIBB)
|
||||
endif
|
||||
ifeq ($(CONFIG_FSP_COMPRESS_FSP_M_LZMA),y)
|
||||
$(FSP_M_CBFS)-compression := LZMA
|
||||
endif
|
||||
ifeq ($(CONFIG_FSP_COMPRESS_FSP_M_LZ4),y)
|
||||
else ifeq ($(CONFIG_FSP_COMPRESS_FSP_M_LZ4),y)
|
||||
$(FSP_M_CBFS)-compression := LZ4
|
||||
endif
|
||||
ifneq ($(CONFIG_FSP_ALIGNMENT_FSP_M),)
|
||||
@@ -81,8 +80,7 @@ $(FSP_S_CBFS)-file := $(call strip_quotes,$(CONFIG_FSP_S_FILE))
|
||||
$(FSP_S_CBFS)-type := fsp
|
||||
ifeq ($(CONFIG_FSP_COMPRESS_FSP_S_LZMA),y)
|
||||
$(FSP_S_CBFS)-compression := LZMA
|
||||
endif
|
||||
ifeq ($(CONFIG_FSP_COMPRESS_FSP_S_LZ4),y)
|
||||
else ifeq ($(CONFIG_FSP_COMPRESS_FSP_S_LZ4),y)
|
||||
$(FSP_S_CBFS)-compression := LZ4
|
||||
endif
|
||||
ifneq ($(CONFIG_FSP_ALIGNMENT_FSP_S),)
|
||||
|
@@ -74,7 +74,7 @@ union extended_fsp_revision {
|
||||
} rev;
|
||||
};
|
||||
|
||||
#if CONFIG_UDK_VERSION < CONFIG_UDK_2017_VERSION
|
||||
#if CONFIG_UDK_VERSION < 2017
|
||||
enum resource_type {
|
||||
EFI_RESOURCE_SYSTEM_MEMORY = 0,
|
||||
EFI_RESOURCE_MEMORY_MAPPED_IO = 1,
|
||||
|
@@ -54,7 +54,7 @@ config MRC_SAVE_HASH_IN_TPM
|
||||
|
||||
config MRC_CACHE_USING_MRC_VERSION
|
||||
bool
|
||||
default y if UDK_VERSION >= UDK_202302_VERSION
|
||||
default y if UDK_VERSION >= 202302
|
||||
default n
|
||||
help
|
||||
Use the MRC version info from FSP extended header to store the MRC cache data.
|
||||
|
@@ -854,7 +854,7 @@ typedef struct acpi_dbg2_header {
|
||||
acpi_header_t header;
|
||||
uint32_t devices_offset;
|
||||
uint32_t devices_count;
|
||||
} __attribute__((packed)) acpi_dbg2_header_t;
|
||||
} __packed acpi_dbg2_header_t;
|
||||
|
||||
/* DBG2: Microsoft Debug Port Table 2 device entry */
|
||||
typedef struct acpi_dbg2_device {
|
||||
@@ -870,7 +870,7 @@ typedef struct acpi_dbg2_device {
|
||||
uint8_t reserved[2];
|
||||
uint16_t base_address_offset;
|
||||
uint16_t address_size_offset;
|
||||
} __attribute__((packed)) acpi_dbg2_device_t;
|
||||
} __packed acpi_dbg2_device_t;
|
||||
|
||||
/* FADT (Fixed ACPI Description Table) */
|
||||
typedef struct acpi_fadt {
|
||||
@@ -1623,6 +1623,9 @@ void generate_cpu_entries(const struct device *device);
|
||||
|
||||
unsigned long acpi_write_dbg2_pci_uart(acpi_rsdp_t *rsdp, unsigned long current,
|
||||
const struct device *dev, uint8_t access_size);
|
||||
unsigned long acpi_pl011_write_dbg2_uart(acpi_rsdp_t *rsdp, unsigned long current,
|
||||
uint64_t base, const char *name);
|
||||
|
||||
void acpi_create_dmar(acpi_dmar_t *dmar, enum dmar_flags flags,
|
||||
unsigned long (*acpi_fill_dmar)(unsigned long));
|
||||
unsigned long acpi_create_dmar_drhd(unsigned long current, u8 flags,
|
||||
|
@@ -6,7 +6,7 @@
|
||||
#include <Base.h>
|
||||
#include <Uefi/UefiBaseType.h>
|
||||
|
||||
#if CONFIG_UDK_VERSION >= CONFIG_UDK_2017_VERSION
|
||||
#if CONFIG_UDK_VERSION >= 2017
|
||||
#include <Guid/StatusCodeDataTypeId.h>
|
||||
#include <IndustryStandard/Bmp.h>
|
||||
#include <Pi/PiPeiCis.h>
|
||||
|
@@ -427,11 +427,12 @@ bool memranges_steal(struct memranges *ranges, resource_t limit, resource_t size
|
||||
return false;
|
||||
|
||||
if (from_top) {
|
||||
limit = MIN(limit, r->end);
|
||||
/* Ensure we're within the range, even aligned down.
|
||||
Proof is simple: If ALIGN_UP(r->begin) would be
|
||||
higher, the stolen range wouldn't fit.*/
|
||||
assert(r->begin <= ALIGN_DOWN(range_entry_end(r) - size, POWER_OF_2(align)));
|
||||
*stolen_base = ALIGN_DOWN(range_entry_end(r) - size, POWER_OF_2(align));
|
||||
assert(r->begin <= ALIGN_DOWN(limit - size + 1, POWER_OF_2(align)));
|
||||
*stolen_base = ALIGN_DOWN(limit - size + 1, POWER_OF_2(align));
|
||||
} else {
|
||||
*stolen_base = ALIGN_UP(r->begin, POWER_OF_2(align));
|
||||
}
|
||||
|
@@ -255,6 +255,30 @@ chip soc/amd/phoenix
|
||||
device ref acp on end # Audio Processor (ACP)
|
||||
end
|
||||
device ref gpp_bridge_c on # Internal GPP Bridge 2 to Bus C
|
||||
device ref usb4_xhci_0 on
|
||||
chip drivers/usb/acpi
|
||||
device ref usb4_xhci_0_root_hub on
|
||||
chip drivers/usb/acpi
|
||||
device ref usb3_port0 on end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
device ref usb2_port0 on end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
device ref usb4_xhci_1 on
|
||||
chip drivers/usb/acpi
|
||||
device ref usb4_xhci_1_root_hub on
|
||||
chip drivers/usb/acpi
|
||||
device ref usb3_port1 on end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
device ref usb2_port1 on end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -80,6 +80,24 @@ config CHROMEOS
|
||||
# We don't have recovery buttons, so we can't manually enable devmode.
|
||||
select GBB_FLAG_FORCE_DEV_SWITCH_ON
|
||||
|
||||
choice
|
||||
prompt "DT SLOT/M.2 SSD1 ENABLE"
|
||||
default ENABLE_DT_SLOT_MAYAN
|
||||
help
|
||||
Either DT slot or M.2 SSD1 can be used to boot on Mayan,
|
||||
as they are sharing IO lanes.
|
||||
|
||||
config ENABLE_DT_SLOT_MAYAN
|
||||
bool "Enable DT slot"
|
||||
|
||||
config ENABLE_M2_SSD1_MAYAN
|
||||
bool "Enable M.2 SSD1"
|
||||
|
||||
config DISABLE_DT_M2_MAYAN
|
||||
bool "Disable both DT and M.2 slot"
|
||||
|
||||
endchoice
|
||||
|
||||
if !EM100 # EM100 defaults in soc/amd/common/blocks/spi/Kconfig
|
||||
config EFS_SPI_READ_MODE
|
||||
default 3 # Quad IO (1-1-4)
|
||||
|
@@ -17,6 +17,7 @@
|
||||
#define EC_GPIO_3_ADDR 0xA3
|
||||
#define EC_GPIO_EVAL_RST_AUX BIT(0)
|
||||
#define EC_GPIO_LOM_RESET_AUX BIT(1)
|
||||
#define EC_GPIO_DT_RESET_AUX BIT(2)
|
||||
|
||||
#define EC_GPIO_7_ADDR 0xA7
|
||||
#define EC_GPIO_DT_PWREN BIT(2)
|
||||
@@ -25,6 +26,9 @@
|
||||
#define EC_GPIO_8_ADDR 0xA8
|
||||
#define EC_GPIO_SMBUS0_EN BIT(0)
|
||||
|
||||
#define EC_GPIO_9_ADDR 0xA9
|
||||
#define EC_GPIO_M2SSD1_PWREN BIT(5)
|
||||
|
||||
#define EC_GPIO_A_ADDR 0xAA
|
||||
#define EC_GPIO_WWAN_PWREN BIT(3)
|
||||
#define EC_GPIO_M2_SSD0_PWREN BIT(6)
|
||||
@@ -34,6 +38,7 @@
|
||||
#define EC_GPIO_DT_N_WLAN_SW BIT(1)
|
||||
#define EC_GPIO_MP2_SEL BIT(2)
|
||||
#define EC_GPIO_WWAN_N_LOM_SW BIT(3)
|
||||
#define EC_GPIO_M2SSD1_HDD_SW BIT(6)
|
||||
|
||||
#define EC_SW02_ADDR 0xB7
|
||||
#define EC_SW02_MS BIT(7)
|
||||
@@ -42,8 +47,7 @@ static void configure_ec_gpio(void)
|
||||
{
|
||||
uint8_t tmp;
|
||||
|
||||
/* Enable MXM slot: set EC_GPIO_EVAL_PWREN, EC_GPIO_EVAL_SLOT_PWR
|
||||
and EC_GPIO_EVAL_RST_AUX */
|
||||
/* Enable MXM slot */
|
||||
tmp = ec_read(EC_GPIO_1_ADDR);
|
||||
tmp |= EC_GPIO_EVAL_PWREN;
|
||||
ec_write(EC_GPIO_1_ADDR, tmp);
|
||||
@@ -54,22 +58,51 @@ static void configure_ec_gpio(void)
|
||||
|
||||
tmp = ec_read(EC_GPIO_3_ADDR);
|
||||
tmp |= EC_GPIO_LOM_RESET_AUX | EC_GPIO_EVAL_RST_AUX;
|
||||
tmp |= EC_GPIO_LOM_RESET_AUX;
|
||||
/* Enable DT slot */
|
||||
if (CONFIG(ENABLE_DT_SLOT_MAYAN))
|
||||
tmp |= EC_GPIO_DT_RESET_AUX;
|
||||
else
|
||||
tmp &= (~EC_GPIO_DT_RESET_AUX);
|
||||
|
||||
ec_write(EC_GPIO_3_ADDR, tmp);
|
||||
|
||||
tmp = ec_read(EC_GPIO_7_ADDR);
|
||||
tmp |= EC_GPIO_WWAN_MODULE_RST | EC_GPIO_DT_PWREN;
|
||||
tmp |= EC_GPIO_WWAN_MODULE_RST;
|
||||
if (CONFIG(ENABLE_DT_SLOT_MAYAN))
|
||||
tmp |= EC_GPIO_DT_PWREN;
|
||||
else
|
||||
tmp &= (~EC_GPIO_DT_PWREN);
|
||||
|
||||
ec_write(EC_GPIO_7_ADDR, tmp);
|
||||
|
||||
tmp = ec_read(EC_GPIO_8_ADDR);
|
||||
tmp |= EC_GPIO_SMBUS0_EN;
|
||||
ec_write(EC_GPIO_8_ADDR, tmp);
|
||||
|
||||
tmp = ec_read(EC_GPIO_9_ADDR);
|
||||
/* Enable M2 SSD1 slot */
|
||||
if (CONFIG(ENABLE_M2_SSD1_MAYAN))
|
||||
tmp |= EC_GPIO_M2SSD1_PWREN;
|
||||
else
|
||||
tmp &= (~EC_GPIO_M2SSD1_PWREN);
|
||||
|
||||
ec_write(EC_GPIO_9_ADDR, tmp);
|
||||
|
||||
tmp = ec_read(EC_GPIO_A_ADDR);
|
||||
tmp |= EC_GPIO_M2_SSD0_PWREN | EC_GPIO_LOM_PWREN | EC_GPIO_WWAN_PWREN;
|
||||
ec_write(EC_GPIO_A_ADDR, tmp);
|
||||
|
||||
tmp = ec_read(EC_GPIO_C_ADDR);
|
||||
tmp |= EC_GPIO_WWAN_N_LOM_SW | EC_GPIO_MP2_SEL | EC_GPIO_DT_N_WLAN_SW;
|
||||
if (CONFIG(ENABLE_DT_SLOT_MAYAN)) {
|
||||
tmp |= EC_GPIO_M2SSD1_HDD_SW;
|
||||
tmp &= (~EC_GPIO_DT_N_WLAN_SW);
|
||||
}
|
||||
if (CONFIG(ENABLE_M2_SSD1_MAYAN)) {
|
||||
tmp |= EC_GPIO_DT_N_WLAN_SW;
|
||||
tmp &= (~EC_GPIO_M2SSD1_HDD_SW);
|
||||
}
|
||||
ec_write(EC_GPIO_C_ADDR, tmp);
|
||||
|
||||
tmp = ec_read(EC_SW02_ADDR);
|
||||
|
@@ -71,7 +71,7 @@ static const fsp_dxio_descriptor mayan_dxio_descriptors[] = {
|
||||
{
|
||||
// DT
|
||||
.engine_type = PCIE_ENGINE,
|
||||
.port_present = true,
|
||||
.port_present = !CONFIG(DISABLE_DT_M2_MAYAN),
|
||||
.start_lane = 8,
|
||||
.end_lane = 9,
|
||||
.device_number = 1,
|
||||
@@ -157,7 +157,6 @@ void mainboard_get_dxio_ddi_descriptors(
|
||||
const fsp_ddi_descriptor **ddi_descs, size_t *ddi_num)
|
||||
{
|
||||
mayan_ddi_descriptors[1].connector_type = get_ddi1_type();
|
||||
|
||||
*dxio_descs = mayan_dxio_descriptors;
|
||||
*dxio_num = ARRAY_SIZE(mayan_dxio_descriptors);
|
||||
*ddi_descs = mayan_ddi_descriptors;
|
||||
|
@@ -249,6 +249,8 @@ config MAINBOARD_PART_NUMBER
|
||||
default "Gothrax" if BOARD_GOOGLE_GOTHRAX
|
||||
default "Craaskov" if BOARD_GOOGLE_CRAASKOV
|
||||
default "Pirrha" if BOARD_GOOGLE_PIRRHA
|
||||
default "Quandiso" if BOARD_GOOGLE_QUANDISO
|
||||
default "Nokris" if BOARD_GOOGLE_NOKRIS
|
||||
|
||||
config VARIANT_DIR
|
||||
default "brya0" if BOARD_GOOGLE_BRYA0
|
||||
@@ -299,6 +301,8 @@ config VARIANT_DIR
|
||||
default "gothrax" if BOARD_GOOGLE_GOTHRAX
|
||||
default "craaskov" if BOARD_GOOGLE_CRAASKOV
|
||||
default "pirrha" if BOARD_GOOGLE_PIRRHA
|
||||
default "quandiso" if BOARD_GOOGLE_QUANDISO
|
||||
default "nokris" if BOARD_GOOGLE_NOKRIS
|
||||
|
||||
config VBOOT
|
||||
select VBOOT_EARLY_EC_SYNC if !BOARD_GOOGLE_BASEBOARD_NISSA
|
||||
|
@@ -425,3 +425,11 @@ config BOARD_GOOGLE_ZYDRON
|
||||
select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
|
||||
select SOC_INTEL_COMMON_BLOCK_IPU
|
||||
select SOC_INTEL_RAPTORLAKE
|
||||
|
||||
config BOARD_GOOGLE_QUANDISO
|
||||
bool "-> Quandiso"
|
||||
select BOARD_GOOGLE_BASEBOARD_NISSA
|
||||
|
||||
config BOARD_GOOGLE_NOKRIS
|
||||
bool "-> Nokris"
|
||||
select BOARD_GOOGLE_BASEBOARD_NISSA
|
||||
|
@@ -94,6 +94,32 @@ chip soc/intel/alderlake
|
||||
}"
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) for port C1
|
||||
register "device[3].name" = ""DD03""
|
||||
register "device[3].use_pld" = "true"
|
||||
register "device[3].pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP2 (DP-3) for port C2
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(3, 1))"
|
||||
# TCP3 (DP-4) for port C3
|
||||
register "device[5].name" = ""DD05""
|
||||
register "device[5].use_pld" = "true"
|
||||
register "device[5].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(4, 1))"
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
#include <baseboard/variants.h>
|
||||
#include <intelblocks/early_graphics.h>
|
||||
#include <types.h>
|
||||
#include <soc/gpio.h>
|
||||
#include <vendorcode/google/chromeos/chromeos.h>
|
||||
@@ -403,6 +404,33 @@ static const struct pad_config romstage_gpio_table[] = {
|
||||
PAD_CFG_GPO(GPP_B4, 1, DEEP),
|
||||
};
|
||||
|
||||
const struct pad_config early_graphics_gpio_table[] = {
|
||||
/* A18 : DDSP_HPDB ==> HDMI_HPD */
|
||||
PAD_CFG_NF(GPP_A18, NONE, DEEP, NF1),
|
||||
/* D1 : ISH_GP1 ==> HDMI_IN_PLUGIN */
|
||||
PAD_CFG_GPO_LOCK(GPP_D1, 1, LOCK_CONFIG),
|
||||
/* D11 : ISH_SPI_MISO ==> HDMIA_CTRLCLK */
|
||||
PAD_CFG_NF_LOCK(GPP_D11, NONE, NF2, LOCK_CONFIG),
|
||||
/* D12 : ISH_SPI_MOSI ==> HDMIA_CTRLDATA */
|
||||
PAD_CFG_NF_LOCK(GPP_D12, NONE, NF2, LOCK_CONFIG),
|
||||
/* E14 : DDSP_HPDA ==> HDMIA_HPD */
|
||||
PAD_CFG_NF(GPP_E14, NONE, DEEP, NF1),
|
||||
/* E20 : DDP2_CTRLCLK ==> HDMIA_CTRLCLK */
|
||||
PAD_CFG_NF(GPP_E20, NONE, DEEP, NF1),
|
||||
/* E21 : DDP2_CTRLDATA ==> HDMIA_CTRLDATA_STRAP */
|
||||
PAD_CFG_NF(GPP_E21, NONE, DEEP, NF1),
|
||||
/* H15 : DDPB_CTRLCLK ==> DDIB_HDMI_CTRLCLK */
|
||||
PAD_CFG_NF(GPP_H15, NONE, DEEP, NF1),
|
||||
/* H17 : DDPB_CTRLDATA ==> DDIB_HDMI_CTRLDATA */
|
||||
PAD_CFG_NF(GPP_H17, NONE, DEEP, NF1),
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_graphics_gpio_table(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(early_graphics_gpio_table);
|
||||
return early_graphics_gpio_table;
|
||||
}
|
||||
|
||||
const struct pad_config *__weak variant_gpio_table(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(gpio_table);
|
||||
|
@@ -1,3 +1,10 @@
|
||||
fw_config
|
||||
field WIFI_SAR_ID 30 31
|
||||
option ID_0 0
|
||||
option UNUSED 3
|
||||
end
|
||||
end
|
||||
|
||||
chip soc/intel/alderlake
|
||||
register "domain_vr_config[VR_DOMAIN_IA]" = "{
|
||||
.enable_fast_vmode = 1,
|
||||
|
@@ -1,8 +1,13 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <console/console.h>
|
||||
#include <fw_config.h>
|
||||
#include <sar.h>
|
||||
|
||||
const char *get_wifi_sar_cbfs_filename(void)
|
||||
{
|
||||
if (fw_config_probe(FW_CONFIG(WIFI_SAR_ID, ID_0))) {
|
||||
return "wifi_sar_0.hex";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@@ -107,6 +107,28 @@ chip soc/intel/alderlake
|
||||
register "tcc_offset" = "1" # TCC of 99C
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C2
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -93,6 +93,28 @@ chip soc/intel/alderlake
|
||||
}"
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP0
|
||||
register "device[2].name" = ""DD02""
|
||||
# TCP1 (DP-2) for port C1
|
||||
register "device[3].name" = ""DD03""
|
||||
register "device[3].use_pld" = "true"
|
||||
register "device[3].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP2 (DP-3) for port C2
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -74,6 +74,28 @@ chip soc/intel/alderlake
|
||||
},
|
||||
}"
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C1
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -39,6 +39,28 @@ chip soc/intel/alderlake
|
||||
register "usb2_ports[8]" = "USB2_PORT_EMPTY" # Type-A DB Port
|
||||
register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC_SKIP)" # USB3/2 Type A MLB port
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C1
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -1,4 +1,8 @@
|
||||
fw_config
|
||||
field DB_USB 0 1
|
||||
option DB_ABSENT 0
|
||||
option DB_1C 1
|
||||
end
|
||||
field THERMAL 2 2
|
||||
option THERMAL_FANLESS 0
|
||||
option THERMAL_FAN 1
|
||||
@@ -340,7 +344,9 @@ chip soc/intel/alderlake
|
||||
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
|
||||
register "use_custom_pld" = "true"
|
||||
register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
device ref tcss_usb3_port2 on end
|
||||
device ref tcss_usb3_port2 on
|
||||
probe DB_USB DB_1C
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -360,7 +366,9 @@ chip soc/intel/alderlake
|
||||
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
|
||||
register "use_custom_pld" = "true"
|
||||
register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
device ref usb2_port2 on end
|
||||
device ref usb2_port2 on
|
||||
probe DB_USB DB_1C
|
||||
end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
register "desc" = ""USB2 Type-A Port A0 (MLB)""
|
||||
|
@@ -96,6 +96,28 @@ chip soc/intel/alderlake
|
||||
}"
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C1
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -198,13 +198,14 @@ chip soc/intel/alderlake
|
||||
chip drivers/net
|
||||
register "wake" = "GPE0_DW0_07"
|
||||
register "led_feature" = "0xe0"
|
||||
register "customized_leds" = "0x05af"
|
||||
register "customized_led0" = "0x23f"
|
||||
register "customized_led2" = "0x028"
|
||||
register "enable_aspm_l1_2" = "1"
|
||||
register "add_acpi_dma_property" = "true"
|
||||
device pci 00.0 on end
|
||||
end
|
||||
end # RTL8125 Ethernet NIC
|
||||
end # RTL8125 and RTL8111K Ethernet NIC
|
||||
device ref pcie_rp8 on
|
||||
chip soc/intel/common/block/pcie/rtd3
|
||||
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_H13)"
|
||||
|
@@ -131,6 +131,28 @@ chip soc/intel/alderlake
|
||||
register "tcc_offset" = "5" # TCC of 100
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C1
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -91,6 +91,28 @@ chip soc/intel/alderlake
|
||||
}"
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP0
|
||||
register "device[2].name" = ""DD02""
|
||||
# TCP1 (DP-2) for port C1
|
||||
register "device[3].name" = ""DD03""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP2 (DP-3) for port C2
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#ifndef __VARIANT_EC_H__
|
||||
#define __VARIANT_EC_H__
|
||||
|
||||
#include <baseboard/ec.h>
|
||||
|
||||
#endif
|
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#ifndef VARIANT_GPIO_H
|
||||
#define VARIANT_GPIO_H
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
|
||||
#endif
|
@@ -0,0 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# This is an auto-generated file. Do not edit!!
|
||||
# Add memory parts in mem_parts_used.txt and run spd_tools to regenerate.
|
||||
|
||||
SPD_SOURCES = placeholder
|
@@ -0,0 +1 @@
|
||||
DRAM Part Name ID to assign
|
@@ -0,0 +1,11 @@
|
||||
# This is a CSV file containing a list of memory parts used by this variant.
|
||||
# One part per line with an optional fixed ID in column 2.
|
||||
# Only include a fixed ID if it is required for legacy reasons!
|
||||
# Generated IDs are dependent on the order of parts in this file,
|
||||
# so new parts must always be added at the end of the file!
|
||||
#
|
||||
# Generate an updated Makefile.inc and dram_id.generated.txt by running the
|
||||
# part_id_gen tool from util/spd_tools.
|
||||
# See util/spd_tools/README.md for more details and instructions.
|
||||
|
||||
# Part Name
|
@@ -0,0 +1,6 @@
|
||||
chip soc/intel/alderlake
|
||||
|
||||
device domain 0 on
|
||||
end
|
||||
|
||||
end
|
@@ -122,6 +122,28 @@ chip soc/intel/alderlake
|
||||
register "tcc_offset" = "8"
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C1
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -64,6 +64,28 @@ chip soc/intel/alderlake
|
||||
}"
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C1
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -82,6 +82,28 @@ chip soc/intel/alderlake
|
||||
register "usb2_ports[5]" = "USB2_PORT_MID(OC_SKIP)"
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(LEFT, CENTER, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C2
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -72,6 +72,28 @@ chip soc/intel/alderlake
|
||||
register "usb2_ports[5]" = "USB2_PORT_MID(OC_SKIP)"
|
||||
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(LEFT, CENTER, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C2
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#ifndef __VARIANT_EC_H__
|
||||
#define __VARIANT_EC_H__
|
||||
|
||||
#include <baseboard/ec.h>
|
||||
|
||||
#endif
|
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#ifndef VARIANT_GPIO_H
|
||||
#define VARIANT_GPIO_H
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
|
||||
#endif
|
@@ -0,0 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# This is an auto-generated file. Do not edit!!
|
||||
# Add memory parts in mem_parts_used.txt and run spd_tools to regenerate.
|
||||
|
||||
SPD_SOURCES = placeholder
|
@@ -0,0 +1 @@
|
||||
DRAM Part Name ID to assign
|
@@ -0,0 +1,11 @@
|
||||
# This is a CSV file containing a list of memory parts used by this variant.
|
||||
# One part per line with an optional fixed ID in column 2.
|
||||
# Only include a fixed ID if it is required for legacy reasons!
|
||||
# Generated IDs are dependent on the order of parts in this file,
|
||||
# so new parts must always be added at the end of the file!
|
||||
#
|
||||
# Generate an updated Makefile.inc and dram_id.generated.txt by running the
|
||||
# part_id_gen tool from util/spd_tools.
|
||||
# See util/spd_tools/README.md for more details and instructions.
|
||||
|
||||
# Part Name
|
@@ -0,0 +1,6 @@
|
||||
chip soc/intel/alderlake
|
||||
|
||||
device domain 0 on
|
||||
end
|
||||
|
||||
end
|
@@ -137,6 +137,25 @@ chip soc/intel/alderlake
|
||||
[PchSerialIoIndexI2C5] = PchSerialIoPci,
|
||||
}"
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "3"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[1].name" = ""DD01""
|
||||
register "device[1].use_pld" = "true"
|
||||
register "device[1].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 is unused and not enumerated in the kernel, so no GFX device is added for TCP1
|
||||
# TCP2 (DP-2) for port C1
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 is unused and not enumerated in the kernel, so no GFX device is added for TCP3
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -118,6 +118,25 @@ chip soc/intel/alderlake
|
||||
[PchSerialIoIndexI2C5] = PchSerialIoPci,
|
||||
}"
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "3"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[1].name" = ""DD01""
|
||||
register "device[1].use_pld" = "true"
|
||||
register "device[1].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 is unused and not enumerated in the kernel, so no GFX device is added for TCP1
|
||||
# TCP2 (DP-2) for port C1
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 is unused and not enumerated in the kernel, so no GFX device is added for TCP3
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -114,6 +114,25 @@ chip soc/intel/alderlake
|
||||
[PchSerialIoIndexI2C5] = PchSerialIoPci,
|
||||
}"
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "3"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[1].name" = ""DD01""
|
||||
register "device[1].use_pld" = "true"
|
||||
register "device[1].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 is unused and not enumerated in the kernel, so no GFX device is added for TCP1
|
||||
# TCP2 (DP-2) for port C1
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 is unused and not enumerated in the kernel, so no GFX device is added for TCP3
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -95,9 +95,26 @@ chip soc/intel/alderlake
|
||||
device domain 0 on
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "1"
|
||||
register "device_count" = "5"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[1].name" = ""DD01""
|
||||
register "device[1].use_pld" = "true"
|
||||
register "device[1].pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) for port C1
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP2 (DP-3) for port C2
|
||||
register "device[3].name" = ""DD03""
|
||||
register "device[3].use_pld" = "true"
|
||||
register "device[3].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(3, 1))"
|
||||
# TCP3 (DP-4) for port C3
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(4, 1))"
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
|
@@ -88,6 +88,28 @@ chip soc/intel/alderlake
|
||||
device ref tbt_pcie_rp2 off end
|
||||
device ref tcss_dma0 off end
|
||||
device ref tcss_dma1 off end
|
||||
device ref igpu on
|
||||
chip drivers/gfx/generic
|
||||
register "device_count" = "6"
|
||||
# DDIA for eDP
|
||||
register "device[0].name" = ""LCD""
|
||||
# DDIB for HDMI
|
||||
register "device[1].name" = ""DD01""
|
||||
# TCP0 (DP-1) for port C0
|
||||
register "device[2].name" = ""DD02""
|
||||
register "device[2].use_pld" = "true"
|
||||
register "device[2].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
|
||||
# TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
|
||||
register "device[3].name" = ""DD03""
|
||||
# TCP2 (DP-3) for port C1
|
||||
register "device[4].name" = ""DD04""
|
||||
register "device[4].use_pld" = "true"
|
||||
register "device[4].pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
|
||||
# TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
|
||||
register "device[5].name" = ""DD05""
|
||||
device generic 0 on end
|
||||
end
|
||||
end # Integrated Graphics Device
|
||||
device ref dtt on
|
||||
chip drivers/intel/dptf
|
||||
## sensor information
|
||||
|
@@ -61,6 +61,11 @@ static const struct pad_config sd_disable_pads[] = {
|
||||
PAD_NC_LOCK(GPP_H13, NONE, LOCK_CONFIG),
|
||||
};
|
||||
|
||||
static const struct pad_config disable_wifi_pch_susclk[] = {
|
||||
/* GPD8 ==> NC */
|
||||
PAD_NC(GPD8, NONE),
|
||||
};
|
||||
|
||||
void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
|
||||
{
|
||||
if (fw_config_is_provisioned() && !fw_config_probe(FW_CONFIG(STORAGE, STORAGE_EMMC))) {
|
||||
@@ -83,4 +88,10 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
|
||||
gpio_padbased_override(padbased_table, sd_disable_pads,
|
||||
ARRAY_SIZE(sd_disable_pads));
|
||||
}
|
||||
/* SAR_ID_3 for MT7922 */
|
||||
if (fw_config_probe(FW_CONFIG(WIFI_SAR_ID, SAR_ID_3))) {
|
||||
printk(BIOS_INFO, "Disable PCH SUSCLK.\n");
|
||||
gpio_padbased_override(padbased_table, disable_wifi_pch_susclk,
|
||||
ARRAY_SIZE(disable_wifi_pch_susclk));
|
||||
}
|
||||
}
|
||||
|
@@ -1,12 +1,15 @@
|
||||
fw_config
|
||||
field DB_USB 0 1
|
||||
option DB_NONE 0
|
||||
option DB_1A 0
|
||||
option DB_1C_1A 1
|
||||
option DB_1C 2
|
||||
option DB_1C_LTE 3
|
||||
end
|
||||
field WIFI_SAR_ID 2 3
|
||||
option SAR_ID_0 0
|
||||
option SAR_ID_1 1
|
||||
option SAR_ID_2 2
|
||||
option SAR_ID_3 3
|
||||
end
|
||||
field STYLUS 9
|
||||
option STYLUS_ABSENT 0
|
||||
|
@@ -208,6 +208,7 @@ config BOARD_GOOGLE_TARANZA
|
||||
select RT8168_GEN_ACPI_POWER_RESOURCE
|
||||
select RT8168_GET_MAC_FROM_VPD
|
||||
select RT8168_SET_LED_MODE
|
||||
select GEO_SAR_ENABLE if CHROMEOS_WIFI_SAR
|
||||
|
||||
config BOARD_GOOGLE_BOXY
|
||||
bool "-> Boxy"
|
||||
|
@@ -222,7 +222,7 @@ chip soc/intel/jasperlake
|
||||
end # I2C 4
|
||||
device pci 1c.2 on
|
||||
chip drivers/net
|
||||
register "customized_leds" = "0x05af"
|
||||
register "customized_leds" = "0x07af"
|
||||
register "wake" = "GPE0_DW0_03" # GPP_B3
|
||||
register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D4)"
|
||||
register "device_index" = "0"
|
||||
|
@@ -51,12 +51,22 @@ chip soc/intel/jasperlake
|
||||
}"
|
||||
|
||||
# USB Port Configuration
|
||||
register "usb2_ports[0]" = "{
|
||||
.enable = 1,
|
||||
.ocpin = OC_SKIP,
|
||||
.tx_bias = USB2_BIAS_0MV,
|
||||
.tx_emp_enable = USB2_DE_EMP_ON_PRE_EMP_ON,
|
||||
.pre_emp_bias = USB2_BIAS_28P15MV,
|
||||
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
|
||||
}" # Type-C Port C0
|
||||
register "usb2_ports[2]" = "{
|
||||
.enable = 1,
|
||||
.ocpin = OC_SKIP,
|
||||
.tx_bias = USB2_BIAS_0MV,
|
||||
.tx_emp_enable = USB2_DE_EMP_ON_PRE_EMP_ON,
|
||||
.pre_emp_bias = USB2_BIAS_28P15MV,
|
||||
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
|
||||
}" # Type-A
|
||||
}" # Type-A Port A0
|
||||
register "usb2_ports[5]" = "USB2_PORT_MID(OC_SKIP)" # Camera
|
||||
register "usb2_ports[7]" = "{
|
||||
.enable = 1,
|
||||
|
@@ -1,3 +1,5 @@
|
||||
## SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
ramstage-y += gpio.c
|
||||
|
||||
ramstage-y += variant.c
|
||||
|
8
src/mainboard/google/dedede/variants/taranza/variant.c
Normal file
8
src/mainboard/google/dedede/variants/taranza/variant.c
Normal file
@@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include <sar.h>
|
||||
|
||||
const char *get_wifi_sar_cbfs_filename(void)
|
||||
{
|
||||
return "wifi_sar-taranza.hex";
|
||||
}
|
@@ -48,6 +48,7 @@ config BOARD_GOOGLE_BASEBOARD_REX
|
||||
config BOARD_GOOGLE_MODEL_REX
|
||||
def_bool n
|
||||
select BOARD_GOOGLE_BASEBOARD_REX
|
||||
select CHROMEOS_WIFI_SAR if CHROMEOS
|
||||
select DRIVERS_GENERIC_MAX98357A
|
||||
select DRIVERS_GENESYSLOGIC_GL9755
|
||||
select DRIVERS_INTEL_ISH
|
||||
|
@@ -28,10 +28,10 @@ static const struct pad_config gpio_table[] = {
|
||||
PAD_CFG_GPO(GPP_A12, 0, DEEP),
|
||||
/* GPP_A13 : Not connected */
|
||||
PAD_NC(GPP_A13, NONE),
|
||||
/* GPP_A14 : [] ==> WWAN_RF_DISABLE_ODL */
|
||||
PAD_NC_LOCK(GPP_A14, NONE, LOCK_CONFIG),
|
||||
/* GPP_A15 : [] ==> WWAN_RST_L */
|
||||
PAD_CFG_GPO(GPP_A15, 1, DEEP),
|
||||
/* GPP_A14 : NC pad. */
|
||||
PAD_NC(GPP_A14, NONE),
|
||||
/* GPP_A15 : NC pad. */
|
||||
PAD_NC(GPP_A15, NONE),
|
||||
/* GPP_A16 : GPP_A16 ==> ESPI_SOC_ALERT_L */
|
||||
PAD_CFG_NF_IOSSTATE(GPP_A16, UP_20K, DEEP, NF1, IGNORE),
|
||||
/* GPP_A17 : [] ==> EC_SOC_INT_ODL */
|
||||
@@ -43,8 +43,8 @@ static const struct pad_config gpio_table[] = {
|
||||
PAD_CFG_GPO(GPP_A19, 1, DEEP),
|
||||
/* GPP_A20 : [] ==> SSD_PERST_L */
|
||||
PAD_CFG_GPO_LOCK(GPP_A20, 1, LOCK_CONFIG),
|
||||
/* GPP_A21 : [] ==> WWAN_CONFIG2 */
|
||||
PAD_CFG_GPI(GPP_A21, NONE, DEEP),
|
||||
/* GPP_A21 : [] ==> PMCALERT */
|
||||
PAD_NC(GPP_A21, NONE),
|
||||
|
||||
/* GPP_B00 : [] ==> TCHPAD_INT_ODL_LS */
|
||||
PAD_CFG_GPI_IRQ_WAKE_LOCK(GPP_B00, NONE, LEVEL, INVERT, LOCK_CONFIG),
|
||||
@@ -80,8 +80,8 @@ static const struct pad_config gpio_table[] = {
|
||||
PAD_CFG_NF_LOCK(GPP_B15, NONE, NF1, LOCK_CONFIG),
|
||||
/* GPP_B16 : [] ==> SOC_HDMI_HPD_L */
|
||||
PAD_CFG_NF(GPP_B16, NONE, DEEP, NF2),
|
||||
/* GPP_B17 : [] ==> EN_WWAN_PWR */
|
||||
PAD_CFG_GPO(GPP_B17, 1, DEEP),
|
||||
/* GPP_B17 : NC pad. */
|
||||
PAD_NC(GPP_B17, NONE),
|
||||
/* GPP_B18 : [] ==> SOC_I2C_TPM_SDA */
|
||||
PAD_CFG_NF_LOCK(GPP_B18, NONE, NF2, LOCK_CONFIG),
|
||||
/* GPP_B19 : [] ==> SOC_I2C_TPM_SCL */
|
||||
@@ -92,8 +92,8 @@ static const struct pad_config gpio_table[] = {
|
||||
PAD_CFG_NF_LOCK(GPP_B21, NONE, NF2, LOCK_CONFIG),
|
||||
/* GPP_B22 : [] ==> USB4_RT_FORCE_PWR */
|
||||
PAD_CFG_GPO(GPP_B22, 0, DEEP),
|
||||
/* GPP_B23 : [] ==> WWAN_CONFIG0 */
|
||||
PAD_CFG_GPI_LOCK(GPP_B23, NONE, LOCK_CONFIG),
|
||||
/* GPP_B23 : NC pad. */
|
||||
PAD_NC(GPP_B23, NONE),
|
||||
|
||||
/* GPP_C00 : [] ==> EN_TCHSCR_PWR */
|
||||
PAD_CFG_GPO(GPP_C00, 0, DEEP),
|
||||
@@ -106,9 +106,11 @@ static const struct pad_config gpio_table[] = {
|
||||
/* GPP_C04 : net NC. */
|
||||
PAD_NC(GPP_C04, NONE),
|
||||
/* GPP_C05 : [] ==> WWAN_PERST_L_STRAP */
|
||||
PAD_CFG_GPO(GPP_C05, 1, PLTRST),
|
||||
PAD_NC(GPP_C05, NONE),
|
||||
/* GPP_C06 : [] ==> SOC_TCHSCR_RPT_EN */
|
||||
PAD_CFG_GPO(GPP_C06, 0, DEEP),
|
||||
/* GPP_C07 : [] ==> SOC_TCHSCR_INT */
|
||||
PAD_CFG_GPI_APIC(GPP_C07, NONE, PLTRST, LEVEL, NONE),
|
||||
/* GPP_C08 : [] ==> SOCHOT_ODL */
|
||||
PAD_CFG_NF(GPP_C08, NONE, DEEP, NF2),
|
||||
/* GPP_C09 : net NC is not present in the given design */
|
||||
@@ -117,12 +119,12 @@ static const struct pad_config gpio_table[] = {
|
||||
PAD_NC(GPP_C10, NONE),
|
||||
/* GPP_C11 : Not Connected */
|
||||
PAD_NC(GPP_C11, NONE),
|
||||
/* GPP_C12 : [] ==> WWAN_CLKREQ_ODL */
|
||||
PAD_CFG_NF(GPP_C12, NONE, DEEP, NF1),
|
||||
/* GPP_C12 : NC pad. */
|
||||
PAD_NC(GPP_C12, NONE),
|
||||
/* GPP_C13 : Not connected */
|
||||
PAD_NC(GPP_C13, NONE),
|
||||
/* GPP_C15 : [] ==> WWAN_DPR_SAR_ODL */
|
||||
PAD_CFG_GPO(GPP_C15, 1, DEEP),
|
||||
PAD_NC(GPP_C15, NONE),
|
||||
/* GPP_C16 : [] ==> USB_C0_LSX_TX */
|
||||
PAD_CFG_NF(GPP_C16, NONE, DEEP, NF1),
|
||||
/* GPP_C17 : [] ==> USB_C0_LSX_RX */
|
||||
@@ -199,8 +201,8 @@ static const struct pad_config gpio_table[] = {
|
||||
PAD_CFG_GPO(GPP_E05, 1, DEEP),
|
||||
/* GPP_E06 : GPP_E06_STRAP ==> Component NC */
|
||||
PAD_NC(GPP_E06, NONE),
|
||||
/* GPP_E07 : [] ==> WWAN_FCPO_L */
|
||||
PAD_CFG_GPO(GPP_E07, 1, DEEP),
|
||||
/* GPP_E07 : NC pad. */
|
||||
PAD_NC(GPP_E07, NONE),
|
||||
/* GPP_E08 : [] ==> SAR2_INT_L */
|
||||
PAD_CFG_GPI_APIC_LOCK(GPP_E08, NONE, LEVEL, NONE, LOCK_CONFIG),
|
||||
/* GPP_E09 : Not Connected */
|
||||
@@ -244,24 +246,24 @@ static const struct pad_config gpio_table[] = {
|
||||
PAD_CFG_GPO(GPP_F08, 1, DEEP),
|
||||
/* GPP_F09 : [] ==> WLAN_PE_WAKE_ODL */
|
||||
PAD_CFG_GPI_IRQ_WAKE(GPP_F09, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* GPP_F10 : [] ==> WWAN_PCIE_WAKE_ODL */
|
||||
PAD_CFG_GPI_IRQ_WAKE(GPP_F10, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* GPP_F10 : NC pad. */
|
||||
PAD_NC(GPP_F10, NONE),
|
||||
/* GPP_F11 : GSP1_SOC_CLK_R */
|
||||
PAD_CFG_NF(GPP_F11, NONE, DEEP, NF5),
|
||||
/* GPP_F12 : GSPI1_SOC_DO_FPMCU_DI_R */
|
||||
PAD_CFG_NF(GPP_F12, NONE, DEEP, NF5),
|
||||
/* GPP_F13 : GSPI1_SOC_DI_FPMCU_DO_LS_R */
|
||||
PAD_CFG_NF(GPP_F13, NONE, DEEP, NF5),
|
||||
/* GPP_F14 : GSPI0_SOC_DO_TCHSCR_DI */
|
||||
PAD_CFG_NF(GPP_F14, NONE, DEEP, NF8),
|
||||
/* GPP_F15 : [] ==> GSPI0_SOC_DI_TCHSCR_DO */
|
||||
PAD_CFG_NF(GPP_F15, NONE, DEEP, NF8),
|
||||
/* GPP_F16 : [] ==> GSPI0_SOC_TCHSCR_CLK */
|
||||
PAD_CFG_NF(GPP_F16, NONE, DEEP, NF8),
|
||||
/* GPP_F14 : net NC. */
|
||||
PAD_NC(GPP_F14, NONE),
|
||||
/* GPP_F15 : net NC. */
|
||||
PAD_NC(GPP_F15, NONE),
|
||||
/* GPP_F16 : net NC. */
|
||||
PAD_NC(GPP_F16, NONE),
|
||||
/* GPP_F17 : [] ==> GSPI1_SOC_CS_L */
|
||||
PAD_CFG_NF(GPP_F17, NONE, DEEP, NF5),
|
||||
/* GPP_F18 : [] ==> GSPI0_SOC_TCHSCR_CS_L */
|
||||
PAD_CFG_NF(GPP_F18, NONE, DEEP, NF8),
|
||||
/* GPP_F18 : net NC. */
|
||||
PAD_NC(GPP_F18, NONE),
|
||||
/* GPP_F19 : [] ==> GPP_F19_STRAP */
|
||||
PAD_NC(GPP_F19, NONE),
|
||||
/* GPP_F20 : [] ==> GPP_F20_STRAP */
|
||||
@@ -365,21 +367,13 @@ static const struct pad_config gpio_table[] = {
|
||||
|
||||
/* Early pad configuration in bootblock */
|
||||
static const struct pad_config early_gpio_table[] = {
|
||||
/* GPP_B17 : [] ==> EN_WWAN_PWR */
|
||||
PAD_CFG_GPO(GPP_B17, 1, DEEP),
|
||||
/* GPP_B18 : [] ==> SOC_I2C_TPM_SDA */
|
||||
PAD_CFG_NF(GPP_B18, NONE, DEEP, NF2),
|
||||
/* GPP_B19 : [] ==> SOC_I2C_TPM_SCL */
|
||||
PAD_CFG_NF(GPP_B19, NONE, DEEP, NF2),
|
||||
/* GPP_C05 : [] ==> WWAN_PERST_L_STRAP (updated in ramstage) */
|
||||
PAD_CFG_GPO(GPP_C05, 0, DEEP),
|
||||
/* GPP_A15 : [] ==> WWAN_RST_L (updated in ramstage) */
|
||||
PAD_CFG_GPO(GPP_A15, 0, DEEP),
|
||||
/* GPP_E03 : [] ==> GSC_SOC_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_E03, NONE, PLTRST, LEVEL, INVERT),
|
||||
|
||||
/* GPP_E07 : [] ==> WWAN_FCPO_L (updated in romstage) */
|
||||
PAD_CFG_GPO(GPP_E07, 0, DEEP),
|
||||
/* GPP_H08 : [] ==> UART_DBG_TX_SOC_RX_R */
|
||||
PAD_CFG_NF(GPP_H08, NONE, DEEP, NF1),
|
||||
/* GPP_H09 : [] ==> UART_SOC_TX_DBG_RX_R */
|
||||
@@ -405,8 +399,6 @@ static const struct pad_config romstage_gpio_table[] = {
|
||||
PAD_CFG_GPO(GPP_A20, 0, DEEP),
|
||||
/* GPP_C23 : [] ==> FP_RST_ODL */
|
||||
PAD_CFG_GPO(GPP_C23, 0, DEEP),
|
||||
/* GPP_E07 : [] ==> WWAN_FCPO_L */
|
||||
PAD_CFG_GPO(GPP_E07, 1, DEEP),
|
||||
/* GPP_D02 : Not Connected */
|
||||
PAD_NC(GPP_D02, NONE),
|
||||
};
|
||||
|
@@ -1,9 +1,9 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# This is an auto-generated file. Do not edit!!
|
||||
# Generated by:
|
||||
# util/spd_tools/bin/part_id_gen MTL lp5 src/mainboard/google/rex/variants/karis/memory/ src/mainboard/google/rex/variants/karis/memory/mem_parts_used.txt
|
||||
# util/spd_tools/bin/part_id_gen MTL lp5 src/mainboard/google/rex/variants/karis/memory src/mainboard/google/rex/variants/karis/memory/mem_parts_used.txt
|
||||
|
||||
SPD_SOURCES =
|
||||
SPD_SOURCES += spd/lp5/set-0/spd-11.hex # ID = 0(0b0000) Parts = MT62F1G32D2DS-023 WT:B, H58G56BK8BX068
|
||||
SPD_SOURCES += spd/lp5/set-0/spd-1.hex # ID = 1(0b0001) Parts = H9JCNNNBK3MLYR-N6E
|
||||
SPD_SOURCES += spd/lp5/set-0/spd-1.hex # ID = 1(0b0001) Parts = H9JCNNNBK3MLYR-N6E, MT62F512M32D2DR-031 WT:B
|
||||
SPD_SOURCES += spd/lp5/set-0/spd-7.hex # ID = 2(0b0010) Parts = K3KL8L80CM-MGCT
|
||||
|
@@ -1,10 +1,11 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# This is an auto-generated file. Do not edit!!
|
||||
# Generated by:
|
||||
# util/spd_tools/bin/part_id_gen MTL lp5 src/mainboard/google/rex/variants/karis/memory/ src/mainboard/google/rex/variants/karis/memory/mem_parts_used.txt
|
||||
# util/spd_tools/bin/part_id_gen MTL lp5 src/mainboard/google/rex/variants/karis/memory src/mainboard/google/rex/variants/karis/memory/mem_parts_used.txt
|
||||
|
||||
DRAM Part Name ID to assign
|
||||
MT62F1G32D2DS-023 WT:B 0 (0000)
|
||||
H9JCNNNBK3MLYR-N6E 1 (0001)
|
||||
H58G56BK8BX068 0 (0000)
|
||||
K3KL8L80CM-MGCT 2 (0010)
|
||||
MT62F512M32D2DR-031 WT:B 1 (0001)
|
||||
|
@@ -13,3 +13,4 @@ MT62F1G32D2DS-023 WT:B
|
||||
H9JCNNNBK3MLYR-N6E
|
||||
H58G56BK8BX068
|
||||
K3KL8L80CM-MGCT
|
||||
MT62F512M32D2DR-031 WT:B
|
||||
|
@@ -4,11 +4,6 @@ fw_config
|
||||
option MAX98360_ALC5682I_I2S 1
|
||||
option MAX98363_CS42L42_SNDW 2
|
||||
end
|
||||
field CELLULAR 4 5
|
||||
option CELLULAR_ABSENT 0
|
||||
option CELLULAR_USB 1
|
||||
option CELLULAR_PCIE 2
|
||||
end
|
||||
field UFC 6 7
|
||||
option UFC_USB 0
|
||||
option UFC_MIPI 1
|
||||
@@ -34,10 +29,6 @@ fw_config
|
||||
option WIFI_CNVI 0
|
||||
option WIFI_PCIE 1
|
||||
end
|
||||
field TOUCHSCREEN 19
|
||||
option TOUCHSCREEN_I2C 0
|
||||
option TOUCHSCREEN_I2C_SPI 1
|
||||
end
|
||||
field VPU 20
|
||||
option VPU_DIS 0
|
||||
option VPU_EN 1
|
||||
@@ -73,7 +64,7 @@ chip soc/intel/meteorlake
|
||||
}"
|
||||
|
||||
register "serial_io_gspi_mode" = "{
|
||||
[PchSerialIoIndexGSPI0] = PchSerialIoPci,
|
||||
[PchSerialIoIndexGSPI0] = PchSerialIoDisabled,
|
||||
[PchSerialIoIndexGSPI1] = PchSerialIoPci,
|
||||
[PchSerialIoIndexGSPI2] = PchSerialIoDisabled,
|
||||
}"
|
||||
@@ -162,7 +153,6 @@ chip soc/intel/meteorlake
|
||||
register "options.tsr[0].desc" = ""DDR_SOC""
|
||||
register "options.tsr[1].desc" = ""Ambient""
|
||||
register "options.tsr[2].desc" = ""Charger""
|
||||
register "options.tsr[3].desc" = ""wwan""
|
||||
|
||||
## Active Policy
|
||||
# FIXME: below values are initial reference values only
|
||||
@@ -199,18 +189,6 @@ chip soc/intel/meteorlake
|
||||
TEMP_PCT(65, 70),
|
||||
TEMP_PCT(60, 50),
|
||||
}
|
||||
},
|
||||
[3] = {
|
||||
.target = DPTF_TEMP_SENSOR_3,
|
||||
.thresholds = {
|
||||
TEMP_PCT(75, 90),
|
||||
TEMP_PCT(70, 80),
|
||||
TEMP_PCT(65, 70),
|
||||
TEMP_PCT(60, 60),
|
||||
TEMP_PCT(55, 50),
|
||||
TEMP_PCT(50, 40),
|
||||
TEMP_PCT(45, 30),
|
||||
}
|
||||
}
|
||||
}"
|
||||
|
||||
@@ -221,7 +199,6 @@ chip soc/intel/meteorlake
|
||||
[1] = DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 80, 5000),
|
||||
[2] = DPTF_PASSIVE(CPU, TEMP_SENSOR_1, 80, 5000),
|
||||
[3] = DPTF_PASSIVE(CHARGER, TEMP_SENSOR_2, 75, 5000),
|
||||
[4] = DPTF_PASSIVE(CPU, TEMP_SENSOR_3, 80, 5000),
|
||||
}"
|
||||
|
||||
## Critical Policy
|
||||
@@ -231,7 +208,6 @@ chip soc/intel/meteorlake
|
||||
[1] = DPTF_CRITICAL(TEMP_SENSOR_0, 85, SHUTDOWN),
|
||||
[2] = DPTF_CRITICAL(TEMP_SENSOR_1, 85, SHUTDOWN),
|
||||
[3] = DPTF_CRITICAL(TEMP_SENSOR_2, 85, SHUTDOWN),
|
||||
[4] = DPTF_CRITICAL(TEMP_SENSOR_3, 85, SHUTDOWN),
|
||||
}"
|
||||
|
||||
## Power Limits Control
|
||||
@@ -436,9 +412,7 @@ chip soc/intel/meteorlake
|
||||
register "generic.stop_off_delay_ms" = "2"
|
||||
register "generic.has_power_resource" = "1"
|
||||
register "hid_desc_reg_offset" = "0x01"
|
||||
device i2c 10 on
|
||||
probe TOUCHSCREEN TOUCHSCREEN_I2C
|
||||
end
|
||||
device i2c 10 on end
|
||||
end
|
||||
chip drivers/generic/gpio_keys
|
||||
register "name" = ""PENH""
|
||||
@@ -567,39 +541,6 @@ chip soc/intel/meteorlake
|
||||
end
|
||||
end
|
||||
end #PCIE5 WLAN card
|
||||
device ref pcie_rp6 on
|
||||
probe CELLULAR CELLULAR_PCIE
|
||||
# Enable WWAN Card PCIE 6 using clk 3
|
||||
register "pcie_rp[PCH_RP(6)]" = "{
|
||||
.clk_src = 3,
|
||||
.clk_req = 3,
|
||||
.flags = PCIE_RP_HOTPLUG | PCIE_RP_LTR | PCIE_RP_AER,
|
||||
}"
|
||||
chip soc/intel/common/block/pcie/rtd3
|
||||
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C05)"
|
||||
register "reset_off_delay_ms" = "20"
|
||||
register "srcclk_pin" = "3"
|
||||
register "ext_pm_support" = "ACPI_PCIE_RP_EMIT_ALL"
|
||||
register "skip_on_off_support" = "true"
|
||||
device generic 0 alias rp6_rtd3 on
|
||||
probe CELLULAR CELLULAR_PCIE
|
||||
end
|
||||
end
|
||||
chip drivers/wwan/fm
|
||||
register "fcpo_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E07)"
|
||||
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A15)"
|
||||
register "perst_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C05)"
|
||||
register "wake_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_F10)"
|
||||
register "add_acpi_dma_property" = "true"
|
||||
use rp6_rtd3 as rtd3dev
|
||||
device generic 0 alias rp6_wwan on
|
||||
probe CELLULAR CELLULAR_PCIE
|
||||
end
|
||||
end
|
||||
end #PCIE6 WWAN card
|
||||
device ref gspi0 on
|
||||
probe TOUCHSCREEN TOUCHSCREEN_I2C_SPI
|
||||
end
|
||||
device ref gspi1 on
|
||||
chip drivers/spi/acpi
|
||||
register "name" = ""CRFP""
|
||||
|
@@ -69,7 +69,7 @@ static const struct pad_config gpio_table[] = {
|
||||
/* GPP_B07 : [] ==> RST_HP_L */
|
||||
PAD_CFG_GPO(GPP_B07, 1, DEEP),
|
||||
/* GPP_B08 : [] ==> PWM_BUZZER */
|
||||
PAD_CFG_NF(GPP_B08, NONE, DEEP, NF2),
|
||||
PAD_CFG_GPO(GPP_B08, 0, DEEP),
|
||||
/* GPP_B09 : [] ==> GPP_B09 */
|
||||
PAD_NC(GPP_B09, NONE),
|
||||
/* GPP_B10 : [] ==> WIFI_DISABLE_L */
|
||||
|
@@ -12,7 +12,7 @@
|
||||
|
||||
const char *get_wifi_sar_cbfs_filename(void)
|
||||
{
|
||||
return "wifi_sar_0.hex";
|
||||
return get_wifi_sar_fw_config_filename(FW_CONFIG_FIELD(WIFI));
|
||||
}
|
||||
|
||||
void variant_generate_s0ix_hook(enum s0ix_entry entry)
|
||||
|
@@ -9,9 +9,9 @@ chip northbridge/intel/sandybridge
|
||||
register "pcie_hotplug_map" = "{ 0, 0, 0, 0, 0, 0, 0, 0 }"
|
||||
register "pcie_port_coalesce" = "1"
|
||||
register "sata_interface_speed_support" = "0x3"
|
||||
register "sata_port_map" = "0x3" # 0x1: 2.5" slot
|
||||
register "sata_port_map" = "0x7" # 0x1: 2.5" slot
|
||||
# 0x2: DVD
|
||||
# 0x?: mSATA
|
||||
# 0x4: mSATA
|
||||
register "spi_lvscc" = "0x2005"
|
||||
register "spi_uvscc" = "0x2005"
|
||||
register "superspeed_capable_ports" = "0x0000000f"
|
||||
|
29
src/mainboard/siemens/fa_ehl/Kconfig
Normal file
29
src/mainboard/siemens/fa_ehl/Kconfig
Normal file
@@ -0,0 +1,29 @@
|
||||
config BOARD_SIEMENS_BASEBOARD_FA_EHL
|
||||
def_bool n
|
||||
select SOC_INTEL_ELKHARTLAKE
|
||||
select BOARD_ROMSIZE_KB_16384
|
||||
select DRIVERS_I2C_GENERIC
|
||||
select HAVE_ACPI_TABLES
|
||||
select USE_SIEMENS_HWILIB
|
||||
select SOC_INTEL_DISABLE_POWER_LIMITS
|
||||
|
||||
source "src/mainboard/siemens/fa_ehl/variants/*/Kconfig"
|
||||
|
||||
if BOARD_SIEMENS_BASEBOARD_FA_EHL
|
||||
|
||||
config MAINBOARD_DIR
|
||||
default "siemens/fa_ehl"
|
||||
|
||||
config VARIANT_DIR
|
||||
default "fa_ehl" if BOARD_SIEMENS_FA_EHL
|
||||
|
||||
config MAINBOARD_PART_NUMBER
|
||||
default "FA EHL" if BOARD_SIEMENS_FA_EHL
|
||||
|
||||
config DEVICETREE
|
||||
default "variants/\$(CONFIG_VARIANT_DIR)/devicetree.cb"
|
||||
|
||||
config SOC_INTEL_ELKHARTLAKE_TCO_NO_REBOOT_EN
|
||||
default y
|
||||
|
||||
endif # BOARD_SIEMENS_BASEBOARD_FA_EHL
|
5
src/mainboard/siemens/fa_ehl/Kconfig.name
Normal file
5
src/mainboard/siemens/fa_ehl/Kconfig.name
Normal file
@@ -0,0 +1,5 @@
|
||||
comment "FA EHL"
|
||||
|
||||
config BOARD_SIEMENS_FA_EHL
|
||||
bool "-> FA EHL"
|
||||
select BOARD_SIEMENS_BASEBOARD_FA_EHL
|
14
src/mainboard/siemens/fa_ehl/Makefile.inc
Normal file
14
src/mainboard/siemens/fa_ehl/Makefile.inc
Normal file
@@ -0,0 +1,14 @@
|
||||
## SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
subdirs-y += spd
|
||||
|
||||
bootblock-y += bootblock.c
|
||||
|
||||
romstage-y += romstage_fsp_params.c
|
||||
|
||||
ramstage-y += mainboard.c
|
||||
|
||||
subdirs-y += variants/baseboard
|
||||
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include
|
||||
|
||||
subdirs-y += variants/$(VARIANT_DIR)
|
5
src/mainboard/siemens/fa_ehl/board_info.txt
Normal file
5
src/mainboard/siemens/fa_ehl/board_info.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
Vendor name: Siemens
|
||||
Board name: FA EHL
|
||||
Category: misc
|
||||
ROM protocol: SPI
|
||||
ROM socketed: n
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user