option_table ?
Terry B. Chen
terryc at tyanchina.com
Thu Feb 20 03:21:01 CET 2003
Hi all,
I have a question about option table; the utility
"build_opt_tbl.c" will give us an option_table.c automatically, but
where is the option_table [ ] used?
How to control my Linuxbios go to fallback or normal image? We always
run in fallback image. Can someone give me some suggestions?
The code is in file reset_test.inc and cmos_failover.inc. The code
total is "
#define MCH_DRC 0x7C
#define DRC_IC (1 << 29)
/* If I have already booted once skip a bunch of initialization
*/
/* To see if I have already booted I check to see if memory
* has been enabled.
*/
movl $MCH_DRC, %eax
PCI_READ_CONFIG_DWORD
testl $DRC_IC, %eax
setnz %al
testb %al, %al
jz __failover_boot
__failover_reset:
movb $RTC_BOOT_BYTE, %al
outb %al, $0x70
inb $0x71, %al
testb $(1<<1), %al
jnz __normal_image
jmp __cpu_reset
__failover_boot:
/* See if the cmos clear jumper has been set */
movl $((RTC_DEVFN << 8) | GEN_PMCON_3), %eax
PCI_READ_CONFIG_DWORD
testl $RTC_FAILED, %eax
jz __cs_test
/* There are no impossible values, no checksums
* so just trust whatever value we have in the
* cmos.
*/
__rtc_failed:
movb $RTC_BOOT_BYTE, %al
outb %al, $0x70
inb $0x71, %al
andb $0xfc, %al
outb %al, $0x71
jmp __cs_test
/* test the checksum */
__cs_test:
movl $77,%ecx
xor %ebx,%ebx
movl $RTC_BOOT_BYTE, %edx
1:
addl $1, %edx
movl %edx, %eax
outb %al, $0x70
inb $0x71, %al
addl %eax,%ebx
subl $1,%ecx
jnz 1b
not %ebx
addl $1, %edx
movl %edx, %eax
outb %al, $0x70
inb $0x71, %al
movb %al,%ch
addl $1, %edx
movl %edx, %eax
outb %al, $0x70
inb $0x71, %al
movb %ch,%ah
cmpw %ax,%bx
jz __rtc_ok
/* Set to fall back mode */
movb $RTC_BOOT_BYTE, %al
outb %al, $0x70
inb $0x71, %al
andb $0xfc, %al
outb %al, $0x71
/* The byte is o.k. see where to go */
__rtc_ok:
movb $RTC_BOOT_BYTE, %al
outb %al, $0x70
inb $0x71, %al
/* Transfer the boot bit from bit 0 to bit 1.
* And clear bit 0 so that unless we say it works we
* fallback to the other bios image immediately.
*/
movb %al, %bl
andb $0xfc, %al
andb $1, %bl
shlb %bl
orb %bl, %al
outb %al, $0x71
testb $(1<<1), %al
jnz __normal_image
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20030220/92489a84/attachment.html>
More information about the coreboot
mailing list