移植linux到龙芯3210笔记2

    技术2022-05-19  20

     有了笔记1的配置,也就是说,得到了三个宏:

    CONFIG_SOC32101_BOARDS、 CONFIG_SOC_SOC、 CONFIG_CPU_SOC32101

    那么:

    修改或者增加一些与CPU相关的代码就可以用CONFIG_CPU_SOC32101来判断,例如cache、tlb等。

    修改或者增加一些与板级相关的代码就可以用CONFIG_SOC_SOC或者CONFIG_SOC32101_BOARDS来判断。

      

    修改Makefile

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

     

    --龙芯嵌入式系列开发板更多信息请关注  http://shop107479358.taobao.com 

    --龙芯1B开发板: http://item.taobao.com/item.htm?spm=a1z10.1.w4004-4678790104.8.WBYZuT&id=36562593290

     


    最新回复(0)