(8) USB 操作指令

指令

功能

usb reset 初始化USB控制器
usb stop [f] 关闭USB控制器
usb tree 已连接的USB设备树
usb info [dev] 显示USB设备[dev]的信息
usb storage 显示已连接的USB存储设备
usb dev [dev] 显示和设置当前USB存储设备
usb part [dev] 显示USB存储设备[dev]的分区信息
usb read addr blk# cnt 读取USB存储设备数据

在所有的命令使用前,必须先插入USB设备,然后使用:usb
reset,以初始化USB控制器,获取设备信息。




我将一个4G的kingstonU盘(可引导盘)插入 mini2440,然后读取他的头512 字节(MBR):

[u-boot@MINI2440]# usb reset

(Re)start USB...

USB: scanning bus for devices... 2
USB Device(s) found

       scanning bus for storage devices... 1 Storage
Device(s) found

[u-boot@MINI2440]# usb
tree



Device Tree:

  1 Hub (12 Mb/s, 0mA)

  | OHCI Root Hub

  |

  +-2 Mass Storage (12 Mb/s, 100mA)

       Kingston DT 101 II 0019E02CB6EB5B8B1B120051



[u-boot@MINI2440]# usb
info

1: Hub, USB Revision 1.10

- OHCI Root Hub

- Class: Hub

- PacketSize: 8 Configurations: 1

- Vendor: 0x0000 Product 0x0000 Version 0.0

   Configuration: 1

   - Interfaces: 1 Self Powered 0mA

     Interface: 0

     - Alternate Setting 0, Endpoints: 1

     - Class Hub

     - Endpoint 1 In Interrupt MaxPacket 2 Interval 255ms



2: Mass Storage, USB Revision 2.0

- Kingston DT 101 II 0019E02CB6EB5B8B1B120051

- Class: (from Interface) Mass
Storage

- PacketSize: 64 Configurations: 1

- Vendor: 0x0951 Product 0x1613 Version 1.0

   Configuration: 1

   - Interfaces: 1 Bus Powered 100mA

     Interface: 0

     - Alternate Setting 0, Endpoints: 2

     - Class Mass Storage, Transp. SCSI, Bulk
only

     - Endpoint 1 In Bulk MaxPacket 64

     - Endpoint 2 Out Bulk MaxPacket 64



[u-boot@MINI2440]# usb
storage

  Device 0: Vendor: Kingston Rev: PMAP Prod: DT
101 II

            Type: Removable Hard Disk

            Capacity: 3875.0 MB = 3.7 GB (7936000
x 512)

[u-boot@MINI2440]# usb
dev 0



USB device 0:

    Device 0: Vendor: Kingston Rev: PMAP Prod: DT
101 II

            Type: Removable Hard Disk

            Capacity: 3875.0 MB = 3.7 GB (7936000
x 512)

... is now current device

[u-boot@MINI2440]# usb
part 0

print_part of 0



Partition Map for USB device 0 -- Partition Type: DOS



Partition Start Sector Num Sectors Type

    4 63 7935937 c

[u-boot@MINI2440]# usb read 0x30008000
0 200



USB read: device 0 block # 0, count 512 ... .........................

512 blocks read: OK

[u-boot@MINI2440]# md.b
0x30008000 200



30008000: fa 31 c0 8e d8 8e c0 8e d0 bc 00 7c fb fc 89 e6

.1.........|....


30008010: bf 00 06 b9 00 01 f3 a5 ea dc 06 00 00 10 00 01

................


30008020: 00 00 7c 00 00 00 00 00 00 00 00 00 00 80 3f 00

..|...........?.


30008030: ff 00 ed 01 1e 0e 1f 3a 16 10 00 74 06 1f ea 36

.......:...t...6


30008040: e7 00 f0 3d fb 54 75 05 8c d8 fb eb 1d 80 fc 08

...=.Tu.........


30008050: 75 1b e8 81 00 8a 36 13 00 fe ce 8b 0e 15 00 86

u.....6.........


30008060: cd c0 e1 06 0a 0e 11 00 31 c0 f8 eb 65 80 fc 02

........1...e...


30008070: 72 cb 80 fc 04 77 c6 60 80 cc 40 50 be 00 00 c7

