diff options
| author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-03-17 10:14:54 +0200 | 
|---|---|---|
| committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-03-17 10:16:38 +0200 | 
| commit | 606f38a2221648ca5c5fa292c9f71d2ddd59fa66 (patch) | |
| tree | 26d11905fda474261433c580c6fb58f4f4a85e59 /ubi-utils/README | |
| parent | a2d010f8fca904fffa3c6e5a5d148cc96a37a08a (diff) | |
ubi-utils: re-arrange directory layout
Move new-utils to ubi-utils and old ones to ubi-utils/old-utils.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'ubi-utils/README')
| -rw-r--r-- | ubi-utils/README | 236 | 
1 files changed, 0 insertions, 236 deletions
| diff --git a/ubi-utils/README b/ubi-utils/README deleted file mode 100644 index d976a76..0000000 --- a/ubi-utils/README +++ /dev/null @@ -1,236 +0,0 @@ -README -====== - -The programs and libraries in this directory provide a tool-chain to -generate binary data for embedded systems which can be flashed either -by a hardware flash programmer, e.g. JTAG debugger, or on the target -system directly using pfiflash, or ubimkvol, ubirmvol, ubiwritevol. - -The latter is the case when there is already Linux running which has -build in UBI support. - -Authors: Oliver Lohmann -         Frank Haverkamp -	 Andreas Arnez - -mkpfi           - tool for flash content generation in PFI -                  format -pfi2bin         - conversion tool to transfer a PFI file into a -                  binary image -pfiflash        - tool to update the embedded systems flash using -                  pfi files created by mkpfi -libbootenv      - library for boot-parameter processing -libpfi          - library for partial flash image (PFI) creation -                  and handling -ubigen          - tool to create binary UBI images e.g. for a -                  jtag flashing tool -nandimg         - tool to add OOB data to binary images intended -                  for NAND flash systems -ubilib          - UBI library - -!!! NOTICE !!! -If you execute ./configure in the top_level directory the helper Makefile -gets overwritten. Thats actually no problem, but be aware of that. - -1. Build Process - -1.1 Build, install and forget -    o Build all and everything -      $make all (takes a while, builds ppc and x86 binaries/libs) -    o Installation: -      $make install -    o Uninstallation: -      $make uninstall - -    o x86 only would be: -      $make x86 && make install_x86 -     -1.2 Usage for a developer - -    1.2.1 The build process in detail - -    o If you've checked out the sources from the CVS repository you'll find a -      directory setup like this: - -	flashutils/ -	-rw-r--r--  1 olli olli 1.3K Mar 14 11:53 Makefile -	-rw-r--r--  1 olli olli 1.9K Mar 14 10:50 Makefile.am -	-rwxr-xr-x  1 olli olli  265 Mar  9 00:47 bootstrap -	-rw-r--r--  1 olli olli 1.1K Mar  9 16:55 configure.ac -	drwxr-xr-x  2 olli olli 4.0K Mar  9 00:28 doc -	drwxr-xr-x  2 olli olli 4.0K Mar 14 11:56 inc -	drwxr-xr-x  2 olli olli 4.0K Mar 14 11:56 lib -	drwxr-xr-x 17 olli olli 4.0K Mar 13 16:50 src - -    o To generate the initial build templates you have to  call the bootstrap -      script: -      $ ./bootstrap -    o Create a directory for the target platform  -      $ mkdir build_x86 -    o Descend into the directory and call the top-level configure script -      with the desired options. -      $ cd build_x86 -      $ ../configure --prefix=/usr/local [...] -    o Now you'll find a directory structure like this: -       -	flashutils/build_x86/ -	-rw-r--r-- 1 olli olli  47K Mar 14 13:33 Makefile -	-rw-r--r-- 1 olli olli  33K Mar 14 13:33 config.log -	-rwxr-xr-x 1 olli olli  38K Mar 14 13:33 config.status -	drwxr-xr-x 2 olli olli 4.0K Mar 14 13:33 inc -	drwxr-xr-x 3 olli olli 4.0K Mar 14 13:33 lib -	-rwxr-xr-x 1 olli olli 202K Mar 14 13:33 libtool - -    o The config.guess script can be used to update the Makefiles in the -      target directory after a change of the top-level template files  -      (i.e. the Makefile.in files). -      $ ./config.guess -    o To compile everything for this platform just invoke make in -      flashutils/build_x86: -      $ make -      or from toplevel: -      $ make -C ./build_x86 -    o The build process creates a new directory "bin": -	flashutils/build_x86/ -	[...] -	drwxr-xr-x 3 olli olli 4.0K Mar 14 13:41 bin -	[...] - -      This directory contains all binary files which will be installed -      by make install, e.g.: - -	flashutils/build_x86/bin/ -	-rwxr-xr-x 1 olli olli 7.2K Mar 14 13:41 bin2nand -	-rwxr-xr-x 1 olli olli  15K Mar 14 13:41 mkbootenv -	-rwxr-xr-x 1 olli olli  16K Mar 14 13:41 pddcustomize -	-rwxr-xr-x 1 olli olli  36K Mar 14 13:41 pfi2bin -	-rwxr-xr-x 1 olli olli 6.8K Mar 14 13:41 pfiflash -	-rwxr-xr-x 1 olli olli 5.0K Mar 14 13:41 ubicrc32 -	-rwxr-xr-x 1 olli olli  13K Mar 14 13:41 ubigen -	-rwxr-xr-x 1 olli olli 6.3K Mar 14 13:41 ubimirror - - -    1.2.2 Modifying and Adding Sources - -    o There is a dedicated directory which contains all source code -      of the flashutils package, e.g.: - -	flashutils/src/ -	drwxr-xr-x 2 olli olli 4.0K Mar 13 11:42 libbootenv -	drwxr-xr-x 2 olli olli 4.0K Mar 13 11:42 liberror -	drwxr-xr-x 2 olli olli 4.0K Mar 13 16:48 mkpfi -	drwxr-xr-x 2 olli olli 4.0K Mar 13 16:12 pddcustomize - -       -       -      The prefix "lib" is used to mark directories as part of a convenience -      library. Binaries have no special prefix. - -    o How to add sources? -       -      Just create a new directory at flashutils/src/, e.g.: - -      For a binary: -      $ mkdir rider -      $ cd rider -      $ vi rider.c -      /* do sth with that file... */ - -      For a convenience library (as well as for "normal libs") -      $ mkdir libworld -      $ cd libworld -      $ vi world.c -      /* do sth with that file... */ - -    o How to register sources in the build process (for binaries)? - -      You have to register your sources at the top-level automake Makefile: - -      In directory flashutils/ -      $ vi Makefile.am - -      Binaries have to be registered at "bin_PROGRAMS", e.g.: -	bin_PROGRAMS	= bin/pddcustomize \ -			  bin/rider - -      Add the rule how the binary is assembled, e.g.: -	bin_pddcustomize_SOURCES = \ -		$(top_srcdir)/src/pddcustomize/pddcustomize.c  -	bin_pddcustomize_LDADD   = \ -		$(top_builddir)/lib/libbootenv.la \ -		$(top_builddir)/lib/liberror.la  - -	bin_rider_SOURCES = \ -		$(top_srcdir)/src/rider/rider.c - -      This example reflects a simple build process for "rider". "rider" -      is built without any other dependencies or convenience libraries. -      The example for pddcustomize is a bit more complicated. -      "_LDADD" adds some convenience libraris into the link process of  -      "pddcustomize". Imagine, that your "rider" has common code  -      with "dragon_bin" which is held in a library called "libworld". -      The build rules would like like the following: - -	bin_rider_SOURCES = \ -		$(top_srcdir)/src/rider/rider.c -	bin_rider_LDADD   = \ -		$(top_builddir)/lib/libworld.la  - -	bin_dragon_SOURCES = \ -		$(top_srcdir)/src/dragon_bin/dragon_bin.c -	bin_dragon_LDADD   = \ -		$(top_builddir)/lib/libworld.la  - -      Don't forget to add "dragon" to "bin_PROGRAMS"! -      Don't forget to set the build rule for the "libworld" itself! -      This is documented in the next section. -      	 - -    o How to register sources in the build process (for libraries)? - -      Until now we didn't care about the build process of "libworld". -      Libraries are handled special in this build process because -      they are handled as "modules", i.e. they are able to be built -      without building the binaries in the same step. Additionally, -      it is possible to assemble complex libraries out of simple ones. -      That especially makes sense if you want to export (install) a  -      library on a system which uses some common code and makes -      some adoptions for usability and presents a comfortable interface to -      the user (see libpfiflash in the sources for an example). - -    o Registering "libworld" as convenience library. - -      Instead of editing the "Makefile.am" in "flashtools/", we have to  -      edit now the "Makefile.am" in "flashtools/lib/": - -	noinst_LTLIBRARIES	= libworld.la  - -	libworld_la_SOURCES	= $(top_srcdir)/src/libworld/world.c - -    o Registering "libworld" as library which gets installed. -       -	lib_LTLIBRARIES		= libworld.la  -	libworld_la_SOURCES	= $(top_srcdir)/src/libworld/world.c -	libworld_la_LDFLAGS	= -no-undefined -version-info 0:0:0 - -    o Header files -       -      All header files are stored at "flashutils/inc", regardless -      if convenience library or not.  - -      If you want to export headers you have to specify this in the Makefile.am -      located at "flashutils/inc", e.g. (this should not be done  -      for convenience libraries): - -         nobase_include_HEADERS = world.h -  - - -Appendix - -A.1. FAQ - -   Q How to call configure to setup a cross-platform build? -   A $ ./configure --build=i686-pc-linux-gnu --host=ppc-linux \ -	--prefix=/opt/.../ppcnf/crossroot/ \ -	--exec-prefix=/opt/..../ppcnf/crossroot/usr | 
