linux 内核代码组织结构

linux-2.6.28.6

real6410 board

 0. source "init/Kconfig" 

      |

      +-- source usr/Kconfig

      |
      +-- source arch/Kconfig
      |
      +-- source block/Kconfig
 
source "kernel/Kconfig.freezer"
 
 
1. arch/arm/Kconfig
 
config ARCH_S3C64XX == y
    bool "Samsung S3C64XX"
    select GENERIC_GPIO
    select HAVE_CLK
 
2. source "arch/arm/plat-s3c64xx/Kconfig" in plat-s3c64xx/Kconfig
 
dev-uart.c devs.c
cpu.c
irq.c
irq-eint.c
irq-eint-group.c
clock.c
gpiolib.c
bootmem.c
 
config PLAT_S3C64XX == y
    bool 
    depends on ARCH_S3C64XX
    select PLAT_S3C -->arch/arm/plat-s3c/Kconfig -->3
    select ARM_VIC -->arch/arm/common/Kconfig:4 -->arch/arm/common/vic.c
    select NO_IOPORT -->arch/arm/Kconfig:56
    select ARCH_REQUIRE_GPIOLIB -->drivers/gpio/Kconfig:15 -->drivers/gpio/gpiolib.c
    select S3C_GPIO_TRACK -->arch/arm/plat-s3c/Kconfig:123 ->arch/arm/plat-s3c/gpio.c
    select S3C_GPIO_PULL_UPDOWN -->arch/arm/plat-s3c/Kconfig:129 ->arch/arm/plat-s3c/gpio-config.c
    select S3C_GPIO_CFG_S3C24XX -->arch/arm/plat-s3c/Kconfig:144 ->arch/arm/plat-s3c/gpio-config.c
    select S3C_GPIO_CFG_S3C64XX -->arch/arm/plat-s3c/Kconfig:150 ->arch/arm/plat-s3c/gpio-config.c
    select DMABOUNCE -->arch/arm/common/Kconfig:17 -->arch/arm/common/dmabounce.c
    default y
 
config S3C64XX_SETUP_I2C0 -->./setup-i2c0.c
    bool
    default y
 
config S3C64XX_DEV_FIMC0 -->./dev-fimc0.c
    bool
    default y
 
config S3C64XX_DEV_FIMC1 -->./dev-fimc1.c
    bool
    default y
 
config S3C64XX_SETUP_FIMC0 -->./setup-fimc0.c
    bool
    default y
 
config S3C64XX_SETUP_FIMC1 -->./setup-fimc1.c
    bool
    default y
 
config S3C64XX_DEV_RP -->./dev-rp.c
    bool
    default y
 
3. source "arch/arm/plat-s3c/Kconfig"
 
init.c
hr-time.c
clock.c
pwm-clock.c
gpio.c
gpio-config.c
 
config PLAT_S3C
    depends on ARCH_S3C2410 || ARCH_S3C24A0 || ARCH_S3C64XX || ARCH_S5P64XX || ARCH_S5PC1XX
    default y
 
config S3C_BOOT_ERROR_RESET -->arch/arm/plat-s3c/include/plat/uncompress.h:122
    bool "S3C Reboot on decompression error"
    depends on PLAT_S3C
 
config S3C_LOWLEVEL_UART_PORT -->arch/arm/plat-s3c/include/plat/uncompress.h:40
 -->arch/arm/plat-s3c64xx/sleep.S:25
 -->arch/arm/boot/compressed/head.S:58
    int "S3C UART to use for low-level messages"
    depends on PLAT_S3C
    default 0
 
config S3C_GPIO_SPACE ->arch/arm/mach-s3c6400/include/mach/gpio.h:47
    int "Space between gpio banks"
    default 0
 
config S3C_GPIO_PULL_DOWN ->arch/arm/plat-s3c/include/plat/gpio-cfg.h:91
    bool
 
config S3C_GPIO_PULL_UP ->arch/arm/plat-s3c/include/plat/gpio-cfg.h:92
    bool
 
config S3C_DEV_HSMMC (select by MACH_SMDK6410) -->./dev-hsmmc.c
    bool
    depends on PLAT_S3C
 
config S3C_DEV_HSMMC1 (select by MACH_SMDK6410) -->./dev-hsmmc1.c
    bool
    depends on PLAT_S3C
 
config S3C_DEV_HSMMC2 (select by MACH_SMDK6410) -->./dev-hsmmc2.c
    bool
    depends on PLAT_S3C
 
config S3C_DEV_I2C1 (not select by MACH_SMDK6410) -->./dev-i2c1.c (dev-i2c0.c included)
    bool
    depends on PLAT_S3C
 
