Random notes/MCP SPI support: Difference between revisions
Jump to navigation
Jump to search
(Add P5N78L) |
No edit summary |
||
(18 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Status == | == Status == | ||
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#ff6666; align:right; border:1px solid #000000;"> | |||
Thanks to the efforts of Michael Karcher, we have a clean room reverse engineered doc for the flashing interface, and Carl-Daniel Hailfinger has integrated a [http://patchwork.coreboot.org/patch/1692/ patch] that supports read and write on most boards. There is no further development at the moment, but we are happy about verbose logs of any board that does (not) work and is not already mentioned at [[Supported hardware]]. | |||
</div> | |||
<!-- | |||
=== Old status === | |||
We can't support SPI flash on Nvidia chipsets (except SPI behind LPC/SPI translation) because we don't have the necessary docs for the SPI interface. There are three ways to solve the problem: | We can't support SPI flash on Nvidia chipsets (except SPI behind LPC/SPI translation) because we don't have the necessary docs for the SPI interface. There are three ways to solve the problem: | ||
* Get docs from Nvidia. We have unofficial word that you either have to buy 100000 chipsets from them or work with a customer of theirs which buys 100000 chipsets to have a reasonable chance of getting programming information. And yes, we tried personal contacts in their software development group. | * Get docs from Nvidia. We have unofficial word that you either have to buy 100000 chipsets from them or work with a customer of theirs which buys 100000 chipsets to have a reasonable chance of getting programming information. And yes, we tried personal contacts in their software development group. | ||
* Get Nvidia to contribute code. This might be easier because they don't have to give us docs for the SPI interface if they supply working code. Needs a compelling business reason for them (and AFAICS "it would be cool" or "it would improve Linux support" is not a valid business reason). We can provide skeleton code for them to fill in, reducing the amount of developer time they have to spend to a few (~2-6) hours. | * Get Nvidia to contribute code. This might be easier because they don't have to give us docs for the SPI interface if they supply working code. Needs a compelling business reason for them (and AFAICS "it would be cool" or "it would improve Linux support" is not a valid business reason). We can provide skeleton code for them to fill in, reducing the amount of developer time they have to spend to a few (~2-6) hours. | ||
* Reverse engineer the interface. '''This is what we | * Reverse engineer the interface. '''This is what we have done.''' Clean room techniques are being followed. If you're willing to test patches on your board, please contact us via [[IRC]] or [[Mailinglist|mail]]. Latest flashrom has some debug code which could help. | ||
== Want to help? == | == Want to help? == | ||
Pick any mainboard with a chipset newer than nForce5 | Pick any mainboard with a chipset newer than nForce5/MCP55. | ||
flashrom -V | |||
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#ff6666; align:right; border:1px solid #000000;"> | |||
If you're feeling adventurous and if you can recover from a bricked board (socketed SPI flash chip, and a supported SPI programmer to recover), please apply the following patch against latest flashrom: | |||
http://patchwork.coreboot.org/patch/1580/ , compile it with "make distclean; make" then run as root (lspci output as non-root is useless, and flashrom won't work) | |||
./flashrom -V | |||
lspci -nnvvvxxx | lspci -nnvvvxxx | ||
superiotool -deV | superiotool -deV | ||
and mail the output together with the exact name of the mainboard, a link to a BIOS update file (please don't send the BIOS update file itself) to flashrom@flashrom.org . In case superiotool is not installed, you can skip the superiotool output. Please use a subject which contains "MCP SPI". | and mail the output together with the exact name of the mainboard, a link to a BIOS update file (please don't send the BIOS update file itself) to flashrom@flashrom.org . In case superiotool is not installed, you can skip the superiotool output. Please use a subject which contains "MCP SPI". | ||
</div> | |||
== Notes == | == Notes == | ||
=== Tests of the current patch === | |||
* MCP61, 10de:03e0, LPC OK (valid SPIBAR), ECS Geforce6100SM-M, Andrew Cleveland | |||
* MCP61, 10de:03e0, LPC OK (valid SPIBAR), Biostar NF520-A2 NF61D-A2, Vitaliy Buchynskyy | |||
* MCP65, 10de:0441, SPI OK, MSI MS-7369 K9N Neo-F v2, Kjell Braden | |||
* MCP65, 10de:0441, SPI OK, MSI MS-7369, Wolfgang Schnitker | |||
* MCP65, 10de:0441, SPI OK, MSI MS-7369, Johannes Sjölund | |||
* MCP65, 10de:0441, SPI OK, MSI MS-7369, Melchior Franz | |||
* MCP78S, 10de:075c, SPI OK, Asus M3N78 PRO, Brad Rogers | |||
* MCP78S, 10de:075c, SPI OK, Asus M3N78-VM, Marcel Partap | |||
* MCP78S, 10de:075c, SPI OK, Asus M4N78 PRO, Kimmo Vuorinen | |||
* MCP78S, 10de:075c, SPI OK, Asus M4N78 PRO, Vikram Ambrose | |||
* MCP79, 10de:0aad, SPI OK, Acer Aspire R3600, Andrew Morgan | |||
* MCP79, 10de:0aae, LPC ?? (valid SPIBAR), Lenovo Ideapad S12 laptop, Christian Schmitt | |||
* MCP79, 10de:0aae, SPI OK, Apple iMac9,1 Mac-F2218EA9, David "dledson" | |||
=== Mainboard list === | |||
Boards with SPI flash (confirmed): | |||
* MCP61, Brett Mahar | |||
Boards with SPI flash (unconfirmed, guessed from photo): | Boards with SPI flash (unconfirmed, guessed from photo): | ||
* Acer FMCP7A-ION (in Aspire Revo R3600; GeForce 9400M, MCP7A) [http://www.flickr.com/photos/steve_snaps/3767888634/] [http://www.coreboot.org/pipermail/flashrom/2010-March/002434.html flashrom output] | |||
* Asus M2N-VM HDMI (nForce 630a, MCP67) [http://www.saved.im/nje2nzr6bhdi/mainboardobenff3.jpg] [http://overclockzone.com/news/information/2008/07/32/placas-base-amd-placa-asus-m2n-vm-hdmi--athlon-64-athlon-64-fx-ath-1g.jpg] | * Asus M2N-VM HDMI (nForce 630a, MCP67) [http://www.saved.im/nje2nzr6bhdi/mainboardobenff3.jpg] [http://overclockzone.com/news/information/2008/07/32/placas-base-amd-placa-asus-m2n-vm-hdmi--athlon-64-athlon-64-fx-ath-1g.jpg] | ||
* Asus M2N-VM DVI (nForce 630a, MCP67) [http://www.unitycorp.co.jp/asus/motherboard/amd/socket_am2/m2n-vm_dvi/big_photo.jpg] | * Asus M2N-VM DVI (nForce 630a, MCP67) [http://www.unitycorp.co.jp/asus/motherboard/amd/socket_am2/m2n-vm_dvi/big_photo.jpg] | ||
Line 24: | Line 56: | ||
* Asus M3N78-EM (GeForce 8200, MCP78S) [http://www.unitycorp.co.jp/asus/motherboard/amd/socket_am2plus/m3n78-em/big_photo.jpg], [http://www.coreboot.org/pipermail/flashrom/2010-February/002282.html flashrom output] | * Asus M3N78-EM (GeForce 8200, MCP78S) [http://www.unitycorp.co.jp/asus/motherboard/amd/socket_am2plus/m3n78-em/big_photo.jpg], [http://www.coreboot.org/pipermail/flashrom/2010-February/002282.html flashrom output] | ||
* Asus M4N68T-M (nForce 630a) [http://upload.hardver-teszt.hu/imgs/news/2009/536/asus-m4n68t-m-top.jpg] | * Asus M4N68T-M (nForce 630a) [http://upload.hardver-teszt.hu/imgs/news/2009/536/asus-m4n68t-m-top.jpg] | ||
* Asus M4N78 Pro (GeForce 8200, MCP78S) [http://www.unitycorp.co.jp/asus/motherboard/amd/socket_am3/m4n78pro/big_photo.jpg], [http://www.flashrom.org/pipermail/flashrom/attachments/20100216/17bd93f6/attachment-0005.log flashrom output] | |||
* Asus P5N78L (GeForce 9300, MCP79) [http://www.hkgolden.com/ArticleBase/big/3038/15007.jpg], [http://www.coreboot.org/pipermail/flashrom/2010-February/002259.html flashrom output] | * Asus P5N78L (GeForce 9300, MCP79) [http://www.hkgolden.com/ArticleBase/big/3038/15007.jpg], [http://www.coreboot.org/pipermail/flashrom/2010-February/002259.html flashrom output] | ||
* ECS GF8200A (GeForce 8200, MCP78S) [http://www.ixbt.com/mainboard/ecs/gf8200a/board.jpg] | * ECS GF7050VT-M5 (GeForce 7050, MCP73) [http://www.coreboot.org/pipermail/coreboot/2009-January/044099.html (confirmed)] | ||
* ECS GF8200A (GeForce 8200, MCP78S) [http://www.ixbt.com/mainboard/ecs/gf8200a/board.jpg] [http://www.coreboot.org/pipermail/flashrom/2010-January/002004.html flashrom/lspci output] | |||
* Gigabyte GA-M56S-S3 (MCP65) [http://pclab.pl/zdjecia/artykuly/khedron/27am2/gigabyte-ga-m56s-s3_top_b.jpg] | * Gigabyte GA-M56S-S3 (MCP65) [http://pclab.pl/zdjecia/artykuly/khedron/27am2/gigabyte-ga-m56s-s3_top_b.jpg] | ||
* XFX MG-63MI-7159 (nForce 630i, MCP73) (no usable photo, but a ebay phillipines dealer sells preprogrammed SPI Flash for this board) [http://www.coreboot.org/pipermail/flashrom/2010-February/002162.html flashrom/lspci output] | |||
* Zotac ION (GeForce 9400M, MCP7A) [http://commons.wikimedia.org/wiki/File:ZotacION.jpg] [http://www.coreboot.org/pipermail/flashrom/2010-March/002434.html flashrom/lspci output] | |||
Boards with LPC flash (unconfirmed, guessed from photo): | Boards with LPC flash (unconfirmed, guessed from photo): | ||
Line 45: | Line 81: | ||
ISA/LPC bridge reg 0x00 contents: 0x00, bit 6 is 0, bit 5 is 0 | ISA/LPC bridge reg 0x00 contents: 0x00, bit 6 is 0, bit 5 is 0 | ||
SPI BAR is at 0x00000000 | SPI BAR is at 0x00000000 | ||
Observed on M2N-MX with LPC flash - | Observed on M2N-MX with LPC flash. | ||
--!> |
Latest revision as of 13:58, 28 May 2012
Status
Thanks to the efforts of Michael Karcher, we have a clean room reverse engineered doc for the flashing interface, and Carl-Daniel Hailfinger has integrated a patch that supports read and write on most boards. There is no further development at the moment, but we are happy about verbose logs of any board that does (not) work and is not already mentioned at Supported hardware.