Linux Software Developers Kit (SDK) User Guide
32
5
5
.
.
F
F
l
l
a
a
s
s
h
h
P
P
a
a
r
r
t
t
i
i
t
t
i
i
o
o
n
n
i
i
n
n
g
g
Intro to Partitioning
The idea of partitioning is to optimize the usage of the available flash space to meet your
requirements. A Linux file system encompasses many files with different characteristics. There
are binaries and data files. Some of them are crucial for the operation of the system all the time,
while some need to be available in certain conditions only. Most files do not need to (and must
not) be modified, some files are important, but variable (e.g. persistent configuration files) and
then there are temporary files like logs.
Linux supports these requirements by letting the user mount different file system types into one
file system tree. Some of them were described in the previous chapter.
Ideally all crucial static files should reside on a compressed read-only file system, nice to have
ones on a separate read-only file system so they can be updated independently, variable files on
a compressed write-enabled file system, and volatile files on a RAM disk.
This luxury comes at a price:
Each supported file system type costs scarce RAM
Managing different file systems on one flash chip is not trivial - what do you do when file
system sizes have to be adjusted to accommodate the space requirements of a new firmware
version?
Depending on the requirements of your application you will have to make your choice between
the various tradeoffs. To keep things reasonably simple, but still extensible, we went with a rather
minimalist default flash layout.
Dual Bank
Flash Partitioning depends on the Dual Bank setting of dBUG (single|1|2).
When using flash in a single bank configuration, Linux can use the entire flash memory for kernel
and root file system.
When using flash in a dual bank configuration, the flash space is divided into two banks. Linux
boots using one bank and keeps another bank unused. The bootbank parameter of dBUG
specifies the bank to be used.