我也按照移植资料(mini2440 linux移植开发实战指南)
3.7.2(修改分区表信息)移植2.6.32.2,却没有成功过
修改arch/arm/mach-s3c2440/mini2440.c增加如下:
static struct mtd_partition mini2440_default_nand_part[] = {
[0] = {
.name = "supervivi",
.size = 0x00040000,
.offset = 0,
},
[1] = {
.name = "param",
.offset = 0x00040000,
.size = 0x00020000,
},
[2] = {
.name = "Kernel",
.offset = 0x00060000,
.size = 0x00500000,
},
[3] = {
.name = "root",
.offset = 0x00560000,
.size = 1024*1024*1024,
},
[4] = {
.name = "nand",
.offset = 0x00000000,
.size = 1024*1024*1024,
},
}
static struct s3c2410_nand_set mini2440_nand_sets[] = {
[0] = {
.name = "NAND",
.nr_chips = 1,
.nr_partitions = ARRAY_SIZE(mini2440_default_nand_part),
.partitions = mini2440_default_nand_part,
},
};
/* choose a set of timings which should suit most 512Mbit
* * chips and beyond.
* */
static struct s3c2410_platform_nand mini2440_nand_info = {
.tacls = 20,
.twrph0 = 60,
.twrph1 = 20,
.nr_sets = ARRAY_SIZE(mini2440_nand_sets),
.sets = mini2440_nand_sets,
.ignore_unset_ecc=1,
};
/* devices we initialise */
static struct platform_device __initdata *mini2440_devices[] = {
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_nand,
};
编译以后总是出现下面错误,请各位看看是怎么回事,谢谢了
[root@sky linux-2.6.32.2]# make mini2440_defconfig
#
# configuration written to .config
#
[root@sky linux-2.6.32.2]# make zImage
scripts/kconfig/conf -s arch/arm/Kconfig
CHK include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-arm
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
CC arch/arm/mach-s3c2440/mach-mini2440.o
arch/arm/mach-s3c2440/mach-mini2440.c:187: error: array type has incomplete element type
arch/arm/mach-s3c2440/mach-mini2440.c:188: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:188: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:189: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:189: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:190: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:190: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:191: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:191: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:193: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:193: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:194: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:194: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:195: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:195: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:196: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:196: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:198: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:198: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:199: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:199: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:200: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:200: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:201: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:201: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:203: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:203: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:204: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:204: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:205: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:205: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:206: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:206: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:208: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:208: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:209: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:209: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:210: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:210: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:211: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:211: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:214: error: expected ',' or ';' before 'static'
arch/arm/mach-s3c2440/mach-mini2440.c:226: error: variable 'mini2440_nand_info' has initializer but incomplete type
arch/arm/mach-s3c2440/mach-mini2440.c:227: error: unknown field 'tacls' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:227: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:227: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:228: error: unknown field 'twrph0' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:228: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:228: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:229: error: unknown field 'twrph1' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:229: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:229: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:230: error: unknown field 'nr_sets' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:230: error: 'mini2440_nand_sets' undeclared here (not in a function)
arch/arm/mach-s3c2440/mach-mini2440.c:230: warning: type defaults to 'int' in declaration of 'type name'
arch/arm/mach-s3c2440/mach-mini2440.c:230: warning: type defaults to 'int' in declaration of 'type name'
arch/arm/mach-s3c2440/mach-mini2440.c:230: error: negative width in bit-field '<anonymous>'
arch/arm/mach-s3c2440/mach-mini2440.c:230: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:230: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:231: error: unknown field 'sets' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:231: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:231: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:232: error: unknown field 'ignore_unset_ecc' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:232: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:232: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:237: error: redefinition of 'mini2440_devices'
arch/arm/mach-s3c2440/mach-mini2440.c:152: note: previous definition of 'mini2440_devices' was here
arch/arm/mach-s3c2440/mach-mini2440.c:240: error: expected expression before ',' token
make[1]: *** [arch/arm/mach-s3c2440/mach-mini2440.o] Error 1
make: *** [arch/arm/mach-s3c2440] Error 2
[root@sky linux-2.6.32.2]#