r....w.`..@P....


30008080: 04 10 00 30 e4 89 44 02 89 5c 04 8c 44 06 66 31

...0..D..\..D.f1


30008090: c0 66 89 44 0c 88 f0 f6 26 11 00 88 cf 88 eb c0

.f.D....&.......


300080a0: ef 06 81 e1 3f 00 01 c8 48 89 c7 a1 13 00 f7 26

....?...H......&


300080b0: 11 00 f7 e3 01 f8 81 d2 00 00 89 44 08 89 54 0a

...........D..T.


300080c0: 58 30 c0 8a 16 10 00 e8 0c 00 88 26 03 00 61 a1

X0.........&..a.


300080d0: 02 00 1f ca 02 00 9c ff 1e 22 00 c3 80 fa 8f 7f

........."......


300080e0: 04 88 16 2d 06 be 87 07 e8 8d 00 be be 07 31 c0

...-..........1.


300080f0: b9 04 00 f6 04 80 74 03 40 89 f5 81 c6 10 00 e2

......t.@.......


30008100: f2 48 74 02 cd 18 bf 05 00 be 1d 06 c7 44 02 01

.Ht..........D..


30008110: 00 66 8b 46 08 66 89 44 08 b8 00 42 8a 16 2d 06

.f.F.f.D...B..-.


30008120: cd 13 73 0d 4f 74 49 30 e4 8a 16 2d 06 cd 13 eb

..s.OtI0...-....


30008130: d8 a1 fe 7d 3d 55 aa 75 37 fa 66 a1 4c 00 66 a3

...}=U.u7.f.L.f.


30008140: 3f 06 be 13 04 8b 04 48 89 04 c1 e0 06 8e c0 31

?......H.......1


30008150: ff be 1d 06 b9 60 00 fc f3 a5 c7 06 4c 00 17 00

.....`......L...


30008160: a3 4e 00 fb 8a 16 2d 06 89 ee fa ea 00 7c 00 00

.N....-......|..


30008170: be aa 07 e8 02 00 eb fe ac 20 c0 74 09 b4 0e bb

......... .t....


30008180: 07 00 cd 10 eb f2 c3 53 74 61 72 74 20 62 6f 6f

.......Start boo

30008190: 74 69 6e 67 20 66 72 6f 6d 20 55 53 42 20 64 65

ting from USB de

300081a0: 76 69 63 65 2e 2e 2e 0d 0a 00 42 6f 6f 74 20 66

vice......Boot f

300081b0: 61 69 6c 65 64 00 00 00 ea eb d4 ca 00 00 00 00

ailed...........


300081c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

................


300081d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

................


300081e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 01

................


300081f0: 01 00 0c fe 7f ec 3f 00 00 00 c1 17 79 00 55 aa

......?.....y.U.

(9) SD卡(MMC)指令

SD卡的使用命令比较简单,只有初始化和设备信息的显示,读写是通过文件系统命令实现的。

mmc init [dev] - 初始化MMC子系统

mmc device [dev] - 查看和设置当前设备

使用和USB类似,在所有的命令使用前,必须先插入SD卡,然后使用:mmc init,以初始化MMC 控制器,获取设备信息。

我在mini2440中插入1GB SD卡:

[u-boot@MINI2440]# mmc
init

mmc: Probing for SDHC ...

mmc: SD 2.0 or later card found

trying to detect SD Card...

Manufacturer: 0x00, OEM "roduct
name: "

", revision 0.0

Serial number:

7864775

Manufacturing date: 11/2006

CRC:

0x4f, b0 = 1

READ_BL_LEN=6, C_SIZE_MULT=7, C_SIZE=4095

size = 0

SD Card detected RCA: 0x2 type: SD

mmc1 is available

[u-boot@MINI2440]# mmc device

mmc1 is current device

(10) FAT文件系统指令

fatinfo:显示文件系统的相关信息

格式:fatinfo <interface> <dev[:part]>

Interface:代表接口,如usb、mmc;

dev:代表设备编号,如0、1……;

part:代表存储设备中的分区,如1、2……。

fatload:从FAT32文件系统中读取二进制文件到SDRAM。

格式:fatload <interface> <dev[:part]>  <addr> <filename> [bytes]

Interface、dev和part同上;

addr:代表写入SDRAM的地址;

filename:代表存储设备中的文件名;

bytes:代表从存储设备中读取的文件大小,可不填;如果填的数据比文件小,就只读取bytes字节,如果填的数据比文件大,也只读取文件的大小。

fatls:列出FAT32文件系统中目录里的文件。

