Link to home
Start Free TrialLog in
Avatar of Johncy
Johncy

asked on

Diskonchip Millennium?

Hi,      
        In the application note (AP044) from Msystems diskonchip it is given as:
"The DiskOnChip Millennium is mapped into an 8KB memory window in the host platform’s
memory map. This 8KB window consists of four 2KB windows." Why is this mapping done?
Is this done for all the DiskOnChip Millennium?  

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?
Avatar of Glen A.
Glen A.
Flag of United States of America image

Both the disk and the boot functions can be implemented using the DiskOnChip device.  At the stage you're referring to, the DiskOnChip is functioning BOTH as a disk AND as BIOS, and as such it reuqires a location in two different addresses.

It has to be remapped to two different addresses.
if you haven't read it yet, there's a good paper here: http://www.spezial.ru/products/producer/msystems/pdf/App_Note_047.pdf
oops, spelling error in second to last post (typing too fast)  "reuqires" should be "requires"

AlbertaBeef
Avatar of dimitry
dimitry

Do you have specific problem with DiskOnChip Millennium ?
During the BIOS expansion search it loads INT 13h handler from DiskOnChip Millennium.
Then is behaves like for example SCSI disk. And BIOS calls INT 19h to boot OS from boot device.
johncy:  Is there more information you need, or, as dimitry asked, are you having a further problem we can assist you with?

TAny additional comments/input we can get from you can assist us in helping you better,

Thanks,

AlbertaBeef
EE Page Editor, Microchips/Desktops TA's
Avatar of Johncy

ASKER

Thanks.
      My disonchip is mapped in hardware to the address 0xFFFFFFFF-0xFF800000. My SDRAM to the address 0x00000000 - 0x01FFFFFF.
 "Chip select of diskonchip is remapped from reset vector to BIOS expansion area" - Is this mapping done in hardware? If so to which location should it be remapped to?
      I hope the BIOS expansion area starts from 0xC8000. Is this correct? I have a understanding as follows: During the BIOS expansion search it loads the TrueFFS after which the DOCM is emulated as a hard disk. After that with int 19h interrupt we can load the hard disk. Is it right?
What does it mean: 0xFFFFFFFF-0xFF800000 ?
You can not use this area. It doesn't make any sense in real mode.
In order to use INT 13h BIOS expansion DiskOnChip should be mapped in between
0x000C8000-0x000DFFFF.
Avatar of Johncy

ASKER

  I have sc1200(x86 compatible). I have my bios program, linux OS and filesystem in the same diskonchip milennium. The reset vector is FFFFFFF0. So the diskonchip is mapped to the higher physical order address where my ipl, spl, bios codes reside. When my BIOS program scans for BIOS expansion area, should this remapping (0x000C8000-0x000DFFFF) done in hardware?
Avatar of Johncy

ASKER

  I have sc1200(x86 compatible). I have my bios program, linux OS and filesystem in the same diskonchip milennium. The reset vector is FFFFFFF0. So the diskonchip is mapped to the higher physical order address where my ipl, spl, bios codes reside. When my BIOS program scans for BIOS expansion area, should this remapping (0x000C8000-0x000DFFFF) done in hardware?
Avatar of Johncy

ASKER

I have sc1200(x86 compatible). I have my bios program, linux OS and filesystem in the same diskonchip milennium. The reset vector is FFFFFFF0. So the diskonchip is mapped to the higher physical order address where my ipl, spl, bios codes reside. When my BIOS program scans for BIOS expansion area, should this remapping (0x000C8000-0x000DFFFF) done in hardware?
The simplest way is to connect DiskOnChip to additional Chip Select in H/W that will be mapped to D0000 (for example). I think that NSC board should have this kind of ability.
Avatar of Johncy

ASKER

I have sc1200(x86 compatible). I have my bios program, linux OS and filesystem in the same diskonchip milennium. The reset vector is FFFFFFF0. So the diskonchip is mapped to the higher physical order address where my ipl, spl, bios codes reside. When my BIOS program scans for BIOS expansion area, should this remapping (0x000C8000-0x000DFFFF) done in hardware?
Yes
Avatar of Johncy

ASKER

Thanks a lot for ur suggestion. In ur previous comment, "what does it mean 0xFFFFFFFF-0xFF800000. You cannot use this area. It doesn't make any sense in real mode." I cannot get this point. At power on, my DOCM is mapped to the physical address 0xFFFFFFFF-0xFF80000. Is this mapping ok?
For boot it is Ok, but then to load INT 13h driver you need to map it to for example 0x000D0000.
Avatar of Johncy

ASKER

The sdram is mapped to the lower address. Will there not be any conflict if diskonchip is remapped to the lower address?
Video Adaptor is also mapped to "low" memory: 0xA0000-0xC7FFF...
Avatar of Johncy

ASKER

I have some confusions here. Is the address 0xD0000 physical address or the address in DOCM? Whatever address we use in our assembly programming is the physical address or logical address. I was very much confused. Could u suggest me a source where could I clearly understand the x86 memory architecture and memory mapping?
Avatar of Johncy

ASKER

I have planned to have my diskonchip mapped to the lower address. Will there be any problem in having diskonchip mapped to the lower address?
What do you mean under "lower address" ? address < 0xa0000 ?
You can not do this. This is low RAM region.
Did you still have problems with DiskOnChip ?
Avatar of Johncy

ASKER

By dorado schematic, the diskonchip millennium is mapped to the lower address. Thats why I am confused..
Can you please show your memory map ?
Avatar of Johncy

ASKER

Flash memory or diskonchip millennium whichever i use is mapped to the lower address.
Can you please tell the exact memory location ?
Avatar of Johncy

ASKER

AD0-AD12 connected to A0-A12 of diskonchip millennium(MD-2800-D08).
Address lines is not everything. Actually they are not defining mapping at all. Mapping is defined by H/W that sets CS to the device.
It was long conversation with links to documents. Maybe it is possible to leave it with points refunded ?
ASKER CERTIFIED SOLUTION
Avatar of modulo
modulo

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial