Below is a very rough outline-brain dump- of what I think a user needs
to know before installing a pre-built image.  Installation recipies
are *bullshit*.  

All of the sections needs to be fleshed out(I expect the chapter to end up
being about 40-50 pages long) .  I would appricate
suggestions on key stuff that I am missing. don't worry about
spelling or grammer this is still in the brain storm phase.

The chapter will have two goals.
1  The reader should have enough knowledge to an image on their device.
2  The reader should be able to find and refer to other embedded
device books.

Thanks
David Farning



\section{What Is an Embedded Device?}
This chapter is not a complete treatment of the hardware of an embedded device
rather it is just enough of an over view to help understand enough of the
device to correctly install an image.  There are a number of very good book on
embedded devices that we hope you will look into when you want to know about
embedded devices.{footnote}

Embedded Devices, often referred to as the target or platform, are available in
a wide variaty of sizes and shapes but they generally share a number of
properities.

small general purpose processor

made of standard off the shelf components

have sever power limitations

small memory footprint

usually designed for a particular purpose

delivered with all hardware and software preinstalled

limited user interface

designed for limited user interventation

For developers who are used to working with general purpose computers, memory
and storage space is often not a consideration.  For the most part if you want
to add functionallity you just add a program or libary.

The storage limitations on embedded devices cause developers to become very
furgal.  You will find yourself asking how can we shrink this down.  You will
find yourself making tradeoffs as to which packages you have room for to meet
the desired functionality of your device. 

OpenWrt has made design designs to excell at working with network applainces.
We will focuse the hardware discussion on the features related to thoses 
devices. 

\subsection{Processor Architecture}
As we have looked at in the introduction, there are a wide varity of processors
that openwrt runs on.  The main critiare that designers look at are price and io
bandwidth.  We want to get data on and off the device as quickly as possiable.

There are a number of stand alone processor used, but for cost reasons, Systems
on chip (SOC) are becoming more common.

List and describe common archs.

\subsection{Buses and Interfaces}
isa

pci

scsi

usb

FirewWire IEEE1394

\subsection{I/O}
One of the first things that you will notice about network devices is the lack
of standard io such as monitor, keyboard, and mouse.  Almost all communication
with the device will happen through the serial port and network.  In limited
cases we will need to depend on the buttons and leds on the device itself. 

serial Port
network covered later.

\subsection{Storage}
Storage is an issue that we will find ourselves coming back to over and over
again.  Must be able to boot from some type of perment storage.

\subsection{Networking}
For our puposes, networking is critical.


\section{What is an image}
System start up.  The device needs to initalize itself, the kernel, the file
system and run the init process.

Basically the bootloader covered later needs to be able to find a copy of the 
file system in a
perdictable location.


\subsection{root file system structure}
\subsubsection{Basic Structure}
\subsubsection{Configfiles}
\subsubsection{Libaries}
\subsubsection{Kernel Modules}
\subsubsection{Kernel Image}
\subsubsection{Applications}

\section{talking to storage}
What the special considerations when dealing with embedded storage?
\section{flash}
\section{Nand flash}
\section{using flash}
\subsection{MTD}
\subsection{Filesystem types}
\subsection{adressing menory space}

\section{kernel initionalization}
How does the system boot up?
\section{system initialization}
\section{bootloader background}
\section{role of boot loader}
\section{bootloader challanges}
\subsection{Redboot}
\subsection{U-boot}

\section{theory of flashing}
Where and how can we stick the image into flash?

Now that we have finished the preliminary work we can get to the heart of this
chapter.  How do we install an image on our device?

The basic approaches 
Are have the existing firmware rewrite itself.
Stop the device initialization process and rewrite the image.

Fail safe mode

boot_wait

We will not go into details of how to install on image onto each type of device
that OpenWRt support.  But, from the above you should be able to determine how
to update the firmware on your device.

\subsection{web interface}
The simplest way to install a new image is to use the web interface from the
existing firmware.

\subsection{tftp}
Trivial File Transfer protocal.

\subsubsection{What is It?}
\subsubsection{How to use}

\subsection{jtag}
Joint Test Action Group.

\subsubsection{What is It?}
\subsubsection{How to use}

\subsection{serial}

\subsubsection{What is It?}
\subsubsection{How to use}

\section{Chapter Summary}
\subsection{Further readings}


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to