移植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里定义。

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

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