| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,124 @@ | ||
| libgfxinit - Native Graphics Initialization | ||
| =========================================== | ||
|
|
||
| Introduction and Current State in coreboot | ||
| ------------------------------------------ | ||
|
|
||
| *libgfxinit* is a library of full-featured graphics initialization | ||
| (aka. modesetting) drivers. It's implemented in SPARK (a subset of | ||
| Ada with formal verification features). While not restricted to in | ||
| any way, it currently only supports Intel's integrated gfx control- | ||
| lers (GMA). | ||
|
|
||
| Currently, it supports the Intel Core i3/i5/i7 processor line and | ||
| will support HDMI and DP on the Atom successor Apollo Lake. At the | ||
| time of writing, Sandy Bridge, Ivy Bridge, and Haswell are veri- | ||
| fied to work within *coreboot*. | ||
|
|
||
| GMA: Framebuffer Configuration | ||
| ------------------------------ | ||
|
|
||
| *coreboot* supports two different framebuffer setups. The default | ||
| enables the legacy VGA plane in textmode. Due to legacy hardware | ||
| constraints, only the first found display is enabled in this mode. | ||
| (cf. `src/drivers/intel/gma/text_fb/gma.adb`). | ||
|
|
||
| The second option sets up a high-resolution framebuffer with the | ||
| native resolution of the display if only one is detected, or the | ||
| smallest of all resolutions (per dimension) if multiple displays | ||
| are detected. This option is selected by | ||
| `CONFIG_FRAMEBUFFER_KEEP_VESA_MODE`. | ||
| (cf. `src/drivers/intel/gma/hires_fb/gma.adb`). | ||
|
|
||
| In any case, a smaller framebuffer is up-scaled to each display's | ||
| native resolution while keeping aspect ratio. | ||
|
|
||
| GMA: Hook-up in Chipset Initialization | ||
| -------------------------------------- | ||
|
|
||
| Both configurations described above implement a procedure | ||
| `GMA.gfxinit()`: | ||
|
|
||
| procedure gfxinit (lightup_ok : out int); | ||
|
|
||
| This procedure is exported as the C function `gma_gfxinit()` as | ||
| follows: | ||
|
|
||
| void gma_gfxinit(int *lightup_ok); | ||
|
|
||
| * `lightup_ok`: returns whether the initialization succeeded `1` or | ||
| failed `0`. Currently, only the case that no display | ||
| could be found counts as failure. A failure at a la- | ||
| ter stage (e.g. failure to train a DP) is not propa- | ||
| gated. | ||
|
|
||
| GMA: Per Board Configuration | ||
| ---------------------------- | ||
|
|
||
| There are a few Kconfig symbols to consider. To indicate that a | ||
| board can initialize graphics through *libgfxinit*: | ||
|
|
||
| select MAINBOARD_HAS_LIBGFXINIT | ||
|
|
||
| Internal ports share some hardware blocks (e.g. backlight, panel | ||
| power sequencer). Therefore, each board has to select either eDP | ||
| or LVDS as the internal port, if any: | ||
|
|
||
| select GFX_GMA_INTERNAL_IS_EDP # the default, or | ||
| select GFX_GMA_INTERNAL_IS_LVDS | ||
|
|
||
| Boards with a DVI-I connector share the DDC (I2C) pins for both | ||
| analog and digital displays. In this case, *libgfxinit* needs to | ||
| know through which interface the EDID can be queried: | ||
|
|
||
| select GFX_GMA_ANALOG_I2C_HDMI_B # or | ||
| select GFX_GMA_ANALOG_I2C_HDMI_C # or | ||
| select GFX_GMA_ANALOG_I2C_HDMI_D | ||
|
|
||
| Beside Kconfig options, *libgfxinit* needs to know which ports are | ||
| implemented on a board and should be probed for displays. Each | ||
| board has to implement the package `GMA.Mainboard` with a list: | ||
|
|
||
| ports : HW.GFX.GMA.Display_Probing.Port_List; | ||
|
|
||
| or a function returning such a list: | ||
|
|
||
| function ports return HW.GFX.GMA.Display_Probing.Port_List; | ||
|
|
||
| You can select from the following Ports: | ||
|
|
||
| type Port_Type is | ||
| (Disabled, -- optionally terminates the list | ||
| Internal, -- either eDP or LVDS as selected in Kconfig | ||
| DP1, | ||
| DP2, | ||
| DP3, | ||
| HDMI1, -- also DVI-D, or HDMI over DP++ | ||
| HDMI2, | ||
| HDMI3, | ||
| Analog); -- legacy VGA port, or analog part of DVI-I | ||
|
|
||
| Each `DPx` and `HDMIx` pair share pins. If they are exposed as DP | ||
| ports, they are usually DP++ (aka. dual-mode DP) ports that can | ||
| also output HDMI signals through passive adapters. In this case, | ||
| both DPx and HDMIx should be listed. | ||
|
|
||
| A good example is the mainboard Kontron/KTQM77, it features two | ||
| DP++ ports (DP2/HDMI2, DP3/HDMI3), one DVI-I port (HDMI1/Analog), | ||
| eDP and LVDS. Due to the constraints mentioned above, only one of | ||
| eDP and LVDS can be enabled. It defines `ports` as follows: | ||
|
|
||
| ports : constant Port_List := | ||
| (DP2, | ||
| DP3, | ||
| HDMI1, | ||
| HDMI2, | ||
| HDMI3, | ||
| Analog, | ||
| Internal, | ||
| others => Disabled); | ||
|
|
||
| The `GMA.gfxinit()` procedure probes for display EDIDs in the | ||
| given order until all available pipes are taken. That's 1 pipe | ||
| in VGA textmode, 2 pipes in high-resolution mode until Sandy | ||
| Bridge, 3 pipes from Ivy Bridge on. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| Welcome to coreboot's documentation! | ||
| ==================================== | ||
|
|
||
| This is the developer documentation for [coreboot](https://coreboot.org). | ||
| It is built from Markdown files in the | ||
| [Documentation](https://review.coreboot.org/cgit/coreboot.git/tree/Documentation) | ||
| directory in the source code. | ||
|
|
||
| Contents: | ||
|
|
||
| * [Lesson 2: Submitting a patch to coreboot.org](Lesson2.md) | ||
| * [Gerrit Etiquette and Guidelines](gerrit_guidelines.md) | ||
| * [coreboot's build system](build_system.md) | ||
| * [Kconfig in coreboot](core/Kconfig.md) | ||
| * [Use of git submodules in coreboot](submodules.md) | ||
| * [Timestamps](timestamp.md) | ||
| * [Dealing with Untrusted Input in SMM](technotes/2017-02-dealing-with-untrusted-input-in-smm.md) | ||
| * [ABI data consumption](abi-data-consumption.md) | ||
| * [GPIO toggling in ACPI AML](acpi/gpio.md) | ||
| * [Native Graphics Initialization with libgfxinit](gfx/libgfxinit.md) | ||
| * [Sandy Bridge Raminit](Intel/NativeRaminit/Sandybridge.md) | ||
| * [Mainboard-specific documentation](mainboard/index.md) | ||
| * [SuperIO-specific documentation](superio/index.md) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| # HP Compaq 8200 Elite SFF | ||
|
|
||
| This page describes how to run coreboot on the [Compaq 8200 Elite SFF] desktop | ||
| from [HP]. | ||
|
|
||
| ## TODO | ||
|
|
||
| The following things are still missing from this coreboot port: | ||
|
|
||
| - Extended HWM reporting | ||
| - Advanced LED control | ||
| - Advanced power configuration in S3 | ||
|
|
||
| ## Flashing coreboot | ||
|
|
||
| ```eval_rst | ||
| +---------------------+------------+ | ||
| | Type | Value | | ||
| +=====================+============+ | ||
| | Socketed flash | no | | ||
| +---------------------+------------+ | ||
| | Model | MX25L6406E | | ||
| +---------------------+------------+ | ||
| | Size | 8 MiB | | ||
| +---------------------+------------+ | ||
| | In circuit flashing | yes | | ||
| +---------------------+------------+ | ||
| | Package | SOIC-8 | | ||
| +---------------------+------------+ | ||
| | Write protection | No | | ||
| +---------------------+------------+ | ||
| | Dual BIOS feature | No | | ||
| +---------------------+------------+ | ||
| | Internal flashing | yes | | ||
| +---------------------+------------+ | ||
| ``` | ||
|
|
||
| ### Internal programming | ||
|
|
||
| The SPI flash can be accessed using [flashrom]. | ||
|
|
||
| ### External programming | ||
|
|
||
| External programming with an SPI adapter and [flashrom] does work, but it powers the | ||
| whole southbridge complex. You need to supply enough current through the programming adapter. | ||
|
|
||
| If you want to use a SOIC pomona test clip, you have to cut the 2nd DRAM DIMM holder, | ||
| as otherwise there's not enough space near the flash. | ||
|
|
||
| **Position of SOIC-8 flash IC near 2nd DIMM holder** | ||
| ![][compaq_8200_flash1] | ||
|
|
||
| [compaq_8200_flash1]: compaq_8200_sff_flash1.jpg | ||
|
|
||
| **Closeup view of SOIC-8 flash IC** | ||
| ![][compaq_8200_flash2] | ||
|
|
||
| [compaq_8200_flash2]: compaq_8200_sff_flash2.jpg | ||
|
|
||
| ## Technology | ||
|
|
||
| ```eval_rst | ||
| +------------------+--------------------------------------+ | ||
| | Northbridge | Sandy Bridge | | ||
| +------------------+--------------------------------------+ | ||
| | Southbridge | bd82x6x | | ||
| +------------------+--------------------------------------+ | ||
| | CPU | model_206ax | | ||
| +------------------+--------------------------------------+ | ||
| | SuperIO | :doc:`../../superio/nuvoton/npcd378` | | ||
| +------------------+--------------------------------------+ | ||
| | EC | | | ||
| +------------------+--------------------------------------+ | ||
| | Coprocessor | Intel ME | | ||
| +------------------+--------------------------------------+ | ||
| ``` | ||
|
|
||
| [Compaq 8200 Elite SFF]: https://support.hp.com/us-en/document/c03414707 | ||
| [HP]: https://www.hp.com/ | ||
| [flashrom]: https://flashrom.org/Flashrom |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # Mainboard-specific documentation | ||
|
|
||
| This section contains documentation about coreboot on specific mainboards. | ||
|
|
||
| ## SiFive | ||
|
|
||
| - [SiFive HiFive Unleashed](sifive/hifive-unleashed.md) | ||
|
|
||
| ## HP | ||
|
|
||
| - [Compaq 8200 Elite SFF](hp/compaq_8200_sff.md) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| # SiFive HiFive Unleashed | ||
|
|
||
| This page describes how to run coreboot on the [HiFive Unleashed] development | ||
| board from [SiFive], the first RISC-V board on the market with enough resources | ||
| to run a multiuser operating system. | ||
|
|
||
| For general setup instructions, please refer to the [Getting Started Guide]. | ||
|
|
||
|
|
||
| ## TODO | ||
|
|
||
| The following things are still missing from this coreboot port: | ||
|
|
||
| - Trampoline in the MBR block to support boot mode 1 | ||
| - SiFive UART driver | ||
| - CBMEM support | ||
| - FU540 clock configuration | ||
| - FU540 RAM init | ||
| - Placing the ramstage in DRAM | ||
| - Starting the U54 cores | ||
| - FU540 PIN configuration and GPIO access macros | ||
| - FU540 OTP driver and serial number read-out | ||
| - Support for booting Linux on RISC-V | ||
|
|
||
|
|
||
| ## Configuration | ||
|
|
||
| Run `make menuconfig` and select _SiFive_/_HiFive Unleashed_ in the _Mainboard_ | ||
| menu. | ||
|
|
||
|
|
||
| ### Boot modes | ||
|
|
||
| A total of 16 boot modes can be configured using the switches labeled `MSEL0` | ||
| through `MSEL3`. The most important ones are as follows: | ||
|
|
||
| - **MSEL=1**: Jump directly into the SPI flash, bypassing ROM1 | ||
| - **MSEL=11**: Load FSBL from SD-card | ||
| - **MSEL=15**: Default boot mode; Load FSBL/coreboot from a GPT partition on | ||
| SPI flash | ||
|
|
||
|
|
||
| ## Flashing coreboot | ||
|
|
||
| The HiFive Unleashed has an 32 MiB SPI flash (**ISSI IS25WP256D**), that can be | ||
| programmed from within Linux running on the board, via USB/JTAG, or directly | ||
| with an SPI programmer. | ||
|
|
||
| ### Internal programming | ||
|
|
||
| The SPI flash can be accessed as `/dev/mtd0` from Linux. | ||
|
|
||
| ### USB/JTAG | ||
|
|
||
| To program the flash via USB/JTAG, connect the USB port to a computer. If the | ||
| board is powered on, two new serial ports, for example `/dev/ttyUSB0` and | ||
| `/dev/ttyUSB1` will appear. The first is JTAG, and the second is connected to | ||
| the SoC's UART. | ||
|
|
||
| - Download and build the [RISC-V fork of OpenOCD]. | ||
| - Download the [OpenOCD script] for Freedom Unleashed. | ||
| - Start OpenOCD with `openocd -f openocd.cfg` | ||
| - Connect to OpenOCD's command interface (via telnet) and enter the line | ||
| marked with `> `: | ||
| ``` | ||
| > flash write_image erase unlock build/coreboot.rom 0x20000000 | ||
| auto erase enabled | ||
| auto unlock enabled | ||
| wrote 33554432 bytes from file build/coreboot.rom in 1524.943848s (21.488 KiB/s) | ||
| ``` | ||
| Note that programming the whole flash with OpenOCD isn't fast. In this | ||
| example it took just over 25 minutes. This process can be sped up | ||
| considerably by building/flashing a smaller image; OpenOCD does not check if | ||
| the image and the flash have the same size. | ||
|
|
||
|
|
||
| ### External programming | ||
|
|
||
| External programming with an SPI adapter and [flashrom] may work, but has not | ||
| been tested. Please study the [schematics] before going this route. | ||
|
|
||
|
|
||
| ## Error codes | ||
|
|
||
| The zeroth-stage bootloader (ZSBL) in ROM1 can print error codes on the serial | ||
| console in certain situations. | ||
|
|
||
| ``` | ||
| // Error codes are formatted as follows: | ||
| // [63:60] [59:56] [55:0] | ||
| // bootstage trap errorcode | ||
| // If trap == 1, then errorcode is actually the mcause register with the | ||
| // interrupt bit shifted to bit 55. | ||
| ``` | ||
| (--- from the [SiFive forum](https://forums.sifive.com/t/loading-fsbl-from-sd/1156/4)) | ||
|
|
||
|
|
||
| [HiFive Unleashed]: https://www.crowdsupply.com/sifive/hifive-unleashed | ||
| [SiFive]: https://www.sifive.com/ | ||
| [Getting Started Guide]: https://www.sifive.com/documentation/boards/hifive-unleashed/hifive-unleashed-getting-started-guide/ | ||
| [RISC-V fork of OpenOCD]: https://github.com/riscv/riscv-openocd | ||
| [OpenOCD script]: https://github.com/sifive/freedom-u-sdk/blob/057a47f657fa33e2c60df7f183884a68e90381cc/bsp/env/freedom-u500-unleashed/openocd.cfg | ||
| [flashrom]: https://flashrom.org/Flashrom | ||
| [schematics]: https://www.sifive.com/documentation/boards/hifive-unleashed/hifive-unleashed-schematics/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # SuperIO-specific documentation | ||
|
|
||
| This section contains documentation about coreboot on specific SuperIOs. | ||
|
|
||
| ## Nuvoton | ||
|
|
||
| - [NPCD378](nuvoton/npcd378.md) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,125 @@ | ||
| # NPCD378 | ||
|
|
||
| This page describes the [Nuvoton] SuperIO chip that can be found on various [HP] | ||
| mainboards. | ||
|
|
||
| As no datasheet is available most of the functions have been reverse engineered and | ||
| might be inacurate or wrong. | ||
|
|
||
| ## LDNs | ||
|
|
||
| ```eval_rst | ||
| +-------+---------------------------+ | ||
| | LDN # | Function | | ||
| +=======+===========================+ | ||
| | 0 | FDC | | ||
| +-------+---------------------------+ | ||
| | 1 | Parallel Port | | ||
| +-------+---------------------------+ | ||
| | 2 | Com1 | | ||
| +-------+---------------------------+ | ||
| | 3 | Com2 / IR | | ||
| +-------+---------------------------+ | ||
| | 4 | LED and PWR button CTRL | | ||
| +-------+---------------------------+ | ||
| | 5 | PS/2 AUX | | ||
| +-------+---------------------------+ | ||
| | 6 | PS/2 KB | | ||
| +-------+---------------------------+ | ||
| | 7 | WDT1 | | ||
| +-------+---------------------------+ | ||
| | 8 | HWM | | ||
| +-------+---------------------------+ | ||
| | 0xf | GPIO | | ||
| +-------+---------------------------+ | ||
| | 0x15 | I2C ? | | ||
| +-------+---------------------------+ | ||
| | 0x1e | SUSPEND CTL ? | | ||
| +-------+---------------------------+ | ||
| | 0x1c | GPIO ? | | ||
| +-------+---------------------------+ | ||
| ``` | ||
|
|
||
| ### LDN0 | ||
|
|
||
| Follows [Nuvoton]'s default FDC register set. See [NCT6102D] for more details. | ||
|
|
||
| ### LDN1 | ||
|
|
||
| Follows [Nuvoton]'s default LPT register set. See [NCT6102D] for more details. | ||
|
|
||
| ### LDN2 | ||
|
|
||
| Follows [Nuvoton]'s default COM1 register set. See [NCT6102D] for more details. | ||
|
|
||
| ### LDN3 | ||
|
|
||
| Follows [Nuvoton]'s default COM2 register set. See [NCT6102D] for more details. | ||
|
|
||
| ### LDN4 | ||
|
|
||
| On most SuperIOs the use of LDN4 is forbidden. That's not the case on NPCD378. | ||
|
|
||
| It exposes 16 byte of IO config space to control the front LEDs PWM duty cycle | ||
| and power button behaviour on normal / during S3 resume. | ||
|
|
||
| ### LDN5 | ||
|
|
||
| A custom PS/2 AUX port. | ||
|
|
||
| ### LDN6 | ||
|
|
||
| Follows [Nuvoton]'s default KBC register set. See [NCT6102D] for more details. | ||
|
|
||
| ### LDN7 | ||
|
|
||
| Looks like a WDT. | ||
|
|
||
| ### LDN8 | ||
|
|
||
| Custom HWM space. It exposes 256 byte of IO config space. | ||
| See [HWM](#HWM) for more details. | ||
|
|
||
| ## HWM | ||
|
|
||
| ### Register | ||
|
|
||
| The registers are accessible via IO space and are located at LDN8's IOBASE. | ||
|
|
||
| ```eval_rst | ||
| +---------------+-----------------------+ | ||
| | IOBASE offset | Register | | ||
| +---------------+-----------------------+ | ||
| | 0x4 | Host Write CTRL | | ||
| +---------------+-----------------------+ | ||
| | 0x10 - 0xfe | HWM Page # | | ||
| +---------------+-----------------------+ | ||
| | 0xff | Page index select | | ||
| +---------------+-----------------------+ | ||
| ``` | ||
|
|
||
| ### Host Write CTRL | ||
| Bit 0 must be cleared prior to writing any of the HWM register and it must be | ||
| set after writing to HWM register to signal the SuperIO that data has changed. | ||
| Reading register is possible at any time and doesn't need special locking. | ||
|
|
||
| ### HWM Page | ||
| The SuperIO exposes 16 different pages. Nearly all registers are unknown. | ||
|
|
||
| **Page 1** | ||
|
|
||
| ```eval_rst | ||
| +---------------+-----------------------+ | ||
| | IOBASE offset | Register | | ||
| +---------------+-----------------------+ | ||
| | 0x98 | PSU fan PWM | | ||
| +---------------+-----------------------+ | ||
| ``` | ||
|
|
||
| ### Page index | ||
| The 4 LSB of the page index register selects which HWM page is active. | ||
| A write takes effect immediately. | ||
|
|
||
| [NCT6102D]: https://www.nuvoton.com/resource-files/NCT6102D_NCT6106D_Datasheet_V1_0.pdf | ||
| [Nuvoton]: http://www.nuvoton.com/hq/ | ||
| [HP]: https://www.hp.com/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| t60,magi-5|magi-7|austin-3 | ||
| t400,malibu-3 | ||
| t400s,shinai | ||
| t410,nozomi-1 | ||
| t410s,shinai-2 | ||
| t420,nozomi-3 | ||
| t420s,shinai-3 | ||
| t430,nozomi-4 | ||
| t430s,lsn-4 | ||
| t500,coronado-5 | ||
| t510,kendo-1 | ||
| t520,kendo-3 | ||
| t530,kendo-4 | ||
| w500,coronado-5 | ||
| w510,kendo-1 workstation | ||
| w520,kendo-3 workstation | ||
| w530,kendo-4 workstation | ||
| w700,n-note | ||
| x1_carbon_gen1,genesis-1 | ||
| x60,ks note | ||
| x61,ks note-3 | ||
| x200,mocha-1 | ||
| x201,mocha-3 | ||
| x220,dasher-1 | ||
| x230,dasher-2 | ||
| x230s,rogue-1 | ||
| x240,rogue-2 | ||
| x300,kodachi | ||
| x301,kodachi-2 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| 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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| 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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| 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_SMM_MEMORY_MAP=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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| CONFIG_COLLECT_TIMESTAMPS=y | ||
| CONFIG_VENDOR_INTEL=y | ||
| CONFIG_BOARD_INTEL_GALILEO=y | ||
| CONFIG_FSP_VERSION_1_1=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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| 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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| 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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| 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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| CONFIG_COLLECT_TIMESTAMPS=y | ||
| CONFIG_VENDOR_INTEL=y | ||
| CONFIG_CBFS_SIZE=0x800000 | ||
| CONFIG_BOARD_INTEL_HARCUVAR=y | ||
| # CONFIG_DRIVERS_UART_8250IO is not set | ||
| CONFIG_ENABLE_HSUART=y | ||
| CONFIG_UART_PCI_ADDR=0x8000d000 | ||
|
|
||
| #Sample settings for Denverton-NS FSP. | ||
| #CONFIG_ADD_FSP_BINARIES=y | ||
| #CONFIG_FSP_M_FILE="../intel/fsp/denverton_ns/DENVERTON-NS_FSP_M.fd" | ||
| #CONFIG_FSP_S_FILE="../intel/fsp/denverton_ns/DENVERTON-NS_FSP_S.fd" | ||
| #CONFIG_FSP_T_FILE="../intel/fsp/denverton_ns/DENVERTON-NS_FSP_T.fd" | ||
| #CONFIG_FSP_CAR=y | ||
|
|
||
| #Sample settings for microcode definitions. | ||
| #CONFIG_CPU_MICROCODE_HEADER_FILES="../intel/cpu/denverton_ns/microcode/microcode_blob.h" | ||
| #CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER=y |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| CONFIG_VENDOR_PCENGINES=y | ||
| CONFIG_BOARD_PCENGINES_APU1=y | ||
| CONFIG_NO_GFX_INIT=y | ||
| CONFIG_SEABIOS_REVISION=y | ||
| CONFIG_SEABIOS_REVISION_ID="rel-1.11.0.5" | ||
| CONFIG_SEABIOS_BOOTORDER_FILE="$(top)/src/mainboard/$(MAINBOARDDIR)/bootorder" | ||
| CONFIG_SEABIOS_DEBUG_LEVEL=0 | ||
| CONFIG_PAYLOAD_CONFIGFILE="$(top)/src/mainboard/$(MAINBOARDDIR)/seabios_config" | ||
| CONFIG_PXE=y | ||
| CONFIG_BUILD_IPXE=y | ||
| CONFIG_PXE_ROM_ID="10ec,8168" | ||
| CONFIG_CPU_MICROCODE_CBFS_NONE=y | ||
| CONFIG_MEMTEST_SECONDARY_PAYLOAD=y | ||
| CONFIG_MEMTEST_MASTER=y | ||
| CONFIG_SORTBOOTORDER_SECONDARY_PAYLOAD=y | ||
| CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1=y |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| CONFIG_VENDOR_PCENGINES=y | ||
| CONFIG_BOARD_PCENGINES_APU2=y | ||
| CONFIG_APU2_PINMUX_UART_C=y | ||
| CONFIG_APU2_PINMUX_UART_D=y | ||
| CONFIG_NO_GFX_INIT=y | ||
| CONFIG_PXE=y | ||
| CONFIG_BUILD_IPXE=y | ||
| CONFIG_PXE_ROM_ID="8086,157b" | ||
| CONFIG_CPU_MICROCODE_CBFS_NONE=y | ||
| CONFIG_MEMTEST_SECONDARY_PAYLOAD=y | ||
| CONFIG_MEMTEST_MASTER=y | ||
| CONFIG_SORTBOOTORDER_SECONDARY_PAYLOAD=y | ||
| CONFIG_SEABIOS_BOOTORDER_FILE="$(top)/src/mainboard/$(MAINBOARDDIR)/variants/$(CONFIG_VARIANT_DIR)/bootorder" | ||
| CONFIG_SEABIOS_DEBUG_LEVEL=0 | ||
| CONFIG_PAYLOAD_CONFIGFILE="$(top)/src/mainboard/$(MAINBOARDDIR)/seabios_config" | ||
| CONFIG_SEABIOS_REVISION=y | ||
| CONFIG_SEABIOS_REVISION_ID="rel-1.11.0.5" | ||
| CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1=y |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| CONFIG_VENDOR_PCENGINES=y | ||
| CONFIG_BOARD_PCENGINES_APU3=y | ||
| CONFIG_NO_GFX_INIT=y | ||
| CONFIG_PXE=y | ||
| CONFIG_BUILD_IPXE=y | ||
| CONFIG_PXE_ROM_ID="8086,1539" | ||
| CONFIG_CPU_MICROCODE_CBFS_NONE=y | ||
| CONFIG_MEMTEST_SECONDARY_PAYLOAD=y | ||
| CONFIG_MEMTEST_MASTER=y | ||
| CONFIG_SORTBOOTORDER_SECONDARY_PAYLOAD=y | ||
| CONFIG_SEABIOS_BOOTORDER_FILE="$(top)/src/mainboard/$(MAINBOARDDIR)/variants/$(CONFIG_VARIANT_DIR)/bootorder" | ||
| CONFIG_SEABIOS_DEBUG_LEVEL=0 | ||
| CONFIG_PAYLOAD_CONFIGFILE="$(top)/src/mainboard/$(MAINBOARDDIR)/seabios_config" | ||
| CONFIG_SEABIOS_REVISION=y | ||
| CONFIG_SEABIOS_REVISION_ID="rel-1.11.0.5" | ||
| CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1=y |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| CONFIG_VENDOR_PCENGINES=y | ||
| CONFIG_BOARD_PCENGINES_APU4=y | ||
| CONFIG_NO_GFX_INIT=y | ||
| CONFIG_PXE=y | ||
| CONFIG_BUILD_IPXE=y | ||
| CONFIG_PXE_ROM_ID="8086,1539" | ||
| CONFIG_CPU_MICROCODE_CBFS_NONE=y | ||
| CONFIG_MEMTEST_SECONDARY_PAYLOAD=y | ||
| CONFIG_MEMTEST_MASTER=y | ||
| CONFIG_SORTBOOTORDER_SECONDARY_PAYLOAD=y | ||
| CONFIG_SEABIOS_BOOTORDER_FILE="$(top)/src/mainboard/$(MAINBOARDDIR)/variants/$(CONFIG_VARIANT_DIR)/bootorder" | ||
| CONFIG_SEABIOS_DEBUG_LEVEL=0 | ||
| CONFIG_PAYLOAD_CONFIGFILE="$(top)/src/mainboard/$(MAINBOARDDIR)/seabios_config" | ||
| CONFIG_SEABIOS_REVISION=y | ||
| CONFIG_SEABIOS_REVISION_ID="rel-1.11.0.5" | ||
| CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1=y |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| CONFIG_VENDOR_PCENGINES=y | ||
| CONFIG_BOARD_PCENGINES_APU5=y | ||
| CONFIG_NO_GFX_INIT=y | ||
| CONFIG_PXE=y | ||
| CONFIG_BUILD_IPXE=y | ||
| CONFIG_PXE_ROM_ID="8086,1539" | ||
| CONFIG_CPU_MICROCODE_CBFS_NONE=y | ||
| CONFIG_MEMTEST_SECONDARY_PAYLOAD=y | ||
| CONFIG_MEMTEST_MASTER=y | ||
| CONFIG_SORTBOOTORDER_SECONDARY_PAYLOAD=y | ||
| CONFIG_SEABIOS_BOOTORDER_FILE="$(top)/src/mainboard/$(MAINBOARDDIR)/variants/$(CONFIG_VARIANT_DIR)/bootorder" | ||
| CONFIG_SEABIOS_DEBUG_LEVEL=0 | ||
| CONFIG_PAYLOAD_CONFIGFILE="$(top)/src/mainboard/$(MAINBOARDDIR)/seabios_config" | ||
| CONFIG_SEABIOS_REVISION=y | ||
| CONFIG_SEABIOS_REVISION_ID="rel-1.11.0.5" | ||
| CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1=y |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -291,9 +291,8 @@ int main(void) | |
| { | ||
| int i, j; | ||
|
|
||
| if (IS_ENABLED(CONFIG_LP_USB)) | ||
| usb_initialize(); | ||
|
|
||
| initscr(); | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,8 +1,9 @@ | ||
| config PAYLOAD_GRUB2 | ||
| bool "GRUB2" | ||
| depends on ARCH_X86 || ARCH_ARM | ||
| help | ||
| Select this option if you want to build a coreboot image | ||
| with a GRUB2 payload. If you don't know what this is | ||
| about, just leave it enabled. | ||
|
|
||
| See https://coreboot.org/Payloads for more information. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,91 @@ | ||
| if PAYLOAD_TIANOCORE | ||
|
|
||
| config PAYLOAD_FILE | ||
| string "Tianocore binary" | ||
| default "payloads/external/tianocore/tianocore/Build/UEFIPAYLOAD.fd" | ||
| help | ||
| The result of a corebootPkg build | ||
|
|
||
| choice | ||
| prompt "Tianocore version" | ||
| default TIANOCORE_STABLE | ||
| help | ||
| Select which version of Tianocore to build (default is to build stable) | ||
| stable: a version of Tianocore that builds without any errors | ||
| master: most recent version from upstream Tianocore repository | ||
| revision: use specific commit or branch to build Tianocore (specified by user) | ||
|
|
||
| config TIANOCORE_STABLE | ||
| bool "stable" | ||
| help | ||
| Select this option to build the stable tianocore version | ||
| i.e. a version of Tianocore that builds without any errors | ||
|
|
||
| config TIANOCORE_MASTER | ||
| bool "master" | ||
| help | ||
| Select this option to build the master tianocore version | ||
| i.e. most recent version from upstream Tianocore repository | ||
|
|
||
| config TIANOCORE_REVISION | ||
| bool "git revision" | ||
| help | ||
| Select this option if you have a specific commit or branch | ||
| that you want to use as the revision from which to | ||
| build Tianocore. | ||
|
|
||
| You will be able to specify the name of a branch or a commit id | ||
| later. | ||
|
|
||
| endchoice | ||
|
|
||
| config TIANOCORE_REVISION_ID | ||
| string "Insert a commit's SHA-1 or a branch name" | ||
| depends on TIANOCORE_REVISION | ||
| default "origin/master" | ||
| help | ||
| The commit's SHA-1 or branch name of the revision to use. | ||
|
|
||
| choice | ||
| prompt "Target architecture" | ||
| default TIANOCORE_TARGET_X64 | ||
| help | ||
| The Tianocore coreboot Payload Package binary can be | ||
| built for either only IA32 or both X64 and IA32 architectures. | ||
| Select which architecture(s) to build for; default is to build | ||
| for both X64 and IA32. | ||
|
|
||
| config TIANOCORE_TARGET_IA32 | ||
| bool "IA32" | ||
| help | ||
| By selecting this option, the target architecture will be built | ||
| for only IA32. | ||
|
|
||
| config TIANOCORE_TARGET_X64 | ||
| bool "X64" | ||
| help | ||
| By selecting this option, the target architecture will be built | ||
| for X64 and IA32. | ||
|
|
||
| endchoice | ||
|
|
||
| choice | ||
| prompt "Tianocore build" | ||
| default TIANOCORE_RELEASE | ||
| help | ||
| Select whether to generate a debug or release build for | ||
| Tianocore; default is to generate a release build. | ||
|
|
||
| config TIANOCORE_DEBUG | ||
| bool "Generate Tianocore debug build" | ||
| help | ||
| Generate a debug build. | ||
|
|
||
| config TIANOCORE_RELEASE | ||
| bool "Generate Tianocore release build" | ||
| help | ||
| Generate a release build. | ||
|
|
||
| endchoice | ||
|
|
||
| endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,8 +1,8 @@ | ||
| config PAYLOAD_TIANOCORE | ||
| bool "Tianocore coreboot payload package" | ||
| help | ||
| Select this option if you want to build a coreboot image | ||
| with a Tianocore payload. If you don't know what this is | ||
| about, just leave it enabled. | ||
|
|
||
| See https://coreboot.org/Payloads for more information. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,107 @@ | ||
| ## | ||
| ## This file is part of the coreboot project. | ||
| ## | ||
| ## Copyright (C) 2017 Google Inc. | ||
| ## | ||
| ## This program is free software; you can redistribute it and/or modify | ||
| ## it under the terms of the GNU General Public License as published by | ||
| ## the Free Software Foundation; version 2 of the License. | ||
| ## | ||
| ## This program is distributed in the hope that it will be useful, | ||
| ## but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| ## GNU General Public License for more details. | ||
| ## | ||
|
|
||
| # force the shell to bash - the edksetup.sh script doesn't work with dash | ||
| export SHELL := env bash | ||
|
|
||
| STABLE_COMMIT_ID=315d9d08fd77db1024ccc5307823da8aaed85e2f | ||
| TAG-$(CONFIG_TIANOCORE_MASTER)=origin/master | ||
| TAG-$(CONFIG_TIANOCORE_STABLE)=$(STABLE_COMMIT_ID) | ||
| TAG-$(CONFIG_TIANOCORE_REVISION)=$(CONFIG_TIANOCORE_REVISION_ID) | ||
|
|
||
| project_name=Tianocore | ||
| project_dir=$(CURDIR)/tianocore | ||
| project_git_repo=https://github.com/tianocore/edk2 | ||
|
|
||
| export EDK_TOOLS_PATH=$(project_dir)/BaseTools | ||
|
|
||
| ifeq ($(CONFIG_TIANOCORE_DEBUG),y) | ||
| BUILD_TYPE=DEBUG | ||
| else | ||
| BUILD_TYPE=RELEASE | ||
| endif | ||
|
|
||
| ifeq ($(CONFIG_TIANOCORE_TARGET_IA32), y) | ||
| BUILD_STR=-a IA32 -t COREBOOT -p CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc -b $(BUILD_TYPE) | ||
| else | ||
| BUILD_STR=-a IA32 -a X64 -t COREBOOT -p CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc -b $(BUILD_TYPE) | ||
| endif | ||
|
|
||
| all: build | ||
|
|
||
| $(project_dir): | ||
| echo " Cloning $(project_name) from Git" | ||
| git clone $(project_git_repo) $(project_dir) | ||
|
|
||
| fetch: $(project_dir) | ||
| cd $(project_dir); \ | ||
| git show $(TAG-y) >/dev/null 2>&1 ; \ | ||
| if [ $$? -ne 0 ] || [ "$(TAG-y)" = "origin/master" ]; then \ | ||
| echo " Fetching new commits from the $(project_name) repo"; \ | ||
| git fetch; \ | ||
| fi | ||
|
|
||
| $(project_dir)/.version_$(TAG-y): fetch | ||
| if ! [[ -e $(project_dir)/.version_$(STABLE_COMMIT_ID) ]] || \ | ||
| [ "$(TAG-y)" = "origin/master" ] ; then \ | ||
| rm -f .version_*; \ | ||
| echo " Checking out $(project_name) revision $(TAG-y)"; \ | ||
| cd $(project_dir); \ | ||
| git checkout master; \ | ||
| git branch -D coreboot 2>/dev/null; \ | ||
| git checkout -b coreboot $(TAG-y); \ | ||
| for patch in $(CURDIR)/patches/*.patch; do \ | ||
| echo "Applying $$patch"; \ | ||
| cd $(project_dir); \ | ||
| git am --keep-cr $$patch || \ | ||
| ( echo " Error when applying patches.\n"; git am --abort; exit 1; ); \ | ||
| done; \ | ||
| if ! [ "$(TAG-y)" = "origin/master" ] ; then \ | ||
| touch $(project_dir)/.version_$(STABLE_COMMIT_ID); \ | ||
| fi; \ | ||
| fi; \ | ||
|
|
||
| checktools: | ||
| echo "Checking uuid-dev..." | ||
| echo "#include <uuid/uuid.h>" > libtest.c | ||
| echo "int main(int argc, char **argv) { (void) argc; (void) argv; return 0; }" >> libtest.c | ||
| $(HOSTCC) $(HOSTCCFLAGS) libtest.c -o libtest >/dev/null 2>&1 && echo " found uuid-dev." || \ | ||
| ( echo " Not found."; echo "ERROR: please_install uuid-dev (uuid-devel)"; exit 1 ) | ||
| rm -rf libtest.c libtest | ||
| echo "Checking nasm..." | ||
| type nasm > /dev/null 2>&1 && echo " found nasm." || \ | ||
| ( echo " Not found."; echo "Error: Please install nasm."; exit 1 ) | ||
|
|
||
| build: $(project_dir)/.version_$(TAG-y) checktools | ||
| unset CC; $(MAKE) -C $(project_dir)/BaseTools | ||
| echo " build $(project_name) $(TAG-y)" | ||
| cd $(project_dir); \ | ||
| export EDK_TOOLS_PATH=$(project_dir)/BaseTools; \ | ||
| export WORKSPACE=$(project_dir); \ | ||
| . ./edksetup.sh BaseTools; \ | ||
| grep -q "COREBOOT" $(project_dir)/Conf/tools_def.txt; \ | ||
| if [ $$? -ne 0 ]; then \ | ||
| cat ../tools_def.txt >> $(project_dir)/Conf/tools_def.txt; \ | ||
| fi; \ | ||
| build $(BUILD_STR); \ | ||
| mv $(project_dir)/Build/CorebootPayloadPkg*/*/FV/UEFIPAYLOAD.fd $(project_dir)/Build/UEFIPAYLOAD.fd | ||
|
|
||
| clean: | ||
| test -d $(project_dir) && (cd $(project_dir); rm -rf Build; rm -f Conf/tools_def.txt) || exit 0 | ||
|
|
||
| distclean: | ||
| rm -rf $(project_dir) | ||
|
|
||
| .PHONY: all fetch checkout checktools config build clean distclean |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| From 4f9d41e69356ce7486b0c74a754ff494256723de Mon Sep 17 00:00:00 2001 | ||
| From: CoolStar <coolstarorganization@gmail.com> | ||
| Date: Sun, 4 Dec 2016 11:23:38 -0800 | ||
| Subject: [PATCH] PCI: use Duet's PciNoEnumeration | ||
|
|
||
| --- | ||
| CorebootPayloadPkg/CorebootPayloadPkg.fdf | 4 ++-- | ||
| CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | 7 ++----- | ||
| CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | 7 ++----- | ||
| 3 files changed, 6 insertions(+), 12 deletions(-) | ||
|
|
||
| diff --git a/CorebootPayloadPkg/CorebootPayloadPkg.fdf b/CorebootPayloadPkg/CorebootPayloadPkg.fdf | ||
| index 303e626842..a39e3999ba 100644 | ||
| --- a/CorebootPayloadPkg/CorebootPayloadPkg.fdf | ||
| +++ b/CorebootPayloadPkg/CorebootPayloadPkg.fdf | ||
| @@ -124,8 +124,8 @@ INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf | ||
| # | ||
| # PCI Support | ||
| # | ||
| -INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf | ||
| -INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf | ||
| +INF DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf | ||
| +INF DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf | ||
|
|
||
| # | ||
| # ISA Support | ||
| diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| index cdfcb75b59..e838aca61d 100644 | ||
| --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| @@ -450,11 +450,8 @@ | ||
| # | ||
| # PCI Support | ||
| # | ||
| - MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf | ||
| - MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf { | ||
| - <LibraryClasses> | ||
| - PciHostBridgeLib|CorebootPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf | ||
| - } | ||
| + DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf | ||
| + DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf | ||
|
|
||
| # | ||
| # SCSI/ATA/IDE/DISK Support | ||
| diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| index 6b16af63ba..c25d821fd4 100644 | ||
| --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| @@ -451,11 +451,8 @@ | ||
| # | ||
| # PCI Support | ||
| # | ||
| - MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf | ||
| - MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf { | ||
| - <LibraryClasses> | ||
| - PciHostBridgeLib|CorebootPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf | ||
| - } | ||
| + DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf | ||
| + DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf | ||
|
|
||
| # | ||
| # SCSI/ATA/IDE/DISK Support | ||
| -- | ||
| 2.13.2.725.g09c95d1e9-goog | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,86 @@ | ||
| From 760f1cafdd689beedc8418ab89e856b54296389c Mon Sep 17 00:00:00 2001 | ||
| From: CoolStar <coolstarorganization@gmail.com> | ||
| Date: Sun, 4 Dec 2016 12:07:30 -0800 | ||
| Subject: [PATCH] CorebootBdsLib: Call End of DXE event to allow booting 3rd | ||
| party efi binaries. | ||
|
|
||
| --- | ||
| .../Library/CorebootBdsLib/BdsPlatform.c | 42 ++++++++++++++++++++++ | ||
| .../Library/CorebootBdsLib/PlatformBds.inf | 1 + | ||
| 2 files changed, 43 insertions(+) | ||
|
|
||
| diff --git a/CorebootModulePkg/Library/CorebootBdsLib/BdsPlatform.c b/CorebootModulePkg/Library/CorebootBdsLib/BdsPlatform.c | ||
| index b6253a17f8..cf3e5320cb 100644 | ||
| --- a/CorebootModulePkg/Library/CorebootBdsLib/BdsPlatform.c | ||
| +++ b/CorebootModulePkg/Library/CorebootBdsLib/BdsPlatform.c | ||
| @@ -1129,6 +1129,46 @@ Returns: | ||
| Status = BaseMemoryTest (MemoryTestLevel); | ||
| } | ||
|
|
||
| +VOID | ||
| +EFIAPI | ||
| +InternalBdsEmptyCallbackFuntion ( | ||
| + IN EFI_EVENT Event, | ||
| + IN VOID *Context | ||
| + ) | ||
| +{ | ||
| + return; | ||
| +} | ||
| + | ||
| +VOID | ||
| +InstallReadyToLock ( | ||
| + VOID | ||
| + ) | ||
| +{ | ||
| + EFI_STATUS Status; | ||
| + EFI_EVENT EndOfDxeEvent; | ||
| + | ||
| + DEBUG((DEBUG_INFO,"InstallReadyToLock entering......\n")); | ||
| + // | ||
| + // Inform the SMM infrastructure that we're entering BDS and may run 3rd party code hereafter | ||
| + // Since PI1.2.1, we need signal EndOfDxe as ExitPmAuth | ||
| + // | ||
| + Status = gBS->CreateEventEx ( | ||
| + EVT_NOTIFY_SIGNAL, | ||
| + TPL_CALLBACK, | ||
| + InternalBdsEmptyCallbackFuntion, | ||
| + NULL, | ||
| + &gEfiEndOfDxeEventGroupGuid, | ||
| + &EndOfDxeEvent | ||
| + ); | ||
| + ASSERT_EFI_ERROR (Status); | ||
| + gBS->SignalEvent (EndOfDxeEvent); | ||
| + gBS->CloseEvent (EndOfDxeEvent); | ||
| + DEBUG((DEBUG_INFO,"All EndOfDxe callbacks have returned successfully\n")); | ||
| + | ||
| + DEBUG((DEBUG_INFO,"InstallReadyToLock end\n")); | ||
| + return; | ||
| +} | ||
| + | ||
| VOID | ||
| EFIAPI | ||
| PlatformBdsPolicyBehavior ( | ||
| @@ -1164,6 +1204,8 @@ Returns: | ||
| EFI_INPUT_KEY Key; | ||
| EFI_BOOT_MODE BootMode; | ||
|
|
||
| + InstallReadyToLock(); | ||
| + | ||
| // | ||
| // Init the time out value | ||
| // | ||
| diff --git a/CorebootModulePkg/Library/CorebootBdsLib/PlatformBds.inf b/CorebootModulePkg/Library/CorebootBdsLib/PlatformBds.inf | ||
| index 578c74afae..992bd846bd 100644 | ||
| --- a/CorebootModulePkg/Library/CorebootBdsLib/PlatformBds.inf | ||
| +++ b/CorebootModulePkg/Library/CorebootBdsLib/PlatformBds.inf | ||
| @@ -58,6 +58,7 @@ | ||
| gEfiSmbiosTableGuid | ||
| gEfiAcpiTableGuid | ||
| gLdrMemoryDescriptorGuid | ||
| + gEfiEndOfDxeEventGroupGuid | ||
|
|
||
| [Pcd] | ||
| gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut | ||
| -- | ||
| 2.13.2.725.g09c95d1e9-goog | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| From 77c5dfcce842819215490fe63c481860fa7d752d Mon Sep 17 00:00:00 2001 | ||
| From: CoolStar <coolstarorganization@gmail.com> | ||
| Date: Sun, 4 Dec 2016 11:50:00 -0800 | ||
| Subject: [PATCH] CorebootPayloadPkg: Add PS/2 keyboard drivers. | ||
|
|
||
| --- | ||
| CorebootPayloadPkg/CorebootPayloadPkg.fdf | 3 +++ | ||
| CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | 3 +++ | ||
| CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | 3 +++ | ||
| 3 files changed, 9 insertions(+) | ||
|
|
||
| diff --git a/CorebootPayloadPkg/CorebootPayloadPkg.fdf b/CorebootPayloadPkg/CorebootPayloadPkg.fdf | ||
| index 347e9c75ce..a347af0c9a 100644 | ||
| --- a/CorebootPayloadPkg/CorebootPayloadPkg.fdf | ||
| +++ b/CorebootPayloadPkg/CorebootPayloadPkg.fdf | ||
| @@ -132,6 +132,9 @@ INF DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf | ||
| # ISA Support | ||
| # | ||
| INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf | ||
| +INF PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf | ||
| +INF IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf | ||
| +INF IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf | ||
|
|
||
| # | ||
| # Console Support | ||
| diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| index 5ce823bb95..60ee064c59 100644 | ||
| --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| @@ -492,6 +492,9 @@ | ||
| # ISA Support | ||
| # | ||
| MdeModulePkg/Universal/SerialDxe/SerialDxe.inf | ||
| + PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf | ||
| + IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf | ||
| + IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf | ||
|
|
||
| # | ||
| # Console Support | ||
| diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| index fea297a77a..167329c897 100644 | ||
| --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| @@ -493,6 +493,9 @@ | ||
| # ISA Support | ||
| # | ||
| MdeModulePkg/Universal/SerialDxe/SerialDxe.inf | ||
| + PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf | ||
| + IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf | ||
| + IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf | ||
|
|
||
| # | ||
| # Console Support | ||
| -- | ||
| 2.13.2.725.g09c95d1e9-goog | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| From 77f75370d6fbfefb04456f6e1c32c85d4bac8bf5 Mon Sep 17 00:00:00 2001 | ||
| From: Matt Devo <matt.devillier@gmail.com> | ||
| Date: Thu, 23 Feb 2017 14:11:14 -0600 | ||
| Subject: [PATCH] CorebootPayloadPkg: don't use serial output | ||
|
|
||
| --- | ||
| CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | 2 +- | ||
| CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | 2 +- | ||
| 2 files changed, 2 insertions(+), 2 deletions(-) | ||
|
|
||
| diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| index 1d80fc4f5c..ce360c9e9e 100644 | ||
| --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | ||
| @@ -261,7 +261,7 @@ | ||
| # | ||
| ################################################################################ | ||
| [PcdsFeatureFlag] | ||
| - gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE | ||
| + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE | ||
| gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE | ||
| gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE | ||
| gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE | ||
| diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| index 52b26eb3d0..a27b0873a1 100644 | ||
| --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | ||
| @@ -261,7 +261,7 @@ | ||
| # | ||
| ################################################################################ | ||
| [PcdsFeatureFlag] | ||
| - gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE | ||
| + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE | ||
| gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE | ||
| gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|TRUE | ||
| gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE | ||
| -- | ||
| 2.13.2.725.g09c95d1e9-goog | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| From ef89b11ce6f93c96fbd1753a8006dd9c3da212e0 Mon Sep 17 00:00:00 2001 | ||
| From: ReddestDream <reddestdream@gmail.com> | ||
| Date: Wed, 3 May 2017 00:13:28 -0400 | ||
| Subject: [PATCH] CbSupportPei: prevent lower coreboot table from being | ||
| overwritten | ||
|
|
||
| Exclude the bottom 4kb from being included in System Memory HoB | ||
|
|
||
| diff --git a/CorebootModulePkg/CbSupportPei/CbSupportPei.c b/CorebootModulePkg/CbSupportPei/CbSupportPei.c | ||
| index 262e6b9..d3c5723 100755 | ||
| --- a/CorebootModulePkg/CbSupportPei/CbSupportPei.c | ||
| +++ b/CorebootModulePkg/CbSupportPei/CbSupportPei.c | ||
| @@ -261,8 +261,9 @@ CbPeiEntryPoint ( | ||
| EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | | ||
| EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE | ||
| ), | ||
| - (EFI_PHYSICAL_ADDRESS)(0), | ||
| - (UINT64)(0xA0000) | ||
| + // Lower 640KB, except for first 4KB where the lower coreboot pointer ("LBIO") resides | ||
| + (EFI_PHYSICAL_ADDRESS)(0 + 0x1000), | ||
| + (UINT64)(0xA0000 - 0x1000) | ||
| ); | ||
|
|
||
|
|
||
| -- | ||
| 2.14.0 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| From 07dec11fe965e73cfef7df38af70c945b6ff21a2 Mon Sep 17 00:00:00 2001 | ||
| From: Arthur Heymans <arthur@aheymans.xyz> | ||
| Date: Wed, 24 Jan 2018 10:07:08 +0100 | ||
| Subject: [PATCH] CorebootPayloadPkg: Use correct BytesPerScanLine | ||
|
|
||
| Fetch BytesPerScanLine from coreboot table to reflect how the actual | ||
| framebuffer is set up instead of guessing it from the horizontal | ||
| resolution. | ||
|
|
||
| This fixes a garbled display when HorizontalResolution * (BitsPerPixel | ||
| / 8) and pFbInfo->BytesPerScanLine don't match. | ||
|
|
||
| Contributed-under: TianoCore Contribution Agreement 1.1 | ||
| Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> | ||
|
|
||
| diff --git a/CorebootPayloadPkg/FbGop/FbGop.c b/CorebootPayloadPkg/FbGop/FbGop.c | ||
| index 37d6def7f7..6790617033 100644 | ||
| --- a/CorebootPayloadPkg/FbGop/FbGop.c | ||
| +++ b/CorebootPayloadPkg/FbGop/FbGop.c | ||
| @@ -822,7 +822,7 @@ FbGopCheckForVbe ( | ||
| BitsPerPixel = pFbInfo->BitsPerPixel; | ||
| HorizontalResolution = pFbInfo->HorizontalResolution; | ||
| VerticalResolution = pFbInfo->VerticalResolution; | ||
| - BytesPerScanLine = HorizontalResolution * (BitsPerPixel / 8); | ||
| + BytesPerScanLine = pFbInfo->BytesPerScanLine; | ||
|
|
||
| ModeBuffer = (FB_VIDEO_MODE_DATA *) AllocatePool ( | ||
| ModeNumber * sizeof (FB_VIDEO_MODE_DATA) | ||
| -- | ||
| 2.16.1 | ||
|
|