http://zhuairlunjj.blog.163.com/blog/static/80050945201071395832970/

U-boot分区及内核更新的实现

一 问题 提出

1) 在没有网络的环境下可以使用U盘等存储介质来更新内核

2) 可以通过网络远程更新内核

3) 支持U-Boot对nor falsh ,nand flash的分区

4) U-Boot下对JFFS2文件系统的支持。

二 问题解决

通过实现U-boot使用JFFS2文件系统加载内核的方法解决上述内核更新及分区问题

三 问题实现(u-boot-2009.01)

添加对JFFS2文件系统支持的宏定义

./include/configs/ads5121.h

#define CONFIG_CMD_JFFS2

#define CONFIG_JFFS2_CMDLINE

#define CONFIG_JFFS2_NAND

//定义默认的分区信息(最好和内核定义的MTD分区信息一致)

#define MTDIDS_DEFAULT          "nor0=ads5121-flash,nand0=ads5121-nand"

#define MTDPARTS_DEFAULT        "mtdparts=ads5121-flash:256k(protected)," \

"59904k(filesystem)," \

"4m(kernel)," \

"256k(device-tree)," \

"1m(u-boot);" \

"ads5121-nand:128m(jffs2)," \

"-(data)"

四 U-Boot分区及更新操作步骤

CPU:   MPC5121e rev. 2.0, Core e300c4 at 400 MHz, CSB at 200 MHz

Board: ADS5121 rev. 0x0400 (CPLD rev. 0x06)

I2C:   ready

DRAM:  512 MB

FLASH: 64 MB

NAND:  1024 MiB

PCI:   Bus Dev VenId DevId Class Int

Net:   FEC ETHERNET

IDE:   Bus 0: not available

Type "run flash_nfs" to mount root filesystem over NFS

Hit any key to stop autoboot:  0

1 分区操作
1)手动设置分区信息

setenv mtdids nand0=ads5121-nand

setenv mtdparts mtdparts=ads5121-nand:128m(jffs2 filesystem),4m(kernel),1m(device tree),-(data)

=> mtdparts

no such device nor0

device nand0 <ads5121-nand>, # parts = 4

#: name                        size            offset          mask_flags

0: jffs2 filesystem    0x08000000      0x00000000      0

1: kernel              0x00400000      0x08000000      0

2: device tree         0x00100000      0x08400000      0

3: data                0x17b00000      0x08500000      0

active partition: nand0,0 - (jffs2 filesystem) 0x08000000 @ 0x00000000

defaults:

mtdids  : nor0=ads5121-flash,nand0=ads5121-nand

mtdparts: mtdparts=ads5121-flash:256k(protected),59904k(filesystem),4m(kernel),256k(device-tree),1m(u-boot);ads5121-nand:128m(jffs2),-(data)

2)设置默认的分区信息

=> mtdparts default

=> mtdparts

device nor0 <ads5121-flash>, # parts = 5

#: name                        size            offset          mask_flags

0: protected           0x00040000      0x00000000      0

1: filesystem          0x03a80000      0x00040000      0

2: kernel              0x00400000      0x03ac0000      0

3: device-tree         0x00040000      0x03ec0000      0

4: u-boot              0x00100000      0x03f00000      0

device nand0 <ads5121-nand>, # parts = 2

#: name                        size            offset          mask_flags

0: jffs2               0x08000000      0x00000000      0

1: data                0x18000000      0x08000000      0

active partition: nor0,0 - (protected) 0x00040000 @ 0x00000000

defaults:

mtdids  : nor0=ads5121-flash,nand0=ads5121-nand

mtdparts: mtdparts=ads5121-flash:256k(protected),59904k(filesystem),4m(kernel),256k(device-tree),1m(u-boot);ads5121-nand:128m(jffs2),-(data)

=>

3)删除分区:

=> mtd del nand0,1

=> mtdparts

device nor0 <ads5121-flash>, # parts = 5

#: name                        size            offset          mask_flags

0: protected           0x00040000      0x00000000      0

1: filesystem          0x03a80000      0x00040000      0

2: kernel              0x00400000      0x03ac0000      0

3: device-tree         0x00040000      0x03ec0000      0

4: u-boot              0x00100000      0x03f00000      0

device nand0 <ads5121-nand>, # parts = 1

#: name                        size            offset          mask_flags

0: jffs2               0x08000000      0x00000000      0

active partition: nor0,0 - (protected) 0x00040000 @ 0x00000000

defaults:

mtdids  : nor0=ads5121-flash,nand0=ads5121-nand

mtdparts: mtdparts=ads5121-flash:256k(protected),59904k(filesystem),4m(kernel),256k(device-tree),1m(u-boot);ads5121-nand:128m(jffs2),-(data)

