		   =========================================
		   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.
