Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[profile/ivi/kernel-x86-ivi.git] / Documentation / mn10300 / compartmentalisation.txt
1                    =========================================
2                    PART-SPECIFIC SOURCE COMPARTMENTALISATION
3                    =========================================
4
5 The sources for various parts are compartmentalised at two different levels:
6
7  (1) Processor level
8
9      The "processor level" is a CPU core plus the other on-silicon
10      peripherals.
11
12      Processor-specific header files are divided among directories in a similar
13      way to the CPU level:
14
15         (*) include/asm-mn10300/proc-mn103e010/
16
17             Support for the AM33v2 CPU core.
18
19      The appropriate processor is selected by a CONFIG_MN10300_PROC_YYYY option
20      from the "Processor support" choice menu in the arch/mn10300/Kconfig file.
21
22
23  (2) Unit level
24
25      The "unit level" is a processor plus all the external peripherals
26      controlled by that processor.
27
28      Unit-specific header files are divided among directories in a similar way
29      to the CPU level; not only that, but specific sources may also be
30      segregated into separate directories under the arch directory:
31
32         (*) include/asm-mn10300/unit-asb2303/
33         (*) arch/mn10300/unit-asb2303/
34
35             Support for the ASB2303 board with an ASB2308 daughter board.
36
37         (*) include/asm-mn10300/unit-asb2305/
38         (*) arch/mn10300/unit-asb2305/
39
40             Support for the ASB2305 board.
41
42      The appropriate processor is selected by a CONFIG_MN10300_UNIT_ZZZZ option
43      from the "Unit type" choice menu in the arch/mn10300/Kconfig file.
44
45
46 ============
47 COMPILE TIME
48 ============
49
50 When the kernel is compiled, symbolic links will be made in the asm header file
51 directory for this arch:
52
53         include/asm-mn10300/proc => include/asm-mn10300/proc-YYYY/
54         include/asm-mn10300/unit => include/asm-mn10300/unit-ZZZZ/
55
56 So that the header files contained in those directories can be accessed without
57 lots of #ifdef-age.
58
59 The appropriate arch/mn10300/unit-ZZZZ directory will also be entered by the
60 compilation process; all other unit-specific directories will be ignored.