- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We are using the S5000PHB board (Xeon 5130 dual core) and Vxworks 6.4.
The BIOS loads the bootrom to RAM, and runs it.
The bootrom initializes registers, and among the first things it does is to enable the A20 line, as follows (in pseudo code, the actual code is in assembly):
wait_until_kbctrl_ready()
{
read byte from port 0x64 into al,
do it until al& 0x02 is zero (e.g. until bit 1 is cleared)
}
enable_A20_line()
{
write the byte 0xd1 to port 0x64
wait_until_kbctrl_ready()
write the byte 0xdf to port 0x60
wait_until_kbctrl_ready()
write the byte 0xff to port 0x64
wait_until_kbctrl_ready()
write zero to 0x0, 0x100000
write 0x1234567 to 0
check if 0x100000 contains 0x1234567
if no, then A20 is enabled - finish
if not, try an alternative method:
write byte 0x02 to port 0x92
read byte from port 0x92 into al,
do it (reading from port 0x92)until al& 0x02 isone (e.g. until bit 1 is set)
write zero to 0x0, 0x100000
write 0x1234567 to 0
check if 0x100000 contains 0x1234567
if no, then A20 is enabled - finish
else declare failure
}
Sometimes both methods fails and the bootrom is unable to boot.
Anyone can see any problem with the above code? Any additional things which needs to be taken into consideration when enabling A20 on this board?
Thanks,
Elad.
Link Copied

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page