移植Linux到龙芯3210笔记(2)

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:以上的修改,主要是加入一些平台相关的代码到内核工程中,这样, 这些平台相关的代码就会被编译。接下来的工作就是把这些平台相关的代码加入到这些目录下。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24314.html