ztguang 发表于 2009-4-4 22:25:52

请教s3c2440的skyeye.conf文件

linux2.6.29.1 的在s3c2440板子上的移植过程如下:
1. 解压源代码
# tar -xjvf linux-2.6.29.1.tar.bz2
# cd linux-2.6.29.1
#

2. 更改Makefile
# gedit Makefile
修改 ARCH 和 CROSS_COMPILE
ARCH                ?= arm
CROSS_COMPILE        ?= arm-linux-

3. 生成默认配置
# make s3c2410_defconfig

4. 支持启动时挂载devfs
# gedit fs/Kconfig
找到menu "Pseudo filesystems"
添加如下语句:
-----------------------------------------------------------------------------------
找到menu "Pseudo filesystems"
添加如下语句:
config DEVFS_FS
        bool "/dev file system support (OBSOLETE)"
        depends on EXPERIMENTAL
        help
          This is support for devfs, a virtual file system (like /proc) which
          provides the file system interface to device drivers, normally found
          in /dev. Devfs does not depend on major and minor number
          allocations. Device drivers register entries in /dev which then
          appear automatically, which means that the system administrator does
          not have to create character and block special device files in the
          /dev directory using the mknod command (or MAKEDEV script) anymore.

          This is work in progress. If you want to use this, you *must* read
          the material in , especially
          the file README there.

          Note that devfs no longer manages /dev/pts! If you are using UNIX98
          ptys, you will also need to mount the /dev/pts filesystem (devpts).

          Note that devfs has been obsoleted by udev,
          <http://www.kernel.org/pub/linux/utils/kernel/hotplug/>.
          It has been stripped down to a bare minimum and is only provided for
          legacy installations that use its naming scheme which is
          unfortunately different from the names normal Linux installations
          use.

          If unsure, say N.

config DEVFS_MOUNT
        bool "Automatically mount at boot"
        depends on DEVFS_FS
        help
          This option appears if you have CONFIG_DEVFS_FS enabled. Setting
          this to 'Y' will make the kernel automatically mount devfs onto /dev
          when the system is booted, before the init thread is started.
          You can override this with the "devfs=nomount" boot option.

          If unsure, say N.

config DEVFS_DEBUG
        bool "Debug devfs"
        depends on DEVFS_FS
        help
          If you say Y here, then the /dev file system code will generate
          debugging messages. See the file
          for more details.

          If unsure, say N.

5. 修改晶振
# gedit arch/arm/mach-s3c2440/mach-smdk2440.c

        s3c24xx_init_clocks(16934400);
改为
//        s3c24xx_init_clocks(16934400);
        s3c24xx_init_clocks(12000000);

6. 修改MTD分区
修改common-smdk.c文件
# gedit arch/arm/plat-s3c24xx/common-smdk.c
static struct mtd_partition smdk_default_nand_part[] = {
        = {
                .name        = "u-boot",
                .size        = SZ_64K*3,
                .offset        = 0,
        },
        = {
                .name        = "kernel",
                .offset        = SZ_64K*3,
                .size        = SZ_64K*29,
        },
        = {
                .name        = "rootfs",
                .offset        = SZ_2M,
                .size        = SZ_1M*30,
        },
        = {
                .name        = "app",
                .offset        = SZ_32M,
                .size        = SZ_32M,
        }
};

7. 关闭ECC校验
# gedit drivers/mtd/nand/s3c2410.c
在s3c2410_nand_init_chip函数中

                chip->ecc.mode          = NAND_ECC_SOFT;
改为
                chip->ecc.mode          = NAND_ECC_NONE;

8. 配置内核
# make menuconfig
修改启动参数为:
|---Boot options
|    |---Default kernel command string:


增加devfs文件系统支持
|---File systems
|    |---Pseudo filesystems
|    |      |---/dev file system support
|    |      |      |---Automatically mount at boot
|    |      |      |---Debug devfs

9. 编译内核
# make zImage

+++++++++++++++++++++++++++++++

s3c2440的skyeye2440.conf文件是ksh给的(http://www.linuxfans.org/bbs/thread-187665-1-1.html)
#skyeye config file sample

cpu:arm920t
mach: s3c2440

#physical memory
#mem_bank: map=M, type=RW, addr=0x20000000, size=0x01000000
mem_bank: map=M, type=RW, addr=0x30000000, size=0x00800000
mem_bank: map=M, type=RW, addr=0x30800000, size=0x00800000
mem_bank: map=M, type=RW, addr=0x31000000, size=0x01000000
#all peripherals I/O mapping area
#mem_bank: map=I, type=RW, addr=0xfefa0000, size=0x00060000
mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
#net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
lcd:type=s3c2440,mod=gtk
load_addr:base=0x30000000, mask=0xFFFFFF
#dbct:state=on

++++++++++++++++++
(是 skyeye-1.2.7_rc1)
# skyeye -e zImage -c skyeye2440.conf
Your elf file is little endian.
arch: arm
cpu info: armv4, arm920t, 41009200, ff00fff0, 2
mach info: name s3c2440, mach_init addr 0x805d860
lcd_mod:1
Your elf file will be load to: base address=0x30000000,mask=0xffffff
uart_mod:0, desc_in:, desc_out:, converter:
SKYEYE: use arm920t mmu ops
elf_checkFile failed: -1
load "zImage" error
#

总觉得skyeye-1.2.7_rc1对s3c2440的支持有问题,我的 u-boot-2009.03(S3C2440)的移植也没有成功,相关信息见http://www.linuxfans.org/bbs/thread-188282-1-1.html

还请 ksh 多多指教
页: [1]
查看完整版本: 请教s3c2440的skyeye.conf文件