首先给出定义:Uboot是针对某个具体某个开发板板子的,因此它的对应平台资源在/board文件夹下还有一个对应的配置头文件在include/config文件夹下,移植的时候主要是移植这两个文件(可能还需要修改某些其余的配置文件,但是都是为了对应这两个文件)一般是找与开发板相似的板子的默认配置(即uboot源码里面给出的deconfig)复制一份再修改。
Linux内核则只需要移植一个平台文件(一般叫做mach-xxx.c,这个平台文件主要描述了开发板上面的硬件资源,即“设备”。针对的是非设备树版本,在设备树版本里面,这个平台文件由设备树代替)。
Uboot配置指向:
1、配置Uboot一般使用make xxx_config,此时,查看顶层文件夹下面的Makefile文件,找到这个对应的xxx_config,这个文件下面就会指向上文的那个board/文件夹下面的对应板级文件夹,同时利用include/config对应的头文件进行配置修改。这是4412开发板的配置,
2、新版本Uboot可能使用make xxx_deconfig,这个xxx_deconfig会指向对应的板级文件夹
这是正点原子开发板的配置
3、如果需要纯人工配置的,可能支持menuconfig,这个时候需要通过ARM architecture,指向到自己构建的板级文件夹。当然更巧妙的办法是先复制某个类似的开发板配置xxx_config成.config,然后再进行图形化配置。
Linux配置指向:
Linux配置不像Uboot配置那么具体,因为针对某一CPU资源也就固定,前人肯定使用过,肯定可以找类似的CPU文件。Linux配置分为make xxx_deconfig和make menuconfig 两种,一种采用默认配置,一种需要使用图形化配置。其实默认配置也可以看做是图形化配置的一种,通过配置System Type下的选项。一般也是采用某种相似默认配置(这个默认配置开发板公司一般都会给的,会指到CPU)进行修改比较合适。这个配置是一定会指向自己移植的mach-xxx.c文件的。
***PS:***上述的配置都没有加入对应的驱动文件,事实上一般都是移植一个最基础的内核,然后再往里面加入需要的外设驱动文件。
添加自己的文件之后,LInux里面一定需要记得修改当前目录下面的Makefile和Kconfig指向自己的文件,这样才能将自己的文件加入到Linux内核里面。