格式:fatls <interface> <dev[:part]> [directory]

Interface、dev和part同上;

directoryr:代表所要查看的目录,可不填,默认为/。

这些指令基本上要和U盘或者SD卡同时使用,主要用于读取这些移动存储器上的FAT32分区。

使用范例:

[u-boot@MINI2440]# usb
part 0

print_part of 0



Partition Map for USB device 0 -- Partition Type: DOS



Partition Start Sector Num Sectors Type

    4 63 7935937 c

[u-boot@MINI2440]# fatinfo
usb 0:4

Interface: USB

  Device 0: Vendor: Kingston Rev: PMAP Prod: DT 101
II

            Type: Removable Hard Disk

            Capacity: 3875.0 MB = 3.7 GB (7936000
x 512)

Partition 4: Filesystem: FAT32 "7600_16385_"

[u-boot@MINI2440]# fatls
usb 0:4


            boot/

            efi/

            sources/

            support/

            upgrade/

       43 autorun.inf

   383562 bootmgr

   111880 setup.exe

   256220 u-boot.bin



4 file(s), 5 dir(s)



[u-boot@MINI2440]# fatls
usb 0:4 /boot/

            ./

            ../

            fonts/

            zh-cn/

   262144 bcd

  3170304 boot.sdi

     1024 bootfix.bin

    97280 bootsect.exe

     4096 etfsboot.com

   485440 memtest.exe



6 file(s), 4 dir(s)

[u-boot@MINI2440]# fatload
usb 0:4 0x30008000 u-boot.bin

reading u-boot.bin

........................



256220 bytes read

[u-boot@MINI2440]# fatload
usb 0:4 0x30008000 u-boot.bin 200


reading u-boot.bin



512 bytes read

(11) 系统引导指令

boot  和bootd  都是运行ENV”bootcmd”中指定的指令。



bootm 指令是专门用于启动在SDRAM中的用U-boot的mkimage工具处理过的内核映像。

格式:bootm [addr [arg ...]]

addr 是内核映像所在的SDRAM中的地址

当启动的是Linux内核时,'arg' 可以使 initrd 的地址。

[u-boot@MINI2440]# setenv
bootcmd tftp\;bootm

[u-boot@MINI2440]# saveenv

Saving Environment to NAND...

Erasing Nand...

Erasing at 0x6000000000002 -- 0% complete.

Writing to Nand... done

[u-boot@MINI2440]# boot

dm9000 i/o: 0x20000300, id: 0x90000a46

DM9000: running in 16 bit mode

MAC: 08:08:11:18:12:27

operating at 100M full duplex mode

Using dm9000 device

TFTP from server 192.168.1.100; our IP address is
192.168.1.101

Filename 'zImage.img'.

Load address: 0x30008000

Loading: T #################################################################

     #################################################################

     ##########################

done

Bytes transferred = 2277540 (22c0a4 hex)

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

   Image Name: tekkaman

   Created: 2010-03-29 12:59:51
UTC

   Image Type: ARM Linux Kernel Image (uncompressed)

   Data Size: 2277476 Bytes = 2.2 MB

   Load Address: 30008000

   Entry Point: 30008040

   Verifying Checksum ... OK

   XIP Kernel Image ... OK

OK



Starting kernel ...



Uncompressing Linux... done, booting the kernel.

Linux version 2.6.33.1 (tekkaman@MAGI-Linux) (gcc
version 4.3.2(crosstool-NG-1.6.1-tekkaman) ) #5
Mon Mar 29 20:58:50 CST 2010

CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177

CPU: VIVT data cache, VIVT instruction cache

Machine: MINI2440

(略)





U-Boot 2009.11 ( 4月 04 2010 - 12:09:25)



modified by tekkamanninja (tekkamanninja@163.com)

Love Linux 



I2C: ready

DRAM: 64 MB

Flash: 2 MB

NAND: 128 MiB

Video: 240x320x16 20kHz 62Hz

In: serial

Out: serial

Err: serial

Net: dm9000

U-Boot 2009.11 ( 4月 04 2010 - 12:09:25)

modified by tekkamanninja

(tekkamanninja@163.com)

Love Linux 

Hit any key to stop autoboot: 0

[u-boot@MINI2440]# bootd

dm9000 i/o: 0x20000300, id: 0x90000a46

DM9000: running in 16 bit mode

MAC: 08:08:11:18:12:27

operating at 100M full duplex mode

Using dm9000 device

