source: freewrt/docs/technical/firmware.tex@ 8b095c4

freewrt_1_0 freewrt_2_0
Last change on this file since 8b095c4 was 8b095c4, checked in by Waldemar Brodkorb <wbx@…>, 19 years ago

documentation format will be tex, it is very simple to use and learn, and we can convert it to html/ascii/ps/pdf in a simple way, i added a first file about firmware stuff, not ready, but better then nothing

git-svn-id: svn://www.freewrt.org/trunk/freewrt@351 afb5a338-a214-0410-bd46-81f09a774fd1

  • Property mode set to 100644
File size: 2.4 KB
Line 
1\documentclass[a4paper,pdftex,12pt]{article}
2\usepackage{german}
3\usepackage{parskip}
4\usepackage[latin1]{inputenc}
5\usepackage{graphicx}
6
7\sloppy
8
9\begin{document}
10
11\clearpage
12%\includegraphics{images/fhlogo}
13
14\hspace{2.1cm}\textsf{\large FreeWRT technical documentation}
15
16\vspace{0.5cm}
17
18\begin{center}
19\textbf{\Large Firmware, Flash layout, Startup scripts, Filesystems}
20
21Waldemar Brodkorb (wbx@freewrt.org)
22\end{center}
23\vspace{1cm}
24
25\section{Firmware}
26
27The development team always provide monolithic firmware images, which contains the
28kernel, a filesystem and sometimes some specific vendor headers.
29
30\section{Flash layout}
31
32The flash layout of the supported embedded systems is designed in the same way.
33There are some model specific differences between the exact sizes and partition
34offsets.
35
36We always have a separate partition for the bootloader. After that we have a
37partition for the kernel including a embedded root filesystem.
38
39
40\section{System startup}
41
42\subsection{Bootloader}
43
44The bootloader initializes the hardware, f.e. CPU, cache and ethernet devices.
45The different supported embedded systems have different bootloaders, with
46different features and sizes. To access the bootloader and a command line
47prompt you always need a serial connection to the embedded system.
48Not all embedded systems have a serial device onboard or only some crippled
49ones. Most of the time you can solder the board to get some working serial
50device, but this is not part of this short technical introduction.
51
52\section{Kernel}
53
54The kernel is configured via append line to startup the ash compatible
55/etc/preinit script.
56
57\section{Preinit}
58
59This is needed to first make some checks, which root filesystem is used and
60then to switch the root filesystem to that. This is either a complete writable
61root filesystem, which fills up the complete available flash.
62
63The preinit script exports the environment variable PATH and then mounts the
64virtual proc filesystem to /proc.
65
66There is another board specific preinit script, which is used to setup
67some board specific drivers or startup variables. (preinit.arch)
68After that the script mount\_root will mount the root filesystem and
69all other filesystems and startup init to start the system.
70
71\subsection{Root filesystem}
72
73- mini-fo
74- jffs2
75- usb
76- nfs
77
78\subsection{System startup}
79
80In /etc/inittab we use /etc/init.d/rcS to startup all services, which
81are activated in /etc/rc.conf
82
83\end{document}
Note: See TracBrowser for help on using the repository browser.