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 
删除两行内容:
#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
# if defined(CONFIG_S3C2440)
# 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 ", 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 ");
             return 0;
         }
     }
#endif

 static void dm9000_halt(struct eth_device *netdev)
{
    DM9000_DBG("%s ", __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启动跟文件系统。

原文地址:https://www.cnblogs.com/qiaoqiao2003/p/3765917.html