Hardware help with diskonchip millennium!

Charles Manning manningc2 at actrix.gen.nz
Tue Dec 9 20:41:46 EST 2003

> >>The steps for BIOS is summarised as
> >>1. After DiskOnChip Millennium BUSY# signal is negated, the CPU fetches
> >>the Reset Vector from
> >>the Boot-Block area, fetches the Boot Code stored there, and starts to
> >>execute the code.
> >>2. Boot Code runs the first part of BIOS, initializing the basic hardware
> >>functionality.
> >>3. Boot Codes loads the rest of the BIOS from the flash memory to the
> >>DRAM, and transfer control
> >>(jumps) there.
> >>4. Chip Select of DiskOnChip Millennium is remapped from Reset Vector to
> >>BIOS expansion area.
> >>5. CPU executes the rest of the BIOS code, including ROM expansion
> >> devices (among them, the
> >>DiskOnChip Millennium itself).
> >>6. CPU calls OS bootstrap loader (INT19).
> >>7. OS is loaded, and recognizes the DiskOnChip Millennium as the boot
> >>device.
> >>8. OS loads the application code from the DiskOnChip Millennium and
> >>executes it.
> >>9. Application software uses DiskOnChip Millennium exactly as if it were
> >>using a regular hard
> >>disk.
> >>
> >>In step 4 why is this remapping done? Is this mapping done in hardware?

An x86 boots from the reset vector (like any CPU I guess). This is defined to 
be the top 16 bytes of the address space on x856. Normally, this justs to 
early-days BIOS code which is nearby. The DOC Millenium wants to be there to 
provide the boot code.
However, the BIOS expansion code needs to run later (after the BIOS has been 
initialised etc). This requires that the appropriate chip select signal gets 
associated with the appropriate address. This is typically done iin one of 
two ways:
* Change the chip select registers to remap the DOC chip select to the BIOS 
expansion address
* Have two chip select signals (one for each area) and use an AND gate or 
whatever to combine them so that either a reset vectos chip select or a bios 
extension chip select result in the DOC being selected.

-- CHarles

More information about the linux-mtd mailing list