Hardware help with diskonchip millennium!
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
> >>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
> >>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
> >>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
* Change the chip select registers to remap the DOC chip select to the BIOS
* 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.
More information about the linux-mtd