diff options
author | Bill XIE <persmule@hardenedlinux.org> | 2020-05-18 21:22:50 +0800 |
---|---|---|
committer | Alexander Couzens <lynxis@fe80.eu> | 2020-05-21 03:05:38 +0000 |
commit | ebf1932f23dcacf995064cf1c790568b6914f99a (patch) | |
tree | 9d7e2594d01deac525f2ef7cdaab5eed02f52357 /src/mainboard/lenovo/x230 | |
parent | cfd78b1500bed6d3d410f984450c45f28b700aa2 (diff) |
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>
Diffstat (limited to 'src/mainboard/lenovo/x230')
-rw-r--r-- | src/mainboard/lenovo/x230/Kconfig | 8 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/Makefile.inc | 12 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/board_info.txt | 1 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/devicetree.cb | 7 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/hda_verb.c | 83 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230/board_info.txt | 7 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230/data.vbt (renamed from src/mainboard/lenovo/x230/data.vbt) | bin | 4281 -> 4281 bytes | |||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230/early_init.c (renamed from src/mainboard/lenovo/x230/early_init.c) | 0 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230/gma-mainboard.ads (renamed from src/mainboard/lenovo/x230/gma-mainboard.ads) | 0 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230/gpio.c (renamed from src/mainboard/lenovo/x230/gpio.c) | 0 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230/hda_verb.c | 82 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230/overridetree.cb | 15 |
12 files changed, 121 insertions, 94 deletions
diff --git a/src/mainboard/lenovo/x230/Kconfig b/src/mainboard/lenovo/x230/Kconfig index 7d563efb2b..37b264dab2 100644 --- a/src/mainboard/lenovo/x230/Kconfig +++ b/src/mainboard/lenovo/x230/Kconfig @@ -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 diff --git a/src/mainboard/lenovo/x230/Makefile.inc b/src/mainboard/lenovo/x230/Makefile.inc index 991eadbff2..5316d24d88 100644 --- a/src/mainboard/lenovo/x230/Makefile.inc +++ b/src/mainboard/lenovo/x230/Makefile.inc @@ -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 diff --git a/src/mainboard/lenovo/x230/board_info.txt b/src/mainboard/lenovo/x230/board_info.txt index 09ddde1f85..505c59a58b 100644 --- a/src/mainboard/lenovo/x230/board_info.txt +++ b/src/mainboard/lenovo/x230/board_info.txt @@ -1,4 +1,5 @@ Category: laptop +Board name: ThinkPad X230 baseboard ROM package: SOIC-8 ROM protocol: SPI ROM socketed: n diff --git a/src/mainboard/lenovo/x230/devicetree.cb b/src/mainboard/lenovo/x230/devicetree.cb index e34734c4c3..3a8e5fe852 100644 --- a/src/mainboard/lenovo/x230/devicetree.cb +++ b/src/mainboard/lenovo/x230/devicetree.cb @@ -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" diff --git a/src/mainboard/lenovo/x230/hda_verb.c b/src/mainboard/lenovo/x230/hda_verb.c index 05fb3fd775..2997587d82 100644 --- a/src/mainboard/lenovo/x230/hda_verb.c +++ b/src/mainboard/lenovo/x230/hda_verb.c @@ -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 */ diff --git a/src/mainboard/lenovo/x230/variants/x230/board_info.txt b/src/mainboard/lenovo/x230/variants/x230/board_info.txt new file mode 100644 index 0000000000..22281e6aa8 --- /dev/null +++ b/src/mainboard/lenovo/x230/variants/x230/board_info.txt @@ -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 diff --git a/src/mainboard/lenovo/x230/data.vbt b/src/mainboard/lenovo/x230/variants/x230/data.vbt Binary files differindex 0f50d706c1..0f50d706c1 100644 --- a/src/mainboard/lenovo/x230/data.vbt +++ b/src/mainboard/lenovo/x230/variants/x230/data.vbt diff --git a/src/mainboard/lenovo/x230/early_init.c b/src/mainboard/lenovo/x230/variants/x230/early_init.c index 2089ee6bb2..2089ee6bb2 100644 --- a/src/mainboard/lenovo/x230/early_init.c +++ b/src/mainboard/lenovo/x230/variants/x230/early_init.c diff --git a/src/mainboard/lenovo/x230/gma-mainboard.ads b/src/mainboard/lenovo/x230/variants/x230/gma-mainboard.ads index 3df1e37f3e..3df1e37f3e 100644 --- a/src/mainboard/lenovo/x230/gma-mainboard.ads +++ b/src/mainboard/lenovo/x230/variants/x230/gma-mainboard.ads diff --git a/src/mainboard/lenovo/x230/gpio.c b/src/mainboard/lenovo/x230/variants/x230/gpio.c index 8de285b34f..8de285b34f 100644 --- a/src/mainboard/lenovo/x230/gpio.c +++ b/src/mainboard/lenovo/x230/variants/x230/gpio.c diff --git a/src/mainboard/lenovo/x230/variants/x230/hda_verb.c b/src/mainboard/lenovo/x230/variants/x230/hda_verb.c new file mode 100644 index 0000000000..05fb3fd775 --- /dev/null +++ b/src/mainboard/lenovo/x230/variants/x230/hda_verb.c @@ -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; diff --git a/src/mainboard/lenovo/x230/variants/x230/overridetree.cb b/src/mainboard/lenovo/x230/variants/x230/overridetree.cb new file mode 100644 index 0000000000..5f2f3a58d5 --- /dev/null +++ b/src/mainboard/lenovo/x230/variants/x230/overridetree.cb @@ -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 |