https://github.com/torvalds/linux
Raw File
Tip revision: 6221f222c0ebf1acdf7abcf927178f40e1a65e2a authored by Linus Torvalds on 06 April 2011, 01:30:43 UTC
Linux 2.6.39-rc2
Tip revision: 6221f22
compartmentalisation.txt
		   =========================================
		   PART-SPECIFIC SOURCE COMPARTMENTALISATION
		   =========================================

The sources for various parts are compartmentalised at two different levels:

 (1) Processor level

     The "processor level" is a CPU core plus the other on-silicon
     peripherals.

     Processor-specific header files are divided among directories in a similar
     way to the CPU level:

	(*) include/asm-mn10300/proc-mn103e010/

	    Support for the AM33v2 CPU core.

     The appropriate processor is selected by a CONFIG_MN10300_PROC_YYYY option
     from the "Processor support" choice menu in the arch/mn10300/Kconfig file.


 (2) Unit level

     The "unit level" is a processor plus all the external peripherals
     controlled by that processor.

     Unit-specific header files are divided among directories in a similar way
     to the CPU level; not only that, but specific sources may also be
     segregated into separate directories under the arch directory:

	(*) include/asm-mn10300/unit-asb2303/
	(*) arch/mn10300/unit-asb2303/

	    Support for the ASB2303 board with an ASB2308 daughter board.

	(*) include/asm-mn10300/unit-asb2305/
	(*) arch/mn10300/unit-asb2305/

	    Support for the ASB2305 board.

     The appropriate processor is selected by a CONFIG_MN10300_UNIT_ZZZZ option
     from the "Unit type" choice menu in the arch/mn10300/Kconfig file.


============
COMPILE TIME
============

When the kernel is compiled, symbolic links will be made in the asm header file
directory for this arch:

	include/asm-mn10300/proc => include/asm-mn10300/proc-YYYY/
	include/asm-mn10300/unit => include/asm-mn10300/unit-ZZZZ/

So that the header files contained in those directories can be accessed without
lots of #ifdef-age.

The appropriate arch/mn10300/unit-ZZZZ directory will also be entered by the
compilation process; all other unit-specific directories will be ignored.
back to top