[coreboot] Porting to Asus M4A785-M
Juhana Helovuo
juhe at iki.fi
Fri Jul 30 12:51:53 CEST 2010
On Thu, 2010-07-29 at 20:14 +0300, Andriy Gapon wrote:
> Juhana Helovuo said the following:
> > Meanwhile, I added call to it8712f_kill_watchdog() , like Rudolf Marek
> > suggested.
>
> BTW, if it's not too hard, could you please share what value that register
> (IT8712F_CONFIG_REG_WATCHDOG) has before being reset to zero in it8712f_kill_watchdog?
> Thanks!
>
Ok, but I am not sure how one is supposed to read the Super I/O
registers, since there is only a write routine. I made an educated guess
and wrote a read routine as follows:
Added in superio/ite/it8712f/it8712f_early_serial.c :
static uint8_t it8712f_sio_read(uint8_t ldn, uint8_t index)
{
outb(IT8712F_CONFIG_REG_LDN, SIO_BASE);
outb(ldn, SIO_DATA);
outb(index, SIO_BASE);
return inb(SIO_DATA);
}
uint8_t it8712f_kill_watchdog(void)
{
uint8_t prev_config;
it8712f_enter_conf();
prev_config = it8712f_sio_read(0x07, IT8712F_CONFIG_REG_WATCHDOG);
/* Kill the Watchdog */
it8712f_sio_write(0x07, IT8712F_CONFIG_REG_WATCHDOG, 0x00);
it8712f_exit_conf();
return prev_config;
}
Then in mainboard/asus/m4a785-m/romstage.c :
it8712f_enable_serial(0, CONFIG_TTYS0_BASE);
watchdog_prev_config = it8712f_kill_watchdog(); /* disable watchdog, so it does not reset while still booting */
uart_init();
[...]
printk(BIOS_DEBUG, "cpu_init_detectedx = %08lx \n", cpu_init_detectedx);
printk(BIOS_DEBUG, "Super I/O Watchdog was killed. Previous WD config was %02x\n",watchdog_prev_config);
The result is:
coreboot-4.0-r5631M Fri Jul 30 21:27:07 EEST 2010 starting...
BSP Family_Model: 00100f62
*sysinfo range: [000cc000,000cdfa0]
bsp_apicid = 00
cpu_init_detectedx = 00000000
Super I/O Watchdog was killed. Previous WD config was 30
Hope this makes sense,
Juhana Helovuo
More information about the coreboot
mailing list