[U-Boot] having trouble booting a simple kernel on a TQM860 board

Wolfgang Denk wd at denx.de
Sat Dec 3 01:16:03 CET 2011


Dear Robert,

In message <alpine.DEB.2.02.1112021750480.27686 at oneiric> you wrote:
> 
>   i'm using the 2.6.37 kernel for both and while the lite5200s have a
> fairly new version of u-boot (2010.12), the TQMs have an ancient
> version (0.4.0, possibly slightly newer), and i have no freedom to
> update those so don't even make the suggestion.  i just have to live
> with that.

What you say boils down to: Please help me, but don't mention the
solution, because I'm not going to do that.  In short, it's stupid.
You are wasting your time, and ours.

In the first step, please update your U-Boot.  0.4.0 has no support
for device tree.

Top of tree build and runs just fine (OK, this is a TQM855M instead of
a TQM860, but this is just an unimportant detail):

	-> eldk-switch -r 5.1 powerpc
	Setup for powerpc (using ELDK 5.1)
	-> ./MAKEALL TQM855M
	pwd
	Configuring for TQM855M board...
	   text    data     bss     dec     hex filename
	 222242    4468   27536  254246   3e126 ./u-boot

	--------------------- SUMMARY ----------------------------
	Boards compiled: 1
	----------------------------------------------------------

	U-Boot 2011.09-01259-g7708d8b (Dec 03 2011 - 00:55:16)

	CPU:   XPC855xxZPnnD4 at 66 MHz: 4 kB I-Cache 4 kB D-Cache FEC present
	Board: TQM855MDCBAB7-T66.102
	I2C:   ready
	DRAM:  32 MiB
	Flash: 8 MiB
	In:    serial
	Out:   serial
	Err:   serial
	Net:   SCC, FEC
	PCMCIA:   No Card found

	Type run flash_nfs to mount root filesystem over NFS

	Hit any key to stop autoboot:  0 

