[coreboot] coreboot and MSM800BEV

Piotr Piwko piotr.piwko at gmail.com
Fri Jan 8 18:32:24 CET 2010


2010/1/8 Patrick Georgi <patrick at 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/




More information about the coreboot mailing list