Committer: Michael Beasley <mike@snafu.setup>
[mikesnafu-overlay.git] / Documentation / mn10300 / compartmentalisation.txt
blob8958b51dac4bbb182b792df053b07c95af15562d
1                    =========================================
2                    PART-SPECIFIC SOURCE COMPARTMENTALISATION
3                    =========================================
5 The sources for various parts are compartmentalised at two different levels:
7  (1) Processor level
9      The "processor level" is a CPU core plus the other on-silicon
10      peripherals.
12      Processor-specific header files are divided among directories in a similar
13      way to the CPU level:
15         (*) include/asm-mn10300/proc-mn103e010/
17             Support for the AM33v2 CPU core.
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.
23  (2) Unit level
25      The "unit level" is a processor plus all the external peripherals
26      controlled by that processor.
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:
32         (*) include/asm-mn10300/unit-asb2303/
33         (*) arch/mn10300/unit-asb2303/
35             Support for the ASB2303 board with an ASB2308 daughter board.
37         (*) include/asm-mn10300/unit-asb2305/
38         (*) arch/mn10300/unit-asb2305/
40             Support for the ASB2305 board.
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.
46 ============
47 COMPILE TIME
48 ============
50 When the kernel is compiled, symbolic links will be made in the asm header file
51 directory for this arch:
53         include/asm-mn10300/proc => include/asm-mn10300/proc-YYYY/
54         include/asm-mn10300/unit => include/asm-mn10300/unit-ZZZZ/
56 So that the header files contained in those directories can be accessed without
57 lots of #ifdef-age.
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.