Well, I'm finally getting around to writing this, though I'm still not all that comfortable bringing it up.
I purchased a diskonchip 2000 266mb a while ago just to mess around with. It took a long time in shipping though and then it took me a while to actually try to test it out. I had thought I could just use it as a large flash chip or maybe for trying to test the original linux_bios/coreboot_v1 on a motherboard I have with a supported chip set (specifically sis 630), but it hasn't worked out well for me.
In the first place, I think my assumption of it exposing a large rom was wrong, it looks like they only actually only expose a small amount as regular bios boot rom space. While that sounds annoying, it would probably still be workable though.
The real problem is that I can't seem to get it to work at all and I am not sure if what I am trying is supposed to work or if the chip is bad. The seller does/did specify a doa guarantee, but I'm not even sure if it is actually bad or if what I'm trying to do is unsupported.
Going by the "HOWTO" documentation in the coreboot_v1 branch I figured I could just hotswap it and load the diskonchip kernel module, but I can't find any information about whether that actually supports the diskonchip 2000 or has been tested recently. It just returned unable to detect device (or something similiar). I tried the dos utils on freedos as well and couldn't get them to detect it either. It took a bit of effort just to find the dos utils, since the site I managed to find them on wasn't showing up on most of the searches I tried and there doesn't seem to be any other mirror of them. It would have been nice if they were properly on the internet archive, but there is just documentation on there.
I'm hoping that somebody still remembers a bit about them and maybe knows something about how I can get the chip working, confirm that it's not working, or just tell me I'm doing it wrong.
I'm also hoping that it's not too off topic. I know the old wiki did mention sending a message to the mailing list about working on forward porting old supported chips, but I never felt comfortable about it. I've actually never managed to get very far with programming in general, never mind what is needed for low level bootstrapping. Though I have long since figured out what it was I having problems with in the past and how to fix them, I've had too much other stuff going on to get in to it again.
Branden
Branden wrote...
In the first place, I think my assumption of it exposing a large rom was wrong, it looks like they only actually only expose a small amount as regular bios boot rom space. While that sounds annoying, it would probably still be workable though.
…
I'm hoping that somebody still remembers a bit about them and maybe knows something about how I can get the chip working, confirm that it's not working, or just tell me I'm doing it wrong.
It has been a long time since I have used one of these (and never with coreboot) but from what I remember the device needed something like 16KB in the expansion ROM area (between 640KB and 1MB).
The DiskOnChip contained firmware that was executed as a BIOS extension / option ROM. For DOS based systems the firmware hooked onto int 13h (disk services) so that it got allocated a drive letter and also handled the the flash paging / erasing / reading / writing. I used devices with capacities ranging from 2MB to 256MB and they all only needed the same amount of space in the ROM area. My first question… what have you plugged the DiskOnChip into? Is it a motherboard that was designed to accept them or is it a plug in card with a ROM socket on it? (M-Systems initial evaluation board was an ISA card).
As you tried to do, I would start with DOS as it is a more simple environment to play in. I would also start with a BIOS that has legacy ROM support in it. Check as it boots for messages relating to M-Systems and DiskOnChip. If there aren’t any of those then use DOS debug to look through the expansion ROM area and make sure you can see the firmware.
Once that is working, move on to coreboot, Linux or whatever other combination you want to use with them.
-Andy.
Branden Waldner wrote:
I purchased a diskonchip 2000 266mb a while ago just to mess around with.
..
In the first place, I think my assumption of it exposing a large rom was wrong, it looks like they only actually only expose a small amount as regular bios boot rom space. While that sounds annoying, it would probably still be workable though.
On hardware level the device exposes only a window of its full capacity at a time. The electrical interface which it plugs into only has a limited address space. Software must have not only a driver for the device which knows how to move the window around but also an abstraction layer for memory access so that the driver can move the window at the correct time.
This is not in place for current coreboot boards.
Going by the "HOWTO" documentation in the coreboot_v1 branch I figured I could just hotswap it and load the diskonchip kernel module,
Good thinking, I believe this ought to work as long as the driver supports your device.
but I can't find any information about whether that actually supports the diskonchip 2000 or has been tested recently.
Also good thinking - please be aware that DiskOnChip and DiskOnChip 2000 are different products which are *not* compatible.
I tried the dos utils on freedos as well and couldn't get them to detect it either.
If that doesn't work, nothing else will.
I'm hoping that somebody still remembers a bit about them and maybe knows something about how I can get the chip working, confirm that it's not working, or just tell me I'm doing it wrong.
You're not doing it wrong, perhaps you need to look for more/other drivers and DOS utilities, perhaps the device is broken.
In the end, the experience in the coreboot community with these devices suggested to me that they are not actually worthwhile.
The requirement for two kinds of explicit software support with one being a fundamental abstraction of memory access make them difficult and very annoying to work with. Really only an option for completely custom systems.
I'm also hoping that it's not too off topic.
Don't worry, not at all.
In another mail I asked you where you're located but didn't notice a reply. Are you in the US? I've been thinking about your P2B situation and maybe I can help you out there.
//Peter
On 6/7/21, Rao G grao.v80@gmail.com wrote:
Please look into this document too about Disk On Chip https://www.coreboot.org/images/9/97/LinuxBIOS.pdf
I'll check it out yet.
Branden wrote...
In the first place, I think my assumption of it exposing a large rom was wrong, it looks like they only actually only expose a small amount as regular bios boot rom space. While that sounds annoying, it would probably still be workable though.
…
I'm hoping that somebody still remembers a bit about them and maybe knows something about how I can get the chip working, confirm that it's not working, or just tell me I'm doing it wrong.
Andy wrote...
It has been a long time since I have used one of these (and never with coreboot) but from what I > remember the device needed something like 16KB in the expansion ROM area (between 640KB > and 1MB).
The DiskOnChip contained firmware that was executed as a BIOS extension / option ROM. For > DOS based systems the firmware hooked onto int 13h (disk services) so that it got allocated a > drive letter and also handled the the flash paging / erasing / reading / writing. I used devices > with capacities ranging from 2MB to 256MB and they all only needed the same amount of space > in the ROM area. My first question… what have you plugged the DiskOnChip into? Is it a motherboard that was > designed to accept them or is it a plug in card with a ROM socket on it? (M-Systems initial > evaluation board was an ISA card).
I tried it in both my p2b and a sis 630 board. I don't have an evaluation board and though I have some pci and isa cards with dip32 sockets, I'm not sure that they would load an option rom properly or even be (io) compatible.
I don't even know if the option rom firmware would be on the chip, because it looks like it is programmable and it could have been wiped or had an incompatible version.
Obviously the option rom is not going to be loaded/ do anything when hotswapping though.
Peter wrote: On hardware level the device exposes only a window of its full capacity at a time. The electrical interface which it plugs into only has a limited address space. Software must have not only a driver for the device which knows how to move the window around but also an abstraction layer for memory access so that the driver can move the window at the correct time.
This is not in place for current coreboot boards.
I figured it operated something like that, though I didn't really think of that before I got it.
If it worked, had enough space in the boot block for a functioning rom/bios, and could load the option rom it in theory should still be usable in some form though.
Going by the "HOWTO" documentation in the coreboot_v1 branch I figured I could just hotswap it and load the diskonchip kernel module,
Good thinking, I believe this ought to work as long as the driver supports your device.
Well, I couldn't really find much information about if mainline linux _ever_ even properly supported the diskonchip 2000. Some of what I found referred to 2.4, which I'm definitely not messing with unless I absolutely have to. If I could find proper info on a 2.6 or later kernel supporting it natively it probably wouldn't be to hard to test, though I'd likely still need to use an old distro image.
but I can't find any information about whether that actually supports the diskonchip 2000 or has been tested recently.
Also good thinking - please be aware that DiskOnChip and DiskOnChip 2000 are different products which are *not* compatible.
Yeah, search engines don't seem to realize there is a difference either, which was pretty annoying.
Well the DiskOnChip 2000 at least sort of makes sense (as a main firmware boot rom), none of the rest of their products seem to. Using an adapter card for "proprietary" nand storage doesn't make sense and branded cf cards don't really offer an advantage over any other cf card supplier - though it is possible they had better controllers, I have my doubts.
Now a days, even though I've seen lots of recommendations for ide to cf adapter and cf card usage for retro computing, I found a pci to sata adapter to work fine and not have the issue of expensive cf cards with unknown controller quality. Obviously that wouldn't work for pre-pci systems, but I don't think any of those are supported by coreboot anyways :).
I tried the dos utils on freedos as well and couldn't get them to detect it either.
If that doesn't work, nothing else will.
Well, that's what I was afraid of.
I only managed to find working links for the dos utils (and much of the other software) from here: http://www.digital-circuitry.com/MyLAB_IC_PROG_DISKONCHIP.htm
I tried V4.20 and V5.14 of the ms-dos software utilities, but couldn't detect it.
The chip I have is branded "Ver. 5.1.2", but I'm not sure how much that matters.
I'm hoping that somebody still remembers a bit about them and maybe knows something about how I can get the chip working, confirm that it's not working, or just tell me I'm doing it wrong.
You're not doing it wrong, perhaps you need to look for more/other drivers and DOS utilities, perhaps the device is broken.
Well, that's not very promising.
For the record, I did verify before hand that the pin orientation was correct.
In the end, the experience in the coreboot community with these devices suggested to me that they are not actually worthwhile.
The requirement for two kinds of explicit software support with one being a fundamental abstraction of memory access make them difficult and very annoying to work with. Really only an option for completely custom systems.
I had kind of figured the change away from parallel to firmware hub and then spi killed them, but the custom software requirement probably didn't help. It doesn't really seem too unusual to only be able to address/access a limited block at a time though considering how it was implemented hardware/io-wise, especially if all you wanted to do was load a kernel and initramfs in to ram.
I'm not really sure what to do with it now. Maybe I'll have to message the seller on ebay, though I feel bad about how long it's been (though a lot of it was shipping) and the fact I have no known good working setup.
I had hoped at the very least that I could just load up an old distro and try to build the original linux_bios for the sis 630 and see if I could get it to work on my board (though it looks like that would be a lot of work in and of its self).
I would like to say that I would be interested in trying to port it, but there is no way that I'd be able to do that. If I was actually going to try to port something it would at least be with a chipset that was actually supposed to be supported by (earlier) coreboot v4 in the first place.
Thanks for the responses.
Branden