RFC: Boot sequence callouts?

gregory.menke at gsfc.nasa.gov gregory.menke at gsfc.nasa.gov
Wed Aug 27 15:08:02 UTC 2003


Thomas Doerfler writes:
 > Hello,
 > 
 > in the past, I have brought up RTEMS on various boards, 
 > sometimes with almost no debugging tools. Today in a private 
 > email contact I once again got the question "My board does not 
 > boot. What's wrong?".
 > 
 > I just got an idea that might help a bit to find the reason 
 > for a hanging boot sequence. How about a standard callout 
 > function pointer (let's say "BSP_boot_checkpoint_reached") 
 > that is called, whenever a new part of the boot sequence has 
 > been reached. 
 > 
 > Normally this pointer would be NULL and therefore no call 
 > would be executed at all, but in the basic startup code, this 
 > pointer could be tweaked to a useful function (like blinking 
 > an LED, sending a character to the UART, beeping a beeper or 
 > so), just to monitor, which checkpoints have been reached (and 
 > which have not).
 > 
 > My recommendation is still very rough (and I hope no software 
 > patents already claim this fantastic idea as IP :-> ), but 
 > maybe this would be of some help...
 > 
 > Any comments appreciated,

Thats not a bad idea, but I think it might be hard to implement.  THe
Mongoose and motorola_shared bsps both have similar features already;
basically they print (or can print) chars at each phase in the
startup.

It might work for the Mongoose which has the bootstrap linked right in
with the OS- there the printchar is a very efficient call to a simple
routine which could be ifdef'ed out without much trouble for a quiet
startup.

Even so, a standardized approach would be troublesome because the code
doing the startup is relocatable; all the OS relocation, hardware
config and memory zeroing code runs without linked code ready in
memory.  Any linker-generated pointer doesn't point to anything until
the bootstrap is done- and step is often the hardest to get going.

Gregm




More information about the users mailing list