soc/intel/apl: Enable graphics with libgfxinit
Backlight control of internal panels likely won't work as configuration for that seems absent in coreboot. Also, libgfxinit doesn't support any MIPI/DSI connections, yet, and neither Gemini Lake. TEST=Booted work-in-progress port kontron/mal10 with VGA text and linear framebuffer modes. DP display came up. Change-Id: I7b111f1cdac4d18f2fc3089f57aebf3ad1739e5d Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/c/29903 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
967b1963c8
commit
628a3c557d
|
@ -68,13 +68,14 @@ config GFX_GMA
|
||||||
depends on NORTHBRIDGE_INTEL_GM45 || NORTHBRIDGE_INTEL_X4X \
|
depends on NORTHBRIDGE_INTEL_GM45 || NORTHBRIDGE_INTEL_X4X \
|
||||||
|| NORTHBRIDGE_INTEL_NEHALEM || NORTHBRIDGE_INTEL_SANDYBRIDGE \
|
|| NORTHBRIDGE_INTEL_NEHALEM || NORTHBRIDGE_INTEL_SANDYBRIDGE \
|
||||||
|| NORTHBRIDGE_INTEL_IVYBRIDGE || NORTHBRIDGE_INTEL_HASWELL \
|
|| NORTHBRIDGE_INTEL_IVYBRIDGE || NORTHBRIDGE_INTEL_HASWELL \
|
||||||
|| SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE
|
|| SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || SOC_INTEL_APOLLOLAKE
|
||||||
depends on MAINBOARD_HAS_LIBGFXINIT
|
depends on MAINBOARD_HAS_LIBGFXINIT
|
||||||
|
|
||||||
if GFX_GMA
|
if GFX_GMA
|
||||||
|
|
||||||
config GFX_GMA_CPU
|
config GFX_GMA_CPU
|
||||||
string
|
string
|
||||||
|
default "Broxton" if SOC_INTEL_APOLLOLAKE
|
||||||
default "Skylake" if SOC_INTEL_SKYLAKE
|
default "Skylake" if SOC_INTEL_SKYLAKE
|
||||||
default "Broadwell" if SOC_INTEL_BROADWELL
|
default "Broadwell" if SOC_INTEL_BROADWELL
|
||||||
default "Haswell" if NORTHBRIDGE_INTEL_HASWELL
|
default "Haswell" if NORTHBRIDGE_INTEL_HASWELL
|
||||||
|
|
|
@ -15,19 +15,44 @@
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <arch/acpi.h>
|
||||||
#include <arch/acpigen.h>
|
#include <arch/acpigen.h>
|
||||||
|
#include <bootmode.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <fsp/util.h>
|
#include <fsp/util.h>
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <intelblocks/graphics.h>
|
#include <intelblocks/graphics.h>
|
||||||
#include <drivers/intel/gma/opregion.h>
|
#include <drivers/intel/gma/opregion.h>
|
||||||
|
#include <drivers/intel/gma/libgfxinit.h>
|
||||||
|
|
||||||
uintptr_t fsp_soc_get_igd_bar(void)
|
uintptr_t fsp_soc_get_igd_bar(void)
|
||||||
{
|
{
|
||||||
return graphics_get_memory_base();
|
return graphics_get_memory_base();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void graphics_soc_init(struct device *const dev)
|
||||||
|
{
|
||||||
|
if (IS_ENABLED(CONFIG_RUN_FSP_GOP))
|
||||||
|
return;
|
||||||
|
|
||||||
|
uint32_t reg32 = pci_read_config32(dev, PCI_COMMAND);
|
||||||
|
reg32 |= PCI_COMMAND_MASTER;
|
||||||
|
pci_write_config32(dev, PCI_COMMAND, reg32);
|
||||||
|
|
||||||
|
if (IS_ENABLED(CONFIG_MAINBOARD_USE_LIBGFXINIT)) {
|
||||||
|
if (!acpi_is_wakeup_s3() && display_init_required()) {
|
||||||
|
int lightup_ok;
|
||||||
|
gma_gfxinit(&lightup_ok);
|
||||||
|
gfx_set_init_done(lightup_ok);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Initialize PCI device, load/execute BIOS Option ROM */
|
||||||
|
pci_dev_init(dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uintptr_t graphics_soc_write_acpi_opregion(struct device *device,
|
uintptr_t graphics_soc_write_acpi_opregion(struct device *device,
|
||||||
uintptr_t current, struct acpi_rsdp *rsdp)
|
uintptr_t current, struct acpi_rsdp *rsdp)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue