vivtis调试linux应用程序,u-boot-2015.01在TQ2440上移植过程分享

下面开始移植tq2440

参考u-boot-2014.04移植手册(TQ2440).pdf文档

1. 清理一下刚才编译的垃圾

make distclean

2. 拷贝

cp -a board/samsung/smdk2410/ board/tq2440

cd board/tq2440

mv smdk2410.c tq2440.c

修改board/tq2440/Makefile

ac64ab942b8376d162853b155c1692c3.png

修改board/tq2440/Kconfig

757d5796dd436a4dd11b9d7f55544ea1.png

修改arch/arm/Kconfig, 添加smdk2440的配置项

96d671315b19a81353196167f1de9ead.png

修改arch/arm/Kconfig, 加载board/tq2440/Kconfig

db718d761102f6458974d3af2c298a7c.png

拷贝配置文件include/configs/smdk2410.h为include/configs/tq2440.h:

cp include/configs/smdk2410.h include/configs/tq2440.h

拷贝默认配置文件

cp configs/smdk2410_defconfig configs/tq2440_defconfig

修改configs/tq2440_defconfig, 在配置时我们就可以使用 make tq2440_defconfig了。

5d3ab9f2d12ad1e9109d4a0409a1a51f.png

将include/configs/tq2440.h中的smdk2410的信息注释掉,注意不能使用 // 这种注释方法,而必须使用 #if … #endif 或者 /**/,否则在编译链接时会出错,可能是u-boot的一个bug。

下面的内容就不说了,需要注意的是由于定义了宏CONFIG_SYS_GENERIC_BOARD,代码运行的过程跟以前有所不同,如在arch/arm/lib/crt0.S中的board_init_f和board_init_r分别调用的是common/board_f.c中的board_init_f和common/board_r.c中的board_init_r。

下面是patch的下载地址,目前仅支持norflash和dm9000,还不支持nandflash等(可以参考u-boot-2014.04移植手册完成)。http://www.linuxidc.com/Linux/2015-02/112933.htm

通过将天嵌自带的内核uImage通过tftp下载到内存的0x30008000地址处,然后设置bootargs为"noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0",然后设置machid为a8,使用bootm 0x30008000可以正确的启动内核:

U-Boot 2015.01-gbfc9037-dirty (Jan 31 2015 - 18:49:33)

CPUID: 32440001

FCLK:      400 MHz

HCLK:      100 MHz

PCLK:      50 MHz

DRAM:  64 MiB

WARNING: Caches not enabled

Flash: 2 MiB

In:    serial

Out:  serial

Err:  serial

Net:  dm9000

TQ2440 # setenv bootargs 'noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0'

TQ2440 # tftp 0x30008000 uImage

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

DM9000: running in 16 bit mode

MAC: 00:11:22:33:44:55

could not establish link

Using dm9000 device

TFTP from server 192.168.1.8; our IP address is 192.168.1.6

Filename 'uImage'.

Load address: 0x30008000

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

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

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

1.5 MiB/s

done

Bytes transferred = 2415820 (24dccc hex)

TQ2440 # bootm 0x30008000

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

Image Name:  Linux-2.6.30.4-EmbedSky

Created:      2015-01-31  11:08:47 UTC

Image Type:  ARM Linux Kernel Image (uncompressed)

Data Size:    2415756 Bytes = 2.3 MiB

Load Address: 30008000

Entry Point:  30008000

Verifying Checksum ... OK

Loading Kernel Image ... OK

Using machid 0xa8 from environment

Starting kernel ...

Uncompressing Linux................................................................................................................................................................ done, booting the kernel.

Linux version 2.6.30.4-EmbedSky (pengdl@debian) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176) ) #1 Sat Jan 31 19:08:25 CST 2015

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

CPU: VIVT data cache, VIVT instruction cache

Machine: TQ2440

Memory policy: ECC disabled, Data cache writeback

CPU S3C2440A (id 0x32440001)

S3C24XX Clocks, (c) 2004 Simtec Electronics

S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 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/mtdblock2 init=/linuxrc console=ttySAC0

NR_IRQS:85

irq: clearing pending ext status 00080000

irq: clearing subpending status 00000003

irq: clearing subpending status 00000002

PID hash table entries: 256 (order: 8, 1024 bytes)

Console: colour dummy device 80x30

console [ttySAC0] enabled

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: 59664KB available (4512K code, 454K data, 240K init, 0K highmem)

SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

net_namespace: 296 bytes

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 at 0

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

s3c2440-i2c s3c2440-i2c: slave address 0x10

s3c2440-i2c s3c2440-i2c: bus frequency set to 97 KHz

s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter

cfg80211: Calling CRDA to update world regulatory domain

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

yaffs Jan 31 2015 19:04:20 Installing.

msgmni has been set to 116

alg: No test for stdrng (krng)

io scheduler noop registered (default)

Console: switching to colour frame buffer device 60x17

fb0: s3c2410fb frame buffer device

bkl initialized

led initialized

beep initialized

adc initialized

s3c2440-uart.0: ttySAC0 at MMIO 0x50000000 (irq = 70) is a S3C2440

s3c2440-uart.1: ttySAC1 at MMIO 0x50004000 (irq = 73) is a S3C2440

s3c2440-uart.2: ttySAC2 at MMIO 0x50008000 (irq = 76) is a S3C2440

loop: module loaded

Driver 'sd' needs updating - please use bus_type methods

PPP generic driver version 2.4.2

PPP Deflate Compression module registered

PPP BSD Compression module registered

PPP MPPE Compression module registered

NET: Registered protocol family 24

PPPoL2TP kernel driver, V1.0

dm9000 Ethernet Driver, V1.31

