1、./Makefile(顶级makefile)
我们修改这个Makefile的原因是通过它来选择我们的CPU构架,指定我们的编译工具
首先修改两个宏,SUBARCH是选定CPU构架的,CROSS_COMPILE选定交叉工具链:
修改宏SUBARCH = mips
修改宏CROSS_COMPILE ?= mipsel-linux-
2、./arch/mips/Makefile(CPU构架相关makefile)
我们修改这个Makefile的原因是加入与我们平台相关的代码到内核源码中,并作一些平台相关的修改。
主要的修改任务:
1)、加入3210的平台相关代码到内核工程中
2)、指定链接的起始地址
3)、指定编译器的编译选项
所以添加:
core-$(CONFIG_SOC_SOC) += arch/mips/mips-boards/soc32101- boards/soc-soc/
load-$(CONFIG_SOC_SOC) += 0xffffffff80200000
cflags-$(CONFIG_SOC_SOC) += -Iinclude/asm-mips/mach-longmeng
cflags-$(CONFIG_CPU_SOC32101) += -march=r4600 -Wa,--trap
3、./arch/mips/kernel/Makefile(内核相关makefile)
这个修改主要是针对CPU的,关于CPU方面的FPU操作和上下文切换操作等。
添加:
obj-$(CONFIG_CPU_SOC32101) += r4k_fpu.o r4k_switch.o
4、arch/mips/mm/Makefile(MM相关的,即内存管理)
这部分要加入的模块了是针对CPU的,主要是加入CPU在内存管理方面的操作,主要是Cache和TLB。
添加:
obj-$(CONFIG_CPU_SOC32101) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o
这部分内容是根据实际情况进行修改,因为龙芯3210在cache和tlb的操作上都有自己特定的指令,所以这部分代码需要修改。
5、arch/mips/lib-32/Makefile(TLB相关的)
添加:
obj-$(CONFIG_CPU_SOC32101) += dump_tlb.o
6、arch/mips/pci/Makefile (PCI相关的)
添加:
obj-$(CONFIG_SOC_SOC) += fixup-soc-soc.o ops-soc-soc.o
可见fixup-soc-soc.c 和 ops-soc-soc.c文件将要加入到这个目录下进行编译
PS:以上的修改,主要是加入一些平台相关的代码到内核工程中,这样, 这些平台相关的代码就会被编译。接下来的工作就是把这些平台相关的代码加入到这些目录下。