=>

4)添加一个分区

=> mtdparts add nand0 0x18000000@0x08000000 data

=> mtdparts

device nor0 <ads5121-flash>, # parts = 5

#: name                        size            offset          mask_flags

0: protected           0x00040000      0x00000000      0

1: filesystem          0x03a80000      0x00040000      0

2: kernel              0x00400000      0x03ac0000      0

3: device-tree         0x00040000      0x03ec0000      0

4: u-boot              0x00100000      0x03f00000      0

device nand0 <ads5121-nand>, # parts = 2

#: name                        size            offset          mask_flags

0: jffs2               0x08000000      0x00000000      0

1: data                0x18000000      0x08000000      0

active partition: nor0,0 - (protected) 0x00040000 @ 0x00000000

defaults:

mtdids  : nor0=ads5121-flash,nand0=ads5121-nand

mtdparts: mtdparts=ads5121-flash:256k(protected),59904k(filesystem),4m(kernel),256k(device-tree),1m(u-boot);ads5121-nand:128m(jffs2),-(data)

=>

5)修改当前活动分区(如果要操作某个分区,就需要将其修改为当前的活动分区)

=> chpart nand0,0

partition changed to nand0,0

=> mtdparts

device nor0 <ads5121-flash>, # parts = 5

#: name                        size            offset          mask_flags

0: protected           0x00040000      0x00000000      0

1: filesystem          0x03a80000      0x00040000      0

2: kernel              0x00400000      0x03ac0000      0

3: device-tree         0x00040000      0x03ec0000      0

4: u-boot              0x00100000      0x03f00000      0

device nand0 <ads5121-nand>, # parts = 2

#: name                        size            offset          mask_flags

0: jffs2               0x08000000      0x00000000      0

1: data                0x18000000      0x08000000      0

active partition: nand0,0 - (jffs2) 0x08000000 @ 0x00000000

defaults:

mtdids  : nor0=ads5121-flash,nand0=ads5121-nand

mtdparts: mtdparts=ads5121-flash:256k(protected),59904k(filesystem),4m(kernel),256k(device-tree),1m(u-boot);ads5121-nand:128m(jffs2),-(data)

=>

2 更新内核
1)下载新内核到根文件系统

Linux内核将NAND Flash设置了2个分区作为MTD设备:

[root@root /]# cat /proc/mtd

dev:    size   erasesize  name

mtd0: 08000000 00020000 "nand0,128M"

mtd1: 38000000 00020000 "nand0,896M"

分区0:128M,分区1:896M, 分区0是用作存放jffs2等文件系统,分区1作为其他存储用途。我们可以通过网络或者U盘等方法将需要更新的内核下载到linux的根文件系统中:

[root@root /]# ll

drwxr-xr-x    2 root     root            0 Oct 23 09:14 Settings

drwxr-xr-x    2 root     root            0 Nov 25 08:56 bin

drwxr-xr-x    2 root     root            0 Oct 23 08:07 boot

drwxr-xr-x    9 root     root        12720 Nov 26 13:41 dev

drwxr-xr-x    8 root     root            0 Nov 26 13:38 etc

drwxr-xr-x    4 root     root            0 Oct 26 10:03 home

drwxr-xr-x    4 root     root            0 Oct 23 08:07 lib

lrwxrwxrwx    1 root     root           11 Nov 25 08:56 linuxrc -> bin/busybox

drwxr-xr-x    7 root     root            0 Oct 23 08:07 mnt

drwxr-xr-x    3 root     root            0 Oct 23 08:07 opt

dr-xr-xr-x   37 root     root            0 Jan  1  1970 proc

drwxr-xr-x    2 root     root            0 Oct 23 08:07 root

drwxr-xr-x    2 root     root            0 Nov 25 08:56 sbin

drwxr-xr-x   11 root     root            0 Jan  1  1970 sys

drwxr-xr-x    2 root     root         4096 Jan  1  1970 tmp

-rwxrwxrwx    1 root     root      1702205 Nov 17 02:43 uImage_ori

-rwxr-xr-x    1 root     root      1644439 Nov 26 13:41 uImage_update

drwxr-xr-x   11 root     root            0 Nov 13 06:23 usr

drwxr-xr-x   11 root     root          220 Oct 23 08:07 var

[root@root /]#

例如我们要更新才新内核文件为:uImage_update

2)设置激活分区

进入到U-Boot:

U-Boot 2009.03 (11月 25 2009 - 21:22:45) MPC512X

CPU:   MPC5121e rev. 2.0, Core e300c4 at 400 MHz, CSB at 200 MHz

Board: ADS5121 rev. 0x0400 (CPLD rev. 0x06)

