Hi List!
I've been following LinuxBIOS for a while, but unfortunately, I haven't been able to use it, since my motherboard isn't supported.
My MB is manufactured by MSI (it's a KT6 Delta), and I've been in e-mail conversation with them about this issue, but let's just say that they have been less than forthcoming about it. :-/
So I guess what I want to ask is what I can do about the situation. Is there any point in trying to just get the chipset specs from VIA (it's a KT600 NB and a VT8237 SB), or are there things that need to be done specifically for the motherboard so that the chipset specs are useless by themselves, apart from the flash memory (which isn't supported either)?
I'm more than willing to do the porting work myself, but I'd like to know where I could start, and if it's at all possible without the MB specs.
Fredrik Tolf
there any point in trying to just get the chipset specs from VIA (it's a KT600 NB and a VT8237 SB), or are there things that need to be done specifically for the motherboard so that the chipset specs are useless
It depends on what MSI did with the board. Most northbridges have GPIO on them. If MSI did something funky with the SM bus it could be hard to figure out how to turn on the RAM. But not impossible. In most cases the motherboard is simply close copy of the reference design from the chipset mfg. So if you can get a copy of the chipset docs and perhaps the reference design from via then you would at least have a place to get started. Most of that involves an NDA though. So then you would need permission to release the code based on the NDA material.
by themselves, apart from the flash memory (which isn't supported either)?
You mean that it doesn't have the ability to program the flash on board? Because from a read viewpoint there is no difference. Any flash part that meets the same timing and pinout as the part that's already on the board will work. You just need a programmer to change things.
I'm more than willing to do the porting work myself, but I'd like to know where I could start, and if it's at all possible without the MB specs.
With chipset docs only yes its possible. But the level of effort may be really large. The docs are going to get you most of the way there but there's probably going to be things that aren't documented and you will probably have to boot under the COTS bios and look at how the registers are set.
In the extreme case you would need to run the COTS bios under an emulator to watch the mem read/writes and IOs. Look at your chipset docs and then modify the emulator to appear to be fake hardware and study how to twiddle the registers depending on what values your fake hardware provided. You can't disassemble the COTS bios and figure it out for legal reasons.
If you can't get the chipset docs though its really not worth it. Find a MB that has docs available.
-- Richard A. Smith
Opteron based MB?
ask the vendor to provide gpio definition info....
other info such as smbus, ht, irqrouting can be hacked out. If they can provide, then will spare some time...
YH
On Sat, 2005-12-03 at 13:06 -0600, Richard Smith wrote:
there any point in trying to just get the chipset specs from VIA (it's a KT600 NB and a VT8237 SB), or are there things that need to be done specifically for the motherboard so that the chipset specs are useless
It depends on what MSI did with the board. Most northbridges have GPIO on them. If MSI did something funky with the SM bus it could be hard to figure out how to turn on the RAM. But not impossible. In most cases the motherboard is simply close copy of the reference design from the chipset mfg. So if you can get a copy of the chipset docs and perhaps the reference design from via then you would at least have a place to get started. Most of that involves an NDA though. So then you would need permission to release the code based on the NDA material.
That's good to know. At least I know that there's a possibility, providing that VIA decides to play nice.
by themselves, apart from the flash memory (which isn't supported either)?
You mean that it doesn't have the ability to program the flash on board? Because from a read viewpoint there is no difference. Any flash part that meets the same timing and pinout as the part that's already on the board will work. You just need a programmer to change things.
Well, it would be kind of nice to not have to fork out money on a programmer if I can do it from the host system, though. Maybe I can use MSI's firmware programmer with a LinuxBIOS image?
I'm more than willing to do the porting work myself, but I'd like to know where I could start, and if it's at all possible without the MB specs.
With chipset docs only yes its possible. But the level of effort may be really large. The docs are going to get you most of the way there but there's probably going to be things that aren't documented and you will probably have to boot under the COTS bios and look at how the registers are set.
In the extreme case you would need to run the COTS bios under an emulator to watch the mem read/writes and IOs. Look at your chipset docs and then modify the emulator to appear to be fake hardware and study how to twiddle the registers depending on what values your fake hardware provided. You can't disassemble the COTS bios and figure it out for legal reasons.
Are you sure? I can't remember signing a license for the BIOS code, in which case I should be allowed to read and study it.
If you can't get the chipset docs though its really not worth it. Find a MB that has docs available.
If it turns out that I'd have to pay for a flash programmer, that just might be a better option. On the one hand, I don't want to give up on this just MSI is being evil, but then on the other hand, it isn't nice to be using products from such a company, so that just might be the tipping over the edge.
Thank you very much for the info!
Fredrik Tolf
On Sun, 2005-12-04 at 01:34 +0100, Fredrik Tolf wrote:
On Sat, 2005-12-03 at 13:06 -0600, Richard Smith wrote:
You mean that it doesn't have the ability to program the flash on board? Because from a read viewpoint there is no difference. Any flash part that meets the same timing and pinout as the part that's already on the board will work. You just need a programmer to change things.
Well, it would be kind of nice to not have to fork out money on a programmer if I can do it from the host system, though. Maybe I can use MSI's firmware programmer with a LinuxBIOS image?
Sorry, I misinterpreted your misinterpretation. :) What I meant to say by that BIOS programming isn't supported isn't that the MB isn't capable, but that MSI doesn't provide the specs for the flash programming interface, and that the BIOS programmer that comes with LinuxBIOS doesn't support my flash chip.
Just wanted to clear that up.
Fredrik Tolf
by that BIOS programming isn't supported isn't that the MB isn't capable, but that MSI doesn't provide the specs for the flash programming interface,
The interface will be in the data sheet for the flash part. The only thing that may be MB specific is how to assert the write enable line on the flash. It may be hooked up to a GPIO or perhaps some sort of latch.
Do you have the factory flash app? If so then you can probally run it under dosemu and figure out what register they tweak to enable flash writes. Also Disable the shadow of the BIOS range and do a write to that range and see what the write line on the flash does. It might just be hooked up without anything fancy.
and that the BIOS programmer that comes with LinuxBIOS doesn't support my flash chip.
That should be pretty easily to fix. Most flash chips are very similar in the programming sequence. Get the data sheet for your part and fixup the flash code.
-- Richard A. Smith
On Sun, 2005-12-04 at 00:32 -0600, Richard Smith wrote:
by that BIOS programming isn't supported isn't that the MB isn't capable, but that MSI doesn't provide the specs for the flash programming interface,
The interface will be in the data sheet for the flash part. The only thing that may be MB specific is how to assert the write enable line on the flash. It may be hooked up to a GPIO or perhaps some sort of latch.
I see. Even so, though, what kind of bus is the flash chip interface normally hooked up through?
[...]
Also Disable the shadow of the BIOS range and do a write to that range and see what the write line on the flash does. It might just be hooked up without anything fancy.
How would that be done? Would that be a parameter in the COTS BIOS?
and that the BIOS programmer that comes with LinuxBIOS doesn't support my flash chip.
That should be pretty easily to fix. Most flash chips are very similar in the programming sequence. Get the data sheet for your part and fixup the flash code.
Then I'll just have to find what chip is the flash chip, but I guess that ought to be quite trivial. I'll work on it. Thanks for the information!
Fredrik Tolf
I see. Even so, though, what kind of bus is the flash chip interface normally hooked up through?
Legacy ISA or LPC.
Also Disable the shadow of the BIOS range and do a write to that range and see what the write line on the flash does. It might just be hooked up without anything fancy.
How would that be done? Would that be a parameter in the COTS BIOS?
Its a chipset thing. You need to read the chipset docs and you will need a oscope.
Something you might also do is google for MTD and your flash part number or motherboard and see if anyone has MTD up and going for your board. That my yeild some useful info.
-- Richard A. Smith
Richard Smith wrote:
Its a chipset thing. You need to read the chipset docs and you will need a oscope.
there is a trick you can play.
Find the chip with the GPIOs. From user mode, write a program that complements the value of ALL the GPIOs. Run flash_rom again and see if it works. From that point on, it is a trivial search to find the GPIO that controls flash write.
ron
Well, it would be kind of nice to not have to fork out money on a programmer if I can do it from the host system, though. Maybe I can use MSI's firmware programmer with a LinuxBIOS image?
Unless it does some sort of checksum deal that should be possible but you are going to have to do the hotswap trick. Otherwise after the first flash you won't be able to go back since you have to have a working BIOS to floppy (or CDROM) boot.
Get a spare chip, hot swap it and program in a 2nd copy of the factory bios so you can rollback
Are you sure? I can't remember signing a license for the BIOS code, in which case I should be allowed to read and study it.
Reading and studying is onething. Public distribution of what you find is another.
The DMCA is evil. None of us are lawyers so the only way to _insure_ we don't get into trouble is to clean room it which means no dissassembly. (Without permission)
-- Richard A. Smith
On Sun, 2005-12-04 at 00:45 -0600, Richard Smith wrote:
Well, it would be kind of nice to not have to fork out money on a programmer if I can do it from the host system, though. Maybe I can use MSI's firmware programmer with a LinuxBIOS image?
Unless it does some sort of checksum deal that should be possible but you are going to have to do the hotswap trick. Otherwise after the first flash you won't be able to go back since you have to have a working BIOS to floppy (or CDROM) boot.
I've heard that quite a few newer MBs (and I think mine is included) is supposed to have some kind of keystroke that one can depress while booting, and it will attempt to load a BIOS image from floppy regardlessly of the contents of the BIOS flash chip. Would you know anything about if that's mere rumor or if it's true?
Get a spare chip, hot swap it and program in a 2nd copy of the factory bios so you can rollback
I may well be wrong about this, but aren't the BIOS flash chips hardwired to the MB these days?
Are you sure? I can't remember signing a license for the BIOS code, in which case I should be allowed to read and study it.
Reading and studying is onething. Public distribution of what you find is another.
The DMCA is evil. None of us are lawyers so the only way to _insure_ we don't get into trouble is to clean room it which means no dissassembly. (Without permission)
Fortunately, I don't live in the U.S., and as such am not affected by the DMCA. Less fortunately, I'm not a lawyer either, though, so I have no idea if you'd be able to use anything that I would disassemble.
Fredrik Tolf
On Fri, 9 Dec 2005, Fredrik Tolf wrote:
Fortunately, I don't live in the U.S., and as such am not affected by the DMCA. Less fortunately, I'm not a lawyer either, though, so I have no idea if you'd be able to use anything that I would disassemble.
Depending on where you live, this might affect you anyway. EU, for instance, has adopted it's own version of the DMCA. See: http://www.fipr.org/copyright/guide/ http://news.zdnet.co.uk/business/0,39020645,39118164,00.htm http://www.theregister.co.uk/2002/04/30/alan_cox_attacks_the_european/ http://en.wikipedia.org/wiki/DMCA
For all I know Australia is already bound to the U.S. DMCA through treaties/trade agreements. WIPO is working towards complete world coverage with similar laws, protecting the "innocent"...
Disclaimer: IANAL.
Best regards
Peter Karlsson