2010/1/8 Patrick Georgi <patr...@georgi-clan.de>:
> How long did you wait? it _might_ be that it merely takes a very long
> time. That must of course be fixed, but is not the same problem as a
> hanging system.

I wait for about 15-20 min and nothing special. I put some 'postcode'
functions for debug capability and I've found out that it hangs on
'cbfs_load_stage' function when it calls cbfs_find_file:

---------[ lib/cbfs.c ]--------
// ...

void * cbfs_load_stage(const char *name)
{
        struct cbfs_stage *stage = (struct cbfs_stage *)
                cbfs_find_file(name, CBFS_TYPE_STAGE);
        /* this is a mess. There is no ntohll. */
        /* for now, assume compatible byte order until we solve this. */
        u32 entry;

        outb(0xaa, 0x80);        // <--------------- It doesn't occur

        if (stage == NULL)
                return (void *) -1;

        printk_info("Stage: loading %s @ 0x%x (%d bytes), entry @ 0x%llx\n",
                        name,
                        (u32) stage->load, stage->memlen,
                        stage->entry);
        memset((void *) (u32) stage->load, 0, stage->memlen);

        if (cbfs_decompress(stage->compression,
                             ((unsigned char *) stage) +
                             sizeof(struct cbfs_stage),
                             (void *) (u32) stage->load,
                             stage->len))
                return (void *) -1;

        printk_debug("Stage: done loading.\n");

        entry = stage->entry;
        // entry = ntohl((u32) stage->entry);

        return (void *) entry;
}

// ...
---------------------------------------------------

On Monday I will test the cbfs_find_file function. I hope I will found
something.

Have a good weekend!

-- 
Piotr Piwko
http://www.embedded-engineering.pl/

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to