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