I'm having a problem finding/loading/executing a payload from seabios which is now using the romfile functions for cbfs (commit 59d6ca52a7eba5). I do have the cpu_to_be32() patch to get the correct payload destination address.
Here's what I had previously that worked before the change...
// Output the LCD splash image to the Explorer board struct cbfs_file *file; dprintf(1,"Looking for Explorer LCD splash payload ... "); file = cbfs_finddatafile("img/explorer-splash"); if(file) { dprintf(1," found file [%s]. Loading it...\n ",file->filename); cbfs_run_payload(file); } else dprintf(1,"could NOT find it!\n");
This is where I'm at after the change ...
// Output the LCD splash image to the Explorer board struct romfile_s *file; dprintf(1,"Looking for Explorer LCD splash payload ... "); file = romfile_find("img/explorer-splash"); if(file) { dprintf(1," found file [%s]. Loading it...\n ",file->name); <=== everything works up to here // cbfs_run_payload(); } else dprintf(1,"could NOT find it!\n");
The cbfs_run_payload is expecting (cbfs_file *). How do I extract what cbfs_run_payload() wants from what I got back from romfile_find() ?
Thanks in advance, Dave
On Wed, Aug 29, 2012 at 02:06:03PM -0500, Dave Frodin wrote: [...]
This is where I'm at after the change ...
// Output the LCD splash image to the Explorer board struct romfile_s *file; dprintf(1,"Looking for Explorer LCD splash payload ... "); file = romfile_find("img/explorer-splash"); if(file) { dprintf(1," found file [%s]. Loading it...\n ",file->name); <=== everything works up to here // cbfs_run_payload(); } else dprintf(1,"could NOT find it!\n");
The cbfs_run_payload is expecting (cbfs_file *). How do I extract what cbfs_run_payload() wants from what I got back from romfile_find() ?
cbfs_run_payload((void*)file->id);
-Kevin
Subject: Re: [SeaBIOS] What do I pass to cbfs_run_payload() after finding the payload with romfile_find() ?
On Wed, Aug 29, 2012 at 02:06:03PM -0500, Dave Frodin wrote: [...]
This is where I'm at after the change ...
// Output the LCD splash image to the Explorer board struct romfile_s *file; dprintf(1,"Looking for Explorer LCD splash payload ... "); file = romfile_find("img/explorer-splash"); if(file) { dprintf(1," found file [%s]. Loading it...\n ",file->name); <=== everything works up to here // cbfs_run_payload(); } else dprintf(1,"could NOT find it!\n");
The cbfs_run_payload is expecting (cbfs_file *). How do I extract what cbfs_run_payload() wants from what I got back from romfile_find() ?
cbfs_run_payload((void*)file->id);
-Kevin
Kevin, Well that was easy enough.
Thanks, again Dave