手机版
你好,游客 登录 注册
背景:
阅读新闻

移植Linux到龙芯3210笔记

[日期:2011-04-20] 来源:Linux社区  作者:lqx4_3 [字体: ]

有了前面的配置,也就是说,得到了三个宏:

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

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款