dm9000_set_io byte_width 4

dm9000_set_io byte_width 2

dm9000 revision 0x01  io_mode 00

Now use the default MAC address: 10:23:45:67:89:ab

eth0 (dm9000): not using net_device_ops yet

eth0: dm9000e at c4818000,c481c004 IRQ 51 MAC: 10:23:45:67:89:ab (EmbedSky)

S3C24XX NAND Driver, (c) 2004 Simtec Electronics

s3c2440-nand s3c2440-nand: Tacls=2, 20ns Twrph0=3 30ns, Twrph1=2 20ns

NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)

NAND_ECC_NONE selected by board driver. This is not recommended !!

Scanning device for bad blocks

Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":

0x000000000000-0x000000040000 : "EmbedSky_Board_uboot"

0x000000200000-0x000000500000 : "EmbedSky_Board_kernel"

0x000000500000-0x000010000000 : "EmbedSky_Board_yaffs2"

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.30.4-EmbedSky 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 usbserial

usbserial: USB Serial Driver core

USB Serial support registered for pl2303

usbcore: registered new interface driver pl2303

pl2303: Prolific PL2303 USB to serial adaptor driver

s3c2410_udc: debugfs dir creation failed -19

s3c2440-usbgadget s3c2440-usbgadget: S3C2440: increasing FIFO to 128 bytes

mice: PS/2 mouse device common for all mice

input: tq2440-keys as /devices/platform/tq2440-keys/input/input0

TQ2440 TouchScreen successfully loaded

input: TQ2440 TouchScreen as /devices/virtual/input/input1

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

initializing s3c2440 camera interface......

s3c2440 camif init done

Loading cam-dev driver.........

ov9650 address 0x60, manufacture ID 0xFFFF, expect 0x7FA2

SAA7113 address 0x4A, manufacture 0xFF, expect 0x11

unreconize id found!show ID

ov9650 address 0x60, product ID 0xFF, expect 0x7FA2

ov9650 init done!

version=1

cx231xx v4l2 driver loaded.

usbcore: registered new interface driver cx231xx

usbcore: registered new interface driver usbvision

USBVision USB Video Device Driver for Linux : 0.9.10

usbcore: registered new interface driver ov511

ov511: v1.64 for Linux 2.5:ov511 USB Camera Driver

SE401 usb camera driver version 0.24 registering

usbcore: registered new interface driver se401

usbcore: registered new interface driver stv680

stv680 [usb_stv680_init:1550]

STV(i): usb camera driver version v0.25 registering<6>stv680: v0.25:STV0680 USB Camera Driver

w9968cf: V4L driver for W996[87]CF JPEG USB Dual Mode Camera Chip 1:1.34-basic

usbcore: registered new interface driver w9968cf

usbcore: registered new interface driver zr364xx

zr364xx: Zoran 364xx

usbcore: registered new interface driver stkwebcam

sn9c102: V4L2 driver for SN9C1xx PC Camera Controllers v1:1.47pre49

usbcore: registered new interface driver sn9c102

et61x251: V4L2 driver for ET61X[12]51 PC Camera Controllers v1:1.09

usbcore: registered new interface driver et61x251

pwc: Philips webcam module version 10.0.13 loaded.

pwc: Supports Philips PCA645/646, PCVC675/680/690, PCVC720[40]/730/740/750 & PCVC830/840.

pwc: Also supports the Askey VC010, various Logitech Quickcams, Samsung MPC-C10 and MPC-C30,

pwc: the Creative WebCam 5 & Pro Ex, SOTEC Afina Eye and Visionite VCS-UC300 and VCS-UM100.

usbcore: registered new interface driver Philips webcam

zc0301: V4L2 driver for ZC0301[P] Image Processor and Control Chip v1:1.10

usbcore: registered new interface driver zc0301

gspca: main v2.5.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 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 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

usbcore: registered new interface driver ibmcam

usbcore: registered new interface driver ultracam

konicawc: v1.4:Konica Webcam driver

usbcore: registered new interface driver konicawc

usbcore: registered new interface driver vicam

quickcam_messenger: v0.01:Logitech Quickcam Messenger USB

usbcore: registered new interface driver QCM

usbcore: registered new interface driver s2255

usbcore: registered new interface driver uvcvideo

USB Video Class driver (v0.1.0)

S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics

s3c2410-wdt s3c2410-wdt: starting watchdog timer

s3c2410-wdt s3c2410-wdt: watchdog active, reset abled, irq enabled

mapped channel 0 to 0

s3c2440-sdi s3c2440-sdi: powered down.

s3c2440-sdi s3c2440-sdi: initialisation done.

s3c2440-sdi s3c2440-sdi: powered down.

usbcore: registered new interface driver usbhid

usbhid: v2.6:USB HID core driver

Advanced Linux Sound Architecture Driver Version 1.0.18a.

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

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

lib80211: common routines for IEEE802.11 drivers

s3c2410-rtc s3c2410-rtc: setting system clock to 2013-10-05 16:41:22 UTC (1380991282)

yaffs: dev is 32505858 name is "mtdblock2"

yaffs: passed flags ""

yaffs: Attempting MTD mount on 31.2, "mtdblock2"

yaffs: auto selecting yaffs2

yaffs: restored from checkpoint

yaffs_read_super: isCheckpointed 1

VFS: Mounted root (yaffs filesystem) on device 31:2.

Freeing init memory: 240K

mount: mounting debugfs on /sys/kernel/debug failed: No such file or directory

eth0: link down

Please press Enter to activate this console. eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1

[root@TQ2440 /]#

[root@TQ2440 /]#

[root@TQ2440 /]#

个人感觉,u-boot的架构做得会越来越像Linux内核。

完!!

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值