TFTP from server 192.168.1.100; our IP address is
192.168.1.101

Filename 'zImage.img'.

Load address: 0x30008000

Loading: T #################################################################

     #################################################################

     ##########################

done

Bytes transferred = 2277540 (22c0a4 hex)

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

   Image Name: tekkaman

   Created: 2010-03-29 12:59:51
UTC

   Image Type: ARM Linux Kernel Image (uncompressed)

   Data Size: 2277476 Bytes = 2.2 MB

   Load Address: 30008000

   Entry Point: 30008040

   Verifying Checksum ... OK

   XIP Kernel Image ... OK

OK



Starting kernel ...

(略)

12)EEPROM 读写指令eeprom  - I2C 接口的EEPROM 读写指令

格式:

eeprom read  addr off cnt

eeprom write addr off cnt

第一个参数addr 是要写入或读出的数据在SDRAM中的存放地址;

第二个参数off 是在EEPROM中的偏移;

第三个参数cnt 是读写的数据字节数。

使用范例:

[u-boot@MINI2440]# md.b
0x30008000 2

30008000: aa aa ..

[u-boot@MINI2440]# eeprom read 0x30008000
10 2



EEPROM @0x50 read: addr 30008000 off 0010 count 2 ... done

[u-boot@MINI2440]# md.b
0x30008000 2

30008000: ff ff ..

[u-boot@MINI2440]# mm.b
0x30008000

30008000: ff ? aa

30008001: ff ? 55

30008002: aa ? q

[u-boot@MINI2440]# md.b
0x30008000 2

30008000: aa 55 .U

[u-boot@MINI2440]# eeprom write 0x30008000
10 2



EEPROM @0x50 write: addr 30008000 off 0010 count 2 ... done

[u-boot@MINI2440]# eeprom read 0x30008010
10 2



EEPROM @0x50 read: addr 30008010 off 0010 count 2 ... done

[u-boot@MINI2440]# md.b
0x30008010 2

30008010: aa 55 .U

(13)设置和读取RTC指令

date    - 设置和读取RTC

格式:

date [MMDDhhmm[[CC]YY][.ss]]

MM:月份

DD:日期

hh:小时

mm 分钟

CC:年份的前两个数字

YY:年份的后两个数字

ss:秒数

使用范例:

[u-boot@MINI2440]# date

Date: 1980-00-06 (Thursday) Time: 20:30:25

[u-boot@MINI2440]# date
041100582010.20

Date: 2010-04-11 (Sunday) Time: 0:58:20

(14)脚本运行指令

run var [...]

var :ENV中的脚本名 

使用范例:

[u-boot@MINI2440]# setenv
a_run_test echo $bootfile \; version

[u-boot@MINI2440]# run
a_run_test


zImage.img



U-Boot 2009.11 ( 4&aelig;&#339;&#710; 04
2010 - 12:09:25)

(15)系统重启指令

reset

- 重启CPU

[u-boot@MINI2440]# reset

resetting ...





U-Boot 2009.11 ( 4&aelig;&#339;&#710; 04
2010 - 12:09:25)



modified by tekkamanninja (tekkamanninja@163.com)

Love Linux 



I2C: ready

DRAM: 64 MB

Flash: 2 MB

NAND: 128 MiB

Video: 240x320x16 20kHz 62Hz

In: serial

Out: serial

Err: serial

Net: dm9000

U-Boot 2009.11 ( 4&aelig;&#339;&#710; 04
2010 - 12:09:25)

modified by tekkamanninja

(tekkamanninja@163.com)

Love Linux 

Hit any key to stop autoboot: 0

[u-boot@MINI2440]#

四、U-boot的使用(四)

下载与烧写

使用U-boot将映像文件烧写到板上的Flash,一般步骤是:

(1)通过网络、串口、U盘、SD卡等方式将文件传输到SDRAM;

(2)使用Nand Flash或Nor Flash相关的读写命令将SDRAM中的数据烧入Flash。

下面是烧写范例:

如果使用 SD卡和U盘形式更新U-boot,那么首先SD卡和U盘中必须有FAT32文件系统,并在里面存放了u-boot.bin 文件。

1) 通过SD卡烧入Nand Flash:

[u-boot@MINI2440]# mmc init

mmc: Probing for SDHC ...

mmc: SD 2.0 or later card found

trying to detect SD Card...

Manufacturer:

0x00, OEM "roduct
name:

