Difference between revisions of "User:MartinRoth"

From coreboot
Jump to: navigation, search
(Useful commands)
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Martin Roth==
 
==Martin Roth==
  
:martin.roth@se-eng.com
+
[[File:Martin.jpg]]
  
:gaumless@gmail.com  
+
Email:
 +
:gaumless@gmail.com
 +
:martinroth@google.com
  
 +
IRC:
 +
:martinr (usually)
 +
:gaumless (occasionally)
  
Martin works for Sage Electronic Engineering.<br>http://se-eng.com/
+
==Useful commands==
 +
=== See what Kconfig symbols are used in a platform ===
 +
make clean; make filelist; for file in $(grep -v 'config\.h' build/project_filelist.txt); do grep CONFIG_ "$file"; done | grep -Ev '[_A-Za-z]CONFIG' | sed 's/.*[-(\)\[\$!"[:space:]]CONFIG_/CONFIG_/'|sed 's/[^A-Z0-9_].*//' | sort | uniq
  
Sage is a coreboot vendor providing all aspects of coreboot development.
+
===Find hex encoded binaries in coreboot===
 +
git grep -c '0x' | grep src/ | grep -v ':.\?.\?.$' | sort -n -k2 -t ':'
  
Sage specializes in:
+
===Find binary files in src tree===
 +
find src -type f -exec file -i '{}' \; | grep 'charset=binary' | grep -v 'x-empty'
  
* coreboot development services
+
===run checkpatch on files ===
* x86 firmware development services
+
DIR=src/lib;for file in $(git ls-files | grep "${DIR}"); do util/lint/checkpatch.pl --file $file --terse; done
* Embedded and HPC system development and debug
+
 
* Provides SmartProbe and the Sage EDK - An AMD JTAG ICE, development and debug tool.
+
==Platforms supported by coreboot==
 +
{| class="wikitable"
 +
! Vendor !! Board !! Processor !! Southbridge !! Memory !! Count !! Blobs !! Used as
 +
|-
 +
| ADI || SG-2220 || Intel Rangeley || - || 2GB DDR3L Soldered Down || 1 || FSP ||
 +
|-
 +
| ADI || SG-2440 || Intel Rangeley || - || 4GB DDR3L Soldered Down || 1 || FSP ||
 +
|-
 +
| AMD || Bettong (DB-FP4) || || || || 1 || Yes ||
 +
|-
 +
| AMD || Kino || AMD Family 10h || || || 1 || ||
 +
|-
 +
| AMD || Lamar || || || || 1 || ||
 +
|-
 +
| AMD || Mahogony || AMD Family F || AMD SB700 || 4 DDR2 UDIMMs || 1 || ||
 +
|-
 +
| AMD || Mahogony || AMD Family 10h || AMD SB700 || 4 DDR2 UDIMMs || 1 || ||
 +
|-
 +
| AMD || Olive Hill || || || || 1 || ||
 +
|-
 +
| AMD || Parmer || AMD Family 15TN || AMD Hudson || || 2 || ||
 +
|-
 +
| AMD || Pistachio || AMD Family F || AMD SB600|| || 1 || ||
 +
|-
 +
| AMD || Persimmon [DB-FT1] || AMD Family 14h || AMD SB800 || || 3 || ||
 +
|-
 +
| AMD || Pumori || || || || 1 || ||
 +
|-
 +
| AMD || Thatcher || AMD Family 15TN || AMD Hudson || || 1 || ||
 +
|-
 +
| AMD || Torpedo || AMD Family 12h || AMD SB900 || || 1 || ||
 +
|-
 +
| Asrock || E350M1/USB3 || AMD Family 14h || || || 1 || ||
 +
|-
 +
| Asrock || IMB-A180 || || || || 2 || ||
 +
|-
 +
| ASUS || F2A85-M || AMD Family 15TN || || || 1 || ||
 +
|-
 +
| ASUS || KGPE-D16 || AMD Family 10h / 15h || || || 1 || None || Lumberingbuilder
 +
|-
 +
| ASUS || KFSN4-DRE || || || || 1 || ||
 +
|-
 +
| ASUS || P5GC-MX || || || 2 DDR2 UDIMMs || 1 || None ||
 +
|-
 +
| Gigabyte || GA-B75M-D3H || Intel Ivybridge || || 4 DDR3 UDIMMs || 1 || ME || Happybuilder
 +
|-
 +
| Gigabyte || GA-G41M-ES2L || || || 2 DDR2 UDIMMs || 1 || None ||
 +
|-
 +
| Gigabyte || GA-945-GCM-S2L || || || 2 DDR2 UDIMMs || 1 || None ||
 +
|-
 +
| Gigabyte || GA-MA78GM || AMD AM2+ socket || AMD SB700 || 4 DDR2 UDIMMs || 1 || ||
 +
|-
 +
| Gizmosphere || Gizmo || AMD Family 14h || || Soldered down || 3 || ||
 +
|-
 +
| Gizmosphere || Gizmo2 || || || Soldered down || 1 || Yes ||
 +
|-
 +
| Intel || Bakersport || Intel Bay Trail I SOC || - || 1 ECC DDR-3 SODIMM || 1 || FSP, ME ||
 +
|-
 +
| Intel || Bayley Bay || Intel Bay Trail I SOC || - || 2 DDR-3 SODIMM || 1 || FSP, ME ||
 +
|-
 +
| Intel || Camelback Mountain || Broadwell DE SOC || - || 2 DDR-4 UDIMMs || 1 || FSP, ME ||
 +
|-
 +
| Intel || Cougar Canyon || Intel Ivybridge || || || 1 || FSP, ME ||
 +
|-
 +
| Intel || D510MO || || I82801GB (ICH7) || 2 DDR-2 UDIMMs || 1 || None ||
 +
|-
 +
| Intel || Galileo || || || || 2 || None ||
 +
|-
 +
| Intel || Galileo Gen 2 || || || || 1 || None ||
 +
|-
 +
| Intel/Circuitco || Minnowboard Max || Intel Bay Trail I || || || 1 || FSP, ME ||
 +
|-
 +
| Intel/ADI || Minnowboard Turbot || Intel Bay Trail I || || || 1 || FSP, ME ||
 +
|-
 +
| Intel || Mohon Peak || Intel Rangeley || || || 1 || FSP ||
 +
|-
 +
| Lenovo || T500 || || || || 1 || None ||
 +
|-
 +
| Lenovo || W500 || || || || 1 || None ||
 +
|-
 +
| Lenovo || T520 || Intel Sandybridge || || || 1 || ME ||
 +
|-
 +
| Lenovo || T530 || Intel Ivybridge || || 2 DDR-3 SODIMMS || 1 || ME ||
 +
|-
 +
| Lenovo || X230 || Intel Ivybridge || || 2 DDR-3 SODIMMS || 1 || ME ||
 +
|-
 +
| Lenovo || W530 || Intel Ivybridge || || 4 DDR-3 SODIMMS || 2 || ME || Grumpybuilder
 +
|-
 +
| PC Engines || APU2C4 || || || || 1 || ||
 +
|-
 +
| Supermicro || H8SCM || AMD Family 10h / 15h || AMD SP5100 || 4 DDR3 DIMMs || 1 || ||
 +
|}
 +
 
 +
