FYI: Merge in progress...
Eric W. Biederman
ebiederman at lnxi.com
Sat Oct 16 04:00:01 CEST 2004
The ARIMA HDAMA now boots, and everything looks like it is working properly.
Converting everything else still remains but we now have a working example
to look at.
We are down to one device tree instead of two.
And hardwaremain has been reduced to:
void hardwaremain(int boot_complete)
{
/* the order here is a bit tricky. We don't want to do much of
* anything that uses config registers until after PciAllocateResources
* since that function also figures out what kind of config strategy
* to use (type 1 or type 2).
* so we turn on cache, then worry about PCI setup, then do other
* things, so that the other work can use the PciRead* and PciWrite*
* functions.
*/
struct lb_memory *lb_mem;
post_code(0x80);
/* displayinit MUST PRECEDE ALL PRINTK! */
console_init();
post_code(0x39);
printk_notice("LinuxBIOS-%s%s %s %s...\n",
linuxbios_version, linuxbios_extra_version, linuxbios_build,
(boot_complete)?"rebooting":"booting");
post_code(0x40);
/* If we have already booted attempt a hard reboot */
if (boot_complete) {
hard_reset();
}
/* FIXME: Is there a better way to handle this? */
init_timer();
/* pick how to scan the bus. This is first so we can get at memory size. */
printk_info("Finding PCI configuration type.\n");
pci_set_method();
post_code(0x5f);
dev_enumerate();
post_code(0x66);
/* Now do the real bus.
* We round the total ram up a lot for thing like the SISFB, which
* shares high memory with the CPU.
*/
dev_configure();
post_code(0x88);
dev_enable();
dev_initialize();
post_code(0x89);
/* Now that we have collected all of our information
* write our configuration tables.
*/
lb_mem = write_tables();
#if CONFIG_FS_STREAM == 1
filo(lb_mem);
#else
elfboot(lb_mem);
#endif
}
There is more scrubbing on the horizon but so for things look good.
Eric
More information about the coreboot
mailing list