"

", revision 0.0

Serial number:

7864775

Manufacturing date: 11/2006

CRC:

0x4f, b0 = 1

READ_BL_LEN=6, C_SIZE_MULT=7, C_SIZE=4095

size = 0

SD Card detected RCA: 0x2 type: SD

mmc is available

[u-boot@MINI2440]# fatload mmc 1 0x30008000 u-boot.bin

reading u-boot.bin



256220 bytes read

[u-boot@MINI2440]# nand erase 0 0x40000



NAND erase: device 0 offset 0x0, size 0x40000

Erasing at 0x2000000000004 --

0% complete.

OK

[u-boot@MINI2440]# nand write 0x30008000 0 0x40000



NAND write: device 0 offset 0x0, size 0x40000

Writing at 0x2000000020000 -- 100% is complete. 262144 bytes written: OK

2) 通过U盘烧入Nor Flash:

[u-boot@MINI2440]# usb start

(Re)start USB...

USB:

scanning bus for devices... 2 USB Device(s) found



scanning bus for storage devices... 1 Storage Device(s) found

[u-boot@MINI2440]# usb storage



Device 0
: Vendor: Kingston Rev: PMAP Prod: DT 101 II





Type: Removable Hard Disk



Capacity: 3875.0 MB = 3.7 GB (7936000 x 512)

[u-boot@MINI2440]# 

print_part of 0



Partition Map for USB device 0

--

Partition Type: DOS



Partition

Start Sector

Num Sectors

Type





4





63



7935937

c



[u-boot@MINI2440]# fatload usb 0:4 0x30008000 u-boot.bin

reading u-boot.bin

........................



256220 bytes read

[u-boot@MINI2440]# protect off all

Un-Protect Flash Bank # 1

[u-boot@MINI2440]# erase 0x0 0x3ffff

Erasing sector

0 ... ok.

Erasing sector

1 ... ok.

Erasing sector

2 ... ok.

Erasing sector

3 ... ok.

Erased 4 sectors

[u-boot@MINI2440]# cp.b 0x30008000 0x0

0x3ffff


Copy to Flash... done

3) 通过TFTP服务烧入Nand Flash:

[u-boot@MINI2440]# tftpboot 30008000 192.168.1.100:u-boot.bin

dm9000 i/o: 0x20000300, id: 0x90000a46 

DM9000: running in 16 bit mode

MAC: 08:08:11:18:12:27

operating at 100M full duplex mode

Using dm9000 device

TFTP from server 192.168.1.100; our IP address is 192.168.1.101

Filename 'u-boot.bin'.

Load address: 0x30008000

Loading: T ##################

done

Bytes transferred = 256220 (3e8dc hex)

[u-boot@MINI2440]# nand erase 0 0x40000

NAND erase: device 0 offset 0x0, size 0x40000

Erasing at 0x2000000000004 --

0% complete.

OK

[u-boot@MINI2440]# nand write 0x30008000 0 0x40000



NAND write: device 0 offset 0x0, size 0x40000

Writing at 0x2000000020000 -- 100% is complete. 262144 bytes written: OK

4) 通过NFS 服务烧入Nand Flash:

[u-boot@MINI2440]# nfs 30008000 192.168.1.100:/home/tekkaman/development/share/u-boot.bin

dm9000 i/o: 0x20000300, id: 0x90000a46 

DM9000: running in 16 bit mode

MAC: 08:08:11:18:12:27

operating at 100M full duplex mode

Using dm9000 device

File transfer via NFS from server 192.168.1.100; our IP address is 192.168.1.101

Filename '/home/tekkaman/development/share/u-boot.bin'.

Load address: 0x30008000

Loading: ###################################################

done

Bytes transferred = 256220 (3e8dc hex)

[u-boot@MINI2440]# nand erase 0 0x40000

NAND erase: device 0 offset 0x0, size 0x40000

Erasing at 0x2000000000004 --

0% complete.

OK

[u-boot@MINI2440]# nand write 0x30008000 0 0x40000



NAND write: device 0 offset 0x0, size 0x40000

Writing at 0x2000000020000 -- 100% is complete. 262144 bytes written: OK

内核引导

内核的引导步骤如下:

(1)用U-boot的mkimage工具处理内核映像zImage。

(2)通过网络、串口、U盘、SD卡等方式将处理过的内核映像传输到SDRAM的一定位置(一般使用0x30008000)