==Links==
 +
===General Hardware & BIOS===
 +
* [http://helppc.netcore2k.net/topics HelpPC - Asm, C, Hardware, Interrupts, Tables for DOS & BIOS]
 +
* [http://www.ctyme.com/rbrown.htm Ralf Brown's Interrupt List]
 +
====_HID & EisaID====
 +
* [http://www-pc.uni-regensburg.de/hardware/TECHNIK/PCI_PNP/pnpid.txt EisaId list]
 +
* [http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/devids.txt EisaId list from Microsoft]
 +
* [http://lkml.iu.edu/hypermail/linux/kernel/1504.0/04084.html PRP0001 specifically means "Use the 'compatible' property to find the driver for this device"]
 +
 
 +
===Payloads===
 +
* [http://www.memtest.org/download/ memtest downloads]
 +
 
 +
 
 +
==Fedora setup==
 +
Tested on Fedora 20 & 21
 +
sudo yum install git gcc gcc-c++ flex bison ncurses-devel acpica-tools wget patch pciutils-devel
 +
git clone http://review.coreboot.org/coreboot
 +
cd coreboot
 +
git submodule update --init --checkout
 +
make crossgcc-i386
 +
 
 +
Optional installs:
 +
sudo yum install ccache clang
 +
 
 +
 
 +
===Flashing 3MB of 8MB ROM on minnowboard max===
 +
echo 00500000:007fffff cb-region > 8mb ; flashrom -p dediprog:voltage=1.8v -l 8mb -i cb-region -w build/coreboot.rom
 +
 
 +
 
 +
=== Coreboot lessons ===
 +
[[Lesson1]] - Starting from scratch.  Download coreboot, build it, and test the image on QEMU.

Latest revision as of 21:51, 23 July 2017

Martin Roth

Martin.jpg

Email:

gaumless@gmail.com
martinroth@google.com

IRC:

martinr (usually)
gaumless (occasionally)

Useful commands

See what Kconfig symbols are used in a platform

make clean; make filelist; for file in $(grep -v 'config\.h' build/project_filelist.txt); do grep CONFIG_ "$file"; done | grep -Ev '[_A-Za-z]CONFIG' | sed 's/.*[-(\)\[\$!"[:space:]]CONFIG_/CONFIG_/'|sed 's/[^A-Z0-9_].*//' | sort | uniq

Find hex encoded binaries in coreboot

git grep -c '0x' | grep src/ | grep -v ':.\?.\?.$' | sort -n -k2 -t ':'

Find binary files in src tree

find src -type f -exec file -i '{}' \; | grep 'charset=binary' | grep -v 'x-empty'

run checkpatch on files

DIR=src/lib;for file in $(git ls-files | grep "${DIR}"); do util/lint/checkpatch.pl --file $file --terse; done

Platforms supported by coreboot

Vendor Board Processor Southbridge Memory Count Blobs Used as
ADI SG-2220 Intel Rangeley - 2GB DDR3L Soldered Down 1 FSP
ADI SG-2440 Intel Rangeley - 4GB DDR3L Soldered Down 1 FSP
AMD Bettong (DB-FP4) 1 Yes
AMD Kino AMD Family 10h 1
AMD Lamar 1
AMD Mahogony AMD Family F AMD SB700 4 DDR2 UDIMMs 1
AMD Mahogony AMD Family 10h AMD SB700 4 DDR2 UDIMMs 1
AMD Olive Hill 1
AMD Parmer AMD Family 15TN AMD Hudson 2
AMD Pistachio AMD Family F AMD SB600 1
AMD Persimmon [DB-FT1] AMD Family 14h AMD SB800 3
AMD Pumori 1
AMD Thatcher AMD Family 15TN AMD Hudson 1
AMD Torpedo AMD Family 12h AMD SB900 1
Asrock E350M1/USB3 AMD Family 14h 1
Asrock IMB-A180 2
ASUS F2A85-M AMD Family 15TN 1
ASUS KGPE-D16 AMD Family 10h / 15h 1 None Lumberingbuilder
ASUS KFSN4-DRE 1
ASUS P5GC-MX 2 DDR2 UDIMMs 1 None
Gigabyte GA-B75M-D3H Intel Ivybridge 4 DDR3 UDIMMs 1 ME Happybuilder
Gigabyte GA-G41M-ES2L 2 DDR2 UDIMMs 1 None
Gigabyte GA-945-GCM-S2L 2 DDR2 UDIMMs 1 None
Gigabyte GA-MA78GM AMD AM2+ socket AMD SB700 4 DDR2 UDIMMs 1
Gizmosphere Gizmo AMD Family 14h Soldered down 3
Gizmosphere Gizmo2 Soldered down 1 Yes
Intel Bakersport Intel Bay Trail I SOC - 1 ECC DDR-3 SODIMM 1 FSP, ME
Intel Bayley Bay Intel Bay Trail I SOC - 2 DDR-3 SODIMM 1 FSP, ME
Intel Camelback Mountain Broadwell DE SOC - 2 DDR-4 UDIMMs 1 FSP, ME
Intel Cougar Canyon Intel Ivybridge 1 FSP, ME
Intel D510MO I82801GB (ICH7) 2 DDR-2 UDIMMs 1 None
Intel Galileo 2 None
Intel Galileo Gen 2 1 None
Intel/Circuitco Minnowboard Max Intel Bay Trail I 1 FSP, ME
Intel/ADI Minnowboard Turbot Intel Bay Trail I 1 FSP, ME
Intel Mohon Peak Intel Rangeley 1 FSP
Lenovo T500 1 None
Lenovo W500 1 None
Lenovo T520 Intel Sandybridge 1 ME
Lenovo T530 Intel Ivybridge 2 DDR-3 SODIMMS 1 ME
Lenovo X230 Intel Ivybridge 2 DDR-3 SODIMMS 1 ME
Lenovo W530 Intel Ivybridge 4 DDR-3 SODIMMS 2 ME Grumpybuilder
PC Engines APU2C4 1
Supermicro H8SCM AMD Family 10h / 15h AMD SP5100 4 DDR3 DIMMs 1

Links

General Hardware & BIOS

_HID & EisaID

Payloads


Fedora setup

Tested on Fedora 20 & 21

sudo yum install git gcc gcc-c++ flex bison ncurses-devel acpica-tools wget patch pciutils-devel
git clone http://review.coreboot.org/coreboot
cd coreboot
git submodule update --init --checkout
make crossgcc-i386

Optional installs:

sudo yum install ccache clang


Flashing 3MB of 8MB ROM on minnowboard max

echo 00500000:007fffff cb-region > 8mb ; flashrom -p dediprog:voltage=1.8v -l 8mb -i cb-region -w build/coreboot.rom


Coreboot lessons

Lesson1 - Starting from scratch. Download coreboot, build it, and test the image on QEMU.