[U-Boot-Users] Flawed ATAG passing

Christian Kapeller e0225408 at student.tuwien.ac.at
Wed Jul 28 18:46:01 CEST 2004


Hi.

While trying to get Linux (2.4.19-rmk7-pxa2 and 2.6.7-mm7) start with
a ramdisk on a xm250 board, i discovered, that uboot 1.1.1 seems to have a problem passing the ATAGs to the kernel.


Here is some debug output with linux 2.6.7-mm7 

====

u-Boot 1.1.1 (Jul 28 2004 - 17:11:18)

U-Boot code: A3F80000 -> A3F998AC  BSS: -> A3F9DBD8
RAM Configuration:
Bank #0: a0000000 64 MB
Bank #1: a4000000  0 kB
Bank #2: a8000000  0 kB
Bank #3: ac000000  0 kB
Flash: 32 MB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  3  2  1  0 
Using MAC Address 00:40:42:01:65:AA
BOOTP broadcast 1
got BOOTP packet (src=67, dst=68, len=300 want_len=300)
Filtering pkt = 0
Bootfile: uImage
[BOOTP] Checking extension (300 bytes)...
[BOOTP] Processing extension 1... (4 bytes)
[BOOTP] Processing extension 3... (4 bytes)
[BOOTP] Processing extension 6... (4 bytes)
[BOOTP] Processing extension 15... (16 bytes)
[BOOTP] Processing extension 28... (4 bytes)
[BOOTP] Received fields: 
NetOurSubnetMask : 255.255.255.0
NetOurGatewayIP	: 192.168.0.1
Got good BOOTP
TFTP from server 192.168.0.1; our IP address is 192.168.0.3
Filename 'uImage'.
Load address: 0xa3000000
Loading: *T #################################################################
	 #################################################################
	 ###########################
done
Bytes transferred = 799312 (c3250 hex)
## Booting image at a3000000 ...
   Image Name:   Linux-Image
   Created:      2004-07-28  18:10:20 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    799248 Bytes = 780.5 kB
   Load Address: a0200000
   Entry Point:  a0200000
   Verifying Checksum ... OK
OK
## Loading Ramdisk Image at 00200000 ...
   Image Name:   initrd
   Created:      2004-07-27  16:09:34 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    2517544 Bytes =  2.4 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Initrd at 00200040. Size 2517544## Transferring control to Linux (at address a0200000) ...
## setup_start_tag
## setup_memory_tags start a0000000 size:04000000
 ## setup_commandling_tag size:0000001c line: root=/dev/ram0 init=/linuxrc
## setup_initrd_args start:00200040, end:00466a68
## setup_end_tag

Starting kernel ...

Uncompressing Linux......................................................... done, booting the kernel.
Linux version 2.6.7-mm7 (chrkap at allesodernix) (gcc version 3.3.3) #21 Wed Jul 28 18:10:04 UTC 2004
CPU: XScale-PXA255 [69052d06] revision 6 (ARMv5TE)
CPU: D undefined 5 cache
CPU: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Machine: Intel DBPXA250 Development Platform (aka Lubbock)
parse_tags number of tags: 5
parsing tag: 0x54410001
parse_tag: tag 0x54410001 
parse_tag_core
parsing tag: 0x54410002
parse_tag: tag 0x54410002 
parse_tag_mem32 start 0xa0000000 size 0x01000000
Memory policy: ECC disabled, Data cache writeback
Memory clock: 99.53MHz (*27)
Run Mode clock: 398.13MHz (*4)
Turbo Mode clock: 398.13MHz (*1.0, inactive)
On node 0 totalpages: 4096
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 0 pages, LIFO batch:1
  HighMem zone: 0 pages, LIFO batch:1
Built 1 zonelists
Kernel command line: root=/dev/ram console=ttyS0,115200
PID hash table entries: 128 (order 7: 1024 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 16MB = 16MB total
Memory: 14376KB available (1366K code, 346K data, 76K init)
Calibrating delay loop... 397.31 BogoMIPS
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
NetWinder Floating Point Emulator V0.97 (double precision)
ttyS0 at MMIO 0x40100000 (irq = 15) is a FFUART
ttyS1 at MMIO 0x40200000 (irq = 14) is a BTUART
ttyS2 at MMIO 0x40700000 (irq = 13) is a STUART
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Using anticipatory io scheduler
physmap flash device: 4000000 at 0
cfi_cmdset_0001: Erase suspend on write enabled
Using buffer write method
cmdlinepart partition parsing not available
RedBoot partition parsing not available
pxa2xx_udc: version 14-Dec-2003
usb0: Ethernet Gadget, version: St Patrick's Day 2004
usb0: using pxa2xx_udc, OUT ep2out-bulk IN ep1in-bulk
usb0: MAC 1a:60:19:07:1a:f0
mice: PS/2 mouse device common for all mice
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
NET: Registered protocol family 1
Kernel panic: VFS: Unable to mount root fs on unknown-block(1,0)
====

It seems that the kernel recieves all tags u-boot provided, but not 
all are parsed. Which seems strange, since none of the parse_tag_* 
functions in arch/arm/kernel/setup.c which are called by parse_tags(),
can return something other than 0 which means that parse_tags() should
read the next tag wich it doesn't. 

Has anybody experienced something simmilar, is this a known issue?








More information about the U-Boot mailing list