I2C:   ready

DRAM:  512 MB

FLASH: 64 MB

NAND:  1024 MiB

PCI:   Bus Dev VenId DevId Class Int

Net:   FEC ETHERNET

IDE:   Bus 0: not available

Type "run flash_nfs" to mount root filesystem over NFS

Hit any key to stop autoboot:  0

=> mtdparts default

=> mtdparts

device nor0 <ads5121-flash>, # parts = 5

#: name                        size            offset          mask_flags

0: protected           0x00040000      0x00000000      0

1: filesystem          0x03a80000      0x00040000      0

2: kernel              0x00400000      0x03ac0000      0

3: device-tree         0x00040000      0x03ec0000      0

4: u-boot              0x00100000      0x03f00000      0

(注意我们的NAND Flash分区和内核的MTD分区是保持一致的。)

device nand0 <ads5121-nand>, # parts = 2

#: name                        size            offset          mask_flags

0: jffs2               0x08000000      0x00000000      0

1: data                0x18000000      0x08000000      0

active partition: nor0,0 - (protected) 0x00040000 @ 0x00000000

defaults:

mtdids  : nor0=ads5121-flash,nand0=ads5121-nand

mtdparts: mtdparts=ads5121-flash:256k(protected),59904k(filesystem),4m(kernel),256k(device-tree),1m(u-boot);ads5121-nand:128m(jffs2),-(data)

=> ls

Scanning JFFS2 FS:  done.

修改当前的活动分区,因为我们要操作的是nand0 的第一个分区(存放有根文件系统同时包含有我们需要更新的内核uImage_update。

=> chpart nand0,0

partition changed to nand0,0

=> mtdparts

device nor0 <ads5121-flash>, # parts = 5

#: name                        size            offset          mask_flags

0: protected           0x00040000      0x00000000      0

1: filesystem          0x03a80000      0x00040000      0

2: kernel              0x00400000      0x03ac0000      0

3: device-tree         0x00040000      0x03ec0000      0

4: u-boot              0x00100000      0x03f00000      0

device nand0 <ads5121-nand>, # parts = 2

#: name                        size            offset          mask_flags

0: jffs2               0x08000000      0x00000000      0

1: data                0x18000000      0x08000000      0

active partition: nand0,0 - (jffs2) 0x08000000 @ 0x00000000

defaults:

mtdids  : nor0=ads5121-flash,nand0=ads5121-nand

mtdparts: mtdparts=ads5121-flash:256k(protected),59904k(filesystem),4m(kernel),256k(device-tree),1m(u-boot);ads5121-nand:128m(jffs2),-(data)

=>

3)下载更新内核

查看NAND Flash第一分区上存放的JFFS2文件系统内容:

=> ls

Scanning JFFS2 FS: .......................... done.

drwxr-xr-x        0 Fri Oct 23 09:14:40 2009 Settings

drwxr-xr-x        0 Fri Oct 23 08:07:46 2009 bin

drwxr-xr-x        0 Fri Oct 23 08:07:50 2009 boot

drwxr-xr-x        0 Fri Oct 23 08:08:34 2009 dev

drwxr-xr-x        0 Mon Oct 26 10:12:52 2009 etc

drwxr-xr-x        0 Mon Oct 26 09:09:47 2009 home

drwxr-xr-x        0 Fri Oct 23 08:07:49 2009 lib

lrwxrwxrwx       11 Wed Nov 25 08:56:18 2009 linuxrc -> bin/busybox

drwxr-xr-x        0 Fri Oct 23 08:07:50 2009 mnt

drwxr-xr-x        0 Fri Oct 23 08:07:46 2009 opt

drwxr-xr-x        0 Fri Oct 23 08:07:46 2009 proc

drwxr-xr-x        0 Fri Oct 23 08:07:50 2009 root

drwxr-xr-x        0 Fri Oct 23 08:07:50 2009 sbin

drwxr-xr-x        0 Fri Oct 23 08:07:50 2009 sys

drwxr-xr-x        0 Mon Oct 26 10:17:02 2009 tmp

-rwxrwxrwx  1702205 Tue Nov 17 02:43:01 2009 uImage_ori

drwxr-xr-x        0 Fri Oct 23 08:07:49 2009 usr

drwxr-xr-x        0 Fri Oct 23 08:07:50 2009 var

-rwxr-xr-x  1644439 Thu Nov 26 13:41:38 2009 uimage

-rwxr-xr-x  1644439 Thu Nov 26 13:41:38 2009 uImage

-rwxr-xr-x  1644439 Thu Nov 26 13:41:38 2009 uImage_update

=>

=> fsload 0x400000 uImage_update

### JFFS2 loading 'uImage_update' to 0x400000