Ditto for Linux:

	-> git describe 
	v3.1.4
	-> eldk-switch -r 5.1 powerpc
	Setup for powerpc (using ELDK 5.1)
	-> make tqm8xx_defconfig
	-> make -j8 uImage
	...
	Image Name:   Linux-3.1.4
	Created:      Fri Dec  2 23:54:09 2011
	Image Type:   PowerPC Linux Kernel Image (gzip compressed)
	Data Size:    1297168 Bytes = 1266.77 kB = 1.24 MB
	Load Address: 00000000
	Entry Point:  00000000
	-> make tqm8xx.dtb
	  DTC     arch/powerpc/boot/tqm8xx.dtb
	DTC: dts->dtb  on file "arch/powerpc/boot/dts/tqm8xx.dts"

	...
	=> print bootcmd net_nfs kernel_addr_r bootfile fdt_addr_r fdt_file nfsargs addip addcons addmtd 
	bootcmd=run net_nfs
	net_nfs=tftp ${kernel_addr_r} ${bootfile};tftp ${fdt_addr_r} ${fdt_file};run nfsargs addip addcons addmtd;bootm ${kernel_addr_r} - ${fdt_addr_r}
	kernel_addr_r=400000
	bootfile=TQM855M/uImage
	fdt_addr_r=600000
	fdt_file=TQM855M/tqm8xx.dtb
	nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}
	addip=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off panic=1
	addcons=setenv bootargs ${bootargs} console=${console},${baudrate}
	## Error: "addmtd" not defined

	=> run net_nfs
	Using SCC device
	TFTP from server 192.168.1.1; our IP address is 192.168.1.71
	Filename 'TQM855M/uImage'.
	Load address: 0x400000
	Loading: #################################################################
		 ########################
	done
	Bytes transferred = 1297232 (13cb50 hex)
	Using SCC device
	TFTP from server 192.168.1.1; our IP address is 192.168.1.71
	Filename 'TQM855M/tqm8xx.dtb'.
	Load address: 0x600000
	Loading: #
	done
	Bytes transferred = 4020 (fb4 hex)
	## Error: "addmtd" not defined
	## Booting kernel from Legacy Image at 00400000 ...
	   Image Name:   Linux-3.1.4
	   Created:      2011-12-02  23:54:09 UTC
	   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
	   Data Size:    1297168 Bytes = 1.2 MiB
	   Load Address: 00000000
	   Entry Point:  00000000
	   Verifying Checksum ... OK
	## Flattened Device Tree blob at 00600000
	   Booting using the fdt blob at 0x00600000
	   Uncompressing Kernel Image ... OK
	   Loading Device Tree to 007fc000, end 007fffb3 ... OK
	Using TQM8xx machine description
	Linux version 3.1.4 (wd at pollux.denx.de) (gcc version 4.6.1 20110627 (prerelease) (GCC) ) #2 Sat Dec 3 00:53:34 CET 2011
	Zone PFN ranges:
	  DMA      0x00000000 -> 0x00002000
	  Normal   empty
	Movable zone start PFN for each node
	early_node_map[1] active PFN ranges
	    0: 0x00000000 -> 0x00002000
	MMU: Allocated 72 bytes of context maps for 16 contexts
	Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
	Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.1:/opt/eldk/ppc_8xx ip=192.168.1.71:192.168.1.1::255.255.0.0:TQM855M:eth1:off panic=1 console=ttyCPM0,115200
	PID hash table entries: 128 (order: -3, 512 bytes)
	Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
	Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
	Memory: 29688k/32768k available (2508k kernel code, 3080k reserved, 88k data, 89k bss, 100k init)
	Kernel virtual memory layout:
	  * 0xfffdf000..0xfffff000  : fixmap
	  * 0xfde00000..0xfe000000  : consistent mem
	  * 0xfddfa000..0xfde00000  : early ioremap
	  * 0xc3000000..0xfddfa000  : vmalloc & ioremap
	SLUB: Genslabs=14, HWalign=16, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
	NR_IRQS:512 nr_irqs:512 16
	Decrementer Frequency = 0x3ef148
	clocksource: timebase mult[3c9b26ca] shift[22] registered
	console [ttyCPM0] enabled
	pid_max: default: 4096 minimum: 301
	Mount-cache hash table entries: 512
	NET: Registered protocol family 16
	bio: create slab <bio-0> at 0
	Switching to clocksource timebase
	Switched to NOHz mode on CPU #0
	NET: Registered protocol family 2
	IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
	TCP established hash table entries: 1024 (order: 1, 8192 bytes)
	TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
	TCP: Hash tables configured (established 1024 bind 1024)
	TCP reno registered
	NET: Registered protocol family 1
	RPC: Registered named UNIX socket transport module.
	RPC: Registered udp transport module.
	RPC: Registered tcp transport module.
	RPC: Registered tcp NFSv4.1 backchannel transport module.
	msgmni has been set to 57
	io scheduler noop registered
	io scheduler deadline registered (default)
	fff00a80.serial: ttyCPM0 at MMIO 0xc3014a80 (irq = 19) is a CPM UART
	Generic RTC Driver v1.07
	40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000001 Chip ID 0x001d00
	Amd/Fujitsu Extended Query Table at 0x0040
	  Amd/Fujitsu Extended Query version 1.3.
	number of CFI chips: 1
	Fixed MDIO Bus: probed
	eth0: fs_enet: 00:d0:93:00:cb:3b
	eth1: fs_enet: 00:d0:93:00:cb:3a
	FEC MII Bus: probed
	TCP cubic registered
	NET: Registered protocol family 17
	IP-Config: Complete:
	     device=eth1, addr=192.168.1.71, mask=255.255.0.0, gw=255.255.255.255,
	     host=TQM855M, domain=, nis-domain=(none),
	     bootserver=192.168.1.1, rootserver=192.168.1.1, rootpath=
	VFS: Mounted root (nfs filesystem) on device 0:11.
	Freeing unused kernel memory: 100k freed
	...
	TQM855M login: root
	Last login: Sat Dec  3 01:14:08 on console
	-bash-3.2# 

>   with the tqm860's, i'm following some documentation that was given
> to me that allegedly has worked in the past, so i run:
> 
>   $ make ARCH=powerpc tqm8xx_defconfig
>   $ make ARCH=powerpc uImage
> 
> what i get in arch/powerpc/boot is:

You fail to build a device tree blob.

> => tftp 400000 uImage.tqm860

You fail to pass the device tree - which is essential.

And device tree support is not present in your old version of U-Boot.

>   am i just missing something obvious?  what should i use for the
> kernel console setting?  i'm open to suggestions.

Seems your documentation is a couple of years out of date. Please
update.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
You can only live once, but if you do it right, once is enough.


More information about the U-Boot mailing list