Well I almost have my LPCflasher built I'm just waiting on one more part to come. So I went ahead and started the wiki page. It's just a start, so keep an eye on it over the next few weeks the page is going to fill right up (and then some). So are there any suggestions on stuff I should add?
http://www.coreboot.org/LPCflasher
On 11/20/08, Joseph Smith joe@settoplinux.org wrote:
Well I almost have my LPCflasher built I'm just waiting on one more part to come. So I went ahead and started the wiki page. It's just a start, so keep an eye on it over the next few weeks the page is going to fill right up (and then some). So are there any suggestions on stuff I should add?
I particularly like "The Circuit Explained" section. There are many open design electronic projects out there, but I cannot remember many explain their circuits. People have discussed to make sure the design is safe. So others with similar worry will be interesting in this section, too.
Looking forward to a filled wiki page, and (possibly) an SPI supported LPCflasher.
yu ning
On Thu, 20 Nov 2008 11:26:17 +0800, "FENG Yu Ning" fengyuning1984@gmail.com wrote:
I particularly like "The Circuit Explained" section. There are many open design electronic projects out there, but I cannot remember many explain their circuits. People have discussed to make sure the design is safe. So others with similar worry will be interesting in this section, too.
Looking forward to a filled wiki page, and (possibly) an SPI supported LPCflasher.
Great. I think it is important to explain exactly what each components rule plays in the whole processes.
So far so good. I'm looking forward to reading up more on flashrom support, but I suspect that it will come more or less automatically once all the hardware is hooked up and the machine is booting linux.
On Wed, Nov 19, 2008 at 2:56 PM, Joseph Smith joe@settoplinux.org wrote:
Well I almost have my LPCflasher built I'm just waiting on one more part to come. So I went ahead and started the wiki page. It's just a start, so keep an eye on it over the next few weeks the page is going to fill right up (and then some). So are there any suggestions on stuff I should add?
http://www.coreboot.org/LPCflasher
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
On Wed, 19 Nov 2008 21:35:06 -0800, "David Hendricks" david.hendricks@gmail.com wrote:
So far so good. I'm looking forward to reading up more on flashrom
support,
but I suspect that it will come more or less automatically once all the hardware is hooked up and the machine is booting linux.
Thanks. I think flashrom support will be fairly easy to setup. We just need to setup communications for a LPT port.
On 20.11.2008 16:25, Joseph Smith wrote:
On Wed, 19 Nov 2008 21:35:06 -0800, "David Hendricks" david.hendricks@gmail.com wrote:
So far so good. I'm looking forward to reading up more on flashrom support, but I suspect that it will come more or less automatically once all the hardware is hooked up and the machine is booting linux.
Thanks. I think flashrom support will be fairly easy to setup. We just need to setup communications for a LPT port.
You need to implement a LPC protocol layer inside flashrom to do this. While I don't doubt that you can do this, it sure is quite a bit of effort. That's also the reason why the homemade SPI flasher at http://rayer.ic.cz/elektro/spipgm.htm is not supported yet (SPI layer is missing).
Regards, Carl-Daniel
On Thu, 20 Nov 2008 17:14:03 +0100, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
Thanks. I think flashrom support will be fairly easy to setup. We just
need
to setup communications for a LPT port.
You need to implement a LPC protocol layer inside flashrom to do this. While I don't doubt that you can do this, it sure is quite a bit of effort.
That's exactly what I plan to do Carl-Daniel (with everyones help of course). The windows software C source for the original program is available for a reference point and it is very simple. We just need to convert it to linux/flashrom language. I plan on adding a L option to flashrom for this. Probibly something like "-l /dev/lp0"
On 20.11.2008 18:43, Joseph Smith wrote:
On Thu, 20 Nov 2008 17:14:03 +0100, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
Thanks. I think flashrom support will be fairly easy to setup. We just need to setup communications for a LPT port.
You need to implement a LPC protocol layer inside flashrom to do this. While I don't doubt that you can do this, it sure is quite a bit of effort.
That's exactly what I plan to do Carl-Daniel (with everyones help of course).
Great!
The windows software C source for the original program is available for a reference point and it is very simple. We just need to convert it to linux/flashrom language.
What's the license of that software?
I plan on adding a L option to flashrom for this. Probibly something like "-l /dev/lp0"
Can we use long options until we have decided on the final one-letter options? My suggestion for these external flashers would be to specify the name of the host/programmer like "--host=lpcflasher" and possibly "--interface=/dev/lp0". That way, we can restrict the probe sequences to those which are supported by a given programmer.
Regards, Carl-Daniel
On Thu, 20 Nov 2008 19:04:18 +0100, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
On 20.11.2008 18:43, Joseph Smith wrote:
On Thu, 20 Nov 2008 17:14:03 +0100, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
Thanks. I think flashrom support will be fairly easy to setup. We just need to setup communications for a LPT port.
You need to implement a LPC protocol layer inside flashrom to do this. While I don't doubt that you can do this, it sure is quite a bit of effort.
That's exactly what I plan to do Carl-Daniel (with everyones help of course).
Great!
The windows software C source for the original program is available for a reference point and it is very simple. We just need to convert it to linux/flashrom language.
What's the license of that software?
Not sure there is no license in any of the headers, and we can't get a response from the author...
I plan on adding a L option to flashrom for this. Probibly something like "-l /dev/lp0"
Can we use long options until we have decided on the final one-letter options? My suggestion for these external flashers would be to specify the name of the host/programmer like "--host=lpcflasher" and possibly "--interface=/dev/lp0". That way, we can restrict the probe sequences to those which are supported by a given programmer.
Hmm, that is a possibility, that also opens the door for other programmers to use flashrom :-)
On 20.11.2008 21:48, Joseph Smith wrote:
On Thu, 20 Nov 2008 19:04:18 +0100, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
On 20.11.2008 18:43, Joseph Smith wrote:
The windows software C source for the original program is available for a reference point and it is very simple. We just need to convert it to linux/flashrom language.
What's the license of that software?
Not sure there is no license in any of the headers, and we can't get a response from the author...
We could give that person time to respond. He/she may be on vacation or have other reasons to delay an answer.
I plan on adding a L option to flashrom for this. Probibly something like "-l /dev/lp0"
Can we use long options until we have decided on the final one-letter options? My suggestion for these external flashers would be to specify the name of the host/programmer like "--host=lpcflasher" and possibly "--interface=/dev/lp0". That way, we can restrict the probe sequences to those which are supported by a given programmer.
Hmm, that is a possibility, that also opens the door for other programmers to use flashrom :-)
That was my intention. We could use "--host=rayerspiflasher" for that homebrew SPI flasher. It would certainly help if flashrom became the default Linux tool for homebrew flashers.
Regards, Carl-Daniel
Carl-Daniel Hailfinger wrote:
It would certainly help if flashrom became the default Linux tool for homebrew flashers.
Yes and no. flashrom doesn't have very much to offer besides some limited chip knowledge, but that may be good enough for homebrew purposes. The problem is that infrastructure is lacking..
I would very much like the plugin idea to take off though!
//Peter
Carl-Daniel Hailfinger wrote:
You need to implement a LPC protocol layer inside flashrom to do this.
Find an lmilk/wmilk tarball and translate the C++ code. Or maybe make a plugin system for flashrom using some kind of IPC. Pipes, shared memory, etc.
They drove the milksop and cheaplpc. The cheaplpc code I hinted at also does exactly this already.
What's the license of that software?
lmilk/wmilk is GPL. cheaplpc.com software I don't know, I didn't download it.
My suggestion for these external flashers would be to specify the name of the host/programmer like "--host=lpcflasher" and possibly "--interface=/dev/lp0".
I'd like to counter with --master or --plugin. --host could imply networking and the term on LPC as well as SPI for something doing what the external hardware is doing here is a bus master.
Parallell port abstraction is needed somewhere because every system does this differently. lmilk/wmilk already has that. I don't expect /dev/lp0 to be usable, if that exists then the kernel printer driver has already claimed the port. But maybe /dev/parport0 can work, or you do what lmilk does and simply program the port with OUTB/INB.
//Peter
On 20.11.2008 23:07, Peter Stuge wrote:
Carl-Daniel Hailfinger wrote:
You need to implement a LPC protocol layer inside flashrom to do this.
Find an lmilk/wmilk tarball and translate the C++ code. Or maybe make a plugin system for flashrom using some kind of IPC. Pipes, shared memory, etc.
They drove the milksop and cheaplpc. The cheaplpc code I hinted at also does exactly this already.
I'll take a look in a week or so. Joseph, if you find time before that, please go ahead.
What's the license of that software?
lmilk/wmilk is GPL. cheaplpc.com software I don't know, I didn't download it.
My suggestion for these external flashers would be to specify the name of the host/programmer like "--host=lpcflasher" and possibly "--interface=/dev/lp0".
I'd like to counter with --master or --plugin. --host could imply networking and the term on LPC as well as SPI for something doing what the external hardware is doing here is a bus master.
--master is a good idea.
Parallell port abstraction is needed somewhere because every system does this differently. lmilk/wmilk already has that. I don't expect /dev/lp0 to be usable, if that exists then the kernel printer driver has already claimed the port. But maybe /dev/parport0 can work, or you do what lmilk does and simply program the port with OUTB/INB.
OUTB/INB may need root privileges and may not work with USB->LPT converters. Your point about a parallel port abstraction layer is valid, though.
Regards, Carl-Daniel
On Thu, 20 Nov 2008 23:20:11 +0100, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
On 20.11.2008 23:07, Peter Stuge wrote:
Carl-Daniel Hailfinger wrote:
You need to implement a LPC protocol layer inside flashrom to do this.
Find an lmilk/wmilk tarball and translate the C++ code. Or maybe make a plugin system for flashrom using some kind of IPC. Pipes, shared memory, etc.
They drove the milksop and cheaplpc. The cheaplpc code I hinted at also does exactly this already.
I'll take a look in a week or so. Joseph, if you find time before that, please go ahead.
Sure, I'm interested in how the lmilk software works, but I can't seem to find it anywhere. Anyone got a link?
Joseph Smith wrote:
Sure, I'm interested in how the lmilk software works, but I can't seem to find it anywhere. Anyone got a link?
Andy stopped distributing it, I dug up the tarball. So:
http://stuge.se/lmilk-0.12.tar.gz
and for more data points:
http://cheaplpc.com/cheaplpc/software.asp
//Peter
On Fri, 21 Nov 2008 18:45:58 +0100, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
Sure, I'm interested in how the lmilk software works, but I can't seem to find it anywhere. Anyone got a link?
Andy stopped distributing it, I dug up the tarball. So:
http://stuge.se/lmilk-0.12.tar.gz
and for more data points:
Thanks Peter :-)
Ok, I have finished the "The Circuit Explained" section. I need some feedback, bueller?
http://www.coreboot.org/LPCflasher
Joseph Smith wrote:
Ok, I have finished the "The Circuit Explained" section. I need some feedback, bueller?
A series of 1K ohms resistors 250mW (1/4W) on data lines D0 - D6 convert the signals from 5V to 3.3v needed by the flash chip.
This sentence and design is not so good. A resistor can not be used to safely lower voltage. The ST buffer has absolute max DC Input VCC+0.5, which is clearly exceeded by your circuit when that resistor is the only thing between the parallell port and the buffer. The flash chips are likely to have even stricter ratings.
I would revisit this. At the very least use two resistors as a voltage divider, but it will probably mean that you can not program the LPC/FWH signals as quickly as with better level shifting. Ideally use a fast buffer with 5V-tolerant input and 3V output, but diodes work too. Just make sure they have the right voltage drop.
//Peter
On Mon, 24 Nov 2008 22:11:04 +0100, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
Ok, I have finished the "The Circuit Explained" section. I need some feedback, bueller?
A series of 1K ohms resistors 250mW (1/4W) on data lines D0 - D6 convert the signals from 5V to 3.3v needed by the flash chip.
This sentence and design is not so good.
Ok, how about this: A series of 1K ohms resistors 250mW (1/4W) on data lines D0 – D6 convert the signals from 5V to 3.3v needed by the flash chip. Any excess voltage is shunted by diodes inside the 74HC244 to its 3.3V power rail.
Joseph Smith wrote:
A series of 1K ohms resistors 250mW (1/4W) on data lines D0 - D6 convert the signals from 5V to 3.3v needed by the flash chip.
This sentence and design is not so good.
Ok, how about this: A series of 1K ohms resistors 250mW (1/4W) on data lines D0 ??? D6 convert the signals from 5V to 3.3v needed by the flash chip.
This is still a bad claim. A resistor limits current and nothing else. Ignoring that will harm the rest of the circuit.
Any excess voltage is shunted by diodes inside the 74HC244 to its 3.3V power rail.
Umm, it could just break the IC. Please have a look at the data sheet again to confirm my fears. Going beyond absolute maximum ratings is not a good idea. Please avoid such recommendations.
//Peter
On Tue, 25 Nov 2008 03:36:34 +0100, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
A series of 1K ohms resistors 250mW (1/4W) on data lines D0 - D6 convert the signals from 5V to 3.3v needed by the flash chip.
This sentence and design is not so good.
Ok, how about this: A series of 1K ohms resistors 250mW (1/4W) on data lines D0 ??? D6 convert the signals from 5V to 3.3v needed by the flash chip.
This is still a bad claim. A resistor limits current and nothing else. Ignoring that will harm the rest of the circuit.
Any excess voltage is shunted by diodes inside the 74HC244 to its 3.3V power rail.
Umm, it could just break the IC. Please have a look at the data sheet again to confirm my fears. Going beyond absolute maximum ratings is not a good idea. Please avoid such recommendations.
Hmm. I just hooked everything up and tested the voltages across the circuit. D0,D1, D2, D4, D5, and D6 are 4.13V all the way across. D3 was 4.37V all the way across. /Error, /SELIN, /PE, and /Ack were a solid 3.3V. The original author also put a 1k resistor across the 3.3V power rail to help to dissipate the current. Do you think that will help? I could always replace the 1k resistors with schottky diodes to lower the voltage 0.6V, but what about the bi-directional data lines? Would I have to put 2 schottky diodes togethor in both directions???
Also the Voltage on the LPC and FWH chips data lines should be + or - 0.5V of 3.3V :-(
On Mon, 24 Nov 2008 23:46:32 -0500, Joseph Smith joe@settoplinux.org wrote:
On Tue, 25 Nov 2008 03:36:34 +0100, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
A series of 1K ohms resistors 250mW (1/4W) on data lines D0 - D6 convert the signals from 5V to 3.3v needed by the flash chip.
This sentence and design is not so good.
Ok, how about this: A series of 1K ohms resistors 250mW (1/4W) on data lines D0 ??? D6 convert the signals from 5V to 3.3v needed by the flash chip.
This is still a bad claim. A resistor limits current and nothing else. Ignoring that will harm the rest of the circuit.
Any excess voltage is shunted by diodes inside the 74HC244 to its 3.3V power rail.
Umm, it could just break the IC. Please have a look at the data sheet again to confirm my fears. Going beyond absolute maximum ratings is not a good idea. Please avoid such recommendations.
Hmm. I just hooked everything up and tested the voltages across the circuit. D0,D1, D2, D4, D5, and D6 are 4.13V all the way across. D3 was 4.37V all the way across. /Error, /SELIN, /PE, and /Ack were a solid
3.3V.
The original author also put a 1k resistor across the 3.3V power rail to help to dissipate the current. Do you think that will help? I could
always
replace the 1k resistors with schottky diodes to lower the voltage 0.6V, but what about the bi-directional data lines? Would I have to put 2 schottky diodes togethor in both directions???
Also the Voltage on the LPC and FWH chips data lines should be + or -
0.5V
of 3.3V :-(
Ahh, I think the 1k resistor across the 3.3V power rail acts as a potential divider, I will add the 1k resistor across the 3.3V power rail, test and report back.
On Tue, 25 Nov 2008 07:33:33 -0500, Joseph Smith joe@settoplinux.org wrote:
On Mon, 24 Nov 2008 23:46:32 -0500, Joseph Smith joe@settoplinux.org wrote:
On Tue, 25 Nov 2008 03:36:34 +0100, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
A series of 1K ohms resistors 250mW (1/4W) on data lines D0 - D6 convert the signals from 5V to 3.3v needed by the flash chip.
This sentence and design is not so good.
Ok, how about this: A series of 1K ohms resistors 250mW (1/4W) on data lines D0 ??? D6 convert the signals from 5V to 3.3v needed by the flash chip.
This is still a bad claim. A resistor limits current and nothing else. Ignoring that will harm the rest of the circuit.
Any excess voltage is shunted by diodes inside the 74HC244 to its 3.3V power rail.
Umm, it could just break the IC. Please have a look at the data sheet again to confirm my fears. Going beyond absolute maximum ratings is not a good idea. Please avoid such recommendations.
Hmm. I just hooked everything up and tested the voltages across the circuit. D0,D1, D2, D4, D5, and D6 are 4.13V all the way across. D3 was 4.37V all the way across. /Error, /SELIN, /PE, and /Ack were a solid
3.3V.
The original author also put a 1k resistor across the 3.3V power rail to help to dissipate the current. Do you think that will help? I could
always
replace the 1k resistors with schottky diodes to lower the voltage 0.6V, but what about the bi-directional data lines? Would I have to put 2 schottky diodes togethor in both directions???
Also the Voltage on the LPC and FWH chips data lines should be + or -
0.5V
of 3.3V :-(
Ahh, I think the 1k resistor across the 3.3V power rail acts as a potential divider, I will add the 1k resistor across the 3.3V power rail, test and report back.
BAA!!! Your right Peter. Nope still getting high voltages from LPT signals. So here is what I am going to do. All resisters -> gone. Schottky diodes, nope. I found that Texas Instruments makes a 10-Bit FET bus switch with level shifting. http://focus.ti.com/lit/ds/symlink/sn74cbtd3861.pdf
This will work awsome, and it only costed me $0.64. The only problem is it only comes in smaller packages and makes it hard to put on a breadboard. So I went with the SOIC 24 package and got one of these SOIC to DIP adapters real cheap ($1.60) on eBay. http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220296579262 This is going to work better/easier than any resistor/diode solution. I can't wait until it gets here. Yahoo!
Joseph Smith wrote:
I found that Texas Instruments makes a 10-Bit FET bus switch with level shifting. http://focus.ti.com/lit/ds/symlink/sn74cbtd3861.pdf
Good one.
I went with the SOIC 24 package and got one of these SOIC to DIP adapters real cheap ($1.60) on eBay. http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220296579262
That's a good deal! I've ended up paying 10x that over the counter because I always need those when I'm in a hurry..
This is going to work better/easier than any resistor/diode solution.
It looks very good.
//Peter
On Wed, 26 Nov 2008 08:01:39 +0100, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
I found that Texas Instruments makes a 10-Bit FET bus switch with level shifting. http://focus.ti.com/lit/ds/symlink/sn74cbtd3861.pdf
Good one.
I went with the SOIC 24 package and got one of these SOIC to DIP adapters real cheap ($1.60) on eBay. http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220296579262
That's a good deal! I've ended up paying 10x that over the counter because I always need those when I'm in a hurry..
This is going to work better/easier than any resistor/diode solution.
It looks very good.
Ok I updated the schematic and everything else on the wiki page except the pictures. Which I will update as soon as the SN74CBTD3861/Adapter comes and I get it on the board. In the mean time I am going to work on some daughter board schematics and daughter boards.
On 24.11.2008 21:53, Joseph Smith wrote:
Ok, I have finished the "The Circuit Explained" section. I need some feedback, bueller?
Awesome, thanks! By the way, I have some sources for lmilk and some other stuff. Contact me off-list if you want them.
Regards, Carl-Daniel
Carl-Daniel Hailfinger wrote:
sources for lmilk
On that note I found a newer tarball than the 0.12 I linked to before, now you can also get http://stuge.se/lmilk-0.20.tar.gz
I didn't look at them so I don't know what changed, but I do know that I never really used anything but 0.12, and it worked fine for me.
//Peter
Update: I finished my LPCflasher, and have uploaded images to the Wiki page if your interested in what it looks like.
http://www.coreboot.org/LPCflasher