Gigabyte dual bios mainboard will always reboot, caused by the superio.
After lots of testing, the SuperIO LDN 7, register 0xEF is the key to the problem. This patch adds a function which stops dual bios mainboards from rebooting, when called. Signed-off-by: Wang Qing Pei <wangqingpei@gmail.com> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5697 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
3058491257
commit
6d7c1fc3a4
|
@ -32,6 +32,7 @@
|
||||||
|
|
||||||
#if defined(__PRE_RAM__) && !defined(__ROMCC__)
|
#if defined(__PRE_RAM__) && !defined(__ROMCC__)
|
||||||
void it8718f_24mhz_clkin(void);
|
void it8718f_24mhz_clkin(void);
|
||||||
|
void it8718f_disable_reboot(void);
|
||||||
void it8718f_enable_serial(device_t dev, unsigned iobase);
|
void it8718f_enable_serial(device_t dev, unsigned iobase);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -74,6 +74,20 @@ void it8718f_24mhz_clkin(void)
|
||||||
it8718f_exit_conf();
|
it8718f_exit_conf();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* GIGABYTE uses a special SuperIO register to protect its Dual BIOS
|
||||||
|
* mechanism. It lives in the GPIO LDN. However, register 0xEF is not
|
||||||
|
* mentioned in the IT8718F datasheet so just hardcode it to 0x7E for
|
||||||
|
* now.
|
||||||
|
*/
|
||||||
|
void it8718f_disable_reboot(void)
|
||||||
|
{
|
||||||
|
it8718f_enter_conf();
|
||||||
|
|
||||||
|
it8718f_sio_write(0x07, 0xEF, 0x7E);
|
||||||
|
|
||||||
|
it8718f_exit_conf();
|
||||||
|
}
|
||||||
|
|
||||||
/* Enable the peripheral devices on the IT8718F Super I/O chip. */
|
/* Enable the peripheral devices on the IT8718F Super I/O chip. */
|
||||||
void it8718f_enable_serial(device_t dev, unsigned iobase)
|
void it8718f_enable_serial(device_t dev, unsigned iobase)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue