mb/dell: Add Latitude E6330 (Ivy Bridge)
Mainboard is QAL70/LA-7741P. I do not physically have this system; someone with physical access to one sent me the output of autoport which I then modified to produce this port. I was also sent the VBT binary, which was obtained from `/sys/kernel/debug/dri/0/i915_vbt` while running version A21 of the vendor firmware. This port has not been tested. The EC is the SMSC MEC5055, which seems to be compatible with the existing MEC5035 code. As with the other Dell systems with this EC, this board is assumed to be internally flashable using an EC command that tells it to pull the FDO pin low on the next boot, which also tells the vendor firmware to disable all write protections to the flash [1]. [1] https://gitlab.com/nic3-14159/dell-flash-unlock Change-Id: I827826e9ff8a9a534c50250458b399104478e06c Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/82152 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
This commit is contained in:
parent
908c1b0b8e
commit
189a59edbc
7 changed files with 288 additions and 1 deletions
|
|
@ -56,6 +56,12 @@ config BOARD_DELL_LATITUDE_E5530
|
|||
select BOARD_ROMSIZE_KB_12288
|
||||
select SOUTHBRIDGE_INTEL_C216
|
||||
|
||||
config BOARD_DELL_LATITUDE_E6330
|
||||
select BOARD_DELL_SNB_IVB_LATITUDE_COMMON
|
||||
select BOARD_ROMSIZE_KB_12288
|
||||
select MAINBOARD_USES_IFD_GBE_REGION
|
||||
select SOUTHBRIDGE_INTEL_C216
|
||||
|
||||
config BOARD_DELL_LATITUDE_E6430
|
||||
select BOARD_DELL_SNB_IVB_LATITUDE_COMMON
|
||||
select BOARD_ROMSIZE_KB_12288
|
||||
|
|
@ -84,6 +90,7 @@ config MAINBOARD_PART_NUMBER
|
|||
default "Latitude E6420" if BOARD_DELL_LATITUDE_E6420
|
||||
default "Latitude E6520" if BOARD_DELL_LATITUDE_E6520
|
||||
default "Latitude E5530" if BOARD_DELL_LATITUDE_E5530
|
||||
default "Latitude E6330" if BOARD_DELL_LATITUDE_E6330
|
||||
default "Latitude E6430" if BOARD_DELL_LATITUDE_E6430
|
||||
default "Latitude E6530" if BOARD_DELL_LATITUDE_E6530
|
||||
|
||||
|
|
@ -101,13 +108,15 @@ config VARIANT_DIR
|
|||
default "e6420" if BOARD_DELL_LATITUDE_E6420
|
||||
default "e6520" if BOARD_DELL_LATITUDE_E6520
|
||||
default "e5530" if BOARD_DELL_LATITUDE_E5530
|
||||
default "e6330" if BOARD_DELL_LATITUDE_E6330
|
||||
default "e6430" if BOARD_DELL_LATITUDE_E6430
|
||||
default "e6530" if BOARD_DELL_LATITUDE_E6530
|
||||
|
||||
config VGA_BIOS_ID
|
||||
default "8086,0116" if BOARD_DELL_LATITUDE_E6520 \
|
||||
|| BOARD_DELL_LATITUDE_E5420
|
||||
default "8086,0166" if BOARD_DELL_LATITUDE_E5530
|
||||
default "8086,0166" if BOARD_DELL_LATITUDE_E5530 \
|
||||
|| BOARD_DELL_LATITUDE_E6330
|
||||
default "8086,0126" if BOARD_DELL_LATITUDE_E6420 \
|
||||
|| BOARD_DELL_LATITUDE_E5520 \
|
||||
|| BOARD_DELL_LATITUDE_E6220 \
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ config BOARD_DELL_LATITUDE_E6520
|
|||
config BOARD_DELL_LATITUDE_E5530
|
||||
bool "Latitude E5530"
|
||||
|
||||
config BOARD_DELL_LATITUDE_E6330
|
||||
bool "Latitude E6330"
|
||||
|
||||
config BOARD_DELL_LATITUDE_E6430
|
||||
bool "Latitude E6430"
|
||||
|
||||
|
|
|
|||
BIN
src/mainboard/dell/snb_ivb_latitude/variants/e6330/data.vbt
Normal file
BIN
src/mainboard/dell/snb_ivb_latitude/variants/e6330/data.vbt
Normal file
Binary file not shown.
|
|
@ -0,0 +1,14 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <bootblock_common.h>
|
||||
#include <device/pci_ops.h>
|
||||
#include <ec/dell/mec5035/mec5035.h>
|
||||
#include <southbridge/intel/bd82x6x/pch.h>
|
||||
|
||||
void bootblock_mainboard_early_init(void)
|
||||
{
|
||||
pci_write_config16(PCH_LPC_DEV, LPC_EN, CNF1_LPC_EN | MC_LPC_EN
|
||||
| KBC_LPC_EN | FDD_LPC_EN | LPT_LPC_EN
|
||||
| COMB_LPC_EN | COMA_LPC_EN);
|
||||
mec5035_early_init();
|
||||
}
|
||||
192
src/mainboard/dell/snb_ivb_latitude/variants/e6330/gpio.c
Normal file
192
src/mainboard/dell/snb_ivb_latitude/variants/e6330/gpio.c
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <southbridge/intel/common/gpio.h>
|
||||
|
||||
static const struct pch_gpio_set1 pch_gpio_set1_mode = {
|
||||
.gpio0 = GPIO_MODE_GPIO,
|
||||
.gpio1 = GPIO_MODE_GPIO,
|
||||
.gpio2 = GPIO_MODE_GPIO,
|
||||
.gpio3 = GPIO_MODE_GPIO,
|
||||
.gpio4 = GPIO_MODE_GPIO,
|
||||
.gpio5 = GPIO_MODE_NATIVE,
|
||||
.gpio6 = GPIO_MODE_GPIO,
|
||||
.gpio7 = GPIO_MODE_GPIO,
|
||||
.gpio8 = GPIO_MODE_GPIO,
|
||||
.gpio9 = GPIO_MODE_NATIVE,
|
||||
.gpio10 = GPIO_MODE_NATIVE,
|
||||
.gpio11 = GPIO_MODE_NATIVE,
|
||||
.gpio12 = GPIO_MODE_NATIVE,
|
||||
.gpio13 = GPIO_MODE_GPIO,
|
||||
.gpio14 = GPIO_MODE_GPIO,
|
||||
.gpio15 = GPIO_MODE_GPIO,
|
||||
.gpio16 = GPIO_MODE_GPIO,
|
||||
.gpio17 = GPIO_MODE_GPIO,
|
||||
.gpio18 = GPIO_MODE_NATIVE,
|
||||
.gpio19 = GPIO_MODE_GPIO,
|
||||
.gpio20 = GPIO_MODE_NATIVE,
|
||||
.gpio21 = GPIO_MODE_GPIO,
|
||||
.gpio22 = GPIO_MODE_GPIO,
|
||||
.gpio23 = GPIO_MODE_NATIVE,
|
||||
.gpio24 = GPIO_MODE_GPIO,
|
||||
.gpio25 = GPIO_MODE_NATIVE,
|
||||
.gpio26 = GPIO_MODE_NATIVE,
|
||||
.gpio27 = GPIO_MODE_GPIO,
|
||||
.gpio28 = GPIO_MODE_GPIO,
|
||||
.gpio29 = GPIO_MODE_GPIO,
|
||||
.gpio30 = GPIO_MODE_NATIVE,
|
||||
.gpio31 = GPIO_MODE_NATIVE,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set1 pch_gpio_set1_direction = {
|
||||
.gpio0 = GPIO_DIR_INPUT,
|
||||
.gpio1 = GPIO_DIR_INPUT,
|
||||
.gpio2 = GPIO_DIR_INPUT,
|
||||
.gpio3 = GPIO_DIR_INPUT,
|
||||
.gpio4 = GPIO_DIR_INPUT,
|
||||
.gpio6 = GPIO_DIR_INPUT,
|
||||
.gpio7 = GPIO_DIR_INPUT,
|
||||
.gpio8 = GPIO_DIR_INPUT,
|
||||
.gpio13 = GPIO_DIR_INPUT,
|
||||
.gpio14 = GPIO_DIR_INPUT,
|
||||
.gpio15 = GPIO_DIR_INPUT,
|
||||
.gpio16 = GPIO_DIR_INPUT,
|
||||
.gpio17 = GPIO_DIR_INPUT,
|
||||
.gpio19 = GPIO_DIR_INPUT,
|
||||
.gpio21 = GPIO_DIR_INPUT,
|
||||
.gpio22 = GPIO_DIR_INPUT,
|
||||
.gpio24 = GPIO_DIR_INPUT,
|
||||
.gpio27 = GPIO_DIR_INPUT,
|
||||
.gpio28 = GPIO_DIR_OUTPUT,
|
||||
.gpio29 = GPIO_DIR_INPUT,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set1 pch_gpio_set1_level = {
|
||||
.gpio28 = GPIO_LEVEL_LOW,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set1 pch_gpio_set1_reset = {
|
||||
.gpio30 = GPIO_RESET_RSMRST,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set1 pch_gpio_set1_invert = {
|
||||
.gpio0 = GPIO_INVERT,
|
||||
.gpio8 = GPIO_INVERT,
|
||||
.gpio13 = GPIO_INVERT,
|
||||
.gpio14 = GPIO_INVERT,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set1 pch_gpio_set1_blink = {
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set2 pch_gpio_set2_mode = {
|
||||
.gpio32 = GPIO_MODE_NATIVE,
|
||||
.gpio33 = GPIO_MODE_GPIO,
|
||||
.gpio34 = GPIO_MODE_GPIO,
|
||||
.gpio35 = GPIO_MODE_GPIO,
|
||||
.gpio36 = GPIO_MODE_GPIO,
|
||||
.gpio37 = GPIO_MODE_GPIO,
|
||||
.gpio38 = GPIO_MODE_GPIO,
|
||||
.gpio39 = GPIO_MODE_GPIO,
|
||||
.gpio40 = GPIO_MODE_NATIVE,
|
||||
.gpio41 = GPIO_MODE_NATIVE,
|
||||
.gpio42 = GPIO_MODE_NATIVE,
|
||||
.gpio43 = GPIO_MODE_NATIVE,
|
||||
.gpio44 = GPIO_MODE_NATIVE,
|
||||
.gpio45 = GPIO_MODE_GPIO,
|
||||
.gpio46 = GPIO_MODE_NATIVE,
|
||||
.gpio47 = GPIO_MODE_NATIVE,
|
||||
.gpio48 = GPIO_MODE_GPIO,
|
||||
.gpio49 = GPIO_MODE_GPIO,
|
||||
.gpio50 = GPIO_MODE_NATIVE,
|
||||
.gpio51 = GPIO_MODE_GPIO,
|
||||
.gpio52 = GPIO_MODE_GPIO,
|
||||
.gpio53 = GPIO_MODE_NATIVE,
|
||||
.gpio54 = GPIO_MODE_GPIO,
|
||||
.gpio55 = GPIO_MODE_NATIVE,
|
||||
.gpio56 = GPIO_MODE_NATIVE,
|
||||
.gpio57 = GPIO_MODE_GPIO,
|
||||
.gpio58 = GPIO_MODE_NATIVE,
|
||||
.gpio59 = GPIO_MODE_NATIVE,
|
||||
.gpio60 = GPIO_MODE_GPIO,
|
||||
.gpio61 = GPIO_MODE_NATIVE,
|
||||
.gpio62 = GPIO_MODE_NATIVE,
|
||||
.gpio63 = GPIO_MODE_NATIVE,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set2 pch_gpio_set2_direction = {
|
||||
.gpio33 = GPIO_DIR_INPUT,
|
||||
.gpio34 = GPIO_DIR_OUTPUT,
|
||||
.gpio35 = GPIO_DIR_INPUT,
|
||||
.gpio36 = GPIO_DIR_INPUT,
|
||||
.gpio37 = GPIO_DIR_INPUT,
|
||||
.gpio38 = GPIO_DIR_INPUT,
|
||||
.gpio39 = GPIO_DIR_INPUT,
|
||||
.gpio45 = GPIO_DIR_OUTPUT,
|
||||
.gpio48 = GPIO_DIR_INPUT,
|
||||
.gpio49 = GPIO_DIR_INPUT,
|
||||
.gpio51 = GPIO_DIR_INPUT,
|
||||
.gpio52 = GPIO_DIR_INPUT,
|
||||
.gpio54 = GPIO_DIR_INPUT,
|
||||
.gpio57 = GPIO_DIR_INPUT,
|
||||
.gpio60 = GPIO_DIR_OUTPUT,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set2 pch_gpio_set2_level = {
|
||||
.gpio34 = GPIO_LEVEL_HIGH,
|
||||
.gpio45 = GPIO_LEVEL_LOW,
|
||||
.gpio60 = GPIO_LEVEL_HIGH,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set2 pch_gpio_set2_reset = {
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set3 pch_gpio_set3_mode = {
|
||||
.gpio64 = GPIO_MODE_NATIVE,
|
||||
.gpio65 = GPIO_MODE_NATIVE,
|
||||
.gpio66 = GPIO_MODE_NATIVE,
|
||||
.gpio67 = GPIO_MODE_NATIVE,
|
||||
.gpio68 = GPIO_MODE_GPIO,
|
||||
.gpio69 = GPIO_MODE_GPIO,
|
||||
.gpio70 = GPIO_MODE_GPIO,
|
||||
.gpio71 = GPIO_MODE_GPIO,
|
||||
.gpio72 = GPIO_MODE_NATIVE,
|
||||
.gpio73 = GPIO_MODE_NATIVE,
|
||||
.gpio74 = GPIO_MODE_NATIVE,
|
||||
.gpio75 = GPIO_MODE_NATIVE,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set3 pch_gpio_set3_direction = {
|
||||
.gpio68 = GPIO_DIR_INPUT,
|
||||
.gpio69 = GPIO_DIR_INPUT,
|
||||
.gpio70 = GPIO_DIR_INPUT,
|
||||
.gpio71 = GPIO_DIR_INPUT,
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set3 pch_gpio_set3_level = {
|
||||
};
|
||||
|
||||
static const struct pch_gpio_set3 pch_gpio_set3_reset = {
|
||||
};
|
||||
|
||||
const struct pch_gpio_map mainboard_gpio_map = {
|
||||
.set1 = {
|
||||
.mode = &pch_gpio_set1_mode,
|
||||
.direction = &pch_gpio_set1_direction,
|
||||
.level = &pch_gpio_set1_level,
|
||||
.blink = &pch_gpio_set1_blink,
|
||||
.invert = &pch_gpio_set1_invert,
|
||||
.reset = &pch_gpio_set1_reset,
|
||||
},
|
||||
.set2 = {
|
||||
.mode = &pch_gpio_set2_mode,
|
||||
.direction = &pch_gpio_set2_direction,
|
||||
.level = &pch_gpio_set2_level,
|
||||
.reset = &pch_gpio_set2_reset,
|
||||
},
|
||||
.set3 = {
|
||||
.mode = &pch_gpio_set3_mode,
|
||||
.direction = &pch_gpio_set3_direction,
|
||||
.level = &pch_gpio_set3_level,
|
||||
.reset = &pch_gpio_set3_reset,
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <device/azalia_device.h>
|
||||
|
||||
const u32 cim_verb_data[] = {
|
||||
0x111d76df, /* Codec Vendor / Device ID: IDT */
|
||||
0x10280533, /* Subsystem ID */
|
||||
11, /* Number of 4 dword sets */
|
||||
AZALIA_SUBVENDOR(0, 0x10280533),
|
||||
AZALIA_PIN_CFG(0, 0x0a, 0x03a11020),
|
||||
AZALIA_PIN_CFG(0, 0x0b, 0x0321101f),
|
||||
AZALIA_PIN_CFG(0, 0x0c, 0x400000f0),
|
||||
AZALIA_PIN_CFG(0, 0x0d, 0x90170110),
|
||||
AZALIA_PIN_CFG(0, 0x0e, 0x23011050),
|
||||
AZALIA_PIN_CFG(0, 0x0f, 0x23a1102e),
|
||||
AZALIA_PIN_CFG(0, 0x10, 0x400000f3),
|
||||
AZALIA_PIN_CFG(0, 0x11, 0xd5a30130),
|
||||
AZALIA_PIN_CFG(0, 0x1f, 0x400000f0),
|
||||
AZALIA_PIN_CFG(0, 0x20, 0x400000f0),
|
||||
|
||||
0x80862806, /* Codec Vendor / Device ID: Intel */
|
||||
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[0] = {};
|
||||
|
||||
AZALIA_ARRAY_SIZES;
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
## SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
chip northbridge/intel/sandybridge
|
||||
device domain 0 on
|
||||
subsystemid 0x1028 0x0533 inherit
|
||||
|
||||
device ref igd on
|
||||
register "gpu_cpu_backlight" = "0x00001312"
|
||||
register "gpu_pch_backlight" = "0x13121312"
|
||||
end
|
||||
|
||||
chip southbridge/intel/bd82x6x
|
||||
register "usb_port_config" = "{
|
||||
{ 1, 2, 0 },
|
||||
{ 1, 0, 0 },
|
||||
{ 1, 0, 1 },
|
||||
{ 1, 1, 1 },
|
||||
{ 1, 1, 2 },
|
||||
{ 1, 1, 2 },
|
||||
{ 1, 2, 3 },
|
||||
{ 1, 2, 3 },
|
||||
{ 1, 2, 4 },
|
||||
{ 1, 1, 4 },
|
||||
{ 1, 1, 5 },
|
||||
{ 1, 1, 5 },
|
||||
{ 1, 2, 6 },
|
||||
{ 1, 0, 6 },
|
||||
}"
|
||||
|
||||
device ref xhci on
|
||||
register "superspeed_capable_ports" = "0x0000000f"
|
||||
register "xhci_overcurrent_mapping" = "0x00000c03"
|
||||
register "xhci_switchable_ports" = "0x0000000f"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue