Iru Cai (mytbk920423(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18480
-gerrit
commit e30005f2d78792e5378f39839e580cae45ce6662
Author: Iru Cai <mytbk920423(a)gmail.com>
Date: Fri Feb 24 15:35:55 2017 +0800
superiotool: add SMSC KBC1126
Device ID is read from HP Elitebook 2760p.
LDNs come from superio/smsc/kbc1100/kbc1100.h.
Keyboard and EC registers come from superio/sms/kbc1100/early_init.c.
COM1 and Mailbox come from the DSDT dump of 2760p.
Change-Id: Id172ae42411a6d42a4ae7c7f30f96aeda3e6c384
Signed-off-by: Iru Cai <mytbk920423(a)gmail.com>
---
util/superiotool/smsc.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/util/superiotool/smsc.c b/util/superiotool/smsc.c
index 15ba131..3bc85fc 100644
--- a/util/superiotool/smsc.c
+++ b/util/superiotool/smsc.c
@@ -68,6 +68,36 @@ static const struct superio_registers reg_table[] = {
{0x03, "FDC37C93xFR", {
/* FIXME: There's another 0x03 but found on port 0x0d/0x0e! */
{EOT}}},
+ {0x07, "KBC1126", { /* Found in HP Elitebook 2760p and 8470p */
+ /* FIXME: The registers are mostly copied from MEC1308,
+ * and LDNs are from superio/smsc/kbc1100/kbc1100.h,
+ * which may be different in KBC1126.*/
+ {NOLDN, NULL,
+ {0x02,0x03,0x07,0x17,0x20,0x21,0x22,0x23,0x24,0x25,
+ 0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+ EOT},
+ {0x00,RSVD,0x00,RSVD,0x07,0x00,0x00,0x00,0x04,0x04,
+ MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
+ EOT}},
+ {0x1, "Power management (PM1)",
+ {0x30,0x60,0x61,EOT},
+ {0x00,0x00,0x00,EOT}},
+ {0x4, "COM1", /* Found in DSDT, used by Wacom serial tablet */
+ {0x30,0x60,0x61,0x70,0xf0,EOT},
+ {0x00,0x00,0x00,0x00,0x00,EOT}},
+ {0x7, "Keyboard",
+ {0x30,0x60,0x61,0x70,0x72,0xf0,EOT},
+ {0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
+ {0x8, "Embedded controller (EC)",
+ {0x30,0x60,0x61,EOT},
+ {0x00,0x00,0x62,EOT}},
+ {0x9, "Mailbox", /* Found in DSDT, named MAIO */
+ {0x30,0x60,0x61,EOT},
+ {0x00,0x00,0x00,EOT}},
+ {0xa, "LPC/8051 addressable GPIO (LGPIO)",
+ {0x30,0x60,0x61,EOT},
+ {0x00,0x00,0x00,EOT}},
+ {EOT}}},
{0x0a, "FDC37N971", {
{NOLDN, NULL,
{0x02,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
Arthur Heymans (arthur(a)aheymans.xyz) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18515
-gerrit
commit 19906decddfce25a0cd41e3d9edab75d53e7ff35
Author: Arthur Heymans <arthur(a)aheymans.xyz>
Date: Mon Feb 27 20:14:21 2017 +0100
nb/x4x: Do not enable IGD when not supported
According to "Intel ® 4 Series Chipset Family datasheet" in the
description about GGC and DEVEN, CAPID0 bit48 is said to reflect the
presence of an internal graphic device. This would allow the P43 and
P45 chipset variants to work.
Change-Id: Icdaa2862f82000de6d51278098365c63b7719f7f
Signed-off-by: Arthur Heymans <arthur(a)aheymans.xyz>
---
src/northbridge/intel/x4x/early_init.c | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/northbridge/intel/x4x/early_init.c b/src/northbridge/intel/x4x/early_init.c
index 7d6afc9..33fc797 100644
--- a/src/northbridge/intel/x4x/early_init.c
+++ b/src/northbridge/intel/x4x/early_init.c
@@ -54,16 +54,22 @@ void x4x_early_init(void)
pci_write_config8(d0f0, D0F0_PAM(5), 0x33);
pci_write_config8(d0f0, D0F0_PAM(6), 0x33);
- /* Enable internal GFX */
- pci_write_config32(d0f0, D0F0_DEVEN, BOARD_DEVEN);
- /* Set preallocated IGD size from cmos */
- u8 gfxsize;
-
- if (get_option(&gfxsize, "gfx_uma_size") != CB_SUCCESS) {
- /* 6 for 64MB, default if not set in cmos */
- gfxsize = 6;
+ if (pci_read_config32(d0f0, D0F0_CAPID0 + 4) & (1 << (46 - 32))) {
+ /* Enable internal GFX */
+ pci_write_config32(d0f0, D0F0_DEVEN, BOARD_DEVEN);
+ /* Set preallocated IGD size from cmos */
+ u8 gfxsize;
+
+ if (get_option(&gfxsize, "gfx_uma_size") != CB_SUCCESS) {
+ /* 6 for 64MB, default if not set in cmos */
+ gfxsize = 6;
+ }
+ pci_write_config16(d0f0, D0F0_GGC,
+ 0x0100 | ((gfxsize + 1) << 4));
+ } else { /* Does not feature internal graphics */
+ pci_write_config32(d0f0, D0F0_DEVEN, D0EN | D1EN | PEG1EN);
+ pci_write_config16(d0f0, D0F0_GGC, (1 << 1));
}
- pci_write_config16(d0f0, D0F0_GGC, 0x0100 | ((gfxsize + 1) << 4));
}
static void init_egress(void)