系统:ubuntu 10.04.4
单板:ok6410
编译器:arm-none-linux-gnueabi-
搭建开发环境详见ubuntu 10.04.4开发环境配置。
目标:
一.配置 编译android-2.6.29,放到OK6410上,板子串口正常输出
二.移植DM9000网卡驱动,配置内核,支持nfs挂载网络文件系统
一.配置 编译android-2.6.29,放到OK6410上,板子串口正常输出
1.获取交叉编译链 http://code.google.com/p/smp-on-qemu/downloads/list 选择arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2并下载。然后在ubuntu下直接解压即可
2.git下载内核源码android-2.6.29
change@change:~$ mkdir android
change@change:~/android$ git clonehttps://android.googlesource.com/kernel/goldfish.git
Initialized empty Git repository in /home/change/android/goldfish/.git/
remote: Counting objects: 41021, done
remote: Finding sources: 100% (114/114)
remote: Getting sizes: 100% (70/70)
remote: Compressing objects: 100% (311571/311571)
Receiving objects: 100% (2442756/2442756), 499.75 MiB | 901 KiB/s, done.
remote: Total 2442756 (delta 2048893), reused 2442724 (delta 2048890)
Resolving deltas: 100% (2049059/2049059), done.
显示100%之后则表示同步完成。此时goldfish下的所有内核版本的源码都已同步完成
设定默认使用版本
进入到goldfish目录下,使用如下命令查看所有可用版本名称。
change@change:~/android$ cd goldfish/
change@change:~/android/goldfish$ git branch -a
我的系统显示如下:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-goldfish-2.6.29
remotes/origin/android-goldfish-3.4
remotes/origin/linux-goldfish-3.0-wip
remotes/origin/master
“*”指代的当前目录下默认的版本。设定“android-goldfish-2.6.29”为默认,则可以在终端中输入如下命令:
git checkout -b android-2.6.29 origin/android-goldfish-2.6.29
-b后面的android-2.6.29只是给后面的内核源码版本起了个自己定义的名字,方便自己查看而已,也可以不定义,不定义就会使用默认名称。此时,查看goldfish下的目录即为“android-goldfinsh-2.6.29”版本的模拟器内核源码。在goldfish目录下使用如下命令进行查看当前内核版本的名称。
change@change:~/android/goldfish$ git checkout -b android-2.6.29 origin/android-goldfish-2.6.29
Checking out files: 100% (26821/26821), done.
Branch android-2.6.29 set up to track remote branch android-goldfish-2.6.29 from origin.
Switched to a new branch 'android-2.6.29'
change@change:~/android/goldfish$ git branch
* android-2.6.29
master
下载的android-2.6.29代码如下:
change@change:~/android/goldfish$ ls
arch CREDITS drivers include Kbuild MAINTAINERS net samples sound
block crypto firmware init kernel Makefile README scripts usr
COPYING Documentation fs ipc lib mm REPORTING-BUGS security virt
change@change:~/android/goldfish$
3.修改顶部Makefile:193
ARCH ?= arm
CROSS_COMPILE ?= /home/change/tools/arm-2009q3//bin/arm-none-linux-gnueabi-
4.配置
make s3c6400_defconfig
5.编译make uImage
make uImage
Image Name: Linux-2.6.29-gcb06bef-dirty
Created: Fri Jan 18 14:24:35 2013
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 938176 Bytes = 916.19 kB = 0.89 MB
Load Address: 50008000
Entry Point: 50008000
Image arch/arm/boot/uImage is ready
编译过程比较顺利,没有报错
SMDK6410 # set bootcmd 'nand read 0x50000000 0x100000 0x300000;bootm 0x50000000'
SMDK6410 # boot
Unknown command 'nand' - try 'help'
## Booting kernel from Legacy Image at 50000000 ...
Image Name: Linux-2.6.29-ge3d684d-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 943040 Bytes = 920.9 KiB
Load Address: 50008000
Entry Point: 50008000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
SMDK6410 #tftp 0x50000000 uImage
dm9000 i/o: 0x18000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 172.16.1.132; our IP address is 172.16.1.111
Filename 'uImage'.
Load address: 0x50000000
Loading: #################################################################
done
Bytes transferred = 943104 (e6400 hex)
SMDK6410 # md 0x50000000
50000000: 56190527 3d367e35 d0678651 c0630e00 '..V5~6=Q.g...c.
50000010: 00800050 00800050 15e75322 00020205 P...P..."S......
50000020: 756e694c 2e322d78 39322e36 3365672d Linux-2.6.29-ge3
50000030: 34383664 69642d64 00797472 00000000 d684d-dirty.....
50000040: e1a00000 e1a00000 e1a00000 e1a00000 ................
50000050: e1a00000 e1a00000 e1a00000 e1a00000 ................
50000060: ea000002 016f2818 00000000 000e63c0 .....(o......c..
50000070: e1a07001 e1a08002 e10f2000 e3120003 .p....... ......
50000080: 1a000001 e3a00017 ef123456 e10f2000 ........V4... ..
50000090: e38220c0 e121f002 00000000 00000000 . ....!.........
500000a0: e28f00d0 e890307e e0500001 0a00000a ....~0....P.....
500000b0: e0855000 e0866000 e08cc000 e0822000 .P...`....... ..
500000c0: e0833000 e08dd000 e5961000 e0811000 .0..............
500000d0: e4861004 e156000c 3afffffa e3a00000 ......V....:....
500000e0: e4820004 e4820004 e4820004 e4820004 ................
500000f0: e1520003 3afffff9 eb000028 e1a0100d ..R....:(.......
SMDK6410 # nand read 0x50000000 0x100000 0x300000
NAND read: device 0 offset 0x100000, size 0x300000
realpage value:1023
page value:1023
ret value:0
3145728 bytes read: OK
SMDK6410 # md 0x50000000
50000000: 56190527 3d367e35 d0678651 c0630e00 '..V5~6=Q.g...c.
50000010: 00800050 00800050 15e75322 00020205 P...P..."S......
50000020: 756e694c 2e322d78 39322e36 3365672d Linux-2.6.29-ge3
50000030: 34383664 69642d64 00797472 00000000 d684d-dirty.....
50000040: e1a00000 e1a00000 e1a00000 e1a00000 ................
50000050: e1a00000 e1a00000 e1a00000 e1a00000 ................
50000060: ea000002 016f2818 00000000 000e63c0 .....(o......c..
50000070: e1a07001 e1a08002 e10f2000 e3120003 .p....... ......
50000080: 1a000001 e3a00017 ef123456 e10f2000 ........V4... ..
50000090: e38220c0 e121f002 00000000 00000000 . ....!.........
500000a0: e28f00d0 e890307e e0500001 0a00000a ....~0....P.....
500000b0: e0855000 e0866000 e08cc000 e0822000 .P...`....... ..
500000c0: e0833000 e08dd000 e5961000 e0811000 .0..............
500000d0: e4861004 e156000c 3afffffa e3a00000 ......V....:....
500000e0: e4820004 e4820004 e4820004 e4820004 ................
500000f0: e1520003 3afffff9 eb000028 e1a0100d ..R....:(.......
SMDK6410 #
放到内存读出的数据也一样,这个问题感觉怪怪的,可能是u-boot留下的bug,但是这样有可以启动,等我实现上面目标,最后再解决这个新问题。
SMDK6410 # tftp 0x50000000 uImage
dm9000 i/o: 0x18000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 172.16.1.132; our IP address is 172.16.1.111
Filename 'uImage'.
Load address: 0x50000000
Loading: #################################################################
done
Bytes transferred = 943104 (e6400 hex)
SMDK6410 # bootm 0x50000000
## Booting kernel from Legacy Image at 50000000 ...
Image Name: Linux-2.6.29-ge3d684d-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 943040 Bytes = 920.9 KiB
Load Address: 50008000
Entry Point: 50008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux.............................................................. done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x000004f6).
Available machine support:
ID (hex) NAME
0000065a SMDK6410
Please check your kernel config and/or bootloader.
好吧现实试试,重启设置machid
SMDK6410 # set machid 65a
SMDK6410 # tftp 0x50000000 uImage
dm9000 i/o: 0x18000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 172.16.1.132; our IP address is 172.16.1.111
Filename 'uImage'.
Load address: 0x50000000
Loading: #################################################################
done
Bytes transferred = 943104 (e6400 hex)
SMDK6410 # bootm 0x50000000
## Booting kernel from Legacy Image at 50000000 ...
Image Name: Linux-2.6.29-ge3d684d-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 943040 Bytes = 920.9 KiB
Load Address: 50008000
Entry Point: 50008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Using machid 0x65a from environment
Starting kernel ...
Uncompressing Linux.............................................................. done, booting the kernel.
<5>Linux version 2.6.29-ge3d684d-dirty (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #1 Sun May 5 22:08:01 CST 2013
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
<7>On node 0 totalpages: 32768
<7>free_area_init_node: node 0, pgdat c01dc164, node_mem_map c0213000
<7> Normal zone: 256 pages used for memmap
<7> Normal zone: 0 pages reserved
<7> Normal zone: 32512 pages, LIFO batch:7
CPU S3C6410 (id 0x36410101)
<7>s3c6410_init_clocks: initialising clocks
<6>S3C24XX Clocks, (c) 2004 Simtec Electronics
<7>s3c6400_setup_clocks: registering clocks
<7>s3c6400_setup_clocks: clkdiv0 = 00003300
<7>s3c6400_setup_clocks: xtal is 12000000
<6>S3C64XX: PLL settings, A=532000000, M=532000000, E=97699996
<6>S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
<6>mout_apll: source is fout_apll (1), rate is 532000000
<6>mout_epll: source is ext_xtal (0), rate is 0
<6>mout_mpll: source is mpll (1), rate is 532000000
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>usb-bus-host: source is clk_48m (0), rate is 48000000
<6>uclk1: source is mout_epll (0), rate is 0
<6>spi-bus: source is mout_epll (0), rate is 0
<6>spi-bus: source is mout_epll (0), rate is 0
<6>audio-bus: source is mout_epll (0), rate is 0
<6>audio-bus: source is mout_epll (0), rate is 0
<6>irda-bus: source is mout_epll (0), rate is 0
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
<5>Kernel command line: console=ttySAC0,115200 root=/dev/mtdblock3
<7>s3c64xx_init_irq: initialising interrupts
PID hash table entries: 512 (order: 9, 2048 bytes)
<7>timer tcon=00500000, tcnt 1b0f0, tcfg 00000200,00010000, usec 00001719
Console: colour dummy device 80x30
<6>console [ttySAC0] enabled
Linux version 2.6.29-ge3d684d-dirty (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #1 Sun May 5 22:08:01 CST 2013
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
CPU S3C6410 (id 0x36410101)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C64XX: PLL settings, A=532000000, M=532000000, E=97699996
S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
mout_apll: source is fout_apll (1), rate is 532000000
mout_epll: source is ext_xtal (0), rate is 0
mout_mpll: source is mpll (1), rate is 532000000
mmc_bus: source is mout_epll (0), rate is 0
mmc_bus: source is mout_epll (0), rate is 0
mmc_bus: source is mout_epll (0), rate is 0
usb-bus-host: source is clk_48m (0), rate is 48000000
uclk1: source is mout_epll (0), rate is 0
spi-bus: source is mout_epll (0), rate is 0
spi-bus: source is mout_epll (0), rate is 0
audio-bus: source is mout_epll (0), rate is 0
audio-bus: source is mout_epll (0), rate is 0
irda-bus: source is mout_epll (0), rate is 0
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: console=ttySAC0,115200 root=/dev/mtdblock3
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
console [ttySAC0] enabled
<6>Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
<6>Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
<6>Memory:Memory: 128MB 128MB = 128MB total
= 128MB total
<5>Memory: 127644KB available (1696K code, 301K data, 84K init)
Memory: 127644KB available (1696K code, 301K data, 84K init)
<6>SLUB: Genslabs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
SLUB: Gen
530.84 BogoMIPS (lpj=2654208)
Mount-cache hash table entries: 512
Mount-cache hash table entries: 512
<6>CPU: Testing write buffer coherency: CPU: Testing write buffer coherency: ok
ok
S3C6410: Initialising architecture
S3C6410: Initialising architecture
bio: create slab
bio: create slab
<6>io scheduler noop registered
io scheduler noop registered
<6>io scheduler anticipatory registered
io scheduler anticipatory registered
<6>io scheduler deadline registered
io scheduler deadline registered
<6>io scheduler cfq registered (default)
io scheduler cfq registered (default)
<6>Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
<6>s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
<6>s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
<6>brd: module loaded
brd: module loaded
<6>loop: module loaded
loop: module loaded
<6>mice: PS/2 mouse device common for all mice
mice: PS/2 mouse device common for all mice
<6>i2c /dev entries driver
i2c /dev entries driver
<6>sdhci: Secure Digital Host Controller Interface driver
sdhci: Secure Digital Host Controller Interface driver
<6>sdhci: Copyright(c) Pierre Ossman
sdhci: Copyright(c) Pierre Ossman
<6>VFP support v0.3: VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
implementor 41 architecture 1 part 20 variant b rev 5
VFS: Cannot open root device "mtdblock3" or unknown-block(0,0)
PFS: Cannot open root device "mtdblock3" or unknown-block(0,0)
lease append a correct "root=" boot option; here are the available partitions:
Please append a c
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
这样看起来是正常的,还没有文件系统供挂载
二.移植DM9000网卡驱动,配置内核,支持nfs挂载网络文件习统
1修改arch/arm/mach-s3c6410/mach-smdk6410.c
添加代码如下:
50:
#include
72:
/* DM9000AEP 10/100 ethernet controller */
#define S3C64XX_PA_DM9000 (0x18000000)
#define S3C64XX_SZ_DM9000 SZ_1M
#define S3C64XX_VA_DM9000 S3C_ADDR(0x03b00300)
static struct resource dm9000_resources[] = {
[0] = {
.start = S3C64XX_PA_DM9000,
.end = S3C64XX_PA_DM9000 + 3,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = S3C64XX_PA_DM9000 + 4,
.end = S3C64XX_PA_DM9000 + S3C64XX_SZ_DM9000 - 1,
.flags = IORESOURCE_MEM,
},
[2] = {
.start = IRQ_EINT(7),
.end = IRQ_EINT(7),
.flags = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
},
};
static struct dm9000_plat_data dm9000_setup = {
.flags = DM9000_PLATF_16BITONLY,
.dev_addr = { 0x08, 0x90, 0x00, 0xa0, 0x90, 0x90 },
};
static struct platform_device s3c_device_dm9000 = {
.name = "dm9000",
.id = 0,
.num_resources = ARRAY_SIZE(dm9000_resources),
.resource = dm9000_resources,
.dev = {
.platform_data = &dm9000_setup,
}
};
186:
&s3c_device_dm9000, // dm9000 driver
2.make menuconfig
change@change:~/android/goldfish$ make menuconfig
/dm9000 看到
| Symbol: DM9000 [=n] |
| Prompt: DM9000 support |
| Defined at drivers/net/Kconfig:921 |
| Depends on: NETDEVICES && NET_ETHERNET && (ARM || BLACKFIN || MIPS) |
| Location: |
| -> Device Drivers |
| -> Network device support (NETDEVICES [=n]) |
| -> Ethernet (10 or 100Mbit) (NET_ETHERNET [=n])
/NETDEVICES
| Symbol: NETDEVICES [=n] |
| Prompt: Network device support |
| Defined at drivers/net/Kconfig:6 |
| Depends on: NET |
| Location: |
| -> Device Drivers
要先选上 [*] Networking support ---> 过程如下:
[*] Networking support --->
Device Drivers
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> DM9000 support
同样方法选nfs,过程如下
Networking support (NET [=y])
-> Networking options
-> [*] TCP/IP networking(INET [=y])
[*] IP: kernel level autoconfiguration
File systems --->
[*] Network File Systems (NEW) --->
--- Network File Systems
<*> NFS client support
[*] NFS client support for NFS version 3
[*] Root file system on NFS
<*> NFS server support
[*] NFS server support for NFS version 3
[*] NFS server support for NFS version 3
3.make uImage
change@change:~/android/goldfish$ make uImage
Image Name: Linux-2.6.29-ge3d684d-dirty
Created: Mon May 6 15:42:20 2013
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1413260 Bytes = 1380.14 kB = 1.35 MB
Load Address: 50008000
Entry Point: 50008000
Image arch/arm/boot/uImage is ready
change@change:~/android/goldfish$ cp arch/arm/boot/uImage /home/change/work/tftpboot/
4.设置u-boot的bootargs,通过nfs挂载文件系统
SMDK6410 # set bootargs console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=172.16.1.132:/home/change/work/rootfs_dir/fs_mini \
nolock ip=172.16.1.111:172.16.1.132:172.16.1.1:255.255.255.0::eth0:off
5.测试
U-Boot 2012.04.01 (Nov 25 2012 - 21:01:21) for SMDK6410
CPU: S3C6400@532MHz
Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)
Board: SMDK6410
DRAM: 128 MiB
WARNING: Caches not enabled
Flash: 0 KB
NAND: select s3c_nand_oob_mlc_64
id_data[0] = 0xec id_data[1] = 0xd5 id_data[2] = 0x94 id_data[3] = 0x29 id_data[4] = 0x34 id_data[5] = 0x41 id_data[6] = 0xec id_data[7] = 0xd5 NAND_ECC_NONE selected by board driver. This is not recommended !!
2048 MiB
realpage value:255
page value:255
ret value:0
In: serial
Out: serial
Err: serial
Net: dm9000
Hit any key to stop autoboot: 0
##### 100ask Bootloader for OpenJTAG #####
[n] Download u-boot to Nand Flash
[k] Download Linux kernel uImage
[j] Download root_jffs2 image
[y] Download root_yaffs image
[d] Download to SDRAM & Run
[z] Download zImage into RAM
[g] get file, and write to nand flash 0 block
[f] Format the Nand Flash
[s] Set the boot parameters
[b] Boot the system
[r] Reboot u-boot
[q] Quit from menu
Enter your selection: q
SMDK6410 # printenv
baudrate=115200
bootargs=console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=172.16.1.132:/home/change/work/rootfs_dir/fs_mini \
nolock ip=172.16.1.111:172.16.1.132:172.16.1.1:255.255.255.0::eth0:off
bootcmd=nand read 0x50000000 0x100000 0x300000;bootm 0x50000000
bootdelay=5
ethact=dm9000
ethaddr=00:0c:29:4d:e4:f4
fileaddr=50000000
filesize=E6400
ipaddr=172.16.1.111
machid=65a
mtddevname=u-boot
mtddevnum=0
mtdids=nand0=OK6410-0
mtdparts=mtdparts=OK6410-0:512k(u-boot),512k(params),3M(kernel),-(rootfs)
netmask=255.255.255.0
partition=nand0,0
serverip=172.16.1.132
stderr=serial
stdin=serial
stdout=serial
Environment size: 658/524284 bytes
SMDK6410 # tftp 0x50000000 uImage
dm9000 i/o: 0x18000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 172.16.1.132; our IP address is 172.16.1.111
Filename 'uImage'.
Load address: 0x50000000
Loading: #################################################################
################################
done
Bytes transferred = 1413324 (1590cc hex)
SMDK6410 # bootm 0x50000000
## Booting kernel from Legacy Image at 50000000 ...
Image Name: Linux-2.6.29-ge3d684d-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1413260 Bytes = 1.3 MiB
Load Address: 50008000
Entry Point: 50008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Using machid 0x65a from environment
Starting kernel ...
Uncompressing Linux.......................................................................................... done, booting the kernel.
<5>Linux version 2.6.29-ge3d684d-dirty (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 Mon May 6 15:42:04 CST 2013
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
<7>On node 0 totalpages: 32768
<7>free_area_init_node: node 0, pgdat c02bf490, node_mem_map c02fe000
<7> Normal zone: 256 pages used for memmap
<7> Normal zone: 0 pages reserved
<7> Normal zone: 32512 pages, LIFO batch:7
CPU S3C6410 (id 0x36410101)
<7>s3c6410_init_clocks: initialising clocks
<6>S3C24XX Clocks, (c) 2004 Simtec Electronics
<7>s3c6400_setup_clocks: registering clocks
<7>s3c6400_setup_clocks: clkdiv0 = 00003300
<7>s3c6400_setup_clocks: xtal is 12000000
<6>S3C64XX: PLL settings, A=532000000, M=532000000, E=97699996
<6>S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
<6>mout_apll: source is fout_apll (1), rate is 532000000
<6>mout_epll: source is ext_xtal (0), rate is 0
<6>mout_mpll: source is mpll (1), rate is 532000000
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>usb-bus-host: source is clk_48m (0), rate is 48000000
<6>uclk1: source is mout_epll (0), rate is 0
<6>spi-bus: source is mout_epll (0), rate is 0
<6>spi-bus: source is mout_epll (0), rate is 0
<6>audio-bus: source is mout_epll (0), rate is 0
<6>audio-bus: source is mout_epll (0), rate is 0
<6>irda-bus: source is mout_epll (0), rate is 0
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
<5>Kernel command line: console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=172.16.1.132:/home/change/work/rootfs_dir/fs_mini
nolock ip=172.16.1.111:172.16.1.132:172.16.1.1:255.255.255.0::eth0:off
<7>s3c64xx_init_irq: initialising interrupts
PID hash table entries: 512 (order: 9, 2048 bytes)
<7>timer tcon=00500000, tcnt 1b0f0, tcfg 00000200,00010000, usec 00001719
Console: colour dummy device 80x30
<6>console [ttySAC0] enabled
Linux version 2.6.29-ge3d684d-dirty (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 Mon May 6 15:42:04 CST 2013
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
CPU S3C6410 (id 0x36410101)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C64XX: PLL settings, A=532000000, M=532000000, E=97699996
S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
mout_apll: source is fout_apll (1), rate is 532000000
mout_epll: source is ext_xtal (0), rate is 0
mout_mpll: source is mpll (1), rate is 532000000
mmc_bus: source is mout_epll (0), rate is 0
mmc_bus: source is mout_epll (0), rate is 0
mmc_bus: source is mout_epll (0), rate is 0
usb-bus-host: source is clk_48m (0), rate is 48000000
uclk1: source is mout_epll (0), rate is 0
spi-bus: source is mout_epll (0), rate is 0
spi-bus: source is mout_epll (0), rate is 0
audio-bus: source is mout_epll (0), rate is 0
audio-bus: source is mout_epll (0), rate is 0
irda-bus: source is mout_epll (0), rate is 0
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=172.16.1.132:/home/change/work/rootfs_dir/fs_mini
nolock ip=172.16.1.111:172.16.1.132:172.16.1.1:255.255.255.0::eth0:off
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
console [ttySAC0] enabled
<6>Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
<6>Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
<6>Memory:Memory: 128MB 128MB = 128MB total
= 128MB total
<5>Memory: 126720KB available (2560K code, 361K data, 104K init)
Memory: 126720KB available (2560K code, 361K data, 104K init)
<6>SLUB: Genslabs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
SLUB: Gen
530.84 BogoMIPS (lpj=2654208)
Mount-cache hash table entries: 512
Mount-cache hash table entries: 512
<6>CPU: Testing write buffer coherency: CPU: Testing write buffer coherency: ok
ok
<6>net_namespace: 760 bytes
net_namespace: 760 bytes
<6>NET: Registered protocol family 16
NET: Registered protocol family 16
S3C6410: Initialising architecture
S3C6410: Initialising architecture
bio: create slab
bio: create slab
<6>NET: Registered protocol family 2
NET: Registered protocol family 2
<6>IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
<6>TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
<6>TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
<6>TCP: Hash tables configured (established 4096 bind 4096)
TCP: Hash tables configured (established 4096 bind 4096)
<6>TCP reno registered
TCP reno registered
<6>Installing knfsd (copyright (C) 1996 [email protected]).
Installing knfsd (copyright (C) 1996 [email protected]).
<6>io scheduler noop registered
io scheduler noop registered
<6>io scheduler anticipatory registered
io scheduler anticipatory registered
<6>io scheduler deadline registered
io scheduler deadline registered
<6>io scheduler cfq registered (default)
io scheduler cfq registered (default)
<6>Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
<6>s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
<6>s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
<6>brd: module loaded
brd: module loaded
<6>loop: module loaded
loop: module loaded
<6>dm9000 Ethernet Driver, V1.31
dm9000 Ethernet Driver, V1.31
<6>eth0 (dm9000): not using net_device_ops yet
eth0 (dm9000): not using net_device_ops yet
<6>eth0: dm9000a at c8814000,c8a00004 IRQ 108 MAC: 08:90:00:a0:90:90 (platform data)
eth0: dm9000a at c8814000,c8a00004 IRQ 108 MAC: 08:90:00:a0:90:90 (platform data)
<6>mice: PS/2 mouse device common for all mice
mice: PS/2 mouse device common for all mice
<6>i2c /dev entries driver
i2c /dev entries driver
<6>sdhci: Secure Digital Host Controller Interface driver
sdhci: Secure Digital Host Controller Interface driver
<6>sdhci: Copyright(c) Pierre Ossman
sdhci: Copyright(c) Pierre Ossman
<6>TCP cubic registered
TCP cubic registered
<6>RPC: Registered udp transport module.
RPC: Registered udp transport module.
<6>RPC: Registered tcp transport module.
RPC: Registered tcp transport module.
<6>VFP support v0.3: VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
implementor 41 architecture 1 part 20 variant b rev 5
<6>eth0: link down
eth0: link down
<6>eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
IP-Config: Complete:IP-Config: Complete:
device=eth0
device=eth0, addr=172.16.1.111, addr=172.16.1.111, mask=255.255.255.0, mask=255.255.255.0, gw=172.16.1.1, gw=172.16.1.1,
host=172.16.1.111, domain=, nis-domain=(none),
host=172.16.1.111, domain=, nis-domain=(none),
bootserver=172.16.1.132,
bootserver=172.16.1.132, rootserver=172.16.1.132, rootserver=172.16.1.132, rootpath=, rootpath=
<5>Looking up port of RPC 100003/2 on 172.16.1.132
Looking up port of RPC 100003/2 on 172.16.1.132
<5>Looking up port of RPC 100005/1 on 172.16.1.132
Looking up port of RPC 100005/1 on 172.16.1.132
VFS: Mounted root (nfs filesystem) on device 0:11.
VFS: Mounted root (nfs filesystem) on device 0:11.
<6>Freeing init memory: 104K
Freeing init memory: 104K
mkdir: can't create directory '/dev/pts': File exists
Please press Enter to activate this console.
Processing /etc/profile... Done
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 08:90:00:A0:90:90
inet addr:172.16.1.111 Bcast:172.16.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3528 errors:0 dropped:0 overruns:0 frame:0
TX packets:2512 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2496454 (2.3 MiB) TX bytes:420656 (410.7 KiB)
Interrupt:108 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/ # ping 172.16.1.132
PING 172.16.1.132 (172.16.1.132): 56 data bytes
64 bytes from 172.16.1.132: seq=0 ttl=64 time=1.217 ms
64 bytes from 172.16.1.132: seq=1 ttl=64 time=0.433 ms
64 bytes from 172.16.1.132: seq=2 ttl=64 time=1.088 ms
64 bytes from 172.16.1.132: seq=3 ttl=64 time=0.424 ms
64 bytes from 172.16.1.132: seq=4 ttl=64 time=1.083 ms
^C
--- 172.16.1.132 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.424/0.849/1.217 ms
/ # ls
bin etc linuxrc proc sbin tmp
dev lib mnt root sys usr
/ #
看到系统正常启动了,网也ping通了。剩下的问题以后再解决。