### JFFS2 load complete: 1644439 bytes loaded to 0x400000

4)烧写新内核到nor flash

查看nor flash分区:

device nor0 <ads5121-flash>, # parts = 5

#: name                        size            offset          mask_flags

0: protected           0x00040000      0x00000000      0

1: filesystem          0x03a80000      0x00040000      0

2: kernel              0x00400000      0x03ac0000      0

3: device-tree         0x00040000      0x03ec0000      0

4: u-boot              0x00100000      0x03f00000      0

我们将分区2作为存放内核,可以算出物理基址为:ffac0000

=> erase ffac0000 ffcfffff

......... done

Erased 9 sectors

=> cp.b 0x400000  0xffac0000 0x200000

Copy to Flash... done

5)从内存中启动新下载的内核

=> bootm 0x400000 - 0xffec0000

## Booting kernel from Legacy Image at 00400000 ...

Image Name:   Linux-2.6.24.6

Created:      2009-11-26   5:36:51 UTC

Image Type:   PowerPC Linux Kernel Image (gzip compressed)

Data Size:    1644375 Bytes =  1.6 MB

Load Address: 00000000

Entry Point:  00000000

Verifying Checksum ... OK

## Flattened Device Tree blob at ffec0000

Booting using the fdt blob at 0xffec0000

Uncompressing Kernel Image ... OK

Loading Device Tree to 007fb000, end 007ffa2f ... OK

[    0.000000] Using MPC5121 ADS machine description

[    0.000000] Linux version 2.6.24.6 (root@localhost.localdomain) (gcc version 4.1.2) #12 PREEMPT Thu Nov 26 00:36:46 EST 2009

[    0.000000] MPC5121 ADS board from Freescale Semiconductor

[    0.000000] preallocate_diu_videomemory: diu_size=5242880

[    0.000000] preallocate_diu_videomemory: diu_mem=c0a00000

[    0.000000] Found MPC512x PCI host bridge at 0x0000000080008500. Firmware bus number: 0->0

[    0.000000] Zone PFN ranges:

[    0.000000]   DMA             0 ->   131072

[    0.000000]   Normal     131072 ->   131072

[    0.000000] Movable zone start PFN for each node

[    0.000000] early_node_map[1] active PFN ranges

[    0.000000]     0:        0 ->   131072