(3)然后使用”bootm"等内核引导命令来启动内核。

为什么要用U-boot的mkimage工具处理内核映像zImage?

因为在用bootm命令引导内核的时候,bootm需要读取一个64字节的文件头,来获取这个内核映象所针对的CPU体系结构、OS、加载到内存中的位置、在内存中入口点的位置以及映象名等等信息。这样bootm才能为OS设置好启动环境,并跳入内核映象的入口点。而mkimage就是添加这个文件头的专用工具。具体的实现请看U-boot中bootm的源码和mkimage的源码。
mkimage工具的使用:



参数说明:

-A 指定CPU的体系结构,可用值有:alpha、arm

、x86、ia64、mips、mips64、ppc 、s390、sh、sparc 、sparc64、m68k等

-O 指定操作系统类型,可用值有:openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos

-T 指定映象类型,可用值有:standalone、kernel、ramdisk、multi、firmware、script、filesystem

-C 指定映象压缩方式,可用值有:

none

不压缩(一般使用这个,因为zImage是已经被bzip2压缩过的自解压内核) 

gzip 用gzip的压缩方式

bzip2 用bzip2的压缩方式

-a 指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载

-e

指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头)

-n

指定映象名

-d 指定制作映象的源文件



以下是制作内核映像的命令示例:

mkimage -n 'tekkaman' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage
zImage.img

以下是使用范例:

1) 通过SD卡引导内核:

首先SD卡中必须有FAT32文件系统,并在里面存放了处理过的内核映像文件。

[u-boot@MINI2440]# mmc init





mmc: Probing for SDHC ...

mmc: SD 2.0 or later card found

trying to detect SD Card...

Manufacturer:

0x00, OEM "roduct
name:

"

", revision 0.0

Serial number:

7864775

Manufacturing date: 11/2006

CRC:

0x4f, b0 = 1

READ_BL_LEN=6, C_SIZE_MULT=7, C_SIZE=4095

size = 0

SD Card detected RCA: 0x2 type: SD

mmc1 is available

[u-boot@MINI2440]# fatload mmc 1 30008000 zImage.img

reading zImage.img



2277540 bytes read

[u-boot@MINI2440]# bootm 30008000

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



Image Name:

tekkaman



Created:

2010-03-29

12:59:51 UTC



Image Type:

ARM Linux Kernel Image (uncompressed)



Data Size:

2277476 Bytes =

2.2 MB



Load Address: 30008000



Entry Point:

30008040



Verifying Checksum ... OK



XIP Kernel Image ... OK

OK



Starting kernel ...



Uncompressing Linux... done, booting the kernel.

Linux version 2.6.33.1 (tekkaman@MAGI-Linux) (gcc version 4.3.2 (crosstool-NG-1.6.1-tekkaman) ) #5 Mon Mar 29 20:58:50 CST 2010

CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177

CPU: VIVT data cache, VIVT instruction cache

Machine: MINI2440

(略)

2) 通过TFTP服务引导内核:

[u-boot@MINI2440]# tftpboot 0x30008000 192.168.1.100:zImage.img 

dm9000 i/o: 0x20000300, id: 0x90000a46 

DM9000: running in 16 bit mode

MAC: 08:08:11:18:12:27

operating at 100M full duplex mode

Using dm9000 device

TFTP from server 192.168.1.100; our IP address is 192.168.1.101

Filename 'zImage.img'.

Load address: 0x30008000

Loading: T #################################################################





#################################################################





##########################

done

Bytes transferred = 2277540 (22c0a4 hex)

[u-boot@MINI2440]# bootm 30008000

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



Image Name:

tekkaman



Created:

2010-03-29

12:59:51 UTC



Image Type:

ARM Linux Kernel Image (uncompressed)



Data Size:

2277476 Bytes =

2.2 MB



Load Address: 30008000



Entry Point:

30008040



Verifying Checksum ... OK



XIP Kernel Image ... OK

OK



Starting kernel ...



Uncompressing Linux... done, booting the kernel.

Linux version 2.6.33.1 (tekkaman@MAGI-Linux) (gcc version 4.3.2 (crosstool-NG-1.6.1-tekkaman) ) #5 Mon Mar 29 20:58:50 CST 2010

CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177

CPU: VIVT data cache, VIVT instruction cache

Machine: MINI2440

(略)

3) 通过NFS服务引导内核:

