Motherboard Porting Guide: Difference between revisions
m (add new board) |
No edit summary |
||
Line 3: | Line 3: | ||
Please note that this is WIP work. | Please note that this is WIP work. | ||
== HOWTO to find a way == | |||
* find a model and manufacturer of your mobo | |||
* download these tools: | |||
# git clone http://review.coreboot.org/p/coreboot | |||
# superiotool ( cd coreboot/util/superiotool ; make ; sudo make install ) | |||
# inteltool ( cd coreboot/util/inteltool ; make ; sudo make install ) | |||
# ectool ( cd coreboot/util/ectool ; make ; sudo make install ) | |||
# dmidecode ( cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dmidecode co dmidecode ) | |||
# msrtool ( cd coreboot/util/msrtool ; ./configure ; make ; sudo make install ) | |||
# nvramtool ( cd coreboot/util/nvramtool ; make ; sudo make install ) | |||
# flashrom ( svn co svn://coreboot.org/flashrom/trunk flashrom ) | |||
* make and install them (make; sudo make install) - you need at least libpci/pciutils | |||
* check that your distro have this tools and install them: | |||
# lspci | |||
# dmesg | |||
# acpitool | |||
# lspnp | |||
# lsusb | |||
* Do this commands: | |||
# lspci -nnvvvxxxx > lscpi.log | |||
# lspnp -vv > lspnp.log | |||
# lsusb -vvv > lsusb.log | |||
# superiotool -deV > superiotool.log | |||
# inteltool -a > inteltool.log | |||
# ectool > ectool.log | |||
# msrtool > msrtool.log | |||
# dmidecode > dmidecode.log | |||
# biosdecode > biosdecode.log | |||
# nvramtool -x > nvramtool.log | |||
# dmesg > dmesg.log | |||
# flashrom -V -p internal:laptop=force_I_want_a_brick > flashrom_info.log | |||
# flashrom -V -p internal:laptop=force_I_want_a_brick -r rom.bin > flashrom_read.log | |||
* Save all logs in safe place, and also rom.bin file. | |||
* try to find information - what EC (if on laptop) or Super I/O chip (if any) is used in your mobo (may be some info in Service Manuals or Disassembly guides) | |||
* try to find your Super I/O / EC chip datasheet | |||
For laptop, additionally: | |||
* if you see that ectool return some fake staff - like only 'FF' or '00' - so you have custom EC configuration, it's a hard work for support | |||
* if you see that ectool return looks like 'right' output - you have a big chances for support | |||
* you need to find from thease outputs Super I/O / EC chip name, or if not see this - disassembly your laptop | |||
=== Selecting Similar Board === | === Selecting Similar Board === |
Revision as of 04:12, 24 January 2014
Motherboard Porting Guide
Please note that this is WIP work.
HOWTO to find a way
- find a model and manufacturer of your mobo
- download these tools:
# git clone http://review.coreboot.org/p/coreboot # superiotool ( cd coreboot/util/superiotool ; make ; sudo make install ) # inteltool ( cd coreboot/util/inteltool ; make ; sudo make install ) # ectool ( cd coreboot/util/ectool ; make ; sudo make install ) # dmidecode ( cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dmidecode co dmidecode ) # msrtool ( cd coreboot/util/msrtool ; ./configure ; make ; sudo make install ) # nvramtool ( cd coreboot/util/nvramtool ; make ; sudo make install ) # flashrom ( svn co svn://coreboot.org/flashrom/trunk flashrom )
- make and install them (make; sudo make install) - you need at least libpci/pciutils
- check that your distro have this tools and install them:
# lspci # dmesg # acpitool # lspnp # lsusb
- Do this commands:
# lspci -nnvvvxxxx > lscpi.log # lspnp -vv > lspnp.log # lsusb -vvv > lsusb.log # superiotool -deV > superiotool.log # inteltool -a > inteltool.log # ectool > ectool.log # msrtool > msrtool.log # dmidecode > dmidecode.log # biosdecode > biosdecode.log # nvramtool -x > nvramtool.log # dmesg > dmesg.log # flashrom -V -p internal:laptop=force_I_want_a_brick > flashrom_info.log # flashrom -V -p internal:laptop=force_I_want_a_brick -r rom.bin > flashrom_read.log
- Save all logs in safe place, and also rom.bin file.
- try to find information - what EC (if on laptop) or Super I/O chip (if any) is used in your mobo (may be some info in Service Manuals or Disassembly guides)
- try to find your Super I/O / EC chip datasheet
For laptop, additionally:
- if you see that ectool return some fake staff - like only 'FF' or '00' - so you have custom EC configuration, it's a hard work for support
- if you see that ectool return looks like 'right' output - you have a big chances for support
- you need to find from thease outputs Super I/O / EC chip name, or if not see this - disassembly your laptop
Selecting Similar Board
TODO.
Modifying existing board
TODO.
Adding a new board
This is a two step process. If you mainboard already exists, skip to next section.
Adding a new vendor to tree
Create a directory in src/mainboard with the same name as vendor name. Add to src/mainboard/Kconfig new vendor entry, the rest of this example uses "foo" vendor.
config VENDOR_FOO bool "Foo"
Add also a include for new Kconfig file which holds the vendor motherboards in the vendor directory
source "src/mainboard/foo/Kconfig"
Create a src/mainboard/foo/Kconfig, copy from other vendor, and change the vendor name. Delete all mainboards.
Adding a new motherboard to tree
Asume that vendor name is foo and board type is bar. Add new configuration item in src/mainboard/foo/Kconfig
config BOARD_FOO_BAR bool "BAR"
Add include for board specific config:
source "src/mainboard/foo/bar/Kconfig"
Adjusting contents of new board directory
Adjust Kconfig to fit the new vendor/model name and dont forget to change MAINBOARD_DIR and MAINBOARD_PART_NUMBER.