Fun easy question. Messing about with my new board, and have an easy question. So I have both the SST 39SF020 and the 39SF040 flash chip. My payload is just filo; so I can fit Linuxbios on the 256Kb or the 512Kb flash chip. Is there any reason to use the 512Kb? Faster, slower, any thing else like that? -Adam
On Mon, Feb 06, 2006 at 10:41:02PM -0800, Adam Talbot wrote:
Fun easy question. Messing about with my new board, and have an easy question. So I have both the SST 39SF020 and the 39SF040 flash chip. My payload is just filo; so I can fit Linuxbios on the 256Kb or the 512Kb flash chip. Is there any reason to use the 512Kb? Faster, slower, any thing else like that?
It depends on the second line of numbers on the package.
SST 39SF0x0(A) is on the first line 45-4C-NH(E) or something similar is on the second line
45/70 is read access speed in ns 4 is minimum life in write cycles C is temperature range (Commercial 0c->70c or Industrial -40c->85c) N is PLCC H is 32 leads E is lead-free
Page 20 of http://www.sst.com/downloads/datasheet/S71147.pdf
But, I doubt you would even be able to measure difference in speed between 45 and 70 ns versions. :)
//Peter
-Peter Stuge Cool, that is great info to know. Both of my chips are 45-4C-NH. 45 Msec 4=10,000 write cycles (doc, thank you for the link) PLCC, 32
Is there any thing from the Linuxbios side of the world, besides the size config? Does Linuxbios load the whole chip into ram(so 256k or 512k), or just it's self on startup?
Speed in ns: What controls that? Can I set/change the access speed to my "bios chip"? I have a few boards that had Eon chips(120ns), I have replaced them with SST's(45ns), they work fine. Are they running faster? On this current project all I care about is boot time and ever 0.10 seconds I can save, counts. -Adam
Peter Stuge wrote:
On Mon, Feb 06, 2006 at 10:41:02PM -0800, Adam Talbot wrote:
Fun easy question. Messing about with my new board, and have an easy question. So I have both the SST 39SF020 and the 39SF040 flash chip. My payload is just filo; so I can fit Linuxbios on the 256Kb or the 512Kb flash chip. Is there any reason to use the 512Kb? Faster, slower, any thing else like that?
It depends on the second line of numbers on the package.
SST 39SF0x0(A) is on the first line 45-4C-NH(E) or something similar is on the second line
45/70 is read access speed in ns 4 is minimum life in write cycles C is temperature range (Commercial 0c->70c or Industrial -40c->85c) N is PLCC H is 32 leads E is lead-free
Page 20 of http://www.sst.com/downloads/datasheet/S71147.pdf
But, I doubt you would even be able to measure difference in speed between 45 and 70 ns versions. :)
//Peter
Is there any thing from the Linuxbios side of the world, besides the size config?
Are you sure that your board has >=A18 routed to the chip for >=512k? If not then those address lines might be no connects and they will float. Meaning that they can change on a whim. If A18 changes you will switch from 0-256k area to the 256k-512k and unless you have duplicated the code into the area of the part things will go south.
Does Linuxbios load the whole chip into ram(so 256k or 512k), or just it's self on startup?
It only copies what it thinks it needs.
What controls that? Can I set/change the access speed to my "bios chip"?
Maybe.
I have a few boards that had Eon chips(120ns), I have replaced them with SST's(45ns), they work fine. Are they running faster?
No.
This completely depends on the chipset and where your part is located. If you part is fetched via ISA cycles then there's not a lot you can do. Some chipsets will let you vary some ISA settings and perhaps the number of wait states in the ISA cycle but normally that just lets you slow down and not go faster.
If you can change the ISA clock then it _will_ go faster. The ISA clock probably comes from a source thats not variable or it may affect other things in the system. You will have to look at the chipset docs. I remember back in the good old AT "turbo" days that in turbo mode the ISA clock was sometimes increased. The coming of the vesa local bus and then the PCI bus took care of that though.
If you bios is on the LPC bus then there might be some more flexability. I've not used the LPC bus much so I can't comment.
The same rules will mostly apply. There will be a clock that drives the bus. Increase the clock you increase the bus speed. If there is a wait state > 0 setting it to 0 should increase the speed as well.
Expect to hang your system a lot while playing with this.
On this current project all I care about is boot time and ever 0.10 seconds I can save, counts.
I suspect that you have more success on speedups by tweaking the linuxbios/linux kernel startup code than by trying to play with the bios access times.
Sending a byte out the serial port at 115200 is approx 80 times slower than a ISA bios fetch. So you will have the most dramatic speed up by nuking anything that writes to the serial port.
-- Richard A. Smith
If you can change the ISA clock then it _will_ go faster. The ISA clock probably comes from a source thats not variable or it may affect other things in the system. You will have to look at the chipset docs. I remember back in the good old AT "turbo" days that in turbo mode the ISA clock was sometimes increased. The coming of the vesa local bus and then the PCI bus took care of that though.
I should probally note that some of these settings will probably be set with pin "strappings" (stuff that is clocked into the chip when reset goes from active to inactive)
Meaning that you have to change hardware to set them. In some cases you can play with the settings after-the-fact but your changes may be ignored.
-- Richard A. Smith
Adam Talbot wrote:
Speed in ns: What controls that? Can I set/change the access speed to my "bios chip"?
The timing of the Flash BIOS read and write cycles are hardwired into the chipset and clock synthesizer. At most there is a pinstrap (Pinstrap = A signal line on a chipset that is read only after RESET that is used to configure the chipset. The line is either tied to a High or Low via a resistor.) to chose the type of firmware interface, x8, x16, LPC or FWH.
For an example, see page #3 of this schematic: http://www.amd.com/epd/desiging/evalboards/8.am186ccev/22002_1/22002_1.pdf
I have a few boards that had Eon chips(120ns), I have replaced them with SST's(45ns), they work fine. Are they running faster?
No. The chipset spec may just require a flash device of 120ns or less. Dropping in a faster flash device doesn't change the read access speed, since the speed is driven by the chipset.
-Bari
Wow, that is allot of really good info. Thank you Ron, Peter and Bari. This all just sounds like over clocking the bios :-) So let me take the path of messing with Linuxbios code instead of messing with hardware access times that may or may not effect my system and will be almost impossible to tell.
Ron stated: "Sending a byte out the serial port at 115200 is approx 80 times slower than a ISA bios fetch. So you will have the most dramatic speed up by nuking anything that writes to the serial port"
So if I turn off any serial console, that is fixed? Does VGA bios have the same problem? -Aadm
Adam Talbot wrote:
Speed in ns: What controls that? Can I set/change the access speed to my "bios chip"?
The timing of the Flash BIOS read and write cycles are hardwired into the chipset and clock synthesizer. At most there is a pinstrap (Pinstrap = A signal line on a chipset that is read only after RESET that is used to configure the chipset. The line is either tied to a High or Low via a resistor.) to chose the type of firmware interface, x8, x16, LPC or FWH.
For an example, see page #3 of this schematic: http://www.amd.com/epd/desiging/evalboards/8.am186ccev/22002_1/22002_1.pdf
I have a few boards that had Eon chips(120ns), I have replaced them with SST's(45ns), they work fine. Are they running faster?
No. The chipset spec may just require a flash device of 120ns or less. Dropping in a faster flash device doesn't change the read access speed, since the speed is driven by the chipset.
-Bari
Adam Talbot wrote:
"Sending a byte out the serial port at 115200 is approx 80 times slower than a ISA bios fetch. So you will have the most dramatic speed up by nuking anything that writes to the serial port"
So if I turn off any serial console, that is fixed? Does VGA bios have the same problem?
vga bios is plenty fast.
ron
On 2/7/06, Adam Talbot talbotx@comcast.net wrote:
So let me take the path of messing with Linuxbios code instead of messing with hardware access times that may or may not effect my system and will be almost impossible to tell.
Good choice. *grin*
Ron stated:
Richard actually. But Ron has lots of good things to say as well.
"Sending a byte out the serial port at 115200 is approx 80 times slower than a ISA bios fetch. So you will have the most dramatic speed up by nuking anything that writes to the serial port"
So if I turn off any serial console, that is fixed?
Do you mean serial console in Linux kernel or the Linuxbios serial diagnostic output?
Linuxbios serial output dosen't do much (if any) buffering so its at the bottom. Set you log level to 0 and you will go the fastest.
Linux kernel serial console does slow down the kernel boot but since it does some buffering its not quite as slow. To a point. Once you fill up the console buffer it will block until room is ready as well. Just like linuxbios.
Does VGA bios have the same problem?
No the VGA device lives on the PCI (or AGP) bus so the IO is done at PCI speed which is very fast. Video writes in general are some what slow. So the less you do the faster you will go.
-- Richard A. Smith