[coreboot] SPI clock rate

Tom Sylla tsylla at alum.mit.edu
Tue Jul 5 01:40:45 CEST 2011


Hello Andreas,

Your ideas sound pretty good, but here are a couple of ideas that
might make your life easier (and cheaper).

I found some high-res pictures of your board on the web, and it looks
like that board has a footprint for a SPI programming header (labelled
SPI1, between USB1 and the SPI ROM). Board manufacturers put these
headers on the board for BIOS development, to do exactly what you are
trying to do: in-system SPI flash programming (they are often called
in-system programming headers). One common commercial programmer is
the SF100 from dediprog:
http://www.dediprog.com/SPI-flash-in-circuit-programming

You can solder in a header (looks like a 2mm), or even just wires, and
connect whatever USB to SPI adapter you want. You just leave the SPI
ROM installed, and program it through the header. The header is
designed so that even with the board off, the programmer hardware
supplies power to the ROM device (only). Your board manual may have
the pinout, or just use a meter to figure out how it connects to the
SPI ROM.

Also, if you haven't seen it yet, take a look at the flashrom project:
http://www.flashrom.org/Flashrom
which can update flash from an OS, but also supports external
programmers like you are trying to achieve:
http://www.flashrom.org/FT2232SPI_Programmer

To answer your question, SPI clock rates are often about 33MHz, but
some devices support faster speeds. You can usually run it much slower
though.

Tom

On Mon, Jul 4, 2011 at 1:42 PM, Andreas Galauner <andreas at galauner.de> wrote:
> Hello everybody,
>
> I recently started to discover this great project you have here.
> I want to play with it a bit and port it to an AMD E-350 Motherboard
> (Sapphire Pure Fusion Mini E-350 - what a name...) I have at home in my
> spare time.
>
> Now I don't think that the development work is much fun, when you have
> to take the SPI chip off the motherboard, program it, put it back into
> the board, see the code failing and repeat the whole process ;)
> So, I had the idea of developing a small Board which contains a USB port
> and an SPI flash.
> I first thought about emulating the SPI flash completely by an AVR, but
> I think the clock rates of the SPI bus are too high to do this. My new
> approach is a SPI flash which resides on the AVR board which can be
> multiplexed between the AVR to program it and the motherboard.
> If I want to test a new BIOS, the AVR puts the motherboard into reset,
> detaches the flash chip with a multiplexer from the motherboard,
> programs it, switches it back to the motherboard and let off the reset.
>
> Rapid BIOS development :)
>
> As an added bonus, I'm thinking about using a USB 2.0 port of an
> USB-capable AVR as a USB debug interface (those USB debugging cables are
> expensive for a poor student ;) ) and add a second USB 1.1 port with a
> MAX3420 for host-communication, but that's step 2.
> I know that I won't get the full 480MBit/s with this, but I think I can
> live with that.
>
> As I am currently looking for suitable parts, I need to know some basic
> parameters of the SPI communication.
> Does anybody of you know what the typical clock rates between the
> chipset and the flash are?
>
> Andy
>
> --
> coreboot mailing list: coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
>




More information about the coreboot mailing list