mb/lenovo/x230: Turn X230 into a variant

Other variants would be added later.

Change-Id: Ic6af14f0aa7a6f7378048f3c38d5713c18950366
Signed-off-by: Bill XIE <persmule@hardenedlinux.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/41509
Reviewed-by: Alexander Couzens <lynxis@fe80.eu>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Bill XIE 2020-05-18 21:22:50 +08:00 committed by Alexander Couzens
parent cfd78b1500
commit ebf1932f23
12 changed files with 121 additions and 94 deletions

View File

@ -50,11 +50,19 @@ config MAINBOARD_DIR
string
default "lenovo/x230"
config VARIANT_DIR
string
default "x230" if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T
config MAINBOARD_PART_NUMBER
string
default "ThinkPad X230" if BOARD_LENOVO_X230
default "ThinkPad X230t" if BOARD_LENOVO_X230T
config OVERRIDE_DEVICETREE
string
default "variants/$(CONFIG_VARIANT_DIR)/overridetree.cb"
config MAX_CPUS
int
default 8

View File

@ -1,9 +1,9 @@
## SPDX-License-Identifier: GPL-2.0-only
smm-y += smihandler.c
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
bootblock-y += variants/$(VARIANT_DIR)/early_init.c
bootblock-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/early_init.c
romstage-y += variants/$(VARIANT_DIR)/gpio.c
ramstage-y += variants/$(VARIANT_DIR)/hda_verb.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads

View File

@ -1,4 +1,5 @@
Category: laptop
Board name: ThinkPad X230 baseboard
ROM package: SOIC-8
ROM protocol: SPI
ROM socketed: n

View File

@ -58,8 +58,6 @@ chip northbridge/intel/sandybridge
register "gen2_dec" = "0x0c15e1"
register "gen4_dec" = "0x0c06a1"
register "pcie_hotplug_map" = "{ 0, 0, 1, 0, 0, 0, 0, 0 }"
register "xhci_switchable_ports" = "0xf"
register "superspeed_capable_ports" = "0xf"
register "xhci_overcurrent_mapping" = "0x4000201"
@ -89,9 +87,7 @@ chip northbridge/intel/sandybridge
end
end # PCIe Port #1
device pci 1c.1 on end # PCIe Port #2
device pci 1c.2 on
smbios_slot_desc "7" "3" "ExpressCard Slot" "8"
end # PCIe Port #3 (expresscard)
device pci 1c.2 off end # PCIe Port #3
device pci 1c.3 off end # PCIe Port #4
device pci 1c.4 off end # PCIe Port #5
device pci 1c.5 off end # PCIe Port #6
@ -136,7 +132,6 @@ chip northbridge/intel/sandybridge
register "event7_enable" = "0x01"
register "event8_enable" = "0x7b"
register "event9_enable" = "0xff"
register "eventa_enable" = "0x01"
register "eventb_enable" = "0x00"
register "eventc_enable" = "0xff"
register "eventd_enable" = "0xff"

View File

@ -1,82 +1 @@
/* 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[] = {
/* --- Codec #0 --- */
0x10ec0269, /* Codec Vendor / Device ID: Realtek ALC269VC */
0x17aa21fa, /* Subsystem ID */
19, /* 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, 0x411111f0),
AZALIA_PIN_CFG(0, 0x1a, 0x411111f0),
AZALIA_PIN_CFG(0, 0x1d, 0x40138205),
AZALIA_PIN_CFG(0, 0x1e, 0x411111f0),
/* Misc entries */
0x01970804,
0x01870803,
0x01470740,
0x00970640,
0x00370680,
0x00270680,
0x01470c02,
0x01570c02,
/* ALC coefficients. */
/* 08 */
0x02050008,
0x02040700,
/* 18 */
0x02050018,
0x02045184,
/* 1c */
0x0205001c,
0x02042800,
0x01870724, /* Enable Vrefout for mic */
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;
/* dummy */

View File

@ -0,0 +1,7 @@
Category: laptop
Board name: ThinkPad X230
ROM package: SOIC-8
ROM protocol: SPI
ROM socketed: n
Flashrom support: n
Release year: 2012

View File

@ -0,0 +1,82 @@
/* 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[] = {
/* --- Codec #0 --- */
0x10ec0269, /* Codec Vendor / Device ID: Realtek ALC269VC */
0x17aa21fa, /* Subsystem ID */
19, /* 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, 0x411111f0),
AZALIA_PIN_CFG(0, 0x1a, 0x411111f0),
AZALIA_PIN_CFG(0, 0x1d, 0x40138205),
AZALIA_PIN_CFG(0, 0x1e, 0x411111f0),
/* Misc entries */
0x01970804,
0x01870803,
0x01470740,
0x00970640,
0x00370680,
0x00270680,
0x01470c02,
0x01570c02,
/* ALC coefficients. */
/* 08 */
0x02050008,
0x02040700,
/* 18 */
0x02050018,
0x02045184,
/* 1c */
0x0205001c,
0x02042800,
0x01870724, /* Enable Vrefout for mic */
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;

View File

@ -0,0 +1,15 @@
chip northbridge/intel/sandybridge
device domain 0 on
chip southbridge/intel/bd82x6x # Intel Series 7 Panther Point PCH
register "pcie_hotplug_map" = "{ 0, 0, 1, 0, 0, 0, 0, 0 }"
device pci 1c.2 on
smbios_slot_desc "7" "3" "ExpressCard Slot" "8"
end # PCIe Port #3 (expresscard)
device pci 1f.0 on # LPC bridge
chip ec/lenovo/h8
register "eventa_enable" = "0x01"
end
end # LPC Controller
end
end
end