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
_______________________________________________
Linuxbios mailing list
[EMAIL PROTECTED]
http://www.clustermatic.org/mailman/listinfo/linuxbios

Reply via email to