[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048

[    0.000000] Kernel command line: root=/dev/mtdblock0 rw rootfstype=jffs2 console=ttyPSC0,115200

[    0.000000] IPIC (128 IRQ sources) at fcff7c00

[    0.000000] PID hash table entries: 2048 (order: 11, 8192 bytes)

[ 1460.288919] clocksource: timebase mult[5000002] shift[22] registered

[ 1460.289062] Console: colour dummy device 80x25

[ 1460.289166] console [ttyPSC0] enabled

[ 1460.397027] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

[ 1460.406733] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

[ 1460.465862] Memory: 508544k/524288k available (3276k kernel code, 15536k reserved, 148k data, 369k bss, 184k init)

[ 1460.476258] SLUB: Genslabs=9, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1

[ 1460.563885] Mount-cache hash table entries: 512

[ 1460.570856] net_namespace: 64 bytes

[ 1460.576217] NET: Registered protocol family 16

[ 1460.593330] Reserved irq 66(0x42) for MBX

[ 1460.599847] Could not initialize clk spdif_txclk without a calc routine

[ 1460.606549] Could not initialize clk spdif_rxclk without a calc routine

[ 1460.613459] mapped ioctl to e1002000 and gpioctl to e1004100

[ 1460.619119] PCI: Probing PCI hardware

[ 1460.631440] SCSI subsystem initialized

[ 1460.636450] usbcore: registered new interface driver usbfs

[ 1460.642439] usbcore: registered new interface driver hub

[ 1460.648065] usbcore: registered new device driver usb

[ 1460.668033] NET: Registered protocol family 2

[ 1460.672333] Time: timebase clocksource has been installed.

[ 1460.716619] IP route cache hash table entries: 16384 (order: 4, 65536 bytes)

[ 1460.725179] TCP established hash table entries: 65536 (order: 7, 524288 bytes)

[ 1460.736154] TCP bind hash table entries: 65536 (order: 6, 262144 bytes)

[ 1460.744924] TCP: Hash tables configured (established 65536 bind 65536)

[ 1460.751398] TCP reno registered

[ 1460.766726] JFFS2 version 2.2. (NAND) ? 2001-2006 Red Hat, Inc.

[ 1460.773027] io scheduler noop registered

[ 1460.776906] io scheduler anticipatory registered (default)

[ 1460.782367] io scheduler deadline registered

[ 1460.786671] io scheduler cfq registered

[ 1460.833534] Console: switching to colour frame buffer device 128x48

[ 1460.875966] fb0: Panel0 fb device registered successfully.

[ 1460.881944] fb1: Panel1 AOI0 fb device registered successfully.

[ 1460.888286] fb2: Panel1 AOI1 fb device registered successfully.

[ 1460.894657] fb3: Panel2 AOI0 fb device registered successfully.

[ 1460.901024] fb4: Panel2 AOI1 fb device registered successfully.

[ 1460.907066] FSL_DIU_FB: registed FB device driver!

[ 1461.157873] Serial: MPC52xx PSC UART driver

[ 1461.162508] 80011300.serial: ttyPSC0 at MMIO 0x80011300 (irq = 40) is a MPC52xx PSC

[ 1461.171261] 80011400.serial: ttyPSC1 at MMIO 0x80011400 (irq = 40) is a MPC52xx PSC

[ 1461.180919] RAMDISK driver initialized: 4 RAM disks of 16384K size 1024 blocksize

[ 1461.189583] fsl-mscan initializing

[ 1461.194575] fsl-mscan fsl-mscan.0: probe port 0xE1062300 done, clk rate:100000000

[ 1461.203712] fsl-mscan fsl-mscan.1: probe port 0xE1064380 done, clk rate:100000000

[ 1461.213190] eth0: fs_enet: 00:ec:00:12:00:01

[ 1461.218480] FEC MII Bus: probed

[ 1461.221656] Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

[ 1461.227990] ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

[ 1461.237336] Driver 'sd' needs updating - please use bus_type methods

[ 1461.244449] MPC5121 MTD nand Driver 0.2

[ 1461.249116] NAND device: Manufacturer ID: 0xad, Chip ID: 0xdc (Hynix NAND 512MiB 3,3V 8-bit)

[ 1461.257574] 2 NAND chips detected

[ 1461.263636] mpc5121r2nfc 40000000.nfc: Using OF partition info

[ 1461.269627] Creating 2 MTD partitions on "NAND":

[ 1461.274209] 0x00000000-0x08000000 : "nand0,128M"

[ 1461.279780] 0x08000000-0x40000000 : "nand0,896M"

[ 1461.287204] fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller

[ 1461.294203] fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1

[ 1461.324401] fsl-ehci fsl-ehci.0: irq 44, io mem 0x80004000

[ 1461.340366] fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004

[ 1461.349065] usb usb1: configuration #1 chosen from 1 choice

[ 1461.355003] hub 1-0:1.0: USB hub found

[ 1461.358793] hub 1-0:1.0: 1 port detected

[ 1461.465293] Initializing USB Mass Storage driver...

[ 1461.704388] usb 1-1: new high speed USB device using fsl-ehci and address 2

[ 1461.851809] usb 1-1: configuration #1 chosen from 1 choice

[ 1461.858825] scsi0 : SCSI emulation for USB Mass Storage devices

[ 1461.865316] usbcore: registered new interface driver usb-storage

[ 1461.871549] USB Mass Storage support registered.

[ 1461.876659] mice: PS/2 mouse device common for all mice

[ 1461.882754] mpc5121-rtc 80000a00.rtc: rtc core: registered mpc5121-rtc as rtc0

[ 1461.890173] i2c /dev entries driver

[ 1461.900160] Freescale(R) MPC5121 DMA Engine found, 64 channels

[ 1462.008639] fsldma: Self-test copy successfully

[ 1462.013770] usbcore: registered new interface driver usbhid

[ 1462.019330] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver

[ 1462.025844] TCP cubic registered

[ 1462.029247] NET: Registered protocol family 1

[ 1462.033645] NET: Registered protocol family 17

[ 1462.038040] can: controller area network core (rev 20071116 abi 8)

[ 1462.044236] NET: Registered protocol family 29

[ 1462.048897] can: raw protocol (rev 20071116)

[ 1462.053487] RPC: Registered udp transport module.

[ 1462.058152] RPC: Registered tcp transport module.

[ 1462.063233] mpc5121-rtc 80000a00.rtc: setting system clock to 2009-11-26 14:09:26 UTC (1259244566)

[ 1462.073040] JFFS2 doesn't use OOB.

[ 1472.697943] VFS: Mounted root (jffs2 filesystem).

[ 1472.702763] Freeing unused kernel memory: 184k init

Mounting /proc and /sys

Starting the hotplug events dispatcher udevd

Synthesizing initial hotplug events

Setting the hostname to root

Mounting filesystems

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

Starting syslogd and klogd

Running sysctl

Setting up networking on loopback device:

Setting up networking on eth0:

Starting inetd:

[root@root /]#

[root@root /]# ls

Settings       etc            mnt            sbin           uImage_update

bin            home           opt            sys            usr

boot           lib            proc           tmp            var

dev            linuxrc        root           uImage_ori

从内核的打印信息可以看出我们已经成功的更新了内核。

6)从nor flash中启动新烧写的内核