config S3C_DMA_PL080 (select by MACH_SMDK6410) -->./dma-pl080.c
    bool
    depends on PLAT_S3C
 
config DYNAMIC_TIMER
    bool "Tickless and HR Timer"
    select GENERIC_TIME -->/drives/clocksource
    select GENERIC_CLOCKEVENTS -->kernel/time/tick-common.c
 
4. source "arch/arm/mach-s3c6410/Kconfig"
 
cpu.c
dma.c
irq.c
 
config CPU_S3C6410
    bool
    select CPU_S3C6400_INIT -->arch/arm/plat-s3c64xx/s3c6400-init.c
    select CPU_S3C6400_CLOCK -->arch/arm/plat-s3c64xx/s3c6400-clock.c
 
config S3C6410_SETUP_SDHCI (select by MACH_SMDK6410) -->./setup-sdhci.c
    bool
 
config MACH_SMDK6410
    bool "SMDK6410"
    select CPU_S3C6410
    select S3C_DEV_HSMMC
    select S3C_DEV_HSMMC1
    select S3C_DEV_HSMMC2
#   select S3C_DEV_I2C1
    select S3C6410_SETUP_SDHCI
#   select S3C64XX_SETUP_I2C1
    select S3C_DMA_PL080
 
config SMDK6410_SD_CH0 ->arch/arm/mach-s3c6410/mach-smdk6410.c:548
    bool "Use channel 0"
    depends on MACH_SMDK6410
 
config SMDK6410_SD_CH1 ->arch/arm/mach-s3c6410/mach-smdk6410.c:551
    bool "Use channel 0"
    depends on MACH_SMDK6410
 
5. source arch/arm/mm/Kconfig
 
6. source "arch/arm/common/Kconfig"
 
7. source "drivers/pci/Kconfig"
 
8. source "drivers/pcmcia/Kconfig"
 
9. source "kernel/time/Kconfig"
 
10. source "mm/Kconfig"
 
11. source "drivers/cpufreq/Kconfig"
 
12. source "drivers/cpuidle/Kconfig"
 
13. source "fs/Kconfig.binfmt"
 
14. source "kernel/power/Kconfig"
 
15. source "net/Kconfig"
 
16. source "drivers/base/Kconfig"
 
17. source "drivers/connector/Kconfig"
 
18. source "drivers/mtd/Kconfig"
 
source "drivers/parport/Kconfig"
 
source "drivers/pnp/Kconfig"
 
source "drivers/block/Kconfig"
 
source "drivers/misc/Kconfig"
 
source "drivers/ide/Kconfig"
 
source "drivers/scsi/Kconfig"
 
source "drivers/ata/Kconfig"
 
source "drivers/md/Kconfig"
 
source "drivers/message/fusion/Kconfig"
 
source "drivers/ieee1394/Kconfig"
 
source "drivers/message/i2o/Kconfig"
 
source "drivers/net/Kconfig"
 
source "drivers/isdn/Kconfig"
 
source "drivers/input/Kconfig"
 
source "drivers/char/Kconfig"
 
source "drivers/i2c/Kconfig"
 
source "drivers/spi/Kconfig"
 
source "drivers/gpio/Kconfig"
 
source "drivers/w1/Kconfig"
 
source "drivers/power/Kconfig"
 
source "drivers/hwmon/Kconfig"
 
source "drivers/thermal/Kconfig"
 
source "drivers/watchdog/Kconfig"
 
source "drivers/ssb/Kconfig"
 
#source "drivers/l3/Kconfig"
 
source "drivers/mfd/Kconfig"
 
source "drivers/media/Kconfig"
 
source "drivers/video/Kconfig"
 
source "sound/Kconfig"
 
source "drivers/hid/Kconfig"
 
source "drivers/usb/Kconfig"
 
source "drivers/uwb/Kconfig"
 
source "drivers/mmc/Kconfig"
 
source "drivers/memstick/Kconfig"
 
source "drivers/accessibility/Kconfig"
 
source "drivers/leds/Kconfig"
 
source "drivers/switch/Kconfig"
 
source "drivers/rtc/Kconfig"
 
source "drivers/dma/Kconfig"
 
source "drivers/dca/Kconfig"
 
source "drivers/auxdisplay/Kconfig"
 
source "drivers/regulator/Kconfig"
 
source "drivers/uio/Kconfig"
 
source "fs/Kconfig"
 
source "arch/arm/Kconfig.debug"
 
source "security/Kconfig"
 
source "crypto/Kconfig"
 
source "lib/Kconfig"
 

Posted by jc 2011年7月19日 05:45