jz2440: linux/arch/arm/下面的plat-和mach-

Posted oucaijun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jz2440: linux/arch/arm/下面的plat-和mach-相关的知识,希望对你有一定的参考价值。

jz2440: linux/arch/arm/下面的plat和mach

plat-s3c24xx
mach-s3c2440
mach-s3c2410

======================


    
1. 三星这样分层的理由是s3c系列的soc具有一定的共通性, plat-实现了一些较通用的封装, 这些封装的具体参数一般是宏, 这些宏如寄存器地址可能是在mach-里面被定义;

    linux/arch/arm/plat-s3c24xx/common-smdk.c

        static struct s3c24xx_led_platdata smdk_pdata_led5 = {
            .gpio        = S3C2410_GPF5,
            .flags        = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
            .name        = "led5",
            .def_trigger    = "nand-disk",
        };

    linux/include/asm-arm/arch-s3c2410/regs-gpio.h
        #define S3C2410_GPF5        S3C2410_GPIONO(S3C2410_GPIO_BANKF, 5)

        
        
2. 原则上是把所有s3c系列共同的东西放在    plat-里面去, 具体的io或者比较有mach-特色的部分放到mach-里面;
    改板时, 实际上大多是直接在mach-里面增删自己的功能. (不按三星预设方案的改动除外)
    plat里面需要动的相对更少, 不过在linux/arch/arm/plat-s3c24xx/common-smdk.c里面, 我们可以根据实际情形来分配nand的分区(修改static struct mtd_partition smdk_default_nand_part[] );

3. 编译时,一般只会选中一个特定的mach-, mach-会调用plat-的功能具体实现平台的资源和设备初始化.



上面是大体的分析, 仅供参考.

以上是关于jz2440: linux/arch/arm/下面的plat-和mach-的主要内容,如果未能解决你的问题,请参考以下文章

JZ2440_V3_内核驱动程序_点亮一个LED灯

S3C2440-裸机篇-01 | JZ2440开发板快速上手

移植 JZ2440 开发板

Jz2440开发板熟悉

最近研究ARM嵌入式,想问问精智的JZ2440和mini2440这两块开发板的区别在哪里!

jz2440 nandflash