U-Boot 2009.03 (11月 25 2009 - 21:22:45) MPC512X

CPU:   MPC5121e rev. 2.0, Core e300c4 at 400 MHz, CSB at 200 MHz

Board: ADS5121 rev. 0x0400 (CPLD rev. 0x06)

I2C:   ready

DRAM:  512 MB

FLASH: 64 MB

NAND:  1024 MiB

PCI:   Bus Dev VenId DevId Class Int

Net:   FEC ETHERNET

IDE:   Bus 0: not available

Type "run flash_nfs" to mount root filesystem over NFS

Hit any key to stop autoboot:  0

## Booting kernel from Legacy Image at ffac0000 ...

Image Name:   Linux-2.6.24.6

Created:      2009-11-26   5:36:51 UTC

Image Type:   PowerPC Linux Kernel Image (gzip compressed)

Data Size:    1644375 Bytes =  1.6 MB

Load Address: 00000000

Entry Point:  00000000

Verifying Checksum ... OK

## Flattened Device Tree blob at ffec0000

Booting using the fdt blob at 0xffec0000

Uncompressing Kernel Image ... OK

Loading Device Tree to 007fb000, end 007ffa2f ... OK

[    0.000000] Using MPC5121 ADS machine description

[    0.000000] Linux version 2.6.24.6 (root@localhost.localdomain) (gcc version 4.1.2) #12 PREEMPT Thu Nov 26 00:36:46 EST 2009

[    0.000000] MPC5121 ADS board from Freescale Semiconductor

[    0.000000] preallocate_diu_videomemory: diu_size=5242880

[    0.000000] preallocate_diu_videomemory: diu_mem=c0a00000

[    0.000000] Found MPC512x PCI host bridge at 0x0000000080008500. Firmware bus number: 0->0

[    0.000000] Zone PFN ranges:

[    0.000000]   DMA             0 ->   131072

[    0.000000]   Normal     131072 ->   131072

[    0.000000] Movable zone start PFN for each node

[    0.000000] early_node_map[1] active PFN ranges

[    0.000000]     0:        0 ->   131072

