[Tinyos-devel] Request for comments: TEP107

Neil Hancock neilh10 at biomonitors.com
Thu Oct 26 22:03:04 PDT 2006


Hello David

 

Thanks for collecting info on this and here is some thoughts on booting.  

 

First I'm wondering about these reviews; - are they reviews of

 

1)       how good it documents already generated code,

2)       is the document put out there as a discussion for the way the
system is desired to work (irrespective of what code has already been
generated), including any potential hardware requirements.

 

It seems to me  the scope of the "boot sequence " would be very useful.
Does it for instance cover the whole of  the system initialization till the
system is declared fully operational - is the end of the "boot sequence"
when all the applications are fully operational or do all applications have
to individually implement there own mini "boot sequences" if required.

 

It seems to TEP107 is implying that it covers a complete "System
Initialization"  - but maybe I've got that wrong as its not explicitly
stated.

 

Typical in a real life distributed system there is "meta data"  from
somewhere else, sometimes a central server but possibly just another node -
and in my book a node is not ready to be operational until all of defined
"meta data" has been acquired.  From past experience a major part of the
system design is to see that all the "meta data" is in place before the
system is declared operational. So examples of "meta data" could be wall
time, or could be some configuration information that customizes how this
node behaves. 

 

I don't see that there is a framework in place for the applications to be
able to gather this information with the algorithms defined in TEP 107. If I
understand TEP 107's algorithms/code fragments,  then the only  application
level initialization facility supported is for the applications internal
data.

 

I would suggest that the boot sequence control the RED & GREEN leds until
system initialization is successful

 

I would suggest boot sequences need to follow hardware architectures, and
which more than likely has to be tuned to a specific platforms.

 

So I would suggest TEP 107 Scheduler and PlatformInit needs further breaking
down as follows:

1)       ON reset the hardware should be defined to turn on a RED led -
indicating the board has power if nothing else happens. This should be
turned to a flashing LED (in s/w) as the processor executes the boot
sequence.

 

2)       Initialization sequence for the processor/machine - the CPU,
internal memory and internal peripherals. If this 'fails' then there isn't a
processor to run on. For a failure there could be a fast blinking red led.

 

3)       Initialization sequence for the core software /TinyOS) -
scheduler.init()

 

4)       Initialization for the core hardware platform - platform.init().
This is the hardware on the core platform, not including any added on
peripherals

 

*** Now application level boot or SoftwareInit ****

 

5)       Initialization for optional hw peripherals - especially if they can
be plugged in live as this will need to be performed if they are ever
plugged in when the system is active

 

6)       Application level initialization - including any "meta"
configuration information 

 

>From my experience its best to implement a state machine to manage the
system boot (assuming it's a complete system initialization), and to be able
to provide feedback for failures. 

 

In the harsh real world a big issue is being clear about  failures so a
technician can see when they need to replace a platform. Unlike the lab,
were a knowledgeable user detects behavioral changes and can download
working code to verify if a platform is running,  a technician user
typically needs a simple indicator like a RED led to indicate the unit isn't
functional. With a non -boot indicator, the programmer has the facility to
"park" unexpected critical errors and prevent the system from coming up.

 

So hope this is useful, its good that TEP 107 has put it out there as to
what boot sequence is, but I've always found bringing a system up  to be
annoyingly complicated.

 

Cheers

 

Neil Hancock

 

 

  _____  

From: David Moss [mailto:dmm at rincon.com] 
Sent: Monday, October 23, 2006 10:56 AM
To: tinyos-devel at Millennium.Berkeley.EDU
Cc: tinyos-help at Millennium.Berkeley.EDU
Subject: [Tinyos-devel] Request for comments: TEP107

 

TinyOS Developers:

 

We're looking for volunteers to read over the TEP107 draft and provide
comments and suggestions.  This TEP describes the TinyOS 2.x Boot Sequence,
including the limitations of the TinyOS 1.x boot process and improvements
made in TinyOS 2.x.

 

If you have time to read over TEP107 and send me your input, I will be
working with the author to revise the proposal as needed.  After this
process is complete, the TEP107 proposal will be moving to a final draft, so
it is important to hear your feedback now.

 

Please send critiques to tinyos-devel at millennium.berkeley.edu

 

Thanks,

-David Moss

 

 

TEP107:
http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x/doc/html/tep1
07.html

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.millennium.berkeley.edu/pipermail/tinyos-devel/attachments/20061026/c0d8ee43/attachment.html


More information about the Tinyos-devel mailing list