移植Linux到龙芯3210笔记

移植的基本思路是:先编译后调试

首先修改配置文件,如:Makefile 、 Kconfig等。这样就可以进行内核的配置,然后可以编译。

编译完之后,开始从代码上一步步的进行调试。

修改配置文件:

./arch/mips/Kconfig

这个构架相关的配置文件实则上就是主配置文件,作用是在make menuconfig的时候定义好一些宏,这些宏的作用就是为了加入平台相关的代码而作的一些内核配置选择。

首先作一个基本的认识:

menu/endmenu  表示主菜单中菜单选项的开始与结束,也就是说中间部分是在这个菜单选项被打开后显示出来的。

choice/endchoice 表示菜单里的某个子菜单,属于某个子菜单是通过depends on A为指定(假设是A),也就是说这部分内容是依赖于A。

config 表示是一个条目,例如,config A。那么配置完之后,会在auto.config文件中生成一个CONFIG_A的宏。

select  表示使能这个条目,或者说这个条目依赖于这个config。

depends on 表示这个config依赖于这个条目。


1)在menu “”Machine selection”添加:


config SOC32101_BOARDS

bool "Support for SOC CAS SOC3210 1 generic boards"

 select SYS_HAS_CPU_SOC32101

 select DMA_NONCOHERENT

 select BOOT_ELF32

 select BOARD_SCACHE

 select HW_HAS_PCI

 select ISA

 select IRQ_CPU

 select GENERIC_IOMAP

 select SYS_SUPPORTS_32BIT_KERNEL

 select SYS_SUPPORTS_64BIT_KERNEL

 select SYS_SUPPORTS_LITTLE_ENDIAN

 select SYS_SUPPORTS_HIGHMEM

 help

     ICT experimental board, which uses ict fpga north bridge

     and soc32101 CPU.

choice

 prompt "subsystem type"

 depends on SOC32101_BOARDS

 

  config SOC_SOC

       bool "soc32101 gc soc support"

endchoice

2)在menu “CPU selection”中添加

choice

    prompt "CPU type"

     default CPU_SOC32101      #修改默认CPU

    config CPU_SOC32101       #添加CPU

         bool "SOC32101"

            depends on SYS_HAS_CPU_SOC32101

            select CPU_SUPPORTS_32BIT_KERNEL

  ... ...

endchoice

PS:通过上面两步的配置,我们得到了三个宏:CONFIG_SOC32101_BOARDS、CONFIG_SOC_SOC、CONFIG_CPU_SOC32101,它们在./include/config/auto.conf里定义。

相关推荐