[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048

[    0.000000] Kernel command line: root=/dev/mtdblock0 rw rootfstype=jffs2 console=ttyPSC0,115200

[    0.000000] IPIC (128 IRQ sources) at fcff7c00

[    0.000000] PID hash table entries: 2048 (order: 11, 8192 bytes)

[    0.000010] clocksource: timebase mult[5000002] shift[22] registered

[    0.000154] Console: colour dummy device 80x25

[    0.000256] console [ttyPSC0] enabled

[    0.108108] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

[    0.117851] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

[    0.176872] Memory: 508544k/524288k available (3276k kernel code, 15536k reserved, 148k data, 369k bss, 184k init)

[    0.187255] SLUB: Genslabs=9, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1

[    0.274882] Mount-cache hash table entries: 512

[    0.281868] net_namespace: 64 bytes

[    0.287198] NET: Registered protocol family 16

[    0.304306] Reserved irq 66(0x42) for MBX

[    0.310816] Could not initialize clk spdif_txclk without a calc routine

[    0.317521] Could not initialize clk spdif_rxclk without a calc routine

[    0.324434] mapped ioctl to e1002000 and gpioctl to e1004100

[    0.330093] PCI: Probing PCI hardware

[    0.342369] SCSI subsystem initialized

[    0.347365] usbcore: registered new interface driver usbfs

[    0.353359] usbcore: registered new interface driver hub

[    0.358990] usbcore: registered new device driver usb

[    0.378997] NET: Registered protocol family 2

[    0.383295] Time: timebase clocksource has been installed.

[    0.427587] IP route cache hash table entries: 16384 (order: 4, 65536 bytes)

[    0.436137] TCP established hash table entries: 65536 (order: 7, 524288 bytes)

[    0.447132] TCP bind hash table entries: 65536 (order: 6, 262144 bytes)

[    0.455888] TCP: Hash tables configured (established 65536 bind 65536)

[    0.462362] TCP reno registered

[    0.477663] JFFS2 version 2.2. (NAND) ? 2001-2006 Red Hat, Inc.

[    0.483964] io scheduler noop registered

[    0.487844] io scheduler anticipatory registered (default)

[    0.493305] io scheduler deadline registered

[    0.497606] io scheduler cfq registered

[    0.544454] Console: switching to colour frame buffer device 128x48

[    0.586907] fb0: Panel0 fb device registered successfully.

[    0.592885] fb1: Panel1 AOI0 fb device registered successfully.

[    0.599232] fb2: Panel1 AOI1 fb device registered successfully.

[    0.605598] fb3: Panel2 AOI0 fb device registered successfully.

[    0.611961] fb4: Panel2 AOI1 fb device registered successfully.

[    0.618004] FSL_DIU_FB: registed FB device driver!

[    0.868626] Serial: MPC52xx PSC UART driver

[    0.873254] 80011300.serial: ttyPSC0 at MMIO 0x80011300 (irq = 40) is a MPC52xx PSC

[    0.882000] 80011400.serial: ttyPSC1 at MMIO 0x80011400 (irq = 40) is a MPC52xx PSC

[    0.891674] RAMDISK driver initialized: 4 RAM disks of 16384K size 1024 blocksize

[    0.900339] fsl-mscan initializing

[    0.905331] fsl-mscan fsl-mscan.0: probe port 0xE1062300 done, clk rate:100000000

[    0.914468] fsl-mscan fsl-mscan.1: probe port 0xE1064380 done, clk rate:100000000

[    0.923951] eth0: fs_enet: 00:ec:00:12:00:01

[    0.929250] FEC MII Bus: probed

[    0.932421] Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

[    0.938751] ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

[    0.948123] Driver 'sd' needs updating - please use bus_type methods

[    0.955179] MPC5121 MTD nand Driver 0.2

[    0.959877] NAND device: Manufacturer ID: 0xad, Chip ID: 0xdc (Hynix NAND 512MiB 3,3V 8-bit)

[    0.968370] 2 NAND chips detected

[    0.974412] mpc5121r2nfc 40000000.nfc: Using OF partition info

[    0.980418] Creating 2 MTD partitions on "NAND":

[    0.984984] 0x00000000-0x08000000 : "nand0,128M"

[    0.990570] 0x08000000-0x40000000 : "nand0,896M"

[    0.998018] fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller

[    1.005015] fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1

[    1.035367] fsl-ehci fsl-ehci.0: irq 44, io mem 0x80004000

[    1.051326] fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004

[    1.060019] usb usb1: configuration #1 chosen from 1 choice

[    1.065956] hub 1-0:1.0: USB hub found

[    1.069738] hub 1-0:1.0: 1 port detected

[    1.176257] Initializing USB Mass Storage driver...

[    1.415352] usb 1-1: new high speed USB device using fsl-ehci and address 2

[    1.562650] usb 1-1: configuration #1 chosen from 1 choice

[    1.569648] scsi0 : SCSI emulation for USB Mass Storage devices

[    1.576156] usbcore: registered new interface driver usb-storage

[    1.582390] USB Mass Storage support registered.

[    1.587525] mice: PS/2 mouse device common for all mice

[    1.593616] mpc5121-rtc 80000a00.rtc: rtc core: registered mpc5121-rtc as rtc0

[    1.601034] i2c /dev entries driver

[    1.610959] Freescale(R) MPC5121 DMA Engine found, 64 channels

[    1.719596] fsldma: Self-test copy successfully

[    1.724711] usbcore: registered new interface driver usbhid

[    1.730270] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver

[    1.736784] TCP cubic registered

[    1.740195] NET: Registered protocol family 1

[    1.744596] NET: Registered protocol family 17

[    1.748991] can: controller area network core (rev 20071116 abi 8)

[    1.755189] NET: Registered protocol family 29

[    1.759846] can: raw protocol (rev 20071116)

[    1.764433] RPC: Registered udp transport module.

[    1.769096] RPC: Registered tcp transport module.

[    1.774171] mpc5121-rtc 80000a00.rtc: setting system clock to 2009-11-26 14:13:58 UTC (1259244838)

[    1.783976] JFFS2 doesn't use OOB.

[   12.421437] VFS: Mounted root (jffs2 filesystem).

[   12.426255] Freeing unused kernel memory: 184k init

Mounting /proc and /sys

Starting the hotplug events dispatcher udevd

Synthesizing initial hotplug events

Setting the hostname to root

Mounting filesystems

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

cp: write error: No space left on device

Starting syslogd and klogd

Running sysctl

Setting up networking on loopback device:

Setting up networking on eth0:

Starting inetd:

[root@root /]# ls

Settings       etc            mnt            sbin           uImage_update

bin            home           opt            sys            usr

boot           lib            proc           tmp            var

dev            linuxrc        root           uImage_ori

[root@root /]#

可见下载到nor flash中的内核也是我们更新后的内核。

详解U-boot分区及内核更新的实现相关推荐

  1. android增加内置存储分区,详解Android10的分区存储机制(Scoped Storage)适配教程

    1. 简介 大家应该都有过这样的体会,手机用着用着里面就充斥着各种不懂的文件夹和文件.甚至是连已经删除的软件的文件夹还存在. 为什么会发生的这样的问题呢? 因为google的缺席,导致android生 ...

  2. 【转载】CodeWarrior IDE使用tips之prm链接文件详解(自定义存储器分区以及自定义RAM数据初始化与在RAM中运行函数)...

    CodeWarrior IDE使用tips之prm链接文件详解(自定义存储器分区以及自定义RAM数据初始化与在RAM中运行函数) 2017-08-19 胡恩伟 汽车电子expert成长之路 内容提要 ...

  3. NLP:Transformer的架构详解之详细攻略(持续更新)

    NLP:Transformer的架构详解之详细攻略(持续更新) 目录 Transformer的架构详解 1. Encoder 1.1.Positional Encoding-数据预处理的部分 1.2. ...

  4. android 最新sdk版本,详解如何在Android studio中更新sdk版本和build-tools版本

    一.首先看下Android开发用到的sdk目录: build-tools 保存着一些Android平台相关通用工具,比如adb.和aapt.aidl.dx等文件. aapt即Android Asset ...

  5. linux parted分区教程,分区工具parted的详解及常用分区使用方法

    分区工具parted的详解及常用分区使用方法 一. parted的用途及说明 概括使用说明: parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区 ...

  6. deepin更新启动项_启动项详解和更改deepin启动内核的方法

    内容来自网上查找和总结以及自己的尝试 boot里面的启动项是根据其它文件生成的,如果改boot里面,会在你更新grub后再次回到原来的状态.(之后 我(有显卡驱动问题的用户)通过在开机时选择系统页面按 ...

  7. Android分区详解:boot, system, recovery, data, cache 以及 misc

    [声明] 本文原文在<Android Partitions Explained: boot, system, recovery, data, cache & misc>. [正文] ...

  8. linux中fdisk的参数,Linux fdisk命令参数及用法详解--Linux磁盘分区管理命令fdisk

    fdisk 命令 linux磁盘分区管理 用途:观察硬盘之实体使用情形与分割硬盘用. 使用方法: 一.在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形. 二.在 ...

  9. ARM(IMX6U)裸机之I.MX6ULL启动头文件详解(内部BOOT ROM、IVT + Boot data + DCD + led.bin)

    参考:Linux之ARM(IMX6U)裸机之I.MX6ULL镜像烧写以及启动头文件的详解 作者:一只青木呀 发布时间: 2020-08-09 17:10:00 网址:https://blog.csdn ...

最新文章

  1. 异步回调地狱_如何逃避异步/等待地狱
  2. 精算模型1 一元生存分析2 参数生存模型
  3. TypeScript 工具类型 - Utility Types
  4. python变量定义大全_详解python变量与数据类型
  5. 通过rtcwake命令设置系统S3(休眠到内存)/S4(挂起到硬盘)一段时间后自动唤醒
  6. llvm编译linux,在Linux上编译LLVM/Clang 8.0.0等全部源代码
  7. windy数(BZOJ-1026)
  8. 七阶拉丁方阵_【C语言】输出N阶拉丁方阵并统计个数
  9. 易语言EXUI游戏充值系统源码
  10. vm虚拟机怎么访问本地硬盘
  11. 轴承公差以及常见的轴孔公差配合
  12. 国外浏览器无法访问apple ID页面,显示502 Bad Gateway,解决方法
  13. 如何修改文件格式(win11)
  14. C# LeetCode刷题 - LeetCode 148. Sort List 解题报告(归并排序小结)
  15. 天圆地方放样软件_天圆地方放样方法
  16. git 合并远程分支
  17. python并发编程之进程1(守护进程,进程锁,进程队列)
  18. 微信小程序关注公众号模板显示隐藏问题
  19. mysql stdistance_C#开发SQLServer的Geometry和Geography存储
  20. linux服务器网卡重启后会还原,详解CentOS重启后resolv.conf被重置的解决方案

热门文章

  1. 掌握茼蒿施肥方式,想不高产都难。
  2. 小白如何装重装操作系统(使用PE辅助)
  3. python交互数据_Python用户交互以及数据类型
  4. Windows Snapshot Grabber 2020中文版
  5. 四小时学python爬虫爬取信息系列(第一天)
  6. C51玩8x8LED点阵:PointGame —— 收藏数爆炸的LED小游戏
  7. 范宝兴:幻方与类自然数幻方(上)「片桐善直8阶间隔幻方」「同心6阶/8阶/10阶」...
  8. java动画迷宫寻路_迷宫寻路算法
  9. java使用jacob给word添加水印
  10. 妹子图 Spider