移植3.8内核到210开发板

root@lyl:/home/3.7.4# cp arch/arm/configs/s5pv210_defconfig ./.config
root@lyl:/home/3.7.4# vi Makefile
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
root@lyl:/home/3.7.4# make menuconfig
——————/串口
System Type --->
(0) S3C UART to use for low-level messages
——————/yaffs2
root@lyl:/home/codec# git clone git://www.aleph1.co.uk/yaffs2
root@lyl:/home/codec/yaffs2# ./patch-ker.sh c m /home/3.7.4/
选中:MTD_BLOCK、YAFFS_FS
——————/机器码
root@lyl:/home/3.7.4# vi include/generated/mach-types.h
#define MACH_TYPE_SMDKV210 3466
——————/nand
拷贝s3c_nand.c、s5p_nand_mlc.c、Kconfig、Makefile到drivers/mtd/nand目录下
拷贝regs-nand.h、nand.h到arch\arm\plat-samsung\include\plat目录下
root@lyl:/home/3.7.4# vi arch/arm/mach-s5pv210/clock.c
		.name		= "nand",
		.id		= -1,
		.parent		= &clk_hclk_psys.clk,
		.enable		= s5pv210_clk_ip1_ctrl,
		.ctrlbit	= ((1 << 28) | (1 << 24)),
root@lyl:/home/3.7.4# vi arch/arm/mach-s5pv210/mach-smdkv210.c
static struct resource s3c_nand_resource[] = {
	[0] = {
		.start	= S5PV210_PA_NAND,
		.end	= S5PV210_PA_NAND + S5PV210_SZ_NAND - 1,
		.flags	= IORESOURCE_MEM,
	}
};

struct platform_device s3c_device_nand = {
	.name		= "s5pv210-nand",
	.id			= -1,
	.num_resources	= ARRAY_SIZE(s3c_nand_resource),
	.resource	= s3c_nand_resource,
};

&s3c_device_nand,
root@lyl:/home/3.7.4# vi arch/arm/mach-s5pv210/include/mach/map.h
#define S5PV210_PA_NAND			(0xB0E00000)
#define S5PV210_SZ_NAND			SZ_1M
选中:MTD_NAND_S3C 、MTD_NAND_S3C_HWECC
——————/网卡
root@lyl:/home/3.7.4# vi arch/arm/mach-s5pv210/mach-smdkv210.c
#define S5PV210_PA_DM9000_A             (0x88001000) //lyl
#define S5PV210_PA_DM9000_F             (S5PV210_PA_DM9000_A + 0x300C) //lyl

static struct resource smdkv210_dm9000_resources[] = { //lyl
        [0] = DEFINE_RES_MEM(S5PV210_PA_DM9000_A, SZ_1K*4),
        [1] = DEFINE_RES_MEM(S5PV210_PA_DM9000_F, SZ_1K*4),
        [2] = DEFINE_RES_NAMED(IRQ_EINT(7), 1, NULL, IORESOURCE_IRQ \
                                | IORESOURCE_IRQ_HIGHLEVEL),
};

static struct dm9000_plat_data smdkv210_dm9000_platdata = { //lyl
        .flags          = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM,
        .dev_addr       = { 0x08, 0x90, 0x00, 0xa0, 0x02, 0x10 },
};                                      

static struct platform_device smdkv210_dm9000 = { //lyl
        .name           = "dm9000",
        .id             = -1,
        .num_resources  = ARRAY_SIZE(smdkv210_dm9000_resources),
        .resource       = smdkv210_dm9000_resources,
        .dev            = {
                .platform_data  = &smdkv210_dm9000_platdata,
        },
};

static void __init smdkv210_dm9000_init(void) //lyl
{
        unsigned int tmp;

        gpio_request(S5PV210_MP01(1), "nCS1");
        s3c_gpio_cfgpin(S5PV210_MP01(1), S3C_GPIO_SFN(2));
        gpio_free(S5PV210_MP01(1));

        tmp = (5 << S5P_SROM_BCX__TACC__SHIFT);
        __raw_writel(tmp, S5P_SROM_BC1);

        tmp = __raw_readl(S5P_SROM_BW);
        tmp &= (S5P_SROM_BW__CS_MASK << S5P_SROM_BW__NCS1__SHIFT);
        tmp |= (1 << S5P_SROM_BW__NCS1__SHIFT);
        __raw_writel(tmp, S5P_SROM_BW);
}
选中:DM9000、PACKET、UNIX、INET
——————/I2C
选中:I2C_S3C2410
——————/LCD
拷贝lcd.c到drivers/video目录
root@lyl:/home/3.7.4# vi drivers/video/Makefile
#..........modify by lyl..........................
#obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
#obj-$(CONFIG_FB_CFB_COPYAREA)  += cfbcopyarea.o
#obj-$(CONFIG_FB_CFB_IMAGEBLIT) += cfbimgblt.o
obj-y += cfbfillrect.o
obj-y += cfbcopyarea.o
obj-y += cfbimgblt.o
obj-y += lcd.o
#.................................................
选中FB、FRAMEBUFFER_CONSOLE

以上过程所用文件下载地址:http://download.csdn.net/my/uploads
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值