[u-boot@MINI2440]# nfs 30008000 192.168.1.100:/home/tekkaman/development/share/zImage.img

dm9000 i/o: 0x20000300, id: 0x90000a46 

DM9000: running in 16 bit mode

MAC: 08:08:11:18:12:27

operating at 100M full duplex mode

Using dm9000 device

File transfer via NFS from server 192.168.1.100; our IP address is 192.168.1.101

Filename '/home/tekkaman/development/share/zImage.img'.

Load address: 0x30008000

Loading: #################################################################





#################################################################





#################################################################





#################################################################





#################################################################





#################################################################





#######################################################

done

Bytes transferred = 2277540 (22c0a4 hex)

[u-boot@MINI2440]# bootm 30008000

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



Image Name:

tekkaman



Created:

2010-03-29

12:59:51 UTC



Image Type:

ARM Linux Kernel Image (uncompressed)



Data Size:

2277476 Bytes =

2.2 MB



Load Address: 30008000



Entry Point:

30008040



Verifying Checksum ... OK



XIP Kernel Image ... OK

OK



Starting kernel ...



Uncompressing Linux... done, booting the kernel.

Linux version 2.6.33.1 (tekkaman@MAGI-Linux) (gcc version 4.3.2 (crosstool-NG-1.6.1-tekkaman) ) #5 Mon Mar 29 20:58:50 CST 2010

CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177

CPU: VIVT data cache, VIVT instruction cache

Machine: MINI2440

(略)

4) 通过Nand Flash引导内核:

   首先要将处理过的内核映像文件烧入Nand Flash的一定位置(由内核分区表决定)。以后每次启动时用Nand Flash的读取命令先将这个内核映像文件读到内存的一定位置(由制作内核映像时的-a参数决定),再使用bootm命令引导内核。

内核映像文件的烧入:

[u-boot@MINI2440]# nfs 30008000 192.168.1.100:/home/tekkaman/development/share/zImage.img

dm9000 i/o: 0x20000300, id: 0x90000a46 

DM9000: running in 16 bit mode

MAC: 08:08:11:18:12:27

operating at 100M full duplex mode

Using dm9000 device

File transfer via NFS from server 192.168.1.100; our IP address is 192.168.1.101

Filename '/home/tekkaman/development/share/zImage.img'.

Load address: 0x30008000

Loading: #################################################################





#################################################################





#################################################################





#################################################################





#################################################################





#################################################################





#######################################################

done

Bytes transferred = 2277540 (22c0a4 hex)

[u-boot@MINI2440]# nand erase 0x80000 0x300000



NAND erase: device 0 offset 0x80000, size 0x300000

Erasing at 0x36000001800000 --

0% complete.

OK

[u-boot@MINI2440]# 

nand write 30008000 0x80000 300000 




NAND write: device 0 offset 0x80000, size 0x300000



Writing at 0x36000000020000 -- 100% is complete. 3145728 bytes written: OK



内核引导: 

[u-boot@MINI2440]# 

nand read 30008000 0x80000 300000




NAND read: device 0 offset 0x80000, size 0x300000



3145728 bytes read: OK

[u-boot@MINI2440]# bootm 30008000

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



Image Name:

tekkaman



Created:

2010-03-29

12:59:51 UTC



Image Type:

ARM Linux Kernel Image (uncompressed)



Data Size:

2277476 Bytes =

2.2 MB



Load Address: 30008000



Entry Point:

30008040



Verifying Checksum ... OK



XIP Kernel Image ... OK

OK



Starting kernel ...



Uncompressing Linux... done, booting the kernel.

Linux version 2.6.33.1 (tekkaman@MAGI-Linux) (gcc version 4.3.2 (crosstool-NG-1.6.1-tekkaman) ) #5 Mon Mar 29 20:58:50 CST 2010

CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177

CPU: VIVT data cache, VIVT instruction cache

Machine: MINI2440

常用u-boot命令详解(全) 2的更多相关文章

  1. Windows学习总结(10)——Windows系统中常用的CMD命令详解

    1.ping命令 ping是电脑网络故障诊断中的常用的命令,它的作用是用来检查网络是否通畅或者网络连接速度.我们来看一下PING命令的具体表述. 日常的诊断过程中我们最常用到的就是诊断连接是否通畅. ...

  2. Linux常用文件权限命令详解

    pwd pwd命令用于获取当前工作目录的绝对路径. 使用示例: pwd 效果如下图: cd cd命令用于切换工作目录. 使用示例: cd 万猫学社/ 效果如下图: 其中在路径表示时, 一个半角句号(. ...

  3. Linux常用性能诊断命令详解

    top top命令动态地监视进程活动与系统负载等信息. 使用示例: top 效果如下图: 以上命令输出视图中分为两个区域,一个统计信息区,一个进程信息区. 统计信息区: 第一行信息依次为:系统时间.运 ...

  4. Linux常用命令详解—基于CentOS7

    ## Linux 目录- /:根目录,一般只存放目录,不存放文件- /bin -> /usr/bin:可执行二进制文件的目录,也是常用命令目录,如常用的命令 ls.cat.mv 等- /boot ...

  5. hbase shell基础和常用命令详解(转)

    HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...

  6. samtools常用命令详解(转)

    转自:samtools常用命令详解 samtools的说明文档:http://samtools.sourceforge.net/samtools.shtml samtools是一个用于操作sam和ba ...

  7. db2常用命令(详解)大全

    近一年来在项目开发中使用到了IBM的DB2 9.1的数据库产品,跟Oracle相比一些命令有很大的区别,而它最大的功能是支持      xml存储.检索机制,通过XPath进行解析操作,使开发人员免于 ...

  8. Linux常用命令详解(week1_day1_3)--技术流ken

    本节内容 pidofpstopipuptimewgetcurltrddtargrepfind 命令详解 1.pidof 获取正在运行程序的PID 实例1: [root@ken ~]# pidof ss ...

  9. Linux常用命令详解(week1_day1_2)--技术流ken

    本节内容 aliasunaliasunamesuhostnamehistorywhichwcwwhowhoamipingkillseqdudffreedate 命令详解 1. alias 设置.’查看 ...

  10. hbase shell基础和常用命令详解

    HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服 ...

随机推荐

  1. python使用上下文管理器实现sqlite3事务机制

    如题,本文记录如何使用python上下文管理器的方式管理sqlite3的句柄创建和释放以及事务机制. 1.python上下文管理(with) python上下文管理(context),解决的是这样一类 ...

  2. 浅谈 HTML5plus 开发移动应用

    什么是 HTML5plus DCloud 公司提供的,使用传统 web 技术开发移动应用的解决方案. 增强版的手机浏览器引擎,让HTML5达到原生水平! 产品口号,总会有些夸张的成分,不要在意这些细节 ...

  3. 根据 inotify 自己开发软件监控文件系统活动

    了解 inotify Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除.读.写和卸载操作等.您还可以跟踪活动的源头和目标等细节. 使用 ...

  4. ABP官方文档翻译 4.6 审计日志

    审计日志 介绍 关于IAuditingStore 配置 通过特性启用/禁用 注意事项 介绍 维基百科:“审计追踪(也称为审计日志)是与安全相关的按时间先后的记录.记录集合.记录的目的地和源,提供一系列 ...

  5. Using Custom Domains With IIS Express In Asp.Net Core

    IIS Express是一个Mini版的IIS,能够支持所有的Web开发任务,但是这种设计有一些缺陷,例如只能通过localhost:<port>的方式来访问我们的应用程序,看起来就有点不 ...

  6. Android图像处理 - 高斯模糊的原理及实现

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 由 天天P图攻城狮 发布在云+社区 作者简介:damonxia(夏正冬),天天P图Android工程师 前言 高斯模糊是图像处理中几乎每个程序员 ...

  7. 济南清北学堂游记 Day 2.

    在大佬云集的地方被直线碾压是什么样的体验? 大概就是210和1030的差别. 大概就是高质量机械键盘和空气的区别. 回来的路上,我一直在想,我到底是不是一个高三的? 大概也是能找到以前在家和学校训练时 ...

  8. BZOJ 3787: Gty的文艺妹子序列 [分块 树状数组!]

    传送门 题意:单点修改,询问区间内逆序对数,强制在线 看到加了!就说明花了不少时间.... 如果和上题一样预处理信息,用$f[i][j]$表示块i到j的逆序对数 强行修改的话,每个修改最多会修改$(\ ...

  9. 【转】TCP/IP和SOCKET的区别

    要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...

  10. .NET图表控件(LightningChart )的用法

    概述 LightningChart (LightningChart Ultimate) 软件开发工具包是微软Visual Studio 的一个插件,专攻大数据可视化呈现问题,用于 WPF(Window ...