Skip to content

Commit

Permalink
mb/system76/kbl-u: Add System76 Galago Pro 3 Rev B
Browse files Browse the repository at this point in the history
Change-Id: I25464d3a2dd02e613a8392db90b1eaf0f9b3ca70
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/52217
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
  • Loading branch information
jackpot51 authored and pgeorgi committed Nov 2, 2021
1 parent e747bdd commit 9037f0a
Show file tree
Hide file tree
Showing 29 changed files with 1,445 additions and 0 deletions.
60 changes: 60 additions & 0 deletions src/mainboard/system76/kbl-u/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
if BOARD_SYSTEM76_GALP3_B

config BOARD_SPECIFIC_OPTIONS
def_bool y
select BOARD_ROMSIZE_KB_8192
select HAVE_ACPI_RESUME
select HAVE_ACPI_TABLES
select HAVE_CMOS_DEFAULT
select HAVE_OPTION_TABLE
select INTEL_GMA_HAVE_VBT
select INTEL_LPSS_UART_FOR_CONSOLE
select MAINBOARD_HAS_LPC_TPM
select MAINBOARD_HAS_TPM2
select NO_UART_ON_SUPERIO
select PCIEXP_HOTPLUG
select SOC_INTEL_COMMON_BLOCK_HDA_VERB
select SOC_INTEL_KABYLAKE
select SPD_READ_BY_WORD
select SYSTEM_TYPE_LAPTOP

config MAINBOARD_DIR
default "system76/kbl-u"

config VARIANT_DIR
default "galp3-b" if BOARD_SYSTEM76_GALP3_B

config MAINBOARD_PART_NUMBER
default "galp3-b" if BOARD_SYSTEM76_GALP3_B

config MAINBOARD_SMBIOS_PRODUCT_NAME
default "Galago Pro"

config MAINBOARD_VERSION
default "galp3-b" if BOARD_SYSTEM76_GALP3_B

config CBFS_SIZE
default 0x600000

config CONSOLE_POST
default y

config ONBOARD_VGA_IS_PRIMARY
default y

config UART_FOR_CONSOLE
default 2

config DIMM_MAX
default 2

config DIMM_SPD_SIZE
default 512

config VGA_BIOS_ID
default "8086,5917" if BOARD_SYSTEM76_GALP3_B

config POST_DEVICE
default n

endif
2 changes: 2 additions & 0 deletions src/mainboard/system76/kbl-u/Kconfig.name
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
config BOARD_SYSTEM76_GALP3_B
bool "galp3-b"
8 changes: 8 additions & 0 deletions src/mainboard/system76/kbl-u/Makefile.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/include

bootblock-y += bootblock.c
bootblock-y += gpio_early.c

ramstage-y += ramstage.c
ramstage-y += gpio.c
ramstage-y += variants/$(VARIANT_DIR)/hda_verb.c
22 changes: 22 additions & 0 deletions src/mainboard/system76/kbl-u/acpi/ac.asl
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* SPDX-License-Identifier: GPL-2.0-only */

Device (AC)
{
Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})

Name (ACFG, One)

Method (_PSR, 0, NotSerialized) // _PSR: Power Source
{
Return (ACFG)
}

Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
170 changes: 170 additions & 0 deletions src/mainboard/system76/kbl-u/acpi/battery.asl
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
/* SPDX-License-Identifier: GPL-2.0-only */

Device (BAT0)
{
Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Name (BFCC, Zero)
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (^^PCI0.LPCB.EC0.ECOK)
{
If (^^PCI0.LPCB.EC0.BAT0)
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
}
Else
{
Return (0x0F)
}
}

Name (PBIF, Package (0x0D)
{
One, // 0 - Power Unit
0xFFFFFFFF, // 1 - Design Capacity
0xFFFFFFFF, // 2 - Last Full Charge Capacity
One, // 3 - Battery Technology
0x39D0, // 4 - Design Voltage
Zero, // 5 - Design Capacity of Warning
Zero, // 6 - Design Capacity of Low
0x40, // 7 - Battery Capacity Granularity 1
0x40, // 8 - Battery Capacity Granularity 2
"BAT", // 9 - Model Number
"0001", // 10 - Serial Number
"LION", // 11 - Battery Type
"Notebook" // 12 - OEM Information
})
Method (IVBI, 0, NotSerialized)
{
PBIF [1] = 0xFFFFFFFF
PBIF [2] = 0xFFFFFFFF
PBIF [4] = 0xFFFFFFFF
PBIF [9] = " "
PBIF [10] = " "
PBIF [11] = " "
PBIF [12] = " "
BFCC = Zero
}

Method (UPBI, 0, NotSerialized)
{
If (^^PCI0.LPCB.EC0.BAT0)
{
Local0 = (^^PCI0.LPCB.EC0.BDC0 & 0xFFFF)
PBIF [1] = Local0
Local0 = (^^PCI0.LPCB.EC0.BFC0 & 0xFFFF)
PBIF [2] = Local0
BFCC = Local0
Local0 = (^^PCI0.LPCB.EC0.BDV0 & 0xFFFF)
PBIF [4] = Local0
Local0 = (^^PCI0.LPCB.EC0.BCW0 & 0xFFFF)
PBIF [5] = Local0
Local0 = (^^PCI0.LPCB.EC0.BCL0 & 0xFFFF)
PBIF [6] = Local0
PBIF [9] = "BAT"
PBIF [10] = "0001"
PBIF [11] = "LION"
PBIF [12] = "Notebook"
}
Else
{
IVBI ()
}
}

Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
If (^^PCI0.LPCB.EC0.ECOK)
{
UPBI ()
}
Else
{
IVBI ()
}

Return (PBIF) /* \_SB_.BAT0.PBIF */
}

Name (PBST, Package (0x04)
{
Zero, // 0 - Battery state
0xFFFFFFFF, // 1 - Battery present rate
0xFFFFFFFF, // 2 - Battery remaining capacity
0x3D90 // 3 - Battery present voltage
})
Method (IVBS, 0, NotSerialized)
{
PBST [0] = Zero
PBST [1] = 0xFFFFFFFF
PBST [2] = 0xFFFFFFFF
PBST [3] = 0x2710
}

Method (UPBS, 0, NotSerialized)
{
If (^^PCI0.LPCB.EC0.BAT0)
{
Local0 = Zero
Local1 = Zero
If (^^AC.ACFG)
{
If (((^^PCI0.LPCB.EC0.BST0 & 0x02) == 0x02))
{
Local0 |= 0x02
Local1 = (^^PCI0.LPCB.EC0.BPR0 & 0xFFFF)
}
}
Else
{
Local0 |= One
Local1 = (^^PCI0.LPCB.EC0.BPR0 & 0xFFFF)
}

Local7 = (Local1 & 0x8000)
If ((Local7 == 0x8000))
{
Local1 ^= 0xFFFF
}

Local2 = (^^PCI0.LPCB.EC0.BRC0 & 0xFFFF)
Local3 = (^^PCI0.LPCB.EC0.BPV0 & 0xFFFF)
PBST [0] = Local0
PBST [1] = Local1
PBST [2] = Local2
PBST [3] = Local3
If ((BFCC != ^^PCI0.LPCB.EC0.BFC0))
{
Notify (BAT0, 0x81) // Information Change
}
}
Else
{
IVBS ()
}
}

Method (_BST, 0, NotSerialized) // _BST: Battery Status
{
If (^^PCI0.LPCB.EC0.ECOK)
{
UPBS ()
}
Else
{
IVBS ()
}

Return (PBST) /* \_SB_.BAT0.PBST */
}
}
13 changes: 13 additions & 0 deletions src/mainboard/system76/kbl-u/acpi/buttons.asl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/* SPDX-License-Identifier: GPL-2.0-only */

Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
Name (_PRW, Package () { 0x13 /* GPP_C19 */, 3 })
}

Device (SLPB)
{
Name (_HID, EisaId ("PNP0C0E"))
Name (_PRW, Package () { 0x13 /* GPP_C19 */, 3 })
}
Loading

0 comments on commit 9037f0a

Please sign in to comment.