Gerry's Messy Electronics/Robotics
Click the button below to go Back to the "CHIPPERY " section of my Lab
M-SYSTEMS DiskOnChip Programming
If you've asked Questions like:
What is a Diskonchip?, How to Read a diskonchip? or How to program a Diskonchip? Just know that you are not alone.
Many people have had a real hard time finding the neccessary information and software to tackle this exact problem. This is one of the main reasons I have created this devoted page for the M-SYSTEMS DiskOnChip. Most of the information out there is scattered all over the net.
I AM NOT A SUPPLIER!! I do NOT sell DiskOnChips!
If you are looking to purchase DiskOnChip devices, Please visit eBay. :)
My Work using the DiskOnChip 2000
So the information that I will be sharing with you here on this page, is all based on the "DiskOnChip 2000" flash device. This was the device of choice for most of my past R&D Projects. To this point I have not had the experience using other versions of DiskOnChips like the DiskOnChip Millennium, Millennium+Plus, or the more recent Sandisk releases like the "iDOC" (iDiskOnChip), DiskOnChip-IDE etc.
The DiskOnChip - A bit of History
So first off, Be aware that there are various versions of DiskOnChips available. DiskOnChips can not be programmed like your standard EEPPROM chips using a Universal Programmer. The reason for this is due to the fact that the DiskOnChip is treated more like a Hard-Drive or Solid-State Drive, than an actual EEPROM or Flash Memory device. This was made possible by M-SYSTEMS ingenious release of the "TrueFFS" software controller.
TrueFFS Software Controller - (Hard Drive Emulation)
This allowed the DiskOnChips to act and be detected as a standard Hard drive (Hard drive Emulation) with a bootable feature that bypasses the connected PC's BIOS. These became very popular in the Industrial Markets for Embedded Systems as they had no moving parts and could withstand harsher environments.
Shown below is the original M-Systems DiskOnChip, simply referred to as the "DiskOnChip".
M-Systems Original DiskOnChip.
"EUROM" was the name of the R&D department at M-SYSTEMS.
These are very rare with the fact that they are one of the first releases from back in 1995, and they could only store 1 or 2 MBytes of memory.
M-Systems is also responsible for the development of the very first USB Flash drive called the DiskOnKey.
Pretty Cool! :))
They then released "DiskOnChip 2000" in 1997. These became very popular in the Industrial Market for Embedded Systems as they could now store a full version of an OS onto the DiskOnChip. The hard drive manufacturer "Sandisk" acquired M-Systems in 2004 for 1.44 Billion U.S. dollars. This initially started as a partnership for developing new products, but became more financially stable for both parties by using the Sandisk name.
DiskOnChip 2000 Device Pinout & Block diagram
Hardware Requirements for the DiskOnChip
The following figure shows a simplified structure of a typical hardware system, focusing on the DiskOnChip connections. For a detailed discussion of the DiskOnChip hardware environment, please refer to the DiskOnChip data-sheet or to Application Notes:
AP-DOC-10, “Designing with the DiskOnChip”,
AP-DOC-30 “Designing with the DiskOnChip Millennium in a RISC Environment”
AP-DOC-31, “Designing with the DiskOnChip Millennium in a PC Environment”.
DiskOnChip 2000 Programming Options
M-SYSTEMS DiskOnChip 2000 Part Number Legend
There were a couple of programmer platforms built by M-SYSTEMS that were used to program the "DiskOnChip 2000" Flash memory chips. However these are rare and hard to find, and are usually very expensive due to their rare nature.
Another approach is to use an "SBC" [Single Board Computer] that supports a DiskOnChip socket. You can use pretty much any computer platform, as long as it supports a DiskOnChip DIP socket. Using these SBC types of computers, along with the Standard DOS based DiskOnChip Software package from M-SYSTEMS; you can perform basic programming and formatting of the DiskOnChip.
"SBC" Single Board Computers with supporting sockets for DiskOnChips
Using an SBC is usually the route that most users will choose. For one, this is an affordable system to purchase from various online vendors.
Technologic Systems Incorporated
This is one company that still manufactures SBC boards with DiskOnChip support.
Technologic Systems, Incorporated - Single Board Computer (with DiskON-Chip)
Model #: TS-5500 ($415.00 US)
Supports: VGA, USB, RS232, RS-485, Ethernet, Compact-Flash, PCMCIA + and DiskOnChip
Technologic Systems, Incorporated -VGA interface Daughter board
M-SYSTEMS DiskOnChip PCMCIA, ISA & PCI Card Adapters / Evaluation Boards (EVB)
Here we have one of M-SYSTEMS programming hardware solutions for the DiskOnChip.
A series of PC adapter cards were built that can program DiskOnChips and other memory through a PC's ISA or PCI bus.
These are called "EVB" or Evaluation Boards. As shown below:
M-SYSTEMS "EVB" Card User Manuals in PDF Format. Links Below:
The EVB ISA/PCI cards are very rare and hard to find, however, you can essentially build your own using the Provided Schematic Diagram further below, and interface this to a Windows PC's ISA Bus.
Usually these M-SYSTEMS EVB boards sell between $100 - $300 US dollars. I have used the DiskOnChip "DIP EVB" as shown below:
M-SYSTEMS PCMCIA EVB Flash Cards
M-SYSTEMS also released this "DOC-PCMCIA-EVB-R1" model Evaluation board. There is a custom software Utility that accompanies this unit. I am still trying to find this DOS utility. It is entitled "PortaDOC.exe". There are details regarding the syntax for this executable in the User manual.
As you can see there are 2 "MICTOR" connectors for interfacing DOC Daughter boards, or interfacing Logic Analyzer Probes. A fellow Engineer recently contacted me with the .PDF User manual for this unit. I was on the hunt for this manual for more than a year!!
Thanks Stacey! :))
DOC-on-PCMCIA Evaluation Board - USER MANUAL
DiskOnChip Software Utilities
The EVB boards use the Standard M-SYSTEMS Utility software Package for the Windows DOS environment. This Software package was used by most users and had a set of Standard programming commands with various degrees of addressing and formatting.
This particular DOS software was declared as "DiskOnChip Management Software" or "DiskOnChip Software Utilities".
This usually also came with the Drivers for the "TrueFFS" feature and some Extended functionality source code files. The TrueFFS is the special software/Firmware that allows the DiskOnChip to be detected and function as a standard Hard-Drive. The DiskOnChips were pre-formatted with this installed so that it would function immediately out of the box. This meant that most users could then begin formatting using this Standard DOS software package, by running basic commands like "PUTIMAGE" and "GETIMAGE".... to name a couple.
DiskOnChip 2000 Interface - Sample Schematic for DIY DOC Interfacing
The design example below shows a DiskOnChip 2000 mapped into an 8KByte window. The DiskOnChip 2000 is compatible
The DiskOnChips Databus, Address and Control Pins can all be interfaced to the Matching Pins on a PC's ISA Bus.
As shown in the image below: you can easily identify the matching Pins between the ISA BUS and the DiskOnChip 2000.
SD0-SD7 = 8-bit Databus
SA0-SA12 = 13-bit Address Bus
SA13-SA19 = Address pins for Larger Window (Through Address decoding chips)
Once interfaced correctly, the DiskOnChip Utility Software will be able to Detect and Program the DiskOnChip.
DiskOnChip 8K Memory Window
The DiskOnChip 2000 memory map occupies a total address space of 8KB. This space consists of
• Section 1: Boot Block
• Section 2: Control Registers
• Section 3: Flash Area Window
M-SYSTEMS TrueFFS Flash Memory Controller Chip - LFDC-1016
LFDC-1016 "Linear Flash Disk Controller"
M-SYSTEMS released a special Memory Controller chip that could be used to interface to External Parallel Flash chips of up to 32MBytes in size. However the special nature of this Memory controller is that it is programmed with the TrueFFS Algorithm, allowing the interfaced Flash chips it is connected with, to be detected the same way as a DiskOnChip device. WOW!!!!
The LFDC-1016 is also outfitted with an ISA interface Bus, and also a PCMCIA interface BUS. This provides users with two means of communication. This device is a single-chip solution for ISA-based embedded systems. Bundled with M-Systems TrueFFS software, the controller also fully supports the PCMCIA FTL standard.
The LFDC-1016 provides full hard disk emulation for up to 32 MB of on-board flash with a fast sustained read speed of 3 MBytes per sec, and is compatible with a wide range of operating systems, including DOS, Windows, QNX, and pSOS. It supports both 8 and 16 Mbit NOR flash devices and has a customizable Memory access Window. The window base address is user-selectable using various I/O pins. The controller is available in a 100-pin plastic quad-flat package (PQFP) as shown in the Image above.
These memory controller devices originally cost around $10.00 US each, and remain around the same price to this day... due to their rare nature.
The eBay seller Below has several thousand in his stock, and sells PACKS of x5 for $10.00 + Shipping.
Grab some if you care to purchase any for a future Flash Project:
M-SYSTEMS Flash ISA Cards
PC-FD-1 and PC-FD-4
M-SYSTEMS also designed various ISA Flash cards using the above mentioned LFDC-1016 Memory Controller chip. These came with various configurations of interfaced Flash memory. As shown in the Images above. These ISA card provided PC systems with a complete Bootable Embedded system OS just like the DiskOnChip 2000 devices. Pretty Cool!!
DATA I/O - FlashPAK-Family 4x GANG Programmer
M-SYSTEMS and DATA I/O collaborated and released the DATA I/O FlashPAK Family of Programmers, with the added functionality for programming M-Systems higher capacity DOC devices, such as the DiskOnChip DIMM flash cards, Gigabyte capacity DOC devices and DOC+Plus devices. These are packaged in TSOP and also in BGA format. The programmer was set to be released in December of 2003 under the name "FlashPAK-MSYS", integrating M-SYSTEMS TrueFFS Algorithm into the programmers FlashCORE architecture. The standard FlashPAK-I, FlashPAK-II and FlashPAK-III were all released with M-SYS programming capabilities as well.
The Parts list below shows the M-SYSTEM devices that can be programmed using the FlashPAK family of Programmers.
DATA I/O FlashPAK-III (M-SYSTEMS Device list)
DATA I/O FlashPAK-III Programmer Device List
For the Complete Device list, visit the Link Below:
M-SYSTEMS DiskOnChip GANG Programmer
The last hardware programming option is to get your hands on the Original M-SYSTEMS GANG PROGRAMMER as shown above. However, this hardware is of course no longer being manufactured and so they are extremely Rare and hard to find as well. This fact places these Original programming systems into a specific category of "Vintage hardware" making them extremely expensive.
The Price Tag for one of these Gang Programmer systems, will vary between $6000.00 and $10,000.00 US when purchased used from Industrial vendors online.
Diskonchip GANG Programmer - User Manuals
VIDEO DEMO - From online vendor
This system is mainly used in a manufacturing environment for mass production. It is a custom Programming Platform outfitted with ZIF sockets and attached to an Industrial PC. It is designed to function as a complete Stand-Alone programming station using a custom DOS software package. There were two hardware versions released. The "REV-B" and "REV-C" models. The REV-C model ran on Windows NT and was outfitted with a CD-ROM for loading DiskOnChip image files burned to a CD. The REV-C version was capable of programming devices such as the DiskOnChip 2000, Millenniumn, Millennium Plus and also the DOC 144-Pin DIMM Plus via DIP programming adapters.
I have managed to acquire a copy of the DOS Software for these Rare GANG Programmer systems. (For both Revisions REV-B and REV-C.) However without the custom M-SYSTEMS Hardware, the software is not really of any use. Further below on this webpage I have several pictures of the internals for the REV-B GANG Programmer.
DiskOnChip GANG Programmer Hardware REV-B 1.21
DiskOnChip GANG Programmer Hardware REV-C H/W V1.0
ENGINEERING LEVEL PROGRAMMING OPTION
(API / Source code Integration)
For those of you that do not know, an API is essentially a set of driver files like a [.dll] file and an [.h] file that provide a list of Direct ENGINEERING LEVEL commands/Functions. Keep in mind that the .dll and .h files are all written and designed by the Hardware Engineers that designed and built the hardware that you are trying to interface with. In this case, it is the DiskOnChip.
So the .dll and .h files contain an arsenal of various functions that you can activate by simply calling that function in your source code. Using these files with the source code that you are writing in a language like C or C++, you will have the ability to create some new custom software. The difference here is that you have a full list of very specialized Engineering Functions, which many of them were not used in the Basic software Program that was created by M-SYSTEMS Engineers. Essentially these API packages were the Tools used to compile the DiskOnChips Standard Software .exe files. (DFORMAT.exe, DINFO.EXE, GETIMAGE.EXE, PUTIMAGE.EXE.)
So you have alot of power here by using the DiskOnChips API packages.
This is why Software developers love API's. :))
There were two API Software packages released for Software Engineers to develop custom Software for programming the DiskOnChip. However, these were not as popular and are also extremely hard to find, especially with M-SYSTEMS now no longer being a company.
The two specific API packages that were released are:
- M-SYSTEMS DiskOnChip "BDK" or [Boot Development Kit].
- M-SYSTEMS TrueFFS "SDK" or [Software Development Kit].
A TrueFFS driver is required to work with any of the DiskOnChip products.
TrueFFS is natively supported by every major OS, such as Windows CE, Windows 2000, QNX, and VxWorks.
For other environments (including OS-less) the TrueFFS Software Development Kit (SDK) is to be used.
When using DiskOnChip as the boot device in a non-x86 environment, M-Systems’ Boot Software Development Kit (BDK)
I do have a copy of the "BDK" package, (Links Posted further below) however it is not an official release. It was a version I managed to locate online within a University Server archive. I am still trying to locate the original Installer or .zip Archive from M-SYSTEMS. So with this in mind, If you have any of these BDK or SDK Software packages in your possession... It would be very much appreciated if you could forward it to me.
So please contact me through my "CONTACT" page here on my website if you do.
Please and Thank you. :))
M-SYSTEMS PDF Documentation - Datasheets, Software & Driver Downloads
M-SYSTEMS DiskOnChip 2000 Datasheets
M-SYSTEMS DiskOnChip Application Notes
Designing with the DiskOnChip 2000
Write protecting the DiskOnChip 2000
Loading the DiskOnChip 2000 S/W as a Device Driver
Using the DiskOnChip 2000 with QNX - AP-DOC-016
AP-DOC-016.........NEEDED....Send it to me if you have a copy. :)
Using the DiskOnChip 2000 with Windows CE - AP-DOC-017
AP-DOC-017.........NEEDED....Send it to me if you have a copy. :)
Using the DiskOnChip 2000 with Windows 95
DiskOnChip BDK - Boot Developers Kit
Designing with the DiskOnChip Millennium in a RISC Environment - AP-DOC-030
AP-DOC-030.........NEEDED....Send it to me if you have a copy. :)
Designing with the DiskOnChip Millennium in a PC Environment
Extended Functions of DiskOnChip Driver based on TrueFFS Version 5.0
Using the DiskOnChip with LINUX OS
Using the DiskOnChip with VxWorks
DiskOnChip 2000 "PIK" (Programmer and Integrator Kit)
M-SYSTEMS standard DiskOnChip Software Utilities
This is the Default program used to program and configure DiskOnChip devices using an SBC with your diskOnChip or using an M-SYSTMES ISA card EVB adapter board.
You can download the Various version at the links provided below:
(If you have other version of this software that you can share, please contact me through my "CONTACT" page.)
DOC V1.21 for MS-DOS
DOC V1.21 for the "QNX" Operating System (Readme.txt for decompress info)
DOC V1.23 for MS-DOS
DOC V4.20 for MS-DOS
DOC V5.14 for MS-DOS
DOC Software Utilities User Manual
M-SYSTEMS TrueFFS Drivers
DOC TrueFFS Developers Guide
(Extended Functions of the DiskOnChip TrueFFS Driver)
The TrueFFS driver provides access to DiskOnChip extended functionality, not part of standard file systems API.
The driver implements the interface of the extended functionality by exporting a list of extended functions (through IOCTLs).
Every extended function is represented by a code defined as enumerated type defined in DOSIOCTL.H.
The "DOSIOCTL.H" file described above, is provided in the TrueFFS .zip archives provided with the Links below.
See the "EXAMPLES" folder after you extract the .zip archive to your hard drive.
DOC TrueFFS V5.14 Windows Drivers
DOC TrueFFS V6.3.2 Windows Drivers
TrueFFS 6.X supports only SAFTL based devices. (SAFTL = Sequential Access File Translation Layer)
DOC TrueFFS V5.0 + Linux Drivers
M-SYSTEMS "BDK" - Boot Development Kit
Below is a link to the M-SYSTEMS BDK (Boot Development Kit)
This .zip archive contains various [.h] and .c source code files that can be used to develop your own .exe software.
Keep in mind that this is not the official release so it may be incomplete, however I think 99% of it is there. :)
M-Systems’ DiskOnChip BDK (Boot Developers Kit) is a portable tool kit that enables the system integrator to boot any OS image directly from the DiskOnChip and to store boot time data in a separate partition on the DiskOnChip, thereby protecting it from user corruption. It includes full ANSI-C source code, documentation, examples and utilities that together provide optimal flash media utilization and the easiest integration method to any operating system and/or platform.
The DiskOnChip BDK is optimal for implementing a boot solution for any Operating System and CPU environment. It also allows advanced implementation for: data storage back-up, automatic saving and loading of Windows registry entries and other applications after basic system initialization. Due to its simplicity, design time is reduced to the minimum.
The DiskOnChip BDK utilizes advanced flash management technology to guarantee ultimate reliability:
• Supports Reed-Solomon
Error Detection and Correction
DiskOnChip BDK API A very small boot block is required to store the minimal system H/W initialization code, the BDK functions and the Operating System Execution code. The Operating System image itself is stored on the DiskOnChip Binary Partition, providing flexibility for future OS image updates. Upon boot, the code stored in the boot block is executed. After system H/W initialization the BDK functions are called to copy the OS image from the DiskOnChip binary partition into RAM, and a jump to the start of the OS image in RAM is made and the OS is launched. After the OS is launched, a separate File System partition can be stored and managed on the rest of the DiskOnChip (e.g., FAT) and can be accessed through the DiskOn-Chip TrueFFS® driver, incorporated in the OS image. The DiskOnChip BDK also allows the user to implement more advanced applications, like managing several partitions for spare OS images, and boot time data partitions, such as the Windows CE Registry Entries.
DiskOnChip Boot Developers Kit - Application Note .PDF "AP-DOC-020"
Possible "SDK" Boot Development Kit - Source code files
Below is a link to another .zip Archive Development Kit for the DiskOnChip.
These are various Source code files I found online. This is possibly part of the SDK but I'm not 100% certain.
This will be for those of you who are professional Software developers. If you have the skills...you might be able to figure out how to use these source code files.
PAGE IS UNDER CONSTRUCTION....
Quick UPDATE ...
I just recently acquired an M-SYSTEMS GANG PROGRAMMER.
I will be performing a complete "Reverse Engineering" of this system and will be providing the info on its construction including the custom DOS GANG software that is used by this Stand-Alone platform.
DiskOnChip GANG Programmer - TEARDOWN
Some Shots of the Internals.
It appears that M-SYSTEMS designed a custom 6-Layer PCBA that interfaces to an industial PC Computers PCI Slot, for sending all of the Button Control signals and also all of the DiskOnChip signal lines. I did manage to download the Custom DOCGANGB.exe program from the system Hard-drive that this system uses. I will post it here for anyone that wants to try it out.
I think it is doable to at least map out the basic control signals for the Pushbuttons and LCD to the PCI Header, and we could design our own board to program at least one Diskonchip using this Automated GANG software. This is a 6 Layer PCB, so it is definitely a complex design.
Not for the faint of Heart to take on a re-design project.
Regardless...... THIS IS AWESOME!!!! :))
If you have any questions or need any of the File's I have collected or if you have any to share with me....
please feel free to contact me.
TO BE UPDATED...............
If you're into the older Altera CPLD's you can Join my Altera Yahoo Group: