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
——————/网卡
root@lyl:/home/3.7.4# vi arch/arm/mach-s5pv210/mach-smdkv210.c
——————/I2C
选中:I2C_S3C2410
——————/LCD
拷贝lcd.c到drivers/video目录
root@lyl:/home/3.7.4# vi drivers/video/Makefile
以上过程所用文件下载地址:http://download.csdn.net/my/uploads
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