Linux 3.3.5系統移植
-
將arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp爲mach-my6410.c;
-
打開arch/arm/mach-s3c6410/下的Kconfig,仿照MACH_SMDK6410做一個菜單項:
config MACH_MY6410
bool "MY6410"
select CPU_S3C6410
select SAMSUNG_DEV_ADC
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_I2C1
select SAMSUNG_DEV_IDE
select S3C_DEV_FB
select S3C_DEV_RTC
select SAMSUNG_DEV_TS
select S3C_DEV_USB_HOST
select S3C_DEV_USB_HSOTG
select S3C_DEV_WDT
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_KEYPAD
select SAMSUNG_DEV_PWM
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select S3C64XX_SETUP_SDHCI
select S3C64XX_SETUP_I2C1
select S3C64XX_SETUP_IDE
select S3C64XX_SETUP_FB_24BPP
select S3C64XX_SETUP_KEYPAD
help
Machine support for the Pillar MY6410
-
打開arch/arm/tools/mach-types文件,這裏面存的是機器ID必須要和uboot裏面的ID保持一致,將其283行復制添加在後面並修改爲:
xx6410 MACH_XX6410 XX6410 1626 這個機器ID和UBOOT裏的機器ID相同時才能啓動內核;
-
修改BSP文件mach-my6410.c,內容如下:
將mach-mach-my6410.c文件中的所有smdk6410改成my6410(不要改大寫SMDK6410的)
MACHINE_START(MY6410, "MY6410")//這個要和Kconfig裏的MACH-MY6410匹配
- 在當前目錄的Makefile最後一行加上 obj-$(CONFIG_MACH_MY6410) += mach-my6410.o
-
修改頂層的Makefile:
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
- 複製arch/arm/configs/下的s3c6400-defconfig文件,然後將其保存爲.config,配置內核支持EABI,再選中XX6410 board這一項,保存退出;
-
執行make menuconfig對內核進行配置:
執行make編譯
執行make zImage生成zImage
將uboot根目錄下的mkimage拷貝到/user/bin目錄下
執行make uImage生成uImage
這裏需要注意,每一次修改Kconfig文件都需要make menuconfig對內核進行配置。