Difference between revisions of "Sources organisation"

From ArmadeusWiki
Jump to: navigation, search
m
Line 31: Line 31:
 
  |  |-- PS2_Opencore
 
  |  |-- PS2_Opencore
 
  |  `-- sram_test
 
  |  `-- sram_test
  |-- host -------------------------- contains the custom software needed on the devt PC
+
  |-- host -------------------------- contains the custom software needed on the devt PC (obsolete)
 
  |  `-- patches
 
  |  `-- patches
 
  |-- patches ----------------------- contains the patches needed to be applied to buildroot
 
  |-- patches ----------------------- contains the patches needed to be applied to buildroot
  |  `-- cygwin
+
  |  `-- cygwin--------------------- obsolete
 
  |-- software ---------------------- contains software running one part on the PC and one part on the APF
 
  |-- software ---------------------- contains software running one part on the PC and one part on the APF
  |  |-- demos
+
  |  |-- demos---------------------- Qtopia DAC client/server demo
 
  |  |-- orchesta
 
  |  |-- orchesta
 
  |  `-- uboot_recover
 
  |  `-- uboot_recover
Line 45: Line 45:
 
     `-- test
 
     `-- test
  
==binaries/armadeus folder==
+
= Buildroot strategy =
 +
Buildroot strategy is to leave unchanged the initial sources. This means that for each package/software, you will find a "source directory" with at least a makefile and a "build directory" where it will be copied and compiled.
 +
 
 +
==Software/packages modifications==
 +
During a development phase, your modifications have to be applied in the "build directory".
 +
For a release, a patch/commit has to be created/done in order to modifiy the initial "source directory".
 +
 
 +
=binaries/armadeus folder=
 
Contains the generated binary files
 
Contains the generated binary files
 
* linux-kernel-2.6.xxx-arm.bin
 
* linux-kernel-2.6.xxx-arm.bin
Line 51: Line 58:
 
* uboot.bin
 
* uboot.bin
  
==build_arm folder==
+
=build_arm folder=
 
This place is used to compile the softwares which will run on your target like linux, u-boot...<br>
 
This place is used to compile the softwares which will run on your target like linux, u-boot...<br>
 
A new package selected in the buildroot menuconfig will have a dedicated directory here.<br>
 
A new package selected in the buildroot menuconfig will have a dedicated directory here.<br>
Line 58: Line 65:
 
The arm compiler for your platform and the libs are although placed here (under staging_dir)
 
The arm compiler for your platform and the libs are although placed here (under staging_dir)
  
== package folder ==
+
= package folder =
 
This place contains all the packages available from the buildroot menuconfig.<br>
 
This place contains all the packages available from the buildroot menuconfig.<br>
 
Each package has its own folder with a makefile and several patches if required.<br>
 
Each package has its own folder with a makefile and several patches if required.<br>
Line 64: Line 71:
 
*If you need to change the version of a package, you have to do the modification in the makefile.
 
*If you need to change the version of a package, you have to do the modification in the makefile.
  
==project_build_arm/armadeus folder==
+
=project_build_arm/armadeus folder=
=== root ===
+
== root ==
 
This place is used to build the whole rootfs for your board. <br>
 
This place is used to build the whole rootfs for your board. <br>
 
*If you need to modify your rootfs (ie add nodes, startup files), you can do the modifications here during the development phase.<br>
 
*If you need to modify your rootfs (ie add nodes, startup files), you can do the modifications here during the development phase.<br>
Line 73: Line 80:
 
  $ make roofs-dirclean (in the top Armadeus directory)
 
  $ make roofs-dirclean (in the top Armadeus directory)
  
=== busybox-xxxx ===
+
== busybox-xxxx ==
 
This directory used to compile the busybox for your target.
 
This directory used to compile the busybox for your target.
 
*the configuration of your busybox can be changed like that:
 
*the configuration of your busybox can be changed like that:
 
  $ make busybox-menuconfig (in the top Armadeus directory)
 
  $ make busybox-menuconfig (in the top Armadeus directory)
  
 +
=target/device/armadeus folder=
 +
*apf9328 folder: contains the apf9328 configuration files
 +
*apm9328 folder: contains the apm9328 (apf9328 prototype) configuration files
 +
*linux folder: contains the linux patches for the Armadeus projects
 +
*rootfs folder: contains the rootfs skeleton and the device table which will be used to create the rootfs nodes and directories
 +
*uboot folder: contains the uboot patches required for the Armadeus boards
  
==target/device/armadeus folder==
+
=target=
 
+
*linux: contains the debug tools like imxregs and the armadeus specific drivers.
 +
*packages: contains small applications to control some peripherals like the DAC
 +
*test: contains some stress test programs
  
 +
Similar to the buildroot packages, the target subfolders are not used for the compilation. Each makefile will copy the required files in the build_arm/buildroot corresponding directory before the build process.
 +
Modifications of the sources during the development phase have to be done in build_arm/buildroot.
  
 
<br>[[Image:FrenchFlag.png]][[Fr:Organisation des sources| Cette page en français]]
 
<br>[[Image:FrenchFlag.png]][[Fr:Organisation des sources| Cette page en français]]
  
 
[[Category:Software]]
 
[[Category:Software]]

Revision as of 22:37, 19 April 2008

Project Tree

|-- buildroot ---------------------- contains our buildroot distribution
|   |-- binaries
|   |   `-- armadeus------------------ contains image files for the target: u-boot, kernel, rootfs
|   |-- build_arm
|   |-- docs
|   |-- package
|   |-- project
|   |-- project_build_arm
|   |   `--armadeus
|   |-- scripts
|   |-- target
|   |   `-- device
|   |        `-- armadeus
|   |           |-- apf9328
|   |           |-- apm9328
|   |           |-- linux
|   |           |   `-- kernel-patches
|   |           |-- rootfs
|   |           |   `-- target_skeleton
|   |           `-- u-boot
|   |-- toolchain
|   `-- toolchain_build_arm
|-- downloads ---------------------- holds all the downloaded files by default
|-- firmware ----------------------- contains the custom FPGA's IPs
|   |-- BRAMTest
|   |-- led
|   |-- PS2
|   |-- PS2_Opencore
|   `-- sram_test
|-- host -------------------------- contains the custom software needed on the devt PC (obsolete)
|   `-- patches
|-- patches ----------------------- contains the patches needed to be applied to buildroot
|   `-- cygwin--------------------- obsolete
|-- software ---------------------- contains software running one part on the PC and one part on the APF
|   |-- demos---------------------- Qtopia DAC client/server demo
|   |-- orchesta
|   `-- uboot_recover
`-- target ------------------------ contains all our custom software for the APF
   |-- demos
   |-- linux
   |-- packages
   `-- test

Buildroot strategy

Buildroot strategy is to leave unchanged the initial sources. This means that for each package/software, you will find a "source directory" with at least a makefile and a "build directory" where it will be copied and compiled.

Software/packages modifications

During a development phase, your modifications have to be applied in the "build directory". For a release, a patch/commit has to be created/done in order to modifiy the initial "source directory".

binaries/armadeus folder

Contains the generated binary files

  • linux-kernel-2.6.xxx-arm.bin
  • rootfs.arm.jffs2
  • uboot.bin

build_arm folder

This place is used to compile the softwares which will run on your target like linux, u-boot...
A new package selected in the buildroot menuconfig will have a dedicated directory here.
Modifications of the target software have to be done here during the development phase.

The arm compiler for your platform and the libs are although placed here (under staging_dir)

package folder

This place contains all the packages available from the buildroot menuconfig.
Each package has its own folder with a makefile and several patches if required.
The makefile is responsible for the download of the software and for the installation in the build_arm folder.

  • If you need to change the version of a package, you have to do the modification in the makefile.

project_build_arm/armadeus folder

root

This place is used to build the whole rootfs for your board.

  • If you need to modify your rootfs (ie add nodes, startup files), you can do the modifications here during the development phase.

This folder is created during the first toolchain installation. A rootfs skeleton located in target/device/armadeus/roofs is used to build the initial rootfs.

  • If you want to keep a special rootfs across projects, the skeleton has to be replaced with your own file.

The rootfs can be clean up with the following command:

$ make roofs-dirclean (in the top Armadeus directory)

busybox-xxxx

This directory used to compile the busybox for your target.

  • the configuration of your busybox can be changed like that:
$ make busybox-menuconfig (in the top Armadeus directory)

target/device/armadeus folder

  • apf9328 folder: contains the apf9328 configuration files
  • apm9328 folder: contains the apm9328 (apf9328 prototype) configuration files
  • linux folder: contains the linux patches for the Armadeus projects
  • rootfs folder: contains the rootfs skeleton and the device table which will be used to create the rootfs nodes and directories
  • uboot folder: contains the uboot patches required for the Armadeus boards

target

  • linux: contains the debug tools like imxregs and the armadeus specific drivers.
  • packages: contains small applications to control some peripherals like the DAC
  • test: contains some stress test programs

Similar to the buildroot packages, the target subfolders are not used for the compilation. Each makefile will copy the required files in the build_arm/buildroot corresponding directory before the build process. Modifications of the sources during the development phase have to be done in build_arm/buildroot.


FrenchFlag.png Cette page en français