首页 > 代码库 > mini2440移植uboot 2011.03(上)
mini2440移植uboot 2011.03(上)
参考博文:
《u-boot-2011.03在mini2440/micro2440上的移植》
本来我想移植最新版的uboot,但是移植却不太成功,所以先模仿他人的例子重新执行一遍,对uboot更熟悉后再开始新版本的移植。
操作系统: debian 7.4
uboot: u-boot-2011.03(下载地址)
交叉编译器:arm-linux-gcc 4.4.3(下载地址)
执行过程如下:
移植(一)基本配置:
在boards.cfg下添加一行:
mini2440 arm arm920t - friendlyarm s3c24x0
执行下面命令:
host@debian:~/soft/mini2440/u-boot-2011.03$ mkdir -p board/friendlyarm/mini2440
host@debian:~/soft/mini2440/u-boot-2011.03$ cp -r board/samsung/smdk2410/* board/friendlyarm/mini2440/
host@debian:~/soft/mini2440/u-boot-2011.03$ cd board/friendlyarm/mini2440/
host@debian:~/soft/mini2440/u-boot-2011.03/board/friendlyarm/mini2440$ mv smdk2410.c mini2440.c
host@debian:~/soft/mini2440/u-boot-2011.03/board/friendlyarm/mini2440$ vim Makefile
将Makefile中smdk2410替换成mini2440
host@debian:~/soft/mini2440/u-boot-2011.03/board/friendlyarm/mini2440$ cd -
host@debian:~/soft/mini2440/u-boot-2011.03$ cp include/configs/smdk2410.h include/configs/mini2440.h
host@debian:~/soft/mini2440/u-boot-2011.03$ vim include/configs/mini2440.h
将#define CONFIG_SYS_PROMPT "SMDK2410 # "中的SMDK2410修改成MINI2440。
添加两行内容:
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE)
然后进行编译:
host@debian:~/soft/mini2440/u-boot-2011.03$ make mini2440_config host@debian:~/soft/mini2440/u-boot-2011.03$ make
得到下面的输出:
............................ /home/host/soft/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-ld: warning: creating a DT_TEXTREL in object. arm-linux-objcopy -O srec u-boot u-boot.srec arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin
移植(二)在RAM中执行:
host@debian:~/soft/mini2440/u-boot-2011.03$ vim include/configs/mini2440.h# if defined(CONFIG_S3C2440)
删除两行内容:
#define CONFIG_S3C2410 1 /* specifically a SAMSUNG S3C2410 SoC */
#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */
添加三行代码:
#define CONFIG_S3C2440 1 /* specifically a SAMSUNG S3C2440 SoC */
#define CONFIG_MINI2440 1 /* on a FriendlyArm MINI2440 Board */
#define CONFIG_SKIP_LOWLEVEL_INIT
host@debian:~/soft/mini2440/u-boot-2011.03$ vim arch/arm/cpu/arm920t/start.S
# define LOCKTIME 0x4C000000
# define MPLLCON 0x4C000004
# define UPLLCON 0x4C000008
# define CLKDIV_VAL 5
# define M_MDIV 0x7f /* XTal=12.0MHz MPLL=405MHz */
# define M_PDIV 2
# define M_SDIV 1
# define U_MDIV 0x38 /* XTal=12.0MHz UPLL=48MHz */
# define U_PDIV 2
# define U_SDIV 2
ldr r1, =0x7fff
ldr r0, =INTSUBMSK
str r1, [r0]
ldr r0,=LOCKTIME /* config U_LTIME and M_LTIME */
ldr r1,=0x0fff0fff
str r1,[r0]
ldr r0, =CLKDIVN /* Fclk:Hclk:Pclk = 1:4:8 */
ldr r1, =CLKDIV_VAL
str r1, [r0]
mrc p15, 0, r0, c1, c0, 0 /* asynchronous bus mode */
orr r0, r0, #0xc0000000
mcr p15, 0, r0, c1, c0, 0
ldr r0,=UPLLCON /* config UPLL */
ldr r1,=((U_MDIV<<12) + (U_PDIV<<4) + U_SDIV)
str r1,[r0]
nop /* to ensure finishing the operation, wait 7 clocks */
nop
nop
nop
nop
nop
nop
ldr r0,=MPLLCON /* config MPLL */
ldr r1,=((M_MDIV<<12) + (M_PDIV<<4) + M_SDIV)
str r1,[r0]
#else
/* FCLK:HCLK:PCLK = 1:2:4 */
/* default FCLK is 120 MHz ! */
ldr r0, =CLKDIVN
mov r1, #3
str r1, [r0]
#endif /* CONFIG_S3C2440 */
开发板文件修改:
host@debian:~/soft/mini2440/u-boot-2011.03$ vim board/friendlyarm/mini2440/mini2440.c
#define FCLK_SPEED 2
#elif FCLK_SPEED==1 /* Fout = 202.8MHz */
#define M_MDIV 0xA1
#define M_PDIV 0x3
#define M_SDIV 0x1
#elif FCLK_SPEED==2 /* Fout = 405MHz */
#define M_MDIV 0x7F
#define M_PDIV 0x2
#define M_SDIV 0x1
#endif
#define USB_CLOCK 2
#elif USB_CLOCK==1
#define U_M_MDIV 0x48
#define U_M_PDIV 0x3
#define U_M_SDIV 0x2
#elif USB_CLOCK==2 /* Fout = 48MHz */
#define U_M_MDIV 0x38
#define U_M_PDIV 0x2
#define U_M_SDIV 0x2
#endif
int board_init (void)
{
......
gd->bd->bi_arch_number = MACH_TYPE_MINI2440;
......
}
int dram_init (void)
{
......
gd->ram_size = PHYS_SDRAM_1_SIZE;
return 0;
}
然后执行编译:
make
然后根据《openocd+jlink为mini2440调试u-boot》配置好openocd,然后在一个控制台下执行下面命令:
sudo openocd -f interface/jlink.cfg -f board/mini2440.cfg
同时打开一个控制台,查看串口信息:
sudo minicom
在另一个控制台下执行下面的命令:
telnet localhost 4444 halt init_2440 load_image /home/host/soft/mini2440/u-boot-2011.03/u-boot.bin 0x33f80000 bin resume 0x33f80000
其中/home/host/soft/mini2440/u-boot-2011.03/u-boot.bin是我的uboot存放路径,根据自己的需要配置成自己电脑上的路径即可。
这时候在串口下会显示下面的信息:
U-Boot 2011.03-00000-g9224c05-dirty (Jun 03 2014 - 16:36:50) DRAM: 64 MiB Flash: 512 KiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: CS8900-0 MINI2440 #
移植(三)添加对dm9000的支持:
删除下面代码:
#define CONFIG_CS8900 /* we have a CS8900 on-board */
#define CONFIG_CS8900_BASE 0x19000300
#define CONFIG_CS8900_BUS16 /* the Linux driver does accesses as shorts */
#define CONFIG_NETMASK 255.255.255.0
#define CONFIG_IPADDR 10.0.0.110
#define CONFIG_SERVERIP 10.0.0.1
添加新代码:
#define CONFIG_CMD_NET
#define CONFIG_DRIVER_DM9000 1
#define CONFIG_DM9000_NO_SROM 1
#define CONFIG_DM9000_BASE 0x20000300
#define DM9000_IO CONFIG_DM9000_BASE
#define DM9000_DATA (CONFIG_DM9000_BASE + 4)
#define CONFIG_CMD_PING
#define CONFIG_ETHADDR 08:00:3e:26:0a:5b
#define CONFIG_NETMASK 255.255.255.0
#define CONFIG_IPADDR 192.168.211.25
#define CONFIG_SERVERIP 192.168.211.2
host@debian:~/soft/mini2440/u-boot-2011.03$ vim board/friendlyarm/mini2440/mini2440.c
在board_eth_init函数中返回语句前添加代码:
#ifdef CONFIG_DRIVER_DM9000
rc = dm9000_initialize(bis);
#endif
host@debian:~/soft/mini2440/u-boot-2011.03$ vim arch/arm/lib/eabi_compat.c
修改如下代码:
int raise (int signum)
{
#ifdef CONFIG_MINI2440
printf("raise: Signal # %d caught\n", signum);
#endif
return 0;
}
此时再次进行编译,然后按照上面步骤烧写到mini2440,控制台可以得到如下信息:
U-Boot 2011.03-00000-g5ad0f7d-dirty (Jun 03 2014 - 17:09:47) DRAM: 64 MiB Flash: 512 KiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: dm9000 MINI2440 # ping 192.168.211.2 dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b could not establish link Using dm9000 device
然后就冻结在这个地方 。
修改drivers/net/dm9000.c
#ifndef CONFIG_MINI2440
i = 0;
while (!(phy_read(1) & 0x20)) { /* autonegation complete bit */
udelay(1000);
i++;
if (i == 10000) {
printf("could not establish link\n");
return 0;
}
}
#endif
static void dm9000_halt(struct eth_device *netdev)
{
DM9000_DBG("%s\n", __func__);
#ifndef CONFIG_MINI2440
/* RESET devie */
phy_write(0, 0x8000); /* PHY RESET */
DM9000_iow(DM9000_GPR, 0x01); /* Power-Down PHY */
DM9000_iow(DM9000_IMR, 0x80); /* Disable all interrupt */
DM9000_iow(DM9000_RCR, 0x00); /* Disable RX */
#endif
}
然后按照上面步骤重新编译并将生成u-boot加载到mini2440的内存启动,执行ping 192.168.211.2。
但是第一次执行ping仍然是停留很久,我就把命令取消掉(ctrl+c),然后重新执行ping 192.168.211.2,这次得到下面信息:
MINI2440 # ping 192.168.211.2 dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b operating at unknown: 0 mode Using dm9000 device host 192.168.211.2 is alive
好像很多人也遇到过类似bug,等到后面再来解决这个问题。
移植(四)添加对内核启动的支持:
host@debian:~/soft/mini2440/u-boot-2011.03$ vim include/configs/mini2440.h
添加四行代码:
#define CONFIG_SETUP_MEMORY_TAGS 1
#define CONFIG_INITRD_TAG 1
#define CONFIG_CMDLINE_TAG 1
#define CONFIG_BOOTARGS "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0"
重新编译uboot,并按照上面的步骤加载到mini2440内存并启动。
将mini2440光盘内核源代码编译成uImage(make ARCH=arm uImage),并拷贝到tftp文件夹(tftp配置可以参考我的博文《debian7配置》):
host@debian:~/soft/mini2440/linux-2.6.32.2$ make ARCH=arm uImage host@debian:~/soft/mini2440/linux-2.6.32.2$ cp arch/arm/boot/uImage ~/nfs/tftp/ host@debian:~/soft/mini2440/linux-2.6.32.2$ sudo /etc/init.d/tftpd-hpa restart
然后在uboot下执行命令:
MINI2440 # tftp 30008000 uImage dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b operating at unknown: 0 mode Using dm9000 device TFTP from server 192.168.211.2; our IP address is 192.168.211.25 Filename ‘uImage‘. Load address: 0x30008000 Loading: ################################################################# ################################################################# ######################### done Bytes transferred = 2266620 (2295fc hex) MINI2440 # bootm ## Booting kernel from Legacy Image at 30008000 ... Image Name: Linux-2.6.32.2-FriendlyARM Created: 2014-06-04 0:49:52 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2266556 Bytes = 2.2 MiB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK XIP Kernel Image ... OK OK Starting kernel ...
可惜,执行到"Starting kernel"程序就不再继续向下执行。
之后,我参考了文章 《Linux 内核 Starting kernel ... 串口无输出问题归纳总结》,逐步进行排查,但仍然到"Starting kernel"就停下来了。
然后我参考了文章《Starting kernel ... 内核启动停止问题》,知道了由于uImage在zImage前加载了0x40个字节的文件头,所以实际用tftp加载的地址应该是0x30007fc0,然后再用bootm启动就可以了。
uboot输出信息如下:
U-Boot 2011.03-00000-g51ea5ad-dirty (Jun 04 2014 - 09:16:06) DRAM: 64 MiB Flash: 512 KiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: dm9000 MINI2440 # tftp 30007fc0 uImage dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b operating at unknown: 0 mode Using dm9000 device TFTP from server 192.168.211.2; our IP address is 192.168.211.25 Filename ‘uImage‘. Load address: 0x30007fc0 Loading: ################################################################# ################################################################# ######################### done Bytes transferred = 2273988 (22b2c4 hex) MINI2440 # bootm ## Booting kernel from Legacy Image at 30007fc0 ... Image Name: Linux-2.6.32.2-FriendlyARM Created: 2014-06-04 1:21:48 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2273924 Bytes = 2.2 MiB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux................................................................................................................................................... . Linux version 2.6.32.2-FriendlyARM (host@debian) (gcc version 4.4.3 (ctng-1.6.1) ) #2 Wed Jun 4 09:21:45 CST 2014 CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 CPU: VIVT data cache, VIVT instruction cache Machine: FriendlyARM Mini2440 development board Memory policy: ECC disabled, Data cache writeback CPU S3C2440A (id 0x32440001) S3C24XX Clocks, (c) 2004 Simtec Electronics S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Kernel command line: noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 64MB = 64MB total Memory: 60072KB available (4188K code, 452K data, 156K init, 0K highmem) SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Hierarchical RCU implementation. NR_IRQS:85 irq: clearing subpending status 00000003 irq: clearing subpending status 00000002 Console: colour dummy device 80x30 console [ttySAC0] enabled Calibrating delay loop... 201.93 BogoMIPS (lpj=504832) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 S3C2440: Initialising architecture S3C2440: IRQ Support S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics DMA channel 0 at c4808000, irq 33 DMA channel 1 at c4808040, irq 34 DMA channel 2 at c4808080, irq 35 DMA channel 3 at c48080c0, irq 36 S3C244X: Clock Support, DVS off bio: create slab <bio-0> at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb s3c-i2c s3c2440-i2c: slave address 0x10 s3c-i2c s3c2440-i2c: bus frequency set to 98 KHz s3c-i2c s3c2440-i2c: i2c-0: S3C I2C adapter NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. NetWinder Floating Point Emulator V0.97 (double precision) yaffs Jun 4 2014 09:16:49 Installing. msgmni has been set to 117 alg: No test for stdrng (krng) io scheduler noop registered (default) Console: switching to colour frame buffer device 30x20 fb0: s3c2410fb frame buffer device backlight initialized leds initialized buttons initialized pwm initialized adc initialized s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440 s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440 s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440 loop: module loaded S3C24XX NAND Driver, (c) 2004 Simtec Electronics s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns s3c24xx-nand s3c2440-nand: NAND soft ECC NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit) Scanning device for bad blocks Bad eraseblock 177 at 0x000001620000 Bad eraseblock 823 at 0x0000066e0000 Creating 5 MTD partitions on "NAND 128MiB 3,3V 8-bit": 0x000000000000-0x000000040000 : "supervivi" 0x000000040000-0x000000060000 : "param" 0x000000060000-0x000000560000 : "Kernel" 0x000000560000-0x000040560000 : "root" mtd: partition "root" extends beyond the end of device "NAND 128MiB 3,3V 8-bit" -- size truncated to 0x7aa0000 0x000000000000-0x000040000000 : "nand" mtd: partition "nand" extends beyond the end of device "NAND 128MiB 3,3V 8-bit" -- size truncated to 0x8000000 dm9000 Ethernet Driver, V1.31 eth0: dm9000e at c4814300,c4818304 IRQ 51 MAC: 08:90:90:90:90:90 (chip) ohci_hcd: USB 1.1 ‘Open‘ Host Controller (OHCI) Driver s3c2410-ohci s3c2410-ohci: S3C24XX OHCI s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1 s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000 usb usb1: New USB device found, idVendor=1d6b, idProduct=0001 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: S3C24XX OHCI usb usb1: Manufacturer: Linux 2.6.32.2-FriendlyARM ohci_hcd usb usb1: SerialNumber: s3c24xx usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver ums-alauda usbcore: registered new interface driver ums-cypress usbcore: registered new interface driver ums-datafab usbcore: registered new interface driver ums-freecom usbcore: registered new interface driver ums-isd200 usbcore: registered new interface driver ums-jumpshot usbcore: registered new interface driver ums-karma usbcore: registered new interface driver ums-onetouch usbcore: registered new interface driver ums-sddr09 usbcore: registered new interface driver ums-sddr55 usbcore: registered new interface driver ums-usbat usbcore: registered new interface driver usbserial USB Serial support registered for generic usbcore: registered new interface driver usbserial_generic usbserial: USB Serial Driver core USB Serial support registered for aircable usbcore: registered new interface driver aircable USB Serial support registered for ark3116 usbcore: registered new interface driver ark3116 USB Serial support registered for Belkin / Peracom / GoHubs USB Serial Adapter usbcore: registered new interface driver belkin belkin_sa: v1.2:USB Belkin Serial converter driver USB Serial support registered for ch341-uart usbcore: registered new interface driver ch341 USB Serial support registered for cp210x usbcore: registered new interface driver cp210x cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver USB Serial support registered for Reiner SCT Cyberjack USB card reader usbcore: registered new interface driver cyberjack cyberjack: v1.01 Matthias Bruestle cyberjack: REINER SCT cyberJack pinpad/e-com USB Chipcard Reader Driver USB Serial support registered for DeLorme Earthmate USB USB Serial support registered for HID->COM RS232 Adapter USB Serial support registered for Nokia CA-42 V2 Adapter usbcore: registered new interface driver cypress cypress_m8: v1.09:Cypress USB to Serial Driver USB Serial support registered for Digi 2 port USB adapter USB Serial support registered for Digi 4 port USB adapter usbcore: registered new interface driver digi_acceleport digi_acceleport: v1.80.1.2:Digi AccelePort USB-2/USB-4 Serial Converter driver USB Serial support registered for Edgeport 2 port adapter USB Serial support registered for Edgeport 4 port adapter USB Serial support registered for Edgeport 8 port adapter USB Serial support registered for EPiC device usbcore: registered new interface driver io_edgeport io_edgeport: v2.7:Edgeport USB Serial Driver USB Serial support registered for Edgeport TI 1 port adapter USB Serial support registered for Edgeport TI 2 port adapter usbcore: registered new interface driver io_ti io_ti: v0.7mode043006:Edgeport USB Serial Driver USB Serial support registered for empeg usbcore: registered new interface driver empeg empeg: v1.2:USB Empeg Mark I/II Driver USB Serial support registered for FTDI USB Serial Device usbcore: registered new interface driver ftdi_sio ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver USB Serial support registered for funsoft usbcore: registered new interface driver funsoft USB Serial support registered for Garmin GPS usb/tty usbcore: registered new interface driver garmin_gps garmin_gps: v0.33:garmin gps driver USB Serial support registered for hp4X usbcore: registered new interface driver hp4X hp4x: v1.00:HP4x (48/49) Generic Serial driver USB Serial support registered for PocketPC PDA usbcore: registered new interface driver ipaq ipaq: v0.5:USB PocketPC PDA driver USB Serial support registered for IPWireless converter usbcore: registered new interface driver ipwtty ipw: v0.3:IPWireless tty driver USB Serial support registered for IR Dongle usbcore: registered new interface driver ir-usb ir_usb: v0.4:USB IR Dongle driver USB Serial support registered for iuu_phoenix usbcore: registered new interface driver iuu_phoenix iuu_phoenix: v0.11:Infinity USB Unlimited Phoenix driver USB Serial support registered for Keyspan - (without firmware) USB Serial support registered for Keyspan 1 port adapter USB Serial support registered for Keyspan 2 port adapter USB Serial support registered for Keyspan 4 port adapter usbcore: registered new interface driver keyspan keyspan: v1.1.5:Keyspan USB to Serial Converter Driver USB Serial support registered for Keyspan PDA USB Serial support registered for Keyspan PDA - (prerenumeration) USB Serial support registered for Xircom / Entregra PGS - (prerenumeration) usbcore: registered new interface driver keyspan_pda keyspan_pda: v1.1:USB Keyspan PDA Converter driver USB Serial support registered for KL5KUSB105D / PalmConnect usbcore: registered new interface driver kl5kusb105d kl5kusb105: v0.3a:KLSI KL5KUSB105 chipset USB->Serial Converter driver USB Serial support registered for KOBIL USB smart card terminal usbcore: registered new interface driver kobil kobil_sct: 21/05/2004:KOBIL USB Smart Card Terminal Driver (experimental) USB Serial support registered for MCT U232 usbcore: registered new interface driver mct_u232 mct_u232: z2.1:Magic Control Technology USB-RS232 converter driver USB Serial support registered for Moschip 2 port adapter mos7720: 1.0.0.4F:Moschip USB Serial Driver usbcore: registered new interface driver moschip7720 USB Serial support registered for Moschip 7840/7820 USB Serial Driver mos7840: 1.3.2:Moschip 7840/7820 USB Serial Driver usbcore: registered new interface driver mos7840 USB Serial support registered for moto-modem usbcore: registered new interface driver moto-modem USB Serial support registered for navman usbcore: registered new interface driver navman USB Serial support registered for ZyXEL - omni.net lcd plus usb usbcore: registered new interface driver omninet omninet: v1.1:USB ZyXEL omni.net LCD PLUS Driver USB Serial support registered for opticon usbcore: registered new interface driver opticon USB Serial support registered for GSM modem (1-port) usbcore: registered new interface driver option option: v0.7.2:USB Driver for GSM modems USB Serial support registered for oti6858 usbcore: registered new interface driver oti6858 USB Serial support registered for pl2303 usbcore: registered new interface driver pl2303 pl2303: Prolific PL2303 USB to serial adaptor driver USB Serial support registered for Qualcomm USB modem usbcore: registered new interface driver qcserial safe_serial: v0.0b:USB Safe Encapsulated Serial USB Serial support registered for safe_serial usbcore: registered new interface driver safe_serial USB Serial support registered for siemens_mpi usbcore: registered new interface driver siemens_mpi Driver for Siemens USB/MPI adapter Version 0.1 09/26/2005 Thomas Hergenhahn@web.de http://libnodave.sf.net USB Serial support registered for Sierra USB modem usbcore: registered new interface driver sierra sierra: v.1.3.8:USB Driver for Sierra Wireless USB modems USB Serial support registered for SPCP8x5 usbcore: registered new interface driver spcp8x5 spcp8x5: v0.04:SPCP8x5 USB to serial adaptor driver USB Serial support registered for symbol usbcore: registered new interface driver symbol USB Serial support registered for TI USB 3410 1 port adapter USB Serial support registered for TI USB 5052 2 port adapter usbcore: registered new interface driver ti_usb_3410_5052 ti_usb_3410_5052: v0.9:TI USB 3410/5052 Serial Driver USB Serial support registered for Handspring Visor / Palm OS USB Serial support registered for Sony Clie 3.5 USB Serial support registered for Sony Clie 5.0 usbcore: registered new interface driver visor visor: USB HandSpring Visor / Palm OS driver USB Serial support registered for Connect Tech - WhiteHEAT - (prerenumeration) USB Serial support registered for Connect Tech - WhiteHEAT usbcore: registered new interface driver whiteheat whiteheat: v2.0:USB ConnectTech WhiteHEAT driver mice: PS/2 mouse device common for all mice s3c2410 TouchScreen successfully loaded input: s3c2410 TouchScreen as /devices/virtual/input/input0 S3C24XX RTC, (c) 2004,2006 Simtec Electronics s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0 i2c /dev entries driver Linux video capture interface: v2.00 gspca: main v2.7.0 registered usbcore: registered new interface driver conex conex: registered usbcore: registered new interface driver etoms etoms: registered usbcore: registered new interface driver finepix finepix: registered usbcore: registered new interface driver jeilinj jeilinj: registered usbcore: registered new interface driver mars mars: registered usbcore: registered new interface driver mr97310a mr97310a: registered usbcore: registered new interface driver ov519 ov519: registered usbcore: registered new interface driver ov534 ov534: registered usbcore: registered new interface driver pac207 pac207: registered usbcore: registered new interface driver pac7311 pac7311: registered usbcore: registered new interface driver sn9c20x sn9c20x: registered usbcore: registered new interface driver sonixb sonixb: registered usbcore: registered new interface driver sonixj sonixj: registered usbcore: registered new interface driver spca500 spca500: registered usbcore: registered new interface driver spca501 spca501: registered usbcore: registered new interface driver spca505 spca505: registered usbcore: registered new interface driver spca506 spca506: registered usbcore: registered new interface driver spca508 spca508: registered usbcore: registered new interface driver spca561 spca561: registered usbcore: registered new interface driver sq905 sq905: registered usbcore: registered new interface driver sq905c sq905c: registered usbcore: registered new interface driver sunplus sunplus: registered usbcore: registered new interface driver stk014 stk014: registered usbcore: registered new interface driver t613 t613: registered usbcore: registered new interface driver tv8532 tv8532: registered usbcore: registered new interface driver vc032x vc032x: registered usbcore: registered new interface driver zc3xx zc3xx: registered usbcore: registered new interface driver ALi m5602 ALi m5602: registered usbcore: registered new interface driver STV06xx STV06xx: registered gspca_gl860: driver startup - version 0.9d10 usbcore: registered new interface driver gspca_gl860 gspca_gl860: driver registered usbcore: registered new interface driver uvcvideo USB Video Class driver (v0.1.0) initializing s3c2440 camera interface...... s3c2440 camif init done Loading OV9650 driver......... SCCB address 0x60, manufacture ID 0xFFFF, expect 0x7FA2 SCCB address 0x60, manufacture ID 0xFFFF, expect 0x7FA2 No OV9650 found!!! S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled s3c-sdi s3c2440-sdi: powered down. s3c-sdi s3c2440-sdi: mmc0 - using pio, sw SDIO IRQ usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.21. No device for DAI UDA134X No device for DAI s3c24xx-i2s S3C24XX_UDA134X SoC Audio driver UDA134X SoC Audio Codec asoc: UDA134X <-> s3c24xx-i2s mapping ok ALSA device list: #0: S3C24XX_UDA134X (UDA134X) TCP cubic registered NET: Registered protocol family 17 s3c2410-rtc s3c2410-rtc: setting system clock to 2132-04-03 12:01:14 UTC (825312778) yaffs: dev is 32505859 name is "mtdblock3" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.3, "mtdblock3" yaffs: auto selecting yaffs2 block 135 is bad block 781 is bad yaffs_read_super: isCheckpointed 0 VFS: Mounted root (yaffs filesystem) on device 31:3. Freeing init memory: 156K Warning: unable to open an initial console. Failed to execute /linuxrc. Attempting defaults... Kernel panic - not syncing: No init found. Try passing init= option to kernel. Backtrace: [<c00341d0>] (dump_backtrace+0x0/0x10c) from [<c032bb98>] (dump_stack+0x18/0x1c) r7:00000000 r6:00000000 r5:c001f5a4 r4:c0483e30 [<c032bb80>] (dump_stack+0x0/0x1c) from [<c032bbe8>] (panic+0x4c/0x11c) [<c032bb9c>] (panic+0x0/0x11c) from [<c002f598>] (init_post+0xa8/0x10c) r3:00000000 r2:c38fe000 r1:c38fe100 r0:c03dd7dc [<c002f4f0>] (init_post+0x0/0x10c) from [<c0008634>] (kernel_init+0xe4/0x114) r5:c001f5a4 r4:c04835c0 [<c0008550>] (kernel_init+0x0/0x114) from [<c004d914>] (do_exit+0x0/0x620) r5:00000000 r4:00000000
信息最后内核挂掉是因为我在之前将nand flash全部擦除,所以nand flash中没有任何文件系统,也不存在/linuxrc文件,从而导致系统崩溃。
现在我关心的是uboot,所以这个问题暂时不管它,不过可以考虑在uboot中添加nfs命令后用nfs启动跟文件系统。