David Howells | b920de1 | 2008-02-08 04:19:31 -0800 | [diff] [blame] | 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. |