mb/foxconn/g41s-k: Add g41m variant
Was tested with the following: - 2 DIMM slots - USB - Ethernet NIC - automatic fan control - Libgfxinit with VGA, DVI (HDMI slot unpopulated) - PS2 Keyboard - SATA - PEG - S3 resume What does not work: - Using the second DIMM slot on a channel G41 can only handle 2 ranks per channel and on this mainboard 1 rank per DIMM slot. Supporting this would require too much raminit rework and is not worth it (at least for me) Change-Id: I67784038ef929f561b82365f00db70a69c024321 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/30242 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
parent
13f58e47ed
commit
f3e50fc681
@ -14,7 +14,7 @@
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
|
||||
if BOARD_FOXCONN_G41S_K
|
||||
if BOARD_FOXCONN_G41S_K || BOARD_FOXCONN_G41M
|
||||
|
||||
config BOARD_SPECIFIC_OPTIONS
|
||||
def_bool y
|
||||
@ -39,9 +39,18 @@ config MAINBOARD_DIR
|
||||
string
|
||||
default "foxconn/g41s-k"
|
||||
|
||||
config VARIANT_DIR
|
||||
default "g41s-k" if BOARD_FOXCONN_G41S_K
|
||||
default "g41m" if BOARD_FOXCONN_G41M
|
||||
|
||||
config MAINBOARD_PART_NUMBER
|
||||
string
|
||||
default "G41S-K"
|
||||
default "G41S-K" if BOARD_FOXCONN_G41S_K
|
||||
default "G41M/G41M-S/G41M-V" if BOARD_FOXCONN_G41M
|
||||
|
||||
config OVERRIDE_DEVICETREE
|
||||
string
|
||||
default "variants/$(CONFIG_VARIANT_DIR)/overridetree.cb"
|
||||
|
||||
config MAX_CPUS
|
||||
int
|
||||
|
@ -1,2 +1,4 @@
|
||||
config BOARD_FOXCONN_G41S_K
|
||||
bool "G41S-K"
|
||||
config BOARD_FOXCONN_G41M
|
||||
bool "G41M/G41M-S/G41M-V"
|
||||
|
@ -1,4 +1,6 @@
|
||||
ramstage-y += cstates.c
|
||||
romstage-y += gpio.c
|
||||
|
||||
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
|
||||
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads
|
||||
|
||||
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/
|
||||
|
@ -26,10 +26,14 @@
|
||||
#define SUPERIO_DEV SIO0
|
||||
#define SUPERIO_PNP_BASE 0x2e
|
||||
#define IT8720F_SHOW_SP1 1
|
||||
#if IS_ENABLED(CONFIG_BOARD_FOXCONN_G41S_K)
|
||||
#define IT8720F_SHOW_SP2 1
|
||||
#endif
|
||||
#define IT8720F_SHOW_EC 1
|
||||
#define IT8720F_SHOW_KBCK 1
|
||||
#define IT8720F_SHOW_KBCM 1
|
||||
#define IT8720F_SHOW_GPIO 1
|
||||
#if IS_ENABLED(CONFIG_BOARD_FOXCONN_G41S_K)
|
||||
#define IT8720F_SHOW_CIR 1
|
||||
#endif
|
||||
#include <superio/ite/it8720f/acpi/superio.asl>
|
||||
|
@ -26,7 +26,6 @@ chip northbridge/intel/x4x # Northbridge
|
||||
end
|
||||
end
|
||||
device domain 0 on # PCI domain
|
||||
subsystemid 0x105b 0x0dda inherit
|
||||
device pci 0.0 on end # Host Bridge
|
||||
device pci 1.0 on end # PEG
|
||||
device pci 2.0 on end # Integrated graphics controller
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
#include <device/azalia_device.h>
|
||||
|
||||
#if IS_ENABLED(CONFIG_BOARD_FOXCONN_G41S_K)
|
||||
const u32 cim_verb_data[] = {
|
||||
/* coreboot specific header */
|
||||
0x10ec0888, /* Vendor ID */
|
||||
@ -40,6 +41,31 @@ const u32 cim_verb_data[] = {
|
||||
AZALIA_PIN_CFG(0, 0x1e, 0x01441130),
|
||||
AZALIA_PIN_CFG(0, 0x1f, 0x411111f0),
|
||||
};
|
||||
#else /* CONFIG_BOARD_FOXCONN_G41M */
|
||||
const u32 cim_verb_data[] = {
|
||||
/* coreboot specific header */
|
||||
0x10ec0888, /* Vendor ID */
|
||||
0x105b0dc0, /* Subsystem ID */
|
||||
0x0000000e, /* Number of entries */
|
||||
|
||||
/* Pin Widget Verb Table */
|
||||
|
||||
AZALIA_PIN_CFG(2, 0x11, 0x01441140),
|
||||
AZALIA_PIN_CFG(2, 0x12, 0x411111f0),
|
||||
AZALIA_PIN_CFG(2, 0x14, 0x01014410),
|
||||
AZALIA_PIN_CFG(2, 0x15, 0x01011412),
|
||||
AZALIA_PIN_CFG(2, 0x16, 0x01016411),
|
||||
AZALIA_PIN_CFG(2, 0x17, 0x01012414),
|
||||
AZALIA_PIN_CFG(2, 0x18, 0x01a19c50),
|
||||
AZALIA_PIN_CFG(2, 0x19, 0x02a19c60),
|
||||
AZALIA_PIN_CFG(2, 0x1a, 0x0181345f),
|
||||
AZALIA_PIN_CFG(2, 0x1b, 0x02014c20),
|
||||
AZALIA_PIN_CFG(2, 0x1c, 0x593301f0),
|
||||
AZALIA_PIN_CFG(2, 0x1d, 0x4007f603),
|
||||
AZALIA_PIN_CFG(2, 0x1e, 0x99430130),
|
||||
AZALIA_PIN_CFG(2, 0x1f, 0x411111f0),
|
||||
};
|
||||
#endif
|
||||
|
||||
const u32 pc_beep_verbs[0] = {};
|
||||
|
||||
|
@ -72,7 +72,7 @@ static void ich7_enable_lpc(void)
|
||||
{
|
||||
pci_write_config16(LPC_DEV, LPC_IO_DEC, 0x0010);
|
||||
pci_write_config16(LPC_DEV, LPC_EN, CNF1_LPC_EN | KBC_LPC_EN |
|
||||
COMB_LPC_EN | COMA_LPC_EN);
|
||||
FDD_LPC_EN | COMB_LPC_EN | COMA_LPC_EN);
|
||||
|
||||
/* Decode 64 bytes at 0x0a00 to LPC for Super I/O EC and GPIO. */
|
||||
pci_write_config32(LPC_DEV, GEN1_DEC, 0x003c0a01);
|
||||
@ -81,7 +81,13 @@ static void ich7_enable_lpc(void)
|
||||
void mainboard_romstage_entry(unsigned long bist)
|
||||
{
|
||||
// ch0 ch1
|
||||
#if IS_ENABLED(CONFIG_BOARD_FOXCONN_G41S_K)
|
||||
const u8 spd_addrmap[4] = { 0x50, 0, 0, 0 };
|
||||
#else
|
||||
/* TODO adapt raminit such that other slots can be used
|
||||
* for single rank dimms */
|
||||
const u8 spd_addrmap[4] = { 0x50, 0, 0x52, 0 };
|
||||
#endif
|
||||
u8 boot_path = 0;
|
||||
u8 s3_resume;
|
||||
|
||||
|
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* Copyright (C) 2017 Arthur Heymans <arthur@aheymans.xyz>
|
||||
* Copyright (C) 2017 Samuel Holland <samuel@sholland.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; version 2 of the License.
|
||||
m *
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is board specific information:
|
||||
* IRQ routing for the 0:1e.0 PCI bridge of the ICH7
|
||||
*/
|
||||
|
||||
If (PICM) {
|
||||
Return (Package() {
|
||||
Package() { 0x0001ffff, 0, 0, 0x12},
|
||||
Package() { 0x0001ffff, 1, 0, 0x13},
|
||||
Package() { 0x0001ffff, 2, 0, 0x10},
|
||||
Package() { 0x0001ffff, 3, 0, 0x11},
|
||||
|
||||
Package() { 0x0002ffff, 0, 0, 0x11},
|
||||
Package() { 0x0002ffff, 1, 0, 0x12},
|
||||
Package() { 0x0002ffff, 2, 0, 0x13},
|
||||
Package() { 0x0002ffff, 3, 0, 0x10},
|
||||
})
|
||||
} Else {
|
||||
Return (Package() {
|
||||
Package() { 0x0001ffff, 0, \_SB.PCI0.LPCB.LNKB, 0},
|
||||
Package() { 0x0001ffff, 1, \_SB.PCI0.LPCB.LNKC, 0},
|
||||
Package() { 0x0001ffff, 2, \_SB.PCI0.LPCB.LNKD, 0},
|
||||
Package() { 0x0001ffff, 3, \_SB.PCI0.LPCB.LNKA, 0},
|
||||
|
||||
Package() { 0x0002ffff, 0, \_SB.PCI0.LPCB.LNKC, 0},
|
||||
Package() { 0x0002ffff, 1, \_SB.PCI0.LPCB.LNKD, 0},
|
||||
Package() { 0x0002ffff, 2, \_SB.PCI0.LPCB.LNKA, 0},
|
||||
Package() { 0x0002ffff, 3, \_SB.PCI0.LPCB.LNKB, 0},
|
||||
})
|
||||
}
|
BIN
src/mainboard/foxconn/g41s-k/variants/g41m/data.vbt
Normal file
BIN
src/mainboard/foxconn/g41s-k/variants/g41m/data.vbt
Normal file
Binary file not shown.
29
src/mainboard/foxconn/g41s-k/variants/g41m/gma-mainboard.ads
Normal file
29
src/mainboard/foxconn/g41s-k/variants/g41m/gma-mainboard.ads
Normal file
@ -0,0 +1,29 @@
|
||||
--
|
||||
-- This file is part of the coreboot project.
|
||||
--
|
||||
-- This program is free software; you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
-- the Free Software Foundation; either version 2 of the License, or
|
||||
-- (at your option) any later version.
|
||||
--
|
||||
-- This program is distributed in the hope that it will be useful,
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
-- GNU General Public License for more details.
|
||||
--
|
||||
|
||||
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 :=
|
||||
(Analog,
|
||||
HDMI1,
|
||||
HDMI2,
|
||||
others => Disabled);
|
||||
|
||||
end GMA.Mainboard;
|
17
src/mainboard/foxconn/g41s-k/variants/g41m/overridetree.cb
Normal file
17
src/mainboard/foxconn/g41s-k/variants/g41m/overridetree.cb
Normal file
@ -0,0 +1,17 @@
|
||||
chip northbridge/intel/x4x # Northbridge
|
||||
device domain 0 on # PCI domain
|
||||
subsystemid 0x105b 0x0dc0 inherit
|
||||
chip southbridge/intel/i82801gx # Southbridge
|
||||
device pci 1f.0 on # ISA bridge
|
||||
device pnp 2e.0 on # Floppy
|
||||
io 0x60 = 0x3f0
|
||||
irq 0x70 = 6
|
||||
drq 0x74 = 2
|
||||
end
|
||||
device pnp 2e.2 off end # COM2 (IR)
|
||||
device pnp 2e.a off end # CIR
|
||||
end
|
||||
device pci 1f.1 on end # PATA/IDE
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,5 @@
|
||||
chip northbridge/intel/x4x # Northbridge
|
||||
device domain 0 on # PCI domain
|
||||
subsystemid 0x105b 0x0dda inherit
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user