mb/lenovo/t430: Merge into t430 into t530
Both models are quite similar, so reuse existing code and reduce
code duplication.
TEST=TIMELESS build shows identical devicetree.cb, DSDT, cmos layout,
bootblock, romstage and postcar stages. ramstage shows minor
differences as static.c is now build before hda_verb.c, resulting
in different location of data symbols. Binary analysis shows that
the data itself didn't change, just the position in the final
binary.
Change-Id: I2e7cf67c9e2542a199b11257e7349a55e0518aac
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91285
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
parent
3a5e4660bb
commit
091ae533b9
28 changed files with 144 additions and 698 deletions
|
|
@ -1,80 +0,0 @@
|
|||
## SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
if BOARD_LENOVO_THINKPAD_T430
|
||||
|
||||
config BOARD_SPECIFIC_OPTIONS
|
||||
def_bool y
|
||||
select AZALIA_USE_LEGACY_VERB_TABLE
|
||||
select BOARD_ROMSIZE_KB_12288
|
||||
select DRIVERS_LENOVO_HYBRID_GRAPHICS
|
||||
select DRIVER_LENOVO_SERIALS
|
||||
select DRIVER_LENOVO_SERIALS_EARLY_LOCK
|
||||
select DRIVERS_RICOH_RCE822
|
||||
select EC_LENOVO_H8
|
||||
select EC_LENOVO_PMH7
|
||||
select GFX_GMA_PANEL_1_ON_LVDS
|
||||
select H8_HAS_BAT_THRESHOLDS_IMPL
|
||||
select H8_HAS_BDC_GPIO_DETECTION
|
||||
select H8_HAS_WWAN_GPIO_DETECTION
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
select HAVE_CMOS_DEFAULT
|
||||
select HAVE_OPTION_TABLE
|
||||
select INTEL_GMA_HAVE_VBT
|
||||
select INTEL_INT15
|
||||
select MAINBOARD_HAS_LIBGFXINIT
|
||||
select MAINBOARD_HAS_TPM1
|
||||
select MAINBOARD_USES_IFD_GBE_REGION
|
||||
select MEMORY_MAPPED_TPM
|
||||
select NO_UART_ON_SUPERIO
|
||||
select NORTHBRIDGE_INTEL_SANDYBRIDGE
|
||||
select SERIRQ_CONTINUOUS_MODE
|
||||
select SOUTHBRIDGE_INTEL_C216
|
||||
select SYSTEM_TYPE_LAPTOP
|
||||
select USE_NATIVE_RAMINIT
|
||||
|
||||
config VBOOT
|
||||
select GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC
|
||||
select GBB_FLAG_DISABLE_FWMP
|
||||
select GBB_FLAG_DISABLE_LID_SHUTDOWN
|
||||
select GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC
|
||||
select HAS_RECOVERY_MRC_CACHE
|
||||
select VBOOT_VBNV_FLASH
|
||||
|
||||
config VBOOT_SLOTS_RW_AB
|
||||
default y
|
||||
|
||||
config CBFS_SIZE
|
||||
default 0x700000
|
||||
|
||||
config FMDFILE
|
||||
default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/vboot-rwab.fmd" if VBOOT
|
||||
|
||||
config MAINBOARD_DIR
|
||||
default "lenovo/t430"
|
||||
|
||||
config MAINBOARD_PART_NUMBER
|
||||
default "ThinkPad T430"
|
||||
|
||||
config VGA_BIOS_ID
|
||||
string
|
||||
default "8086,0166"
|
||||
|
||||
config DRAM_RESET_GATE_GPIO
|
||||
int
|
||||
default 10
|
||||
|
||||
config USBDEBUG_HCD_INDEX
|
||||
int
|
||||
default 2
|
||||
|
||||
config PS2K_EISAID
|
||||
default "PNP0303"
|
||||
|
||||
config PS2M_EISAID
|
||||
default "LEN0015"
|
||||
|
||||
config THINKPADEC_HKEY_EISAID
|
||||
default "LEN0068"
|
||||
|
||||
endif
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
## SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
config BOARD_LENOVO_THINKPAD_T430
|
||||
bool "ThinkPad T430"
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
## SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
bootblock-y += gpio.c
|
||||
romstage-y += gpio.c
|
||||
|
||||
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
|
||||
bootblock-y += early_init.c
|
||||
romstage-y += early_init.c
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <ec/lenovo/h8/acpi/ec.asl>
|
||||
#include <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
/* The _PTS method (Prepare To Sleep) is called before the OS is
|
||||
* entering a sleep state. The sleep state number is passed in Arg0
|
||||
*/
|
||||
|
||||
Method(_PTS,1)
|
||||
{
|
||||
\_SB.PCI0.LPCB.EC.MUTE(1)
|
||||
\_SB.PCI0.LPCB.EC.USBP(0)
|
||||
\_SB.PCI0.LPCB.EC.RADI(0)
|
||||
}
|
||||
|
||||
/* The _WAK method is called on system wakeup */
|
||||
|
||||
Method(_WAK,1)
|
||||
{
|
||||
/* Wake the HKEY to init BT/WWAN */
|
||||
\_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
|
||||
|
||||
/* Not implemented. */
|
||||
Return(Package(){0,0})
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include <drivers/pc80/pc/ps2_controller.asl>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <acpi/acpi_gnvs.h>
|
||||
#include <soc/nvs.h>
|
||||
|
||||
void mainboard_fill_gnvs(struct global_nvs *gnvs)
|
||||
{
|
||||
/* The lid is open by default */
|
||||
gnvs->lids = 1;
|
||||
|
||||
/* Temperature at which OS will shutdown */
|
||||
gnvs->tcrt = 100;
|
||||
/* Temperature at which OS will throttle CPU */
|
||||
gnvs->tpsv = 90;
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
Category: laptop
|
||||
ROM package: SOIC-8
|
||||
ROM protocol: SPI
|
||||
ROM socketed: n
|
||||
Flashrom support: n
|
||||
Release year: 2012
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
## SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
boot_option=Fallback
|
||||
debug_level=Debug
|
||||
power_on_after_fail=Disable
|
||||
nmi=Enable
|
||||
volume=0x3
|
||||
first_battery=Primary
|
||||
bluetooth=Enable
|
||||
wwan=Enable
|
||||
wlan=Enable
|
||||
touchpad=Enable
|
||||
sata_mode=AHCI
|
||||
fn_ctrl_swap=Disable
|
||||
sticky_fn=Disable
|
||||
trackpoint=Enable
|
||||
backlight=Both
|
||||
hybrid_graphics_mode=Integrated Only
|
||||
usb_always_on=Disable
|
||||
me_state=Normal
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
## SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
entries
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
0 120 r 0 reserved_memory
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# RTC_BOOT_BYTE (coreboot hardcoded)
|
||||
384 1 e 4 boot_option
|
||||
388 4 h 0 reboot_counter
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# coreboot config options: console
|
||||
395 4 e 6 debug_level
|
||||
|
||||
#400 8 r 0 reserved for century byte
|
||||
|
||||
# coreboot config options: southbridge
|
||||
408 1 e 1 nmi
|
||||
409 2 e 7 power_on_after_fail
|
||||
|
||||
# coreboot config options: EC
|
||||
411 1 e 8 first_battery
|
||||
412 1 e 1 bluetooth
|
||||
413 1 e 1 wwan
|
||||
414 1 e 1 touchpad
|
||||
415 1 e 1 wlan
|
||||
416 1 e 1 trackpoint
|
||||
417 1 e 1 fn_ctrl_swap
|
||||
418 1 e 1 sticky_fn
|
||||
419 2 e 13 usb_always_on
|
||||
421 1 e 9 sata_mode
|
||||
422 2 e 10 backlight
|
||||
|
||||
# coreboot config options: ME
|
||||
424 1 e 14 me_state
|
||||
425 2 h 0 me_state_prev
|
||||
|
||||
# coreboot config options: northbridge
|
||||
432 3 e 11 gfx_uma_size
|
||||
435 2 e 12 hybrid_graphics_mode
|
||||
|
||||
440 8 h 0 volume
|
||||
|
||||
# VBOOT
|
||||
448 128 r 0 vbnv
|
||||
|
||||
# SandyBridge MRC Scrambler Seed values
|
||||
896 32 r 0 mrc_scrambler_seed
|
||||
928 32 r 0 mrc_scrambler_seed_s3
|
||||
960 16 r 0 mrc_scrambler_seed_chk
|
||||
|
||||
# coreboot config options: check sums
|
||||
984 16 h 0 check_sum
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
enumerations
|
||||
|
||||
#ID value text
|
||||
1 0 Disable
|
||||
1 1 Enable
|
||||
2 0 Enable
|
||||
2 1 Disable
|
||||
4 0 Fallback
|
||||
4 1 Normal
|
||||
6 0 Emergency
|
||||
6 1 Alert
|
||||
6 2 Critical
|
||||
6 3 Error
|
||||
6 4 Warning
|
||||
6 5 Notice
|
||||
6 6 Info
|
||||
6 7 Debug
|
||||
6 8 Spew
|
||||
7 0 Disable
|
||||
7 1 Enable
|
||||
7 2 Keep
|
||||
8 0 Secondary
|
||||
8 1 Primary
|
||||
9 0 AHCI
|
||||
9 1 Compatible
|
||||
10 0 Both
|
||||
10 1 Keyboard only
|
||||
10 2 Thinklight only
|
||||
10 3 None
|
||||
11 0 32M
|
||||
11 1 64M
|
||||
11 2 96M
|
||||
11 3 128M
|
||||
11 4 160M
|
||||
11 5 192M
|
||||
11 6 224M
|
||||
12 0 Integrated Only
|
||||
12 1 Discrete Only
|
||||
12 2 Dual Graphics
|
||||
13 0 Disable
|
||||
13 1 AC and battery
|
||||
13 2 AC only
|
||||
14 0 Normal
|
||||
14 1 Disabled
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
checksums
|
||||
|
||||
checksum 392 447 984
|
||||
|
|
@ -1,166 +0,0 @@
|
|||
chip northbridge/intel/sandybridge
|
||||
register "gfx" = "GMA_STATIC_DISPLAYS(1)"
|
||||
|
||||
# Enable DisplayPort Hotplug with 6ms pulse
|
||||
register "gpu_dp_d_hotplug" = "0x06"
|
||||
|
||||
# Enable Panel as LVDS and configure power delays
|
||||
register "gpu_panel_port_select" = "PANEL_PORT_LVDS"
|
||||
register "gpu_panel_power_cycle_delay" = "6" # T7: 500ms
|
||||
register "gpu_panel_power_up_delay" = "100" # T1+T2: 10ms
|
||||
register "gpu_panel_power_down_delay" = "100" # T5+T6: 10ms
|
||||
register "gpu_panel_power_backlight_on_delay" = "2100" # T3: 210ms
|
||||
register "gpu_panel_power_backlight_off_delay" = "2100" # T4: 210ms
|
||||
register "gpu_cpu_backlight" = "0x1155"
|
||||
register "gpu_pch_backlight" = "0x11551155"
|
||||
|
||||
register "spd_addresses" = "{0x50, 0, 0x51, 0}"
|
||||
|
||||
device domain 0 on
|
||||
subsystemid 0x17aa 0x21f3 inherit
|
||||
|
||||
chip southbridge/intel/bd82x6x # Intel Series 6 Cougar Point PCH
|
||||
register "docking_supported" = "true"
|
||||
register "gen1_dec" = "0x000c15e1"
|
||||
register "gen2_dec" = "0x007c1601"
|
||||
register "gen3_dec" = "0x000c06a1"
|
||||
register "gpi13_routing" = "2"
|
||||
register "gpi1_routing" = "2"
|
||||
register "pcie_hotplug_map" = "{ 0, 0, 1, 0, 0, 0, 0, 0 }"
|
||||
register "pcie_port_coalesce" = "true"
|
||||
register "sata_interface_speed_support" = "0x3"
|
||||
register "sata_port_map" = "0x17"
|
||||
|
||||
# Do not enable xHCI Port 4 since WWAN USB is EHCI-only
|
||||
register "superspeed_capable_ports" = "0x7"
|
||||
register "xhci_switchable_ports" = "0x7"
|
||||
register "usb_port_config" = "{
|
||||
{ 1, 1, 0 },
|
||||
{ 1, 1, 1 },
|
||||
{ 1, 2, 3 },
|
||||
{ 1, 1, -1 },
|
||||
{ 1, 1, 2 },
|
||||
{ 1, 0, -1 },
|
||||
{ 0, 0, -1 },
|
||||
{ 1, 2, -1 },
|
||||
{ 1, 0, -1 },
|
||||
{ 1, 1, 5 },
|
||||
{ 1, 0, -1 },
|
||||
{ 1, 0, -1 },
|
||||
{ 1, 3, -1 },
|
||||
{ 1, 1, -1 }
|
||||
}"
|
||||
|
||||
# device specific SPI configuration
|
||||
register "spi_uvscc" = "0x2005"
|
||||
register "spi_lvscc" = "0x2005"
|
||||
|
||||
device ref xhci on end # USB 3.0 Controller
|
||||
device ref mei1 on end # Management Engine Interface 1
|
||||
device ref mei2 off end # Management Engine Interface 2
|
||||
device ref me_ide_r off end # Management Engine IDE-R
|
||||
device ref me_kt off end # Management Engine KT
|
||||
device ref gbe on end # Intel Gigabit Ethernet
|
||||
device ref ehci2 on end # USB2 EHCI #2
|
||||
device ref hda on end # High Definition Audio controller
|
||||
device ref pcie_rp1 on # PCIe Port #1
|
||||
chip drivers/ricoh/rce822 # Ricoh cardreader
|
||||
register "disable_mask" = "0x87"
|
||||
register "sdwppol" = "1"
|
||||
device pci 00.0 on end # Ricoh SD card reader
|
||||
end
|
||||
end
|
||||
device ref pcie_rp2 on end # PCIe Port #2
|
||||
device ref pcie_rp3 on # PCIe Port #3
|
||||
smbios_slot_desc "7" "3" "ExpressCard Slot" "8"
|
||||
end
|
||||
device ref pcie_rp4 off end # PCIe Port #4
|
||||
device ref pcie_rp5 off end # PCIe Port #5
|
||||
device ref pcie_rp6 off end # PCIe Port #6
|
||||
device ref pcie_rp7 off end # PCIe Port #7
|
||||
device ref pcie_rp8 off end # PCIe Port #8
|
||||
device ref ehci1 on end # USB2 EHCI #1
|
||||
device ref pci_bridge off end # PCI bridge
|
||||
device ref lpc on # LPC bridge PCI-LPC bridge
|
||||
chip ec/lenovo/pmh7
|
||||
register "backlight_enable" = "true"
|
||||
register "dock_event_enable" = "true"
|
||||
device pnp ff.1 on end # dummy
|
||||
end
|
||||
chip drivers/pc80/tpm
|
||||
device pnp 0c31.0 on end
|
||||
end
|
||||
chip ec/lenovo/h8
|
||||
device pnp ff.2 on # dummy
|
||||
io 0x60 = 0x62
|
||||
io 0x62 = 0x66
|
||||
io 0x64 = 0x1600
|
||||
io 0x66 = 0x1604
|
||||
end
|
||||
register "config0" = "0xa7"
|
||||
register "config1" = "0x01"
|
||||
register "config2" = "0xa0"
|
||||
register "config3" = "0xe2"
|
||||
|
||||
register "has_keyboard_backlight" = "0"
|
||||
|
||||
register "beepmask0" = "0x02"
|
||||
register "beepmask1" = "0x86"
|
||||
register "has_power_management_beeps" = "1"
|
||||
register "event2_enable" = "0xff"
|
||||
register "event3_enable" = "0xff"
|
||||
register "event4_enable" = "0xf0"
|
||||
register "event5_enable" = "0x3c"
|
||||
register "event6_enable" = "0x00"
|
||||
register "event7_enable" = "0xa1"
|
||||
register "event8_enable" = "0x7b"
|
||||
register "event9_enable" = "0xff"
|
||||
register "eventa_enable" = "0x00"
|
||||
register "eventb_enable" = "0x00"
|
||||
register "eventc_enable" = "0xff"
|
||||
register "eventd_enable" = "0xff"
|
||||
register "evente_enable" = "0x0d"
|
||||
|
||||
register "bdc_gpio_num" = "54"
|
||||
register "bdc_gpio_lvl" = "0"
|
||||
|
||||
register "wwan_gpio_num" = "70"
|
||||
register "wwan_gpio_lvl" = "0"
|
||||
end
|
||||
chip drivers/lenovo/hybrid_graphics
|
||||
device pnp ff.f on end # dummy
|
||||
|
||||
register "detect_gpio" = "21"
|
||||
|
||||
register "has_panel_hybrid_gpio" = "true"
|
||||
register "panel_hybrid_gpio" = "52"
|
||||
register "panel_integrated_lvl" = "true"
|
||||
|
||||
register "has_backlight_gpio" = "false"
|
||||
register "has_dgpu_power_gpio" = "false"
|
||||
|
||||
register "has_thinker1" = "true"
|
||||
end
|
||||
end
|
||||
device ref sata1 on end # SATA Controller 1
|
||||
device ref smbus on # SMBus
|
||||
chip drivers/i2c/at24rf08c # eeprom, 8 virtual devices, same chip
|
||||
device i2c 54 on end
|
||||
device i2c 55 on end
|
||||
device i2c 56 on end
|
||||
device i2c 57 on end
|
||||
device i2c 5c on end
|
||||
device i2c 5d on end
|
||||
device i2c 5e on end
|
||||
device i2c 5f on end
|
||||
end
|
||||
end
|
||||
device ref sata2 off end # SATA Controller 2
|
||||
device ref thermal off end # Thermal
|
||||
end
|
||||
device ref host_bridge on end # Host bridge Host bridge
|
||||
device ref peg10 on end # PCIe Bridge for discrete graphics
|
||||
device ref igd on end # Internal graphics VGA controller
|
||||
device ref dev4 off end # Signal processing controller
|
||||
end
|
||||
end
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#define THINKPAD_EC_GPE 17
|
||||
#define BRIGHTNESS_UP \_SB.PCI0.GFX0.INCB
|
||||
#define BRIGHTNESS_DOWN \_SB.PCI0.GFX0.DECB
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
DefinitionBlock(
|
||||
"dsdt.aml",
|
||||
"DSDT",
|
||||
ACPI_DSDT_REV_2,
|
||||
OEM_ID,
|
||||
ACPI_TABLE_CREATOR,
|
||||
0x20110725 // OEM revision
|
||||
)
|
||||
{
|
||||
#include <acpi/dsdt_top.asl>
|
||||
#include <southbridge/intel/common/acpi/platform.asl>
|
||||
|
||||
#include "acpi/platform.asl"
|
||||
|
||||
// global NVS and variables
|
||||
#include <southbridge/intel/bd82x6x/acpi/globalnvs.asl>
|
||||
|
||||
#include <cpu/intel/common/acpi/cpu.asl>
|
||||
|
||||
Scope (\_SB) {
|
||||
Device (PCI0)
|
||||
{
|
||||
#include <northbridge/intel/sandybridge/acpi/sandybridge.asl>
|
||||
#include <southbridge/intel/bd82x6x/acpi/pch.asl>
|
||||
|
||||
#include <drivers/intel/gma/acpi/default_brightness_levels.asl>
|
||||
}
|
||||
}
|
||||
|
||||
#include <southbridge/intel/common/acpi/sleepstates.asl>
|
||||
#include <ec/lenovo/h8/acpi/thinklight.asl>
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <device/pci_ops.h>
|
||||
#include <device/pci_def.h>
|
||||
#include <ec/lenovo/pmh7/pmh7.h>
|
||||
#include <drivers/i2c/at24rf08c/lenovo.h>
|
||||
#include <drivers/lenovo/hybrid_graphics/hybrid_graphics.h>
|
||||
#include <northbridge/intel/sandybridge/sandybridge.h>
|
||||
|
||||
static void hybrid_graphics_init(void)
|
||||
{
|
||||
bool peg, igd;
|
||||
u32 reg32;
|
||||
|
||||
early_hybrid_graphics(&igd, &peg);
|
||||
|
||||
if (peg && igd)
|
||||
return;
|
||||
|
||||
/* Hide disabled devices */
|
||||
reg32 = pci_read_config32(PCI_DEV(0, 0, 0), DEVEN);
|
||||
reg32 &= ~(DEVEN_PEG10 | DEVEN_IGD);
|
||||
|
||||
if (peg)
|
||||
reg32 |= DEVEN_PEG10;
|
||||
|
||||
if (igd)
|
||||
reg32 |= DEVEN_IGD;
|
||||
else
|
||||
/* Disable IGD VGA decode, no GTT or GFX stolen */
|
||||
pci_write_config16(PCI_DEV(0, 0, 0), GGC, 2);
|
||||
|
||||
pci_write_config32(PCI_DEV(0, 0, 0), DEVEN, reg32);
|
||||
}
|
||||
|
||||
void mainboard_early_init(bool s3resume)
|
||||
{
|
||||
hybrid_graphics_init();
|
||||
lenovo_mainboard_eeprom_lock();
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
-- SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
with HW.GFX.GMA;
|
||||
with HW.GFX.GMA.Display_Probing;
|
||||
|
||||
use HW.GFX.GMA;
|
||||
use HW.GFX.GMA.Display_Probing;
|
||||
|
||||
private package GMA.Mainboard is
|
||||
|
||||
ports : constant Port_List :=
|
||||
(DP1,
|
||||
DP2,
|
||||
DP3,
|
||||
HDMI1,
|
||||
HDMI2,
|
||||
HDMI3,
|
||||
Analog,
|
||||
LVDS,
|
||||
others => Disabled);
|
||||
|
||||
end GMA.Mainboard;
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <device/device.h>
|
||||
#include <drivers/intel/gma/int15.h>
|
||||
|
||||
static void mainboard_enable(struct device *dev)
|
||||
{
|
||||
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS,
|
||||
GMA_INT15_PANEL_FIT_DEFAULT,
|
||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||
}
|
||||
|
||||
struct chip_operations mainboard_ops = {
|
||||
.enable_dev = mainboard_enable,
|
||||
};
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <arch/io.h>
|
||||
#include <console/console.h>
|
||||
#include <cpu/x86/smm.h>
|
||||
#include <ec/acpi/ec.h>
|
||||
#include <ec/lenovo/h8/h8.h>
|
||||
#include <southbridge/intel/common/pmutil.h>
|
||||
#include <southbridge/intel/bd82x6x/pch.h>
|
||||
|
||||
#define GPE_EC_SCI 1
|
||||
#define GPE_EC_WAKE 13
|
||||
|
||||
static void mainboard_smi_handle_ec_sci(void)
|
||||
{
|
||||
u8 status = inb(EC_SC);
|
||||
u8 event;
|
||||
|
||||
if (!(status & EC_SCI_EVT))
|
||||
return;
|
||||
|
||||
event = ec_query();
|
||||
printk(BIOS_DEBUG, "EC event %#02x\n", event);
|
||||
}
|
||||
|
||||
void mainboard_smi_gpi(u32 gpi_sts)
|
||||
{
|
||||
if (gpi_sts & (1 << GPE_EC_SCI))
|
||||
mainboard_smi_handle_ec_sci();
|
||||
}
|
||||
|
||||
int mainboard_smi_apmc(u8 data)
|
||||
{
|
||||
switch (data) {
|
||||
case APM_CNT_ACPI_ENABLE:
|
||||
/* use 0x1600/0x1604 to prevent races with userspace */
|
||||
ec_set_ports(0x1604, 0x1600);
|
||||
/* route EC_SCI to SCI */
|
||||
gpi_route_interrupt(GPE_EC_SCI, GPI_IS_SCI);
|
||||
/* discard all events, and enable attention */
|
||||
ec_write(0x80, 0x01);
|
||||
break;
|
||||
case APM_CNT_ACPI_DISABLE:
|
||||
/* we have to use port 0x62/0x66, as 0x1600/0x1604 doesn't
|
||||
provide a EC query function */
|
||||
ec_set_ports(0x66, 0x62);
|
||||
/* route EC_SCI to SMI */
|
||||
gpi_route_interrupt(GPE_EC_SCI, GPI_IS_SMI);
|
||||
/* discard all events, and enable attention */
|
||||
ec_write(0x80, 0x01);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void mainboard_smi_sleep(u8 slp_typ)
|
||||
{
|
||||
if (slp_typ == 3) {
|
||||
u8 ec_wake = ec_read(0x32);
|
||||
/* If EC wake events are enabled, enable wake on EC WAKE GPE. */
|
||||
if (ec_wake & 0x14) {
|
||||
/* Redirect EC WAKE GPE to SCI. */
|
||||
gpi_route_interrupt(GPE_EC_WAKE, GPI_IS_SCI);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
FLASH 0xc00000 {
|
||||
SI_ALL 0x20000 {
|
||||
SI_DESC 0x1000
|
||||
SI_GBE 0x2000
|
||||
SI_ME
|
||||
}
|
||||
SI_BIOS 0xbe0000 {
|
||||
UNIFIED_MRC_CACHE 0x20000 {
|
||||
RECOVERY_MRC_CACHE 0x10000
|
||||
RW_MRC_CACHE 0x10000
|
||||
}
|
||||
|
||||
WP_RO {
|
||||
FMAP 0x800
|
||||
RO_FRID 0x40
|
||||
RO_PADDING 0x7c0
|
||||
GBB 0x1e000
|
||||
COREBOOT(CBFS)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
FLASH 0xc00000 {
|
||||
SI_ALL 0x500000 {
|
||||
SI_DESC 0x1000
|
||||
SI_GBE 0x2000
|
||||
SI_ME
|
||||
}
|
||||
SI_BIOS 0x700000 {
|
||||
UNIFIED_MRC_CACHE 0x20000 {
|
||||
RECOVERY_MRC_CACHE 0x10000
|
||||
RW_MRC_CACHE 0x10000
|
||||
}
|
||||
|
||||
WP_RO {
|
||||
FMAP 0x800
|
||||
RO_FRID 0x40
|
||||
RO_PADDING 0x7c0
|
||||
GBB 0x1e000
|
||||
COREBOOT(CBFS)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
FLASH 0xc00000 {
|
||||
SI_ALL@0x0 0x500000 {
|
||||
SI_DESC@0x0 0x1000
|
||||
SI_GBE@0x1000 0x2000
|
||||
SI_ME
|
||||
}
|
||||
SI_BIOS@0x500000 0x700000 {
|
||||
RW_SECTION_A 0x280000 {
|
||||
VBLOCK_A 0x10000
|
||||
FW_MAIN_A(CBFS)
|
||||
RW_FWID_A 0x40
|
||||
}
|
||||
RW_SECTION_B 0x280000 {
|
||||
VBLOCK_B 0x10000
|
||||
FW_MAIN_B(CBFS)
|
||||
RW_FWID_B 0x40
|
||||
}
|
||||
UNIFIED_MRC_CACHE@0x500000 0x20000 {
|
||||
RECOVERY_MRC_CACHE@0x0 0x10000
|
||||
RW_MRC_CACHE@0x10000 0x10000
|
||||
}
|
||||
RW_VPD(PRESERVE) 0x1000
|
||||
SMMSTORE(PRESERVE)@0x521000 0x40000
|
||||
RW_NVRAM(PRESERVE)@0x561000 0x2000
|
||||
|
||||
WP_RO {
|
||||
FMAP 0x800
|
||||
RO_FRID 0x40
|
||||
RO_PADDING 0x7c0
|
||||
RO_VPD(PRESERVE) 0x1000
|
||||
GBB 0x1e000
|
||||
COREBOOT(CBFS)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -38,6 +38,10 @@ config BOARD_LENOVO_W530
|
|||
select BOARD_LENOVO_BASEBOARD_T530
|
||||
select DRIVERS_RICOH_RCE822
|
||||
|
||||
config BOARD_LENOVO_T430
|
||||
select BOARD_LENOVO_BASEBOARD_T530
|
||||
select DRIVERS_RICOH_RCE822
|
||||
|
||||
if BOARD_LENOVO_BASEBOARD_T530
|
||||
|
||||
config VBOOT
|
||||
|
|
@ -60,6 +64,7 @@ config FMDFILE
|
|||
config VARIANT_DIR
|
||||
default "t530" if BOARD_LENOVO_T530
|
||||
default "w530" if BOARD_LENOVO_W530
|
||||
default "t430" if BOARD_LENOVO_T430
|
||||
|
||||
config MAINBOARD_DIR
|
||||
default "lenovo/t530"
|
||||
|
|
@ -70,6 +75,7 @@ config OVERRIDE_DEVICETREE
|
|||
config MAINBOARD_PART_NUMBER
|
||||
default "ThinkPad T530" if BOARD_LENOVO_T530
|
||||
default "ThinkPad W530" if BOARD_LENOVO_W530
|
||||
default "ThinkPad T430" if BOARD_LENOVO_T430
|
||||
|
||||
config USBDEBUG_HCD_INDEX
|
||||
int
|
||||
|
|
@ -84,6 +90,7 @@ config VGA_BIOS_ID
|
|||
default "8086,0166"
|
||||
|
||||
config PS2K_EISAID
|
||||
default "PNP0303" if BOARD_LENOVO_T430
|
||||
default "LEN0071"
|
||||
|
||||
config PS2M_EISAID
|
||||
|
|
|
|||
|
|
@ -5,3 +5,6 @@ config BOARD_LENOVO_T530
|
|||
|
||||
config BOARD_LENOVO_W530
|
||||
bool "ThinkPad W530"
|
||||
|
||||
config BOARD_LENOVO_T430
|
||||
bool "ThinkPad T430"
|
||||
|
|
|
|||
|
|
@ -5,3 +5,4 @@ romstage-y += variants/$(VARIANT_DIR)/gpio.c
|
|||
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
|
||||
bootblock-y += early_init.c
|
||||
romstage-y += early_init.c
|
||||
ramstage-y += variants/$(VARIANT_DIR)/hda_verb.c
|
||||
|
|
|
|||
58
src/mainboard/lenovo/t530/variants/t430/overridetree.cb
Normal file
58
src/mainboard/lenovo/t530/variants/t430/overridetree.cb
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
chip northbridge/intel/sandybridge
|
||||
register "gpu_panel_power_backlight_on_delay" = "2100" # T3: 210ms
|
||||
register "gpu_panel_power_backlight_off_delay" = "2100" # T4: 210ms
|
||||
|
||||
register "spd_addresses" = "{0x50, 0, 0x51, 0}"
|
||||
device domain 0 on
|
||||
subsystemid 0x17aa 0x21f3 inherit
|
||||
chip southbridge/intel/bd82x6x # Intel Series 7 Panther Point PCH
|
||||
register "sata_interface_speed_support" = "0x3"
|
||||
register "sata_port_map" = "0x17"
|
||||
|
||||
# Do not enable xHCI Port 4 since WWAN USB is EHCI-only
|
||||
register "superspeed_capable_ports" = "0x7"
|
||||
register "xhci_switchable_ports" = "0x7"
|
||||
register "usb_port_config" = "{
|
||||
{ 1, 1, 0 },
|
||||
{ 1, 1, 1 },
|
||||
{ 1, 2, 3 },
|
||||
{ 1, 1, -1 },
|
||||
{ 1, 1, 2 },
|
||||
{ 1, 0, -1 },
|
||||
{ 0, 0, -1 },
|
||||
{ 1, 2, -1 },
|
||||
{ 1, 0, -1 },
|
||||
{ 1, 1, 5 },
|
||||
{ 1, 0, -1 },
|
||||
{ 1, 0, -1 },
|
||||
{ 1, 3, -1 },
|
||||
{ 1, 1, -1 }
|
||||
}"
|
||||
|
||||
device ref pcie_rp1 on # PCIe Port #1
|
||||
chip drivers/ricoh/rce822 # Ricoh cardreader
|
||||
register "disable_mask" = "0x87"
|
||||
register "sdwppol" = "1"
|
||||
device pci 00.0 on end # Ricoh SD card reader
|
||||
end
|
||||
end
|
||||
device ref lpc on
|
||||
chip ec/lenovo/h8
|
||||
device pnp ff.2 on end # dummy
|
||||
register "wwan_gpio_num" = "70"
|
||||
register "wwan_gpio_lvl" = "0"
|
||||
register "config1" = "0x01"
|
||||
register "config3" = "0xe2"
|
||||
register "has_keyboard_backlight" = "0"
|
||||
register "beepmask0" = "0x02"
|
||||
register "has_power_management_beeps" = "1"
|
||||
register "event4_enable" = "0xf0"
|
||||
register "event5_enable" = "0x3c"
|
||||
register "event7_enable" = "0xa1"
|
||||
register "eventa_enable" = "0x00"
|
||||
end
|
||||
end
|
||||
device ref thermal off end # Thermal
|
||||
end
|
||||
end
|
||||
end
|
||||
75
src/mainboard/lenovo/t530/variants/w530/hda_verb.c
Normal file
75
src/mainboard/lenovo/t530/variants/w530/hda_verb.c
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
/* Bits 31:28 - Codec Address */
|
||||
/* Bits 27:20 - NID */
|
||||
/* Bits 19:8 - Verb ID */
|
||||
/* Bits 7:0 - Payload */
|
||||
|
||||
#include <device/azalia_device.h>
|
||||
|
||||
const u32 cim_verb_data[] = {
|
||||
0x10ec0269, /* Codec Vendor / Device ID: Realtek ALC269VC */
|
||||
0x17aa21fa, /* Subsystem ID */
|
||||
18, /* Number of 4 dword sets */
|
||||
AZALIA_SUBVENDOR(0, 0x17aa21fa),
|
||||
|
||||
/* Ext. Microphone Connector: External,Right; MicIn,3.5mm; Black,JD; DA,Seq */
|
||||
AZALIA_PIN_CFG(0, 0x0a, 0x04a11020),
|
||||
|
||||
/* Headphones Connector: External,Right; HP,3.5mm; Black,JD; DA,Seq */
|
||||
AZALIA_PIN_CFG(0, 0x0b, 0x0421101f),
|
||||
|
||||
/* Not connected: N/A,N/A; Other,Unknown; Unknown,JD; DA,Seq */
|
||||
AZALIA_PIN_CFG(0, 0x0c, 0x40f000f0),
|
||||
|
||||
/* Internal Speakers Fixed,Int; Speaker,Other Analog; Unknown,nJD; DA,Seq */
|
||||
AZALIA_PIN_CFG(0, 0x0d, 0x90170110),
|
||||
|
||||
/* Not connected */
|
||||
AZALIA_PIN_CFG(0, 0x0f, 0x40f000f0),
|
||||
|
||||
/* Internal Microphone: Fixed,Int,Top; Mic In,ATIPI; Unknown,nJD; DA,Seq */
|
||||
AZALIA_PIN_CFG(0, 0x11, 0xd5a30140),
|
||||
AZALIA_PIN_CFG(0, 0x12, 0x90a60140),
|
||||
AZALIA_PIN_CFG(0, 0x14, 0x90170110),
|
||||
AZALIA_PIN_CFG(0, 0x15, 0x03211020),
|
||||
AZALIA_PIN_CFG(0, 0x18, 0x03a11830),
|
||||
AZALIA_PIN_CFG(0, 0x19, AZALIA_PIN_CFG_NC(0)),
|
||||
|
||||
0x01970804,
|
||||
0x01870803,
|
||||
0x01470740,
|
||||
0x00970600,
|
||||
|
||||
AZALIA_PIN_CFG(0, 0x1a, AZALIA_PIN_CFG_NC(0)),
|
||||
AZALIA_PIN_CFG(0, 0x1d, 0x40138205),
|
||||
AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_CFG_NC(0)),
|
||||
|
||||
/* Misc entries */
|
||||
0x00370600,
|
||||
0x00270600,
|
||||
0x00b707C0, /* Enable PortB as Output with HP amp */
|
||||
0x00d70740, /* Enable PortD as Output */
|
||||
0x0017a200, /* Disable ClkEn of PortSenseTst */
|
||||
0x0017c621, /* Slave Port - Port A used as microphone input for
|
||||
combo Jack
|
||||
Master Port - Port B used for Jack Presence Detect
|
||||
Enable Combo Jack Detection */
|
||||
0x0017a208, /* Enable ClkEn of PortSenseTst */
|
||||
0x00170500, /* Set power state to D0 */
|
||||
|
||||
/* --- Codec #3 --- */
|
||||
0x80862806, /* Codec Vendor / Device ID: Intel PantherPoint HDMI */
|
||||
0x80860101, /* Subsystem ID */
|
||||
4, /* Number of 4 dword sets */
|
||||
AZALIA_SUBVENDOR(3, 0x80860101),
|
||||
AZALIA_PIN_CFG(3, 0x05, 0x18560010),
|
||||
AZALIA_PIN_CFG(3, 0x06, 0x18560020),
|
||||
AZALIA_PIN_CFG(3, 0x07, 0x18560030),
|
||||
};
|
||||
|
||||
const u32 pc_beep_verbs[] = {
|
||||
0x02177a00, /* Digital PCBEEP Gain: 0h=-9db, 1h=-6db ... 4h=+3db, 5h=+6db */
|
||||
};
|
||||
|
||||
AZALIA_ARRAY_SIZES;
|
||||
Loading…
Add table
Add a link
Reference in a new issue