Hardware Help with diskonchip?

David Woodhouse dwmw2 at infradead.org
Mon Dec 8 05:25:27 EST 2003

On Mon, 2003-12-08 at 05:15 +0000, Devi Priya wrote:
> Hi,
>         In the application note (AP044) from Msystems it is given as:
> "The DiskOnChip Millennium is mapped into an 8KB memory window in the host 
> platforms
> memory map. This 8KB window consists of four 2KB windows." Why is this 
> mapping done?

The Millennium only uses a handful of those registers. There's no real
need for the 2KiB range to be repeated -- I don't really know why it's

> Is this mapping done in hardware? I use diskonchip millennium (8MByte 
> MD2800). Then shouldn't the entire 8MB shall be mapped in hardware to the 
> physical address space?

You can't map 8MiB into 8KiB of physical space, even if it were NOR
flash and linearly accessible, which it's not.

> 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?

I don't know why it's done. Probably to preserve software compatibility
with their 1980s PC BIOS extension hack, so you put your own system BIOS
into the Millennium but keep it _separate_ from their BIOS extension
which your BIOS is supposed to load later. You'd need chipset support
for changing the physical address at which the DiskOnChip appears.

>        In my setup, the diskonchip is mapped in hardware to the higher order 
> address
> (0xFFFFFFFF-0xFF800000). SDRAM mapped to lower address 
> (0x00000000-0x1FFFFFF). What else
> modification do i require in HARDWARE to use diskonchip millennium?

Probably none. See LinuxBIOS.


More information about the linux-mtd mailing list