[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now


BIOS and option rom?

Posted on 2003-12-03
Medium Priority
Last Modified: 2013-12-09

     I am using sc1200 that can address upto 4GB physical address). My flash memory is 32Mbit. Generally the ROM chip is mapped in hardware to the high physical address (0xFFFFFFFF - 0xFFC00000). My SDRAM is 32MByte. It is mapped in hardware to CPU address (0x00000000 - 1FFFFFF). My Bios program is kept in the flash memory. After the hardware initialization is done and before going with the int 19h interrupt, my bios program scans for option Rom from location 0xC8000h. So when it starts scanning from location 0xC8000, is any hardware remapping that has to be done.
Question by:Johncy
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 6
  • 2
LVL 11

Expert Comment

ID: 9892897
Can you please formulate your question ?

Author Comment

ID: 9894168
My bootloader for Flash (ROLO) is kept as option ROM. I am confused with whether the location 0xC8000 is Flash memory location or is the SDRAM location? When it scans for option ROM, does the Flash memory has to be remapped to a different physical address in hardware?
Thanks in advance.
LVL 11

Accepted Solution

dimitry earned 500 total points
ID: 9895038
x86 CPU can access in Real Mode up to 1 MByte or 0x100000 physical address.
However historically the memory map is usually the next:
0x00000 - 0x9FFFF  - "low" RAM
0xA0000 - 0xC7FFF - video adaptor memory
0xC8000 - 0xDFFFF - memory for expansion cards with BIOS expansions
0xE0000 - 0xFFFFF - BIOS ROM area

Now, generally speaking 0xA0000 - 0xFFFFF can be used as RAM. Moreover BIOS usually copies
itself to "shadowed" RAM from 0xE0000 - 0xFFFFF.
It is convenient to consider that memory arbitrator switches your access to PCI and ISA
when you try to access 0xA0000 - 0xDFFFF and to SDRAM if you access 0x00000 - 0x9FFFF.
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 9903602
Is my hardware mapping looks right? Should I need a remapping in hardware when it searches for option rom?
LVL 11

Expert Comment

ID: 9906577
It may be not "remapping". It is much simpler to connect to DiskOnChip 2 Chip Selects. One for boot:
range 0xFFF80000-0xFFFFFFFF and one for 0x000C8000-0x000DFFFF.

Author Comment

ID: 9917562
I use Flash memory to store my bios program, linux OS, filesystem. My bootloader for flash (ROLO) is kept as option ROM.
LVL 11

Expert Comment

ID: 9918719
Something wrong here... Do you have NOR flash for boot or you have only DiskOnChip
for boot your BIOS ?

Author Comment

ID: 9918730
I have NOR flash.
LVL 11

Expert Comment

ID: 9920014
So you DO NOT need to map DiskOnChip to 0xFFFFFFFF. Moreover you can not map both
NOR flash and DiskOnChip to same address.
LVL 11

Expert Comment

ID: 9924637
Can you please describe your system again and now with NOR flash ?

Author Comment

ID: 9925266
I have NOR Flash. But if I meet some problem with NOR flash I would like to have diskonchip millennium. I would like to make my software and hardware ready for both purposes. I would use any one and not both at the same time.

Author Comment

ID: 9969497
If I have to use Flash or DOCM, how the mapping of each one should be at power-on?

Expert Comment

ID: 9980352
Same as my response for your other (related) question "real and protected mode":

The BIOS co-exists in the "same" address space as the SDRAM, much the same way as the BIOS in a PC. The ROM or the SDRAM will be enabled as appropriate.

I am not 100% clear on the option ROM, but that "should" hold true also, i.e. the device should know to enable the rom chip select in that case.

I think the key that will unlock this all for you is to look at the schematics in the National reference design, and see how those match your situation.

My response to your other question was:
From the National data sheet I found where the core logic module decodes the FFFFFFF0 address (and some others) and passes it to the sub-ISA interface, where the boot ROM needs to physically connect...

------------------------------------------------------------------------------- ROM Interface
The Core Logic module positively decodes memory
addresses 000F0000h-000FFFFFh (64 KB) and
FFFC0000h-FFFFFFFFh (256 KB) at reset. These memory
cycles cause the Core Logic module to claim the cycle, and
generate an ISA bus memory cycle with ROMCS#
asserted. The Core Logic module can also be configured to
respond to memory addresses FF000000h-FFFFFFFFh
(16 MB) and 000E0000h-000FFFFFh (128 KB).
8- or 16-bit wide ROM is supported. BOOT16 strap determines
the width after reset. MCR[14,3] (Offset 34h) in the
General Configuration Block (see Table 3-2 on page 86 for
bit details) allows program control of the width.
Flash ROM is supported in the Core Logic module by
enabling the ROMCS# signal on write accesses to the
ROM region. Normally only read cycles are passed to the
ISA bus, and the ROMCS# signal is suppressed for write
cycles. When the ROM Write Enable bit (F0 Index 52h[1])
is set, a write access to the ROM address region causes a
write cycle to occur with MEMW#, WR# and ROMCS#

I went here:

and downloaded the data sheet:

and their reference design:

The boot rom schematic is located on PDF page 9

Also they have an Orcad DSN, if you can make use of it that should shave some time off your project.

Good Luck,

Author Comment

ID: 9982970
This means I can have my Flash memory mapped only to the lower address. Is it correct?

Expert Comment

ID: 9985914
>This means I can have my Flash memory mapped only to the lower address. Is it correct?

Yes, that is correct, addresses connected to AD22..AD0 (assuming you have 4MBx8), /CE connected to /ROMCS, Data connected to AD31..AD24

Featured Post

Tech or Treat! - Giveaway

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article applies to This article will be of use if you are the owner / supporter of any computer that comes with a discrete graphics card from nVidia / ATI Radeon (Now owned by AMD) or any embedded graphics solution and need to upgrade the gr…
More and more people are using the enhanced small form-factor pluggable (SFP+) tranceivers, and speed is of utmost importance. Testing of speeds are critical to ensure that the devices will meet the speed requirements. There are some testing challen…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
In a question here at Experts Exchange (https://www.experts-exchange.com/questions/29062564/Adobe-acrobat-reader-DC.html), a member asked how to create a signature in Adobe Acrobat Reader DC (the free Reader product, not the paid, full Acrobat produ…

650 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question