Calvin has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/31849
Change subject: Updated and converted to markdown doc from wiki on porting motherboards.
......................................................................
Updated and converted to markdown doc from wiki on porting motherboards.
Some of the documentation from the wiki (https://www.coreboot.org/Motherboard_Porting_Guide) has been ported to markdown and updated as I was able to figure things out. Still a work in progress as there is more data from that page that I will need to convert as I work through it. If I get anywhere in my project of porting coreboot to an older Chromebook, I will document more of this process as I go.
Signed-off-by: calvinrempel <calvin.rempel(a)gmail.com>
Change-Id: Ie3b8a99c10808c7e7ebc826b4d2f992774cc9a75
---
M Documentation/index.md
A Documentation/porting/index.md
A Documentation/porting/motherboard_probe.md
3 files changed, 135 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/49/31849/1
diff --git a/Documentation/index.md b/Documentation/index.md
index dd8714c..32635f9 100644
--- a/Documentation/index.md
+++ b/Documentation/index.md
@@ -164,6 +164,7 @@
* [Rookie Guide](lessons/index.md)
* [Coding Style](coding_style.md)
* [Project Ideas](contributing/project_ideas.md)
+* [Porting](porting/index.md)
* [Code of Conduct](community/code_of_conduct.md)
* [Community forums](community/forums.md)
* [coreboot at conferences](community/conferences.md)
diff --git a/Documentation/porting/index.md b/Documentation/porting/index.md
new file mode 100644
index 0000000..ed282e8
--- /dev/null
+++ b/Documentation/porting/index.md
@@ -0,0 +1,3 @@
+# Porting New Boards
+
+* [Motherboard Probing](motherboard_probe.md)
diff --git a/Documentation/porting/motherboard_probe.md b/Documentation/porting/motherboard_probe.md
new file mode 100644
index 0000000..7562f7c
--- /dev/null
+++ b/Documentation/porting/motherboard_probe.md
@@ -0,0 +1,131 @@
+Motherboard Porting Guide
+=========================
+
+Please note that this guide is very much a work in progress.
+
+Finding out What You Have
+-------------------------
+
+### Tools
+To begin the process of porting a motherboard to coreboot, you first
+need to determine what all is on it: the chipset (ie, North and South
+Bridge), Flash Rom, etc. To do this, you will need a suite of
+tools provided by the coreboot project, as well as some that can be
+found more readily in various repositories.
+
+For the sake of this page, it will be assumed you are using Debian or
+Ubuntu.
+
+#### Build Environment
+If you have not already done so, get your basic build environment
+installed:
+
+ $ sudo apt install build-essential git cvs subversion
+
+#### Probing Utilities - From Repos
+Next, a number of utilities will need to be installed which will be used
+later for probing the system as well as some dev libraries which will be
+used in building some of the tools in the next step.These should be
+available in your distro's repo:
+
+ $ sudo apt install pciutils pciutils-dev flashrom acpitool \
+ usbutils acpidump
+
+#### Probing Utilities - From Source
+Once the base build system in place and what utilities along with what
+libraries you can glean from your distro's repositories, it is time to
+build some tools from source. If you have not already done so, checkout
+the git repo as described in "[Rookie Guide: Lesson 1]".
+
+Once you have synced the coreboot repo, cd into the utilities folder:
+
+ $cd coreboot/util
+
+##### superiotool
+
+ $ cd ./superiotool
+ $ make
+ $ sudo make install
+ $ cd ..
+
+##### inteltool
+
+ $ cd ./inteltool
+ $ make
+ $ sudo make install
+ $ cd ..
+
+##### ectool
+
+ $ cd ./ectool
+ $ make
+ $ make install
+ $ cd ..
+
+##### dmidecode
+
+ $ cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dmidecode \
+ co dmidecode
+ $ cd dmidecode
+ $ make
+ $ sudo make install
+ $ cd ..
+
+##### msrtool
+
+ $ cd ./msrtool
+ $ ./configure
+ $ make
+ $ sudo make install
+ $ cd ..
+
+##### nvramtool
+
+ $ cd ./nvramtool
+ $ make
+ $ sudo make install
+
+##### acpica-unix
+
+ $ wget http://deb.debian.org/debian/pool/main/a/acpica-unix/acpica-unix_20181213.o…
+ $ tar -xaf acpica-unix_20181213.orig.tar.gz
+ $ cd ./acpica-unix-2018-12-13/
+ $ make
+ $ sudo make install
+
+### Probe the Board
+Now we will begin to probe the board to see what we can find out about
+it. First, become root:
+
+ $ sudo su
+
+Then load the msr module into the kernel:
+
+ $ sudo modprobe msr
+
+Finally, we probe the board:
+
+ $ lspci -nnvvvxxxx > lspci.log 2> lspci.err.log
+ $ lsusb -vvv > lsusb.log 2> lsusb.err.log
+ $ superiotool -deV > superiotool.log 2> superiotool.err.log
+ $ inteltool -a > inteltool.log 2> inteltool.err.log
+ $ ectool -i > ectool.log 2> ectool.err.log
+ $ msrtool > msrtool.log 2> msrtool.err.log
+ $ dmidecode > dmidecode.log 2> dmidecode.err.log
+ $ biosdecode > biosdecode.log 2> biosdecode.err.log
+ $ nvramtool -x > nvramtool.log 2> nvramtool.err.log
+ $ dmesg > dmesg.log 2> dmesg.err.log
+ $ acpidump > acpidump.log 2> acpidump.err.log
+ $ for x in /sys/class/sound/card0/hw*; do cat "$x/init_pin_configs" \
+ > pin_"$(basename "$x")"; done
+ $ for x in /proc/asound/card0/codec#*; do cat "$x" > \
+ "$(basename "$x")"; done
+ $ cat /proc/cpuinfo > cpuinfo.log 2> cpuinfo.err.log
+ $ cat /proc/ioports > ioports.log 2> ioports.err.log
+ $ cat /sys/class/input/input*/id/bustype > input_bustypes.log
+ $flashrom -V -p internal:laptop=force_I_want_a_brick > \
+ flashrom_info.log 2> flashrom_info.err.log
+ $ flashrom -V -p internal:laptop=force_I_want_a_brick -r rom.bin > \
+ flashrom_read.log 2> flashrom_read.err.log
+
+[Rookie Guide: Lesson 1]: https://doc.coreboot.org/lessons/lesson1.html
--
To view, visit https://review.coreboot.org/c/coreboot/+/31849
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ie3b8a99c10808c7e7ebc826b4d2f992774cc9a75
Gerrit-Change-Number: 31849
Gerrit-PatchSet: 1
Gerrit-Owner: Calvin <calvin.rempel(a)gmail.com>
Gerrit-MessageType: newchange
You-Cheng Syu has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/32333
Change subject: util/mtkheader: Add a tool to extract bootload header from binary files.
......................................................................
util/mtkheader: Add a tool to extract bootload header from binary files.
Add a tool, extract-bl-img.py, which can extract MTK bootload header
from binary files. This could be useful for boards (e.g., Kukui) which
put the bootblock in other places (e.g., Chrome EC).
Change-Id: Ib744c80bdc2adfe27d4287365e161096e3fe08c7
Signed-off-by: You-Cheng Syu <youcheng(a)google.com>
---
A util/mtkheader/extract-bl-img.py
1 file changed, 55 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/33/32333/1
diff --git a/util/mtkheader/extract-bl-img.py b/util/mtkheader/extract-bl-img.py
new file mode 100755
index 0000000..21bf9eb
--- /dev/null
+++ b/util/mtkheader/extract-bl-img.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+# This file is part of the coreboot project.
+#
+# Copyright 2019 Google LLC
+#
+# 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.
+#
+# 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.
+
+import argparse
+import struct
+import sys
+
+
+_DESCRIPTION = 'Extract MTK bootload header from a binary file.'
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description=_DESCRIPTION)
+ parser.add_argument('input_path', metavar='INPUT_FILE')
+ parser.add_argument('output_path', metavar='OUTPUT_FILE')
+ return parser.parse_args()
+
+
+def main():
+ args = parse_args()
+
+ with open(args.input_path, 'rb') as f:
+ data = f.read()
+
+ header = struct.pack('<8sII', 'BRLYT', 1, 2048)
+
+ start = -1
+ while True:
+ start = data.find(header, start + 1)
+ if start < 0:
+ raise RuntimeError('Cannot find MTK bootload header')
+ offset = start + len(header)
+ buf = struct.unpack('<II', data[offset:offset+8])
+ if buf[1] == 0x42424242:
+ break
+ size = buf[0]
+ offset = start - 512
+
+ with open(args.output_path, 'wb') as f:
+ f.write(data[offset:offset+size])
+
+
+if __name__ == '__main__':
+ main()
--
To view, visit https://review.coreboot.org/c/coreboot/+/32333
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ib744c80bdc2adfe27d4287365e161096e3fe08c7
Gerrit-Change-Number: 32333
Gerrit-PatchSet: 1
Gerrit-Owner: You-Cheng Syu <youcheng(a)google.com>
Gerrit-MessageType: newchange
Daniel Maslowski has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/33008
Change subject: sb/intel/lynxpoint: Fix flashconsole after lockdown
......................................................................
sb/intel/lynxpoint: Fix flashconsole after lockdown
Same as with sb/intel/bd82x6x:
SMM final locks the SPI BAR, which causes flashconsole to hang.
Re-init it like SMM does with CONFIG_SPI_FLASH_SMM.
Change-Id: Ie35af9610ebbba5c66351e9668e9a55cae3c7520
Signed-off-by: Daniel Maslowski <dan(a)orangecms.org>
---
M src/southbridge/intel/lynxpoint/lpc.c
1 file changed, 9 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/08/33008/1
diff --git a/src/southbridge/intel/lynxpoint/lpc.c b/src/southbridge/intel/lynxpoint/lpc.c
index b0f57c1..714c696 100644
--- a/src/southbridge/intel/lynxpoint/lpc.c
+++ b/src/southbridge/intel/lynxpoint/lpc.c
@@ -965,8 +965,16 @@
RCBA32(0x3898) = SPI_OPMENU_LOWER;
RCBA32(0x389c) = SPI_OPMENU_UPPER;
- if (acpi_is_wakeup_s3() || CONFIG(INTEL_CHIPSET_LOCKDOWN))
+ if (acpi_is_wakeup_s3() || CONFIG(INTEL_CHIPSET_LOCKDOWN)) {
outb(APM_CNT_FINALIZE, APM_CNT);
+ if (CONFIG(CONSOLE_SPI_FLASH)) {
+ /* Re-init SPI driver to handle locked BAR.
+ This prevents flashconsole from hanging.
+ If other code needs to use SPI during
+ ramstage, whitelist it here. */
+ spi_init();
+ }
+ }
}
static struct pci_operations pci_ops = {
--
To view, visit https://review.coreboot.org/c/coreboot/+/33008
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ie35af9610ebbba5c66351e9668e9a55cae3c7520
Gerrit-Change-Number: 33008
Gerrit-PatchSet: 1
Gerrit-Owner: Daniel Maslowski <info(a)orangecms.org>
Gerrit-MessageType: newchange