summaryrefslogtreecommitdiffstats
path: root/Documentation/mn10300/compartmentalisation.txt
blob: 8958b51dac4bbb182b792df053b07c95af15562d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
=========================================
		   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.