Passing Info from IPL to Startup

Howdy, I’m trying to find a way to pass some information about the number and
size of FLASH devices installed on a module in my embedded board (AMD SC400).
Instead of doing the probing in the startup module which requires the memory
mapping and whatnot, I’d prefer to do it in assembler in the IPL. The
startup_info stuff doesn’t look like it has enough flexibility to do what I
want. If there was a way I could specify just the address and size of a
FLASHFSYS type memory block, that would work. Otherwise is it possible for me
to just stash “OEM defined” data records in there and get to them at startup
time without screwing up the standard startup code? I could populate the
standard memory structure if I could ensure that the O.S. wouldn’t try to add
it to the free list (it’d be very unhappy). Any suggestions for me or shall I
punt?

-Warren

“Warren Peece” <warren@nospam.com> wrote in message
news:8vs2mr$6ti$1@inn.qnx.com
| Howdy, I’m trying to find a way to pass some information about the number and
| size of FLASH devices installed on a module in my embedded board (AMD SC400).
| Instead of doing the probing in the startup module which requires the memory
| mapping and whatnot, I’d prefer to do it in assembler in the IPL. The
| startup_info stuff doesn’t look like it has enough flexibility to do what I
| want. If there was a way I could specify just the address and size of a
| FLASHFSYS type memory block, that would work. Otherwise is it possible for
me
| to just stash “OEM defined” data records in there and get to them at startup
| time without screwing up the standard startup code? I could populate the
| standard memory structure if I could ensure that the O.S. wouldn’t try to add
| it to the free list (it’d be very unhappy). Any suggestions for me or shall
I
| punt?
|
| -Warren

It was a beautiful kick, you shoulda seen it! Anywho, I perused the startup
code and it appears that anything scanning the info list looks for whatever
type it wants, and ignores everything else. So it would be a fairly simple
exercise to add my own record types without breaking anything. However, I
opted for the supposedly simpler option (it’s pretty much 6’s) of leaving
info[0] empty (meaning end of list), and placing a single memory structure at
info[1…3]. I snag that in my main() startup code, and add it as FLASHFSYS
memory. It works wonderfully. I was going to add each FLASH device as its own
address/size entry, but someone has decided to coalesce all similar type
contiguous entries into a single block. :frowning:

So, there it was.

-Warren