summaryrefslogtreecommitdiff
path: root/src/mainboard/purism
AgeCommit message (Collapse)Author
2017-06-16purism/librem13v2: Fix HDA verb values, use azalia macrosMatt DeVillier
Use verb table values from AMI firmware, consolidate NID definitions using azalia macros. Fixes headphone jack detection and microphone. Change-Id: Ia31be6efc7afe921ad91b400f66694d951f0a260 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19944 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
2017-06-16purism/librem13v2: Add audio supportYouness Alaoui
Initialize the audio codec without depending on DSP binary blobs. The hda_verb.c was copied from the intel/kblrvp rvp7 variant, and the hda_verb.h file was copied from the purism/librem13. The IoBufferOwnership FSP option in devicetree has to be 0 for the azalia driver to work. Change-Id: Ifa36ac0839daedfa59c497057da0ace04d401f2a Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19943 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-16purism/librem13: Disable L1 sub states supportYouness Alaoui
Some NVMe devices (Intel 600p series for example) seem to lock up in D3 drive power state (L1.2 PCIe power state). Disabling L1 substates fixes it. Change-Id: I00a327dc91d443beb565fe4e72aaf816e40a007c Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/19900 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
2017-06-16purism/librem13v2: Fix EC_SCI_GPI valueMatt DeVillier
Existing value was copied from librem13 v1 board, use value obtained from AMI firmware. TEST: Observe Windows boots correctly, function keys work under both Windows and Linux. Change-Id: I0ea6cc4602ce1047cb803acc65cbca1af1f480b0 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19945 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
2017-06-16purism/librem13v2: Add Kconfig defaultsYouness Alaoui
Add default values for MAINBOARD_VERSION and CBFS_SIZE. Change-Id: Ib6461cef78f3fea448baf1ada456e3c8335f1543 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19942 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Youness Alaoui <snifikino@gmail.com>
2017-06-16purism/librem13v2: Clean up devicetreeMatt DeVillier
- remove unused I2C, serialIO defs - set PL2 override, VR mailbox cmd based on SKL-U ref board, as values copied from google/chell are for SKL-Y Change-Id: I3a138c28d0322df6cb41ec1a845ae31602cb69a7 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19941 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-16purism/librem13v2: Update USB configMatt DeVillier
Update devicetree USB config based on board spec. Leave OC pins set to skip since the info is unavailable. Change-Id: I2a4fe17ed7edacbbbaf56969f9d2801b45a20da9 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19940 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-09purism/librem13v2: Update PCI configYouness Alaoui
Update devicetree PCI config based on board spec: - enable PCIe Root Ports 5 and 9 (wifi and nvme respectively) - enable PCIe CLKREQ on RP9, disable on RP5 - enable USB OTG - enable P2SB Note: PCIe RP5 is on 0.1c.0 despite this being labeled as RP1 Change-Id: Ia71ed25bd41668df1ee3e4b4e28f54482722452c Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19939 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-09purism/librem13v2: Don't disable PM timerMatt DeVillier
Needed for UEFI booting via Tianocore; with PM timer disabled, payload hangs. Change-Id: I6c65cb9d3e6a10baea4cc1e2d9e94c36fe419561 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19938 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-09purism/librem13v2: Enable SATA, disable eMMC supportYouness Alaoui
Change-Id: Ib63e5e8a1bcbc25c288dec7d1ef6c06239ada34b Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19937 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-09purism/librem13v2: Add microcode values in KconfigYouness Alaoui
The FSP Temp RAM init will fail if the mircocode values are set to 0. A valid microcode update needs to be included and its size and offset need to be set in the config. Change-Id: I26d05bd7b37c8d91bf34f399c7c4189f9d3dd34a Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/19936 Reviewed-by: Matt DeVillier <matt.devillier@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-09purism/librem13v2: Add memory init codeYouness Alaoui
Adding code to setup the spd information from sodimm. Adapted from intel/kblrvp. Change-Id: I0403f999dac1bdef0e9e1abe7c9c62407e223bb1 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/19935 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2017-06-09purism/librem13v2: Add GPIO pad configurationYouness Alaoui
The GPIO configuration matches the one from the original BIOS. Some configs don't make much sense, but I kept it as is so it would match (such as a NC pin with TX set to 1, or RXINV enabled). Remove unnecessary early GPIO config. Change-Id: Iaec8630cef9a523fb2e2503143aa4aa72fbedc1f Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/19934 Reviewed-by: Matt DeVillier <matt.devillier@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-09purism/librem13v2: Select SERIRQ_CONTINUOUS_MODEMatt DeVillier
Like other devices using ENE embedded controllers, the librem13v2 requires this config option for the PS2 keyboard and mouse (trackpad) to function properly. Change-Id: Ifba13b93a1fe2e76b2790d1c273fd9e2b5368ab0 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19933 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-09purism/librem13v2: Add initial directory for librem13 v2Youness Alaoui
Add the initial directory for the port of the Librem 13 v2. The base implementation was copied from the google/chell directory and the chell references were replaced. spd directory was removed since the RAM is not soldered on the MB. The Kconfig, board_info.txt and devicetree.cb files were modified to match the Librem 13 v2 hardware information. The romstage.c, mainboard.c, Makefile.in and dsdt.asl were modified to remove chromeos specific code. The boardid.c, chromeos.c, chromeos.fmd, cmos.layout, ec.c, ec.h and smihandler.c files were removed from the tree, and the acpi directory was replaced with the acpi directory from the purism/librem13 board. These changes allow us to remove the references to chromeos specific code and allow coreboot to compile when the librem13v2 board is selected. Change-Id: I24263fde18fcea70163dbdc59df6ea1d98c97af8 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/19932 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
2017-06-09purism/librem13v1: Set FADT revision to ACPI 3.0Matt DeVillier
The FADT revision was set to 5, but we do not implement the ACPI v5.0 specification, which prevents Windows from booting. Setting it to v3 (matching most other boards) fixes the issue and Windows now boots normally. Bug found by Matt DeVillier, fix tested by Youness Alaoui on Librem 13 v1 hardware. Please also see commits 00d250e2289de (intel/skylake: Switch FADT to ACPI version 3.0) [1] and 27e6042bb7d0b1 (intel/apollolake: Switch FADT to ACPI version 3.0) [2]. [1] https://review.coreboot.org/19453 [2] https://review.coreboot.org/19146 Change-Id: Ide97cbf64f7b05018433436431ab4723b217fe22 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/19985 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
2017-06-09purism/librem13v1: Rename librem13 to librem13v1Youness Alaoui
A simple rename of the directory and the config values and string in Kconfig/Kconfig.name/board_info.txt It will be less confusing for users since the first models are referred to as 'v1' everywhere now. Change-Id: I23fa977717230c2001868741bb684e9633a2c0bb Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/19931 Reviewed-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
2017-05-01purism/librem13: Enable support for M.2 NVMeYouness Alaoui
Enable/Disable the PCIe ports to match factory BIOS. The port #6 is used for PCIe on the M.2 connector which allows for NVMe SSDs to function. Change-Id: I8058cbad3da651144545d588c0ae78c5f5e598ac Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/19446 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
2017-02-22purism/librem13: Set system type to laptopYouness Alaoui
Change-Id: I3ae80f5727e83a1c9210f0d13fa7fc32c5c79085 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/18412 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins)
2017-02-22purism/librem13: Fix HDA codec verbs. Use correct codec vendor idYouness Alaoui
There was a 'typo' where the subsystem id was set instead of the codec vendor id. This caused the lynxpoint HDA codecs init to fail to find the proper codecid verbs so codecs were never initialized. That caused the headphones jack to not work. Change-Id: I975031643fc42937ecaea2300639b90632543f67 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/18411 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins)
2017-02-22purism/librem13: Enable PCIe ports 1 and 2Youness Alaoui
Change-Id: I1fa72e59866ee4aad34d4b60e499f6e37acc367f Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/18410 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
2017-02-22purism/librem13: Fix M.2 issues.Youness Alaoui
The M.2 SSD is on the SATA port 3, which also required the DTLE setting to be set. This fixes issues with the M.2 SSD not being detected/stable. Change-Id: Id39d9ec395a2d9d32be4c079678d0708f08b3935 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/18409 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
2016-04-19kbuild: Allow drivers to fit src/drivers/[X]/[Y]/ schemeStefan Reinauer
Reorder drivers to fit src/drivers/[X]/[Y]/ scheme to make them pluggable. Also, fix up the following driver subdirectories by switching to the src/drivers/[X]/[Y]/ scheme as these are hard requirements for the main change: * drivers/intel * drivers/pc80 * drivers/dec Change-Id: I455d3089a317181d5b99bf658df759ec728a5f6b Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: https://review.coreboot.org/14047 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
2016-01-24purism/librem13: Fix select of EC_PURISM_LIBREMMartin Roth
This was misspelled as EC_PURISM_LIBEM, causing the EC to not get included in the build. Change-Id: Iffbfb504926e1b90070c2dbf61c0c44ca8fb46bc Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/13178 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie <dlaurie@google.com> Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2016-01-22purism/librem13: Add support for Purism Librem 13 mainboardDuncan Laurie
This adds support for booting the Purism Librem 13 mainboard with coreboot, using binaries extracted from the original BIOS and from a Broadwell Chromebook. The following features have been tested on Ubuntu 15.10: - Input: Keyboard and Trackpad - SATA: Internal HDD and M.2 NGFF - Network: WiFi and Ethernet - USB: Bluetooth, Camera, SD Card, Ports (1xUSB2 and 1xUSB3) - Video: Internal panel and HDMI port - Internal speakers and microphone (headphones do not work) - EC handling for battery, AC, lid, special keys These binaries are extracted from the original BIOS: - VGA BIOS - Management Engine - Intel Firmware Descriptor These binaries are extracted from a Broadwell Chromebook BIOS: - MemoryInit reference code binary - SiliconInit reference code binary This was developed and tested on an Librem 13 device. For those who may want to do more development you can use EHCI debug and the right USB port to get coreboot output. Change-Id: Ia72e2d7ddc8ba5eef63819e5677122a5a5c705d8 Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: https://review.coreboot.org/13026 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)