主题 : Tiny210v2( S5PV210 )平台下: 利用uboot启动远程Kernel(TFTP)以及挂载远程ROOTFS(NFS) 复制链接 | 浏览器收藏 | 打印
级别: 骑士
UID: 5844
精华: 9
发帖: 64
金钱: 770 两
威望: 154 点
贡献值: 9 点
综合积分: 308 分
注册时间: 2009-05-11
最后登录: 2019-05-14
楼主  发表于: 2013-01-23 22:22

 Tiny210v2( S5PV210 )平台下: 利用uboot启动远程Kernel(TFTP)以及挂载远程ROOTFS(NFS)

管理提醒: 本帖被 xoom 执行加亮操作(2013-01-24)
0. 准备工作
1. 编译uboot
2. 将uboot写入SD卡
3. 编译kernel,设置其可以通过NFS挂载根文件系统
4. 开发环境安装TFTP服务器
5. 开发环境安装NFS服务器
6. 目标环境设置uboot参数
7. 制作根文件系统(optional)。
8. 完整的启动LOG。


    有几位网友发信问我uboot挂载文件系统的方法,其实这个部分也不是我原创的,大部分都是参考其他网友的方法,现在将我的手顺记录下来,希望对大家有所帮助。

    整体思路大概是这样:
    * 将uboot烧写到SD卡。
    * 从SD卡启动系统,SD卡中的uboot通过TFTP协议将远程的的Kernel下载到内存中。
    * uboot将内核参数设定为ROOT分区为远程的NFS-SERVER共享的一个目录,并JUMP到内核的START ADDRESS。
    * kernel自解压,并JUMP 到解压后的新的内核START ADDRESS,内核正常启动。
    * 最后通过内核通过uboot设置的ROOTFS参数得知根文件系统在远程,并通过NFS挂载ROOTFS。
    * 根文件系统挂载完了以后,就会去执行init程序, init程序被uboot指定为 /linuxrc。

    我的开发环境是 ubunto 12.04LTS。
    目标系统的内核是 3.0.8 ,源代码位于 /opt/S5PV210/rootfs/usr/src/linux-3.0.8。
    uboot的源代码位于 /opt/S5PV210/rootfs/usr/src/opencsbc-u-boot。
    目标环境的根文件系统位于 /opt/S5PV210/rootfs。
    交叉编译器位于 /opt/linaro-gcc473-eglibc216-armv7a-neon。


0. 准备工作

    编译uboot和linux内核都需要使用到交叉编译器,所以需要确保shell 的PATH 环境中包含了你的交叉编译器的路径。
    比如我的PATH为:(通过export查看)

    declare -x PATH="/usr/lib/lightdm/lightdm:/opt/linaro-gcc473-eglibc216-armv7a-neon/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
    这样,就可以直接查找到 arm-linux-gcc 这条命令了,不许要输入 arm-linux-gcc 的绝对路径。

1. 编译uboot

    uboot来自于kasim修改的uboot,原帖在http://www.aiothome.net/read.php?tid-16001.html。
    可以通过 https://gitorious.org/opencsbc/u-boot/trees/mini210_linaro-2012.11-stable 右边的 download mini210_linaro-2012.11-stable as tar.gz 这个按钮获取到打包的源代码。

    将源代码下载下来以后,解压到某一个目录,我机器上是位于 /opt/S5PV210/rootfs/usr/src/opencsbc-u-boot 这个目录。进入到这个目录。
    首先配置uboot是针对 tiny210 环境的。 tiny210v2 也是使用的这个配置项:

复制代码
  1.         make ARCH=arm CROSS_COMPILE=arm-linux- tiny210_config

    然后才是真正的编译uboot:
复制代码
  1.         make ARCH=arm CROSS_COMPILE=arm-linux- all spl

    编译完成以后,就可以看到uboot的二进制文件 spl/tiny210-spl.bin 和 uboot.bin。

    另外还有一个用于制作 uImage 的工具 tool/mkimage。为了方便,把这个文件拷贝到 /usr/bin:

复制代码
  1.         sudo cp tool/mkimage  /usr/bin/


2. 将uboot写入SD卡

    注意,这部需要特别留心,别因为误写入,把你的硬盘给弄坏了。
    注意,SD卡的内容最好备份好。

    将SD卡放到读卡器里面,并将SD卡读卡器接入开发环境,在我的环境中, SD卡会被识别为 /dev/sdc。

    通过下面的命令将uboot写入SD卡,保证这个SD卡可以启动。

复制代码
  1.     sudo dd iflag=dsync oflag=dsync if=spl/tiny210-spl.bin of=/dev/sdc seek=1
  2.     sudo dd iflag=dsync oflag=dsync if=u-boot.bin of=/dev/sdc seek=49


    如果怕写入不同步,可以再执行一下  sync 这个命令,保证cache都写入到磁盘中。
    到此为止,就可以通过SD卡启动uboot了。


3. 编译kernel,设置其可以通过NFS挂载根文件系统

    光盘中带的内核,默认不支持从NFS挂载ROOTFS。需要重新配置并编译内核。
    在/opt/S5PV210/rootfs/usr/src/linux-3.0.8目录下,通过 make menuconfig 启动ncurses图形配置界面。
    下面几个个内核配置项,必须选中。

复制代码
  1.     * Networking support -> Networking options ->IP:kernel level autoconfiguration

        注意,这个选项下面的 IP:DHCP support / IP:BOOTP support / IP:RARP aupport 不能选。
        因为我的开发环境中没有安装 DHCP server。开发板的 IP 是在内核启动参数中指定的。


复制代码
  1.     * File systems -> Network File System -> NFS client support
  2.     * File systems -> Network File System -> NFS client support for NFS version 3 或者 4
  3.     * File systems -> Network File System -> Root file system on NFS

    
    将退出配置,并保存。
    执行下面的命令生成 uImage 内核镜像文件,这个过程其实是先生成了 zImage ,然后调用了刚才uboot的那个 mkimage 生成 uImage。

复制代码
  1.         make uImage


    下面的LOG表明 uImage 生成了,位于 arch/arm/boot/uImage。
复制代码
  1.       CHK     include/linux/version.h
  2.       CHK     include/generated/utsrelease.h
  3.     make[1]: `include/generated/mach-types.h' is up to date.
  4.       CALL    scripts/checksyscalls.sh
  5.       CHK     include/generated/compile.h
  6.       Kernel: arch/arm/boot/Image is ready
  7.       SHIPPED arch/arm/boot/compressed/lib1funcs.S
  8.       AS      arch/arm/boot/compressed/lib1funcs.o
  9.       LD      arch/arm/boot/compressed/vmlinux
  10.       OBJCOPY arch/arm/boot/zImage
  11.       Kernel: arch/arm/boot/zImage is ready
  12.       UIMAGE  arch/arm/boot/uImage
  13.     Image Name:   Linux-3.0.8-TINY210V2+
  14.     Created:      Wed Jan 23 21:10:56 2013
  15.     Image Type:   ARM Linux Kernel Image (uncompressed)
  16.     Data Size:    3555872 Bytes = 3472.53 kB = 3.39 MB
  17.     Load Address: 20008000
  18.     Entry Point:  20008000
  19.       Image arch/arm/boot/uImage is ready

    编译内核的时候,如果你使用的是 4.6以后的 gcc,需要在Makefile中添加 -mno-unaligned-access 给 KBUILD_CFLAGS 防止内核解压完以后启动不了。
复制代码
  1.          367 KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
  2.          368            -fno-strict-aliasing -fno-common \
  3.          369            -Werror-implicit-function-declaration \
  4.          370            -Wno-format-security \
  5.          371            -fno-delete-null-pointer-checks \
  6.          372            -mno-unaligned-access


    如果你生成的内核有问题,可以试一试我的内核配置文件 my_config。

4. 开发环境安装TFTP服务器

    接下来,就是要在开发环境上安装 TFTP 服务器,使开发板可以通过TFTP协议下载 uImage 这个文件。
    在 ubuntu 下,可以通过下面的命令安装 TFTP 服务器,这个服务是通过 inet 监听的。

复制代码
  1.         sudo apt-get install atftpd openbsd-inetd


    安装完以后,需要配置一下 TFTP 的默认查找目录,我将其设定为 /srv/tftp:
    确认 /etc/inetd.conf 文件中有如下一行:

复制代码
  1.         #:BOOT: TFTP service is provided primarily for booting.  Most sites
  2.         #       run this only on machines acting as "boot servers."
  3.         tftp        dgram   udp wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /srv/tftp


    因为 TFTP 服务主要是给 uboot 提供内核镜像文件,为了避免每次内核编译完以后都拷贝到 /srv/tftp 目录中,
    我在 /srv/tftp 目录中,建立了一个 符号文件,指向 /opt/S5PV210/rootfs/usr/src/linux-3.0.8/arch/arm/boot/uImage。

复制代码
  1.         ln -s /opt/S5PV210/rootfs/usr/src/linux-3.0.8/arch/arm/boot/uImage  /srv/tftp/uImage


    可以通过下面的命令重启 inetd ,保证这个 supper服务器能够监听 TFTP 端口:
复制代码
  1.         sudo service  openbsd-inetd restart


    可以通过 查看端口确认 inetd 是否真的在监听 TFTP 端口:
复制代码
  1.         zoulz@Seagate:/tmp$ netstat  -a | grep tftp
  2.         udp        0      0 *:tftp                  *:*  


    可以通过下面的命令测试一下 TFTP 服务是否正常工作:
复制代码
  1.         zoulz@Seagate:/tmp$ tftp localhost
  2.         tftp> get uImage
  3.         Received 3578106 bytes in 0.3 seconds


5. 开发环境安装NFS服务器

    接下来是配置 NFS 服务器,用于开发板上内核启动以后挂载开发环境的ROOTFS。

    通过下面的命令安装 nfs 服务器:

复制代码
  1.         sudo apt-get  install nfs-kernel-server


    安装完成以后,还需要修改 /etc/exports 文件,设置 NFS 共享的文件目录。我们需要将 /opt/S5PV210/rootfs 设置为NFS共享目录。
复制代码
  1.         # Example for NFSv2 and NFSv3:
  2.         # /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
  3.         #
  4.         # Example for NFSv4:
  5.         # /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
  6.         # /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
  7.         #
  8.         /opt/S5PV210/rootfs *(rw,sync,no_subtree_check,no_root_squash)


    每一次修改 /etc/exports 这个文件,都需要重新启动 NFS 服务器:
复制代码
  1.          sudo service nfs-kernel-server restart


    可以通过下面的命令测试 NFS 服务器是否设置正确:
复制代码
  1.         zoulz@Seagate:/tmp$ rm a b
  2.         zoulz@Seagate:/tmp$ mkdir /tmp/a
  3.         zoulz@Seagate:/tmp$ sudo mount -t nfs -o nolock localhost:/opt/S5PV210/rootfs /tmp/a
  4.         zoulz@Seagate:/tmp$ ls /tmp/a
  5.         bin  dev  etc  home  lib  linuxrc  proc  root  run  sbin  sys  tmp  usr  var
  6.         zoulz@Seagate:/tmp$ ls /opt/S5PV210/rootfs
  7.         bin  dev  etc  home  lib  linuxrc  proc  root  run  sbin  sys  tmp  usr  var


    也可以通过 df 命令查看挂载情况:
复制代码
  1.         zoulz@Seagate:/tmp$ df
  2.         Filesystem                    1K-blocks     Used Available Use% Mounted on
  3.         localhost:/opt/S5PV210/rootfs 125439744 36394112  89045632  30% /tmp/a


6. 目标环境设置uboot参数

    注意: ubuntu 的 network manager, 如果开发板和开发环境的PC直连的话, 每次开发板哪掉电,开发环境PC会检测为网络未链接,
        nm 就会将已经设置好的网卡 down 掉。这在开发板reset的时候特别讨厌,你得每次都重新去设置PC的IP地址。


    因此我将桌面右上角的network manager的 Enable Networking 设置为 不选中,禁止 network manager 去管理网络。
    然后在终端里通过下面的命令,将网卡设置为 192.168.1.5,这样每次开发板reset就不用再设置开发环境PC的IP了。

复制代码
  1.         sudo ifconfig eth0 192.168.1.5


    当然,如果你的开发板和开发环境PC都是链接到路由器或者HUB,就没有这个烦恼。

    现在所有的东西都准备好了。将SD卡插入开发板,并调整switch,设置从SD卡启动系统。

    正常情况下,就应该能够看到 uboot 的界面了( FriendlyLEG-TINY210 )了:
    在 uboot 的shell中,通过 setenv 命令设置相关参数。

复制代码
  1.         setenv baudrate 115200
  2.         setenv stderr serial
  3.         setenv stdin  serial
  4.         setenv stdout serial
  5.         setenv bootdelay 3
  6.         setenv ethact dm9000
  7.         setenv ethaddr 00:40:5c:26:0a:5b
  8.         setenv gatewayip 192.168.1.1
  9.         setenv ipaddr 192.168.1.80
  10.         setenv netmask 255.255.255.0
  11.         setenv serverip 192.168.1.5
  12.         setenv bootargs root=/dev/nfs rw nfsroot=$serverip:/opt/S5PV210/rootfs,nolock,tcp ip=$ipaddr console=ttySAC0,115200 ctp=1 kgdboc=ttySAC0,115200
  13.         setenv bootcmd "tftp 21000000 uImage;bootm 21000000"


    bootcmd参数中的 tftp 21000000 用于: 通过 TFTP 命令,将 192.168.1.5 的 /srv/tftp/uImage 下载到 0x21000000 这个位置。
    bootcmd参数中的 bootm 21000000 用于: uboot将CPU执行权地交给 0x21000000 这个位置的内核镜像,也就是启动内核。
    bootargs参数用于设置内核的启动参数,其中 root=/dev/fs rw nfsroot=$serverip:/opt/S5PV210/rootfs,nolock,tcp 告诉内核通过NFS启动,
        根文件系统位于 192.168.1.5:/opt/S5PV210/rootfs
        NFS 的参数为 nolock,tcp ,用于防止 udp 不稳定导致 NFS 读取NG 的情况。
        ip=$ipaddr 设置开发板自身的ip地址为 192.168.1.80 。

    通过 saveenv 将上面的参数写入到 SD卡中,这样就不用每次reset都输入一遍uboot的参数了。

    通过 boot 命令,将CPU 执行权专递给 Kernel。


7. 制作根文件系统(optional)。
    待续,busybox + toolchain。

8. 完整的启动LOG。

复制代码
  1. root@Seagate:/tmp# minicom  /dev/ttyS0
  2. Welcome to minicom 2.5
  3. OPTIONS: I18n
  4. Compiled on May  2 2011, 00:39:27.
  5. Port /dev/ttyS0
  6. Press CTRL-A Z for help on special keys                                                                        
  7.                                                                                                               
  8. OKOK                                                                                                        
  9.                                                                                                               
  10. U-Boot 2013.01-rc2 (Jan 07 2013 - 10:18:16) for FriendlyLEG-TINY210                                            
  11. CPU:    S5PC110@1000MHz
  12. Board:   FriendlyLEG-TINY210
  13. DRAM:  512 MiB
  14. WARNING: Caches not enabled
  15. PWM Moudle Initialized.
  16. GPD0CON  : 1111, GPD0DAT  : e
  17. NAND:  2048 MiB
  18. MMC:   SAMSUNG SD/MMC: 0, SAMSUNG SD/MMC: 1
  19. In:    serial
  20. Out:   serial
  21. Err:   serial
  22. Net:   dm9000
  23. Hit any key to stop autoboot:  0
  24. dm9000 i/o: 0x88001000, id: 0x90000a46
  25. DM9000: running in 16 bit mode
  26. MAC: 00:40:5c:26:0a:5b
  27. operating at 100M full duplex mode
  28. Using dm9000 device
  29. TFTP from server 192.168.1.5; our IP address is 192.168.1.80
  30. Filename 'uImage'.
  31. Load address: 0x21000000
  32. Loading: #################################################################
  33.          #################################################################
  34.          #################################################################
  35.          #################################################################
  36.          #################################################################
  37.          #################################################################
  38.          #################################################################
  39.          #################################################################
  40.          #################################################################
  41.          #################################################################
  42.          #############################################
  43. done
  44. Bytes transferred = 3555936 (364260 hex)
  45. ## Booting kernel from Legacy Image at 21000000 ...
  46.    Image Name:   Linux-3.0.8-TINY210V2+
  47.    Image Type:   ARM Linux Kernel Image (uncompressed)
  48.    Data Size:    3555872 Bytes = 3.4 MiB
  49.    Load Address: 20008000
  50.    Entry Point:  20008000
  51.    Verifying Checksum ... OK
  52.    Loading Kernel Image ... OK
  53. OK
  54. Starting kernel ...
  55. Uncompressing Linux... done, booting the kernel.
  56. [    0.000000] Initializing cgroup subsys cpu
  57. [    0.000000] Linux version 3.0.8-TINY210V2+ (zoulz@Seagate) (gcc version 4.7.3 20121205 (prerelease) (crosstool-NG hg+unknown-20130103.094521 - S5PV210) ) #5 PREEMPT Wed Jan 23 10:04:06 CST 2013
  58. [    0.000000] CPU: ARMv7 Processor [412fc082] revision 2 (ARMv7), cr=10c53c7f
  59. [    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
  60. [    0.000000] Machine: MINI210
  61. [    0.000000] Memory policy: ECC disabled, Data cache writeback
  62. [    0.000000] CPU S5PV210/S5PC110 (id 0x43110220)
  63. [    0.000000] s5pv210_init_clocks: initializing clocks
  64. [    0.000000] S3C24XX Clocks, Copyright 2004 Simtec Electronics
  65. [    0.000000] s5pv210_setup_clocks: registering clocks
  66. [    0.000000] s5pv210_setup_clocks: clkdiv0 = 14131440, clkdiv1 = 00000400
  67. [    0.000000] s5pv210_setup_clocks: xtal is 24000000
  68. [    0.000000] S5PV210: PLL settings, A=1000000000, M=667000000, E=80000000 V=54000000
  69. [    0.000000] S5PV210: ARMCLK=1000000000, HCLKM=200000000, HCLKD=166750000
  70. [    0.000000] HCLKP=133400000, PCLKM=100000000, PCLKD=83375000, PCLKP=66700000
  71. [    0.000000] sclk_dmc: source is sclk_a2m (0), rate is 200000000
  72. [    0.000000] sclk_onenand: source is hclk_dsys (1), rate is 166750000
  73. [    0.000000] uclk1: source is mout_mpll (6), rate is 66700000
  74. [    0.000000] uclk1: source is mout_mpll (6), rate is 66700000
  75. [    0.000000] uclk1: source is mout_mpll (6), rate is 66700000
  76. [    0.000000] uclk1: source is mout_mpll (6), rate is 66700000
  77. [    0.000000] sclk_mixer: source is sclk_dac (0), rate is 54000000
  78. [    0.000000] sclk_fimc: source is ext_xtal (0), rate is 24000000
  79. [    0.000000] sclk_fimc: source is ext_xtal (0), rate is 24000000
  80. [    0.000000] sclk_fimc: source is ext_xtal (0), rate is 24000000
  81. [    0.000000] sclk_cam0: source is ext_xtal (0), rate is 24000000
  82. [    0.000000] sclk_cam1: source is ext_xtal (0), rate is 24000000
  83. [    0.000000] sclk_fimd: source is ext_xtal (0), rate is 24000000
  84. [    0.000000] sclk_mmc: source is mout_mpll (6), rate is 47642857
  85. [    0.000000] sclk_mmc: source is mout_mpll (6), rate is 47642857
  86. [    0.000000] sclk_mmc: source is mout_epll (7), rate is 80000000
  87. [    0.000000] sclk_mmc: source is mout_epll (7), rate is 80000000
  88. [    0.000000] sclk_mfc: source is sclk_a2m (0), rate is 200000000
  89. [    0.000000] sclk_g2d: source is sclk_a2m (0), rate is 200000000
  90. [    0.000000] sclk_g3d: source is sclk_a2m (0), rate is 200000000
  91. [    0.000000] sclk_csis: source is ext_xtal (0), rate is 24000000
  92. [    0.000000] sclk_spi: source is ext_xtal (0), rate is 24000000
  93. [    0.000000] sclk_spi: source is ext_xtal (0), rate is 24000000
  94. [    0.000000] sclk_pwi: source is ext_xtal (0), rate is 24000000
  95. [    0.000000] sclk_pwm: source is ext_xtal (0), rate is 24000000
  96. [    0.000000] s5p: 36864 kbytes system memory reserved for mfc at 0x3dbf5000, 0-bank base(0x3dbf5000)
  97. [    0.000000] s5p: 36864 kbytes system memory reserved for mfc at 0x3b7f5000, 1-bank base(0x00000000)
  98. [    0.000000] s5p: 6144 kbytes system memory reserved for fimc0 at 0x3b1f5000, 1-bank base(0x00000000)
  99. [    0.000000] s5p: 16 kbytes system memory reserved for fimc1 at 0x3b1f1000, 1-bank base(0x00000000)
  100. [    0.000000] s5p: 6144 kbytes system memory reserved for fimc2 at 0x3abf1000, 1-bank base(0x00000000)
  101. [    0.000000] s5p: 8192 kbytes system memory reserved for jpeg at 0x3a3f1000, 0-bank base(0x3a3f1000)
  102. [    0.000000] s5p: 13060 kbytes system memory reserved for fimd at 0x39730000, 1-bank base(0x00000000)
  103. [    0.000000] s5p: 8192 kbytes system memory reserved for g2d at 0x38f30000, 0-bank base(0x38f30000)
  104. [    0.000000] On node 0 totalpages: 102203
  105. [    0.000000]   Normal zone: 1024 pages used for memmap
  106. [    0.000000]   Normal zone: 0 pages reserved
  107. [    0.000000]   Normal zone: 101179 pages, LIFO batch:31
  108. [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
  109. [    0.000000] pcpu-alloc: [0] 0
  110. [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 101179
  111. [    0.000000] Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.5:/opt/S5PV210/rootfs,nolock,tcp ip=192.168.1.80 console=ttySAC0,115200 ctp=1 kgdboc=ttySAC0,115200
  112. [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
  113. [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
  114. [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
  115. [    0.000000] Memory: 399MB 0MB = 399MB total
  116. [    0.000000] Memory: 396940k/512416k available, 11872k reserved, 0K highmem
  117. [    0.000000] Virtual kernel memory layout:
  118. [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
  119. [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
  120. [    0.000000]     DMA     : 0xff000000 - 0xffe00000   (  14 MB)
  121. [    0.000000]     vmalloc : 0xe0800000 - 0xfd000000   ( 456 MB)
  122. [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
  123. [    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
  124. [    0.000000]       .init : 0xc0008000 - 0xc002d000   ( 148 kB)
  125. [    0.000000]       .text : 0xc002d000 - 0xc06911ec   (6545 kB)
  126. [    0.000000]       .data : 0xc0692000 - 0xc06d9c40   ( 288 kB)
  127. [    0.000000]        .bss : 0xc06d9c64 - 0xc071e000   ( 273 kB)
  128. [    0.000000] SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
  129. [    0.000000] Preemptible hierarchical RCU implementation.
  130. [    0.000000] NR_IRQS:393
  131. [    0.000000] VIC @fd000000: id 0x00041192, vendor 0x41
  132. [    0.000000] VIC @fd010000: id 0x00041192, vendor 0x41
  133. [    0.000000] VIC @fd020000: id 0x00041192, vendor 0x41
  134. [    0.000000] VIC @fd030000: id 0x00041192, vendor 0x41
  135. [    0.000000] mult[140737]
  136. [    0.000000] max_delta_ns[2937815369]
  137. [    0.000000] min_delta_ns[30517]
  138. [    0.000000] rate[32768]
  139. [    0.000000] HZ[256]
  140. [    0.000000] Console: colour dummy device 80x30
  141. [    0.000000] console [ttySAC0] enabled
  142. [    0.491824] Calibrating delay loop... 994.84 BogoMIPS (lpj=1941504)
  143. [    0.515576] pid_max: default: 32768 minimum: 301
  144. [    0.515827] Mount-cache hash table entries: 512
  145. [    0.516312] Initializing cgroup subsys debug
  146. [    0.516362] Initializing cgroup subsys cpuacct
  147. [    0.516419] Initializing cgroup subsys freezer
  148. [    0.520295] CPU: Testing write buffer coherency: ok
  149. [    0.530660] print_constraints: dummy:
  150. [    0.530949] NET: Registered protocol family 16
  151. [    0.549032] S3C Power Management, Copyright 2004 Simtec Electronics
  152. [    0.565355] fimd at 0x39730000
  153. [    0.565467] hsmmc0: sclk_mmc: source is mout_mpll, rate is 47642857
  154. [    0.565534] hsmmc1: sclk_mmc: source is mout_mpll, rate is 47642857
  155. [    0.565594] hsmmc2: sclk_mmc: source is mout_mpll, rate is 47642857
  156. [    0.565654] hsmmc3: sclk_mmc: source is mout_mpll, rate is 47642857
  157. [    0.573248] S5PV210: Initializing architecture
  158. [    0.577794] s3c-adc s5pv210-adc: attached adc driver
  159. [    0.581035] s3c24xx-pwm s3c24xx-pwm.0: tin at 66700000, tdiv at 66700000, tin=divclk, base 0
  160. [    0.590202] print_constraints: pd_tv_supply: 5000 mV normal
  161. [    0.595088] print_constraints: pd_lcd_supply: 5000 mV normal
  162. [    0.600797] print_constraints: pd_g3d_supply: 5000 mV normal
  163. [    0.606515] print_constraints: pd_mfc_supply: 5000 mV normal
  164. [    0.612256] print_constraints: pd_audio_supply: 5000 mV normal
  165. [    0.679867] bio: create slab <bio-0> at 0
  166. [    0.682650] SCSI subsystem initialized
  167. [    0.688076] usbcore: registered new interface driver usbfs
  168. [    0.688866] usbcore: registered new interface driver hub
  169. [    0.689384] usbcore: registered new device driver usb
  170. [    0.690919] s3c-i2c s3c2440-i2c.0: slave address 0x10
  171. [    0.690978] s3c-i2c s3c2440-i2c.0: bus frequency set to 378 KHz
  172. [    0.694312] s3c-i2c s3c2440-i2c.0: i2c-0: S3C I2C adapter
  173. [    0.698209] s3c-i2c s3c2440-i2c.1: slave address 0x10
  174. [    0.703096] s3c-i2c s3c2440-i2c.1: bus frequency set to 65 KHz
  175. [    0.709538] s3c-i2c s3c2440-i2c.1: i2c-1: S3C I2C adapter
  176. [    0.714317] s3c-i2c s3c2440-i2c.2: slave address 0x10
  177. [    0.719208] s3c-i2c s3c2440-i2c.2: bus frequency set to 260 KHz
  178. [    0.726196] s3c-i2c s3c2440-i2c.2: i2c-2: S3C I2C adapter
  179. [    0.732195] Advanced Linux Sound Architecture Driver Version 1.0.24.
  180. [    0.737949] Bluetooth: Core ver 2.16
  181. [    0.740770] NET: Registered protocol family 31
  182. [    0.744847] Bluetooth: HCI device and connection manager initialized
  183. [    0.751091] Bluetooth: HCI socket layer initialized
  184. [    0.755912] Bluetooth: L2CAP socket layer initialized
  185. [    0.760971] Bluetooth: SCO socket layer initialized
  186. [    0.766890] cfg80211: Calling CRDA to update world regulatory domain
  187. [    0.773644] Switching to clocksource clock_source_systimer
  188. [    0.781205] Switched to NOHz mode on CPU #0
  189. [    0.814450] NET: Registered protocol family 2
  190. [    0.814719] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
  191. [    0.815436] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
  192. [    0.815751] TCP bind hash table entries: 16384 (order: 6, 327680 bytes)
  193. [    0.817762] TCP: Hash tables configured (established 16384 bind 16384)
  194. [    0.823843] TCP reno registered
  195. [    0.826926] UDP hash table entries: 256 (order: 1, 12288 bytes)
  196. [    0.832817] UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
  197. [    0.839450] NET: Registered protocol family 1
  198. [    0.843904] RPC: Registered named UNIX socket transport module.
  199. [    0.849390] RPC: Registered udp transport module.
  200. [    0.854022] RPC: Registered tcp transport module.
  201. [    0.858686] RPC: Registered tcp NFSv4.1 backchannel transport module.
  202. [    0.865330] PMU: registered new PMU device of type 0
  203. [    0.870717] cpuidle: phy_regs_save:0x389ff000
  204. [    0.874682] Loaded driver for PL330 DMAC-0 s3c-pl330
  205. [    0.879385]  DBUFF-64x8bytes Num_Chans-8 Num_Peri-2 Num_Events-32
  206. [    0.885545] Loaded driver for PL330 DMAC-1 s3c-pl330
  207. [    0.890354]  DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
  208. [    0.896527] Loaded driver for PL330 DMAC-2 s3c-pl330
  209. [    0.901343]  DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
  210. [    0.916582] ashmem: initialized
  211. [    0.948580] ROMFS MTD (C) 2007 Red Hat, Inc.
  212. [    0.949199] yaffs: yaffs built Jan 21 2013 17:12:49 Installing.
  213. [    0.949318] msgmni has been set to 775
  214. [    0.952233] io scheduler noop registered
  215. [    0.952280] io scheduler deadline registered
  216. [    0.952505] io scheduler cfq registered (default)
  217. [    0.953022] start plist test
  218. [    0.964738] end plist test
  219. [    0.965544] s3cfb s3cfb: win 2: pmem_start=0x39b95000
  220. [    0.965600] s3cfb s3cfb: [fb2] dma: 0x39b95000, cpu: 0xe1000000, size: 0x0085c000
  221. [    0.980388] FIMD src sclk = 166750000
  222. [    0.980503] s3cfb s3cfb: registered successfully
  223. [    0.999445] s5pv210-uart.0: ttySAC0 at MMIO 0xe2900000 (irq = 16) is a S3C6400/10
  224. [    1.004497] s5pv210-uart.1: ttySAC1 at MMIO 0xe2900400 (irq = 20) is a S3C6400/10
  225. [    1.012278] s5pv210-uart.2: ttySAC2 at MMIO 0xe2900800 (irq = 24) is a S3C6400/10
  226. [    1.020063] s5pv210-uart.3: ttySAC3 at MMIO 0xe2900c00 (irq = 28) is a S3C6400/10
  227. [    1.028139] kgdb: Registered I/O driver kgdboc.
  228. [    1.029336] leds     initialized
  229. [    1.029853] pwm      initialized
  230. [    1.030397] mini210-adc      initialized
  231. [    1.031294] backlight        initialized
  232. [    1.033368] PA FB = 0x39B95000, bits per pixel = 32
  233. [    1.033419] screen width=800 height=480 va=0xd9b95000 pa=0x39b95000
  234. [    1.037300] xres_virtual = 800, yres_virtual = 1440, xoffset = 0, yoffset = 0
  235. [    1.044271] fb_size=8765440
  236. [    1.046967] Back frameBuffer[0].VAddr=d9d0c000 PAddr=39d0c000 size=1536000
  237. [    1.053883] Back frameBuffer[1].VAddr=d9e83000 PAddr=39e83000 size=1536000
  238. [    1.060711] Video Y Buffer[0].VAddr=d9ffa000 PAddr=39ffa000 size=921600
  239. [    1.067274] Video Y Buffer[1].VAddr=da0db000 PAddr=3a0db000 size=921600
  240. [    1.073853] Video Y Buffer[2].VAddr=da1bc000 PAddr=3a1bc000 size=921600
  241. [    1.080435] Video UV Buffer[0].VAddr=da29d000 PAddr=3a29d000 size=462848
  242. [    1.087114] Video UV Buffer[1].VAddr=da30e000 PAddr=3a30e000 size=462848
  243. [    1.093781] Video UV Buffer[2].VAddr=da37f000 PAddr=3a37f000 size=462848
  244. [    1.116968] brd: module loaded
  245. [    1.125950] loop: module loaded
  246. [    1.129049] S3C NAND Driver, (c) 2008 Samsung Electronics
  247. [    1.232765] MLC nand initialized, 2012 ported by FriendlyARM
  248. [    1.232829] S3C NAND Driver is using hardware ECC.
  249. [    1.232908] NAND device: Manufacturer ID: 0xec, Chip ID: 0xd5 (Samsung NAND 2GiB 3,3V 8-bit)
  250. [    1.232996] Creating 5 MTD partitions on "s5pv210-nand":
  251. [    1.234619] 0x0000000c0000-0x000000100000 : "misc"
  252. [    1.241942] 0x000000100000-0x000000600000 : "recovery"
  253. [    1.247967] 0x000000600000-0x000000b00000 : "kernel"
  254. [    1.252719] 0x000000b00000-0x000000e00000 : "ramdisk"
  255. [    1.257397] 0x000000e00000-0x000080000000 : "system"
  256. [    1.599156] PPP generic driver version 2.4.2
  257. [    1.600049] PPP Deflate Compression module registered
  258. [    1.600107] PPP BSD Compression module registered
  259. [    1.601243] PPP MPPE Compression module registered
  260. [    1.601298] NET: Registered protocol family 24
  261. [    1.601345] tun: Universal TUN/TAP device driver, 1.6
  262. [    1.605267] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
  263. [    1.611828] dm9000 Ethernet Driver, V1.31
  264. [    1.616853] eth0: dm9000a at e0838000,e083c00c IRQ 39 MAC: 00:40:5c:26:0a:5b (chip)
  265. [    1.623722] usbcore: registered new interface driver ath9k_htc
  266. [    1.629099] sdhci: Secure Digital Host Controller Interface driver
  267. [    1.634953] sdhci: Copyright(c) Pierre Ossman
  268. [    1.639317] s3c-sdhci s3c-sdhci.0: clock source 0: hsmmc (133400000 Hz)
  269. [    1.645807] s3c-sdhci s3c-sdhci.0: clock source 2: sclk_mmc (47642857 Hz)
  270. [    1.652605] mmc0: no vmmc regulator found
  271. [    1.656922] Registered led device: mmc0::
  272. [    1.661006] mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.0] using ADMA
  273. [    1.667701] s3c-sdhci s3c-sdhci.1: clock source 0: hsmmc (133400000 Hz)
  274. [    1.674146] s3c-sdhci s3c-sdhci.1: clock source 2: sclk_mmc (47642857 Hz)
  275. [    1.682986] mmc1: no vmmc regulator found
  276. [    1.685346] Registered led device: mmc1::
  277. [    1.689318] mmc1: SDHCI controller on samsung-hsmmc [s3c-sdhci.1] using ADMA
  278. [    1.699252] s3c-sdhci s3c-sdhci.2: clock source 0: hsmmc (133400000 Hz)
  279. [    1.702486] s3c-sdhci s3c-sdhci.2: clock source 2: sclk_mmc (47642857 Hz)
  280. [    1.709288] mmc2: no vmmc regulator found
  281. [    1.715636] Registered led device: mmc2::
  282. [    1.717615] mmc2: SDHCI controller on samsung-hsmmc [s3c-sdhci.2] using ADMA
  283. [    1.724348] s3c-sdhci s3c-sdhci.3: clock source 0: hsmmc (133400000 Hz)
  284. [    1.730824] s3c-sdhci s3c-sdhci.3: clock source 2: sclk_mmc (47642857 Hz)
  285. [    1.740810] mmc3: no vmmc regulator found
  286. [    1.741967] Registered led device: mmc3::
  287. [    1.746035] mmc3: SDHCI controller on samsung-hsmmc [s3c-sdhci.3] using ADMA
  288. [    1.752951] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
  289. [    1.761432] s5p-ehci s5p-ehci: S5P EHCI Host Controller
  290. [    1.764380] s5p-ehci s5p-ehci: new USB bus registered, assigned bus number 1
  291. [    1.771406] s5p-ehci s5p-ehci: irq 87, io mem 0xec200000
  292. [    1.789533] s5p-ehci s5p-ehci: USB 0.0 started, EHCI 1.00
  293. [    1.790770] hub 1-0:1.0: USB hub found
  294. [    1.790847] hub 1-0:1.0: 1 port detected
  295. [    1.791927] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
  296. [    1.798054] s5p-ohci s5p-ohci: EXYNOS OHCI Host Controller
  297. [    1.801174] s5p-ohci s5p-ohci: new USB bus registered, assigned bus number 2
  298. [    1.808229] s5p-ohci s5p-ohci: irq 87, io mem 0xec300000
  299. [    1.872876] hub 2-0:1.0: USB hub found
  300. [    1.872960] hub 2-0:1.0: 1 port detected
  301. [    1.874844] usbcore: registered new interface driver usbserial
  302. [    1.874907] usbserial: USB Serial Driver core
  303. [    1.874948] Initializing USB Mass Storage driver...
  304. [    1.878576] usbcore: registered new interface driver usb-storage
  305. [    1.879346] USB Mass Storage support registered.
  306. [    1.884519] s3c-udc : S3C HS USB Device Controller Driver, (c) 2008-2009 Samsung Electronics
  307. [    1.884530] s3c-udc : version 15 March 2009 (DMA Mode)
  308. [    1.906446] android_usb gadget: Mass Storage Function, version: 2009/09/11
  309. [    1.906517] android_usb gadget: Number of LUNs=1
  310. [    1.908906]  lun0: LUN: removable file: (no medium)
  311. [    1.917974] android_usb gadget: android_usb ready
  312. [    1.935143] Registered gadget driver 'android_usb'
  313. [    1.936127] mousedev: PS/2 mouse device common for all mice
  314. [    1.937682] input: gpio-keys as /devices/platform/gpio-keys/input/input0
  315. [    1.939892] touchscreen-1wire        initialized
  316. [    1.939941] backlight-1wire  initialized
  317. [    1.943390] setup_irq: ret = 0
  318. [    1.949344] PWM clock = 66700000
  319. [    1.949382] TCNT_FOR_SAMPLE_BIT = 433, TCFG1 = 00010000
  320. [    1.955703] input: fa_ts_input as /devices/virtual/input/input1
  321. [    1.962284] ts-if    initialized
  322. [    1.964422] S3C24XX RTC, (c) 2004,2006 Simtec Electronics
  323. [    1.969103] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
  324. [    1.976461] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
  325. [    1.979792] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
  326. [    1.985189] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
  327. [    1.990673] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
  328. [    2.000583] using rtc device, s3c, for alarms
  329. [    2.000695] s3c-rtc s3c64xx-rtc: rtc core: registered s3c as rtc0
  330. [    2.007003] i2c /dev entries driver
  331. [    2.012407] Linux video capture interface: v2.00
  332. [    2.014907] gspca: v2.13.0 registered
  333. [    2.018650] usbcore: registered new interface driver zc3xx
  334. [    2.023604] mfc_init: <6>S5PC110 MFC Driver, (c) 2009 Samsung Electronics
  335. [    2.023610]
  336. [    2.035622] S3C JPEG Driver, (c) 2007 Samsung Electronics
  337. [    2.037195] JPEG driver for S5PV210
  338. [    2.041789] i2c i2c-1: attached s5p_ddc into i2c adapter successfully
  339. [    2.047438] S5PC11X HPD Driver, (c) 2010 Samsung Electronics
  340. [    2.053696] S5PC11X CEC Driver, (c) 2010 Samsung Electronics
  341. [    2.060876] usbcore: registered new interface driver uvcvideo
  342. [    2.064060] USB Video Class driver (v1.1.0)
  343. [    2.110690] input: mma7660 as /devices/platform/s3c2440-i2c.0/i2c-0/0-004c/input/input2
  344. [    2.111368] mma7660 0-004c: MMA7660 device is probed successfully.
  345. [    2.111789] i2c-core: driver [mma7660] using legacy suspend method
  346. [    2.111853] i2c-core: driver [mma7660] using legacy resume method
  347. [    2.114800] MMA7660 sensor driver registered.
  348. [    2.119136] S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
  349. [    2.125786] s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
  350. [    2.134915] device-mapper: uevent: version 1.0.3
  351. [    2.138459] device-mapper: ioctl: 4.20.0-ioctl (2011-02-02) initialised: dm-devel@redhat.com
  352. [    2.145779] Bluetooth: HCI UART driver ver 2.2
  353. [    2.150063] Bluetooth: HCI H4 protocol initialized
  354. [    2.154842] Bluetooth: HCI BCSP protocol initialized
  355. [    2.159764] Bluetooth: HCILL protocol initialized
  356. [    2.164444] Bluetooth: HCIATH3K protocol initialized
  357. [    2.169384] Bluetooth: Generic Bluetooth USB driver ver 0.6
  358. [    2.175389] usbcore: registered new interface driver btusb
  359. [    2.180717] cpuidle: using governor ladder
  360. [    2.185080] cpuidle: using governor menu
  361. [    2.208617] usbcore: registered new interface driver usbhid
  362. [    2.208677] usbhid: USB HID core driver
  363. [    2.211671] ALSA device list:
  364. [    2.211711]   No soundcards found.
  365. [    2.211742] oprofile: hardware counters not available
  366. [    2.211784] oprofile: using timer interrupt.
  367. [    2.214112] TCP cubic registered
  368. [    2.216531] NET: Registered protocol family 17
  369. [    2.220996] NET: Registered protocol family 15
  370. [    2.225725] Bluetooth: RFCOMM TTY layer initialized
  371. [    2.230259] Bluetooth: RFCOMM socket layer initialized
  372. [    2.235331] Bluetooth: RFCOMM ver 1.11
  373. [    2.239059] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
  374. [    2.244356] Bluetooth: BNEP filters: protocol multicast
  375. [    2.249546] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
  376. [    2.255892] NET: Registered protocol family 35
  377. [    2.260125] lib80211: common routines for IEEE802.11 drivers
  378. [    2.265489] lib80211_crypt: registered algorithm 'NULL'
  379. [    2.270687] Registering the dns_resolver key type
  380. [    2.275418] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
  381. [    2.282994] ThumbEE CPU extension supported.
  382. [    2.287734] s5pv210_cpufreq_init: S5PV210 cpu-freq driver
  383. [    2.294262] regulator_init_complete: pd_mfc_supply: disabling
  384. [    2.298338] regulator_init_complete: pd_tv_supply: disabling
  385. [    2.304023] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
  386. [    2.309451] s3c-rtc s3c64xx-rtc: setting system clock to 2013-01-23 10:13:49 UTC (1358936029)
  387. [    2.323559] FIMC0 registered successfully
  388. [    2.325558] FIMC1 registered successfully
  389. [    2.327653] FIMC2 registered successfully
  390. [    2.330330] S5PC1XX TVOUT Driver, (c) 2009 Samsung Electronics
  391. [    2.336619] s5p-tvout s5p-tvout: hpd status is cable removed
  392. [    2.371581] usb 1-1: new high speed USB device number 2 using s5p-ehci
  393. [    2.383306] dm9000 dm9000: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
  394. [    2.398891] IP-Config: Guessing netmask 255.255.255.0
  395. [    2.399198] IP-Config: Complete:
  396. [    2.399239]      device=eth0, addr=192.168.1.80, mask=255.255.255.0, gw=255.255.255.255,
  397. [    2.399315]      host=192.168.1.80, domain=, nis-domain=(none),
  398. [    2.399365]      bootserver=255.255.255.255, rootserver=192.168.1.5, rootpath=
  399. [    2.502828] hub 1-1:1.0: USB hub found
  400. [    2.503021] hub 1-1:1.0: 4 ports detected
  401. [    2.653901] VFS: Mounted root (nfs filesystem) on device 0:13.
  402. [    2.654047] Freeing init memory: 148K
  403. [    5.735512] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
  404. Please press Enter to activate this console.
  405. [    6.200469] udevd[876]: starting version 175
  406. [root@FA-HF /]#
  407. [   12.817109] vo_open::check tvout start !!
  408. [   12.821308] vo_open::check tvout start !!


附件: my_config.gz (17 K) 下载次数:246
小米加步枪
级别: 新手上路
UID: 15301
精华: 0
发帖: 28
金钱: 140 两
威望: 28 点
贡献值: 0 点
综合积分: 56 分
注册时间: 2010-03-03
最后登录: 2018-02-08
1楼  发表于: 2013-01-25 14:46
如何将SD中的uboot拷贝到nand中执行啊,我用tftp 0x20000000 uboot.bin ,nand erase 0x0 0x300000,然后nand write 0x20000000 0x0 0x300000。然后掉电运行,没反应啊。大侠们指点下。是不是我的nand地址搞错了?