<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
&nbsp;
<br>Hi Guys,
<p>I am new to both this mailing-list and embedded linuxppc.&nbsp; Currently
I am working on IBM ebony evaluation platform, and I&nbsp;got couple of
doubts which I can't figure out. I programmed u-boot 3.0.0 into the flash
and trying to use NFS to boot the kernel. Here are my questions,
<p>1. At U-Boot phase
<p>I got output on console:
<p>U-Boot 0.3.0 (Apr 15 2003 - 14:12:33)
<p>IBM PowerPC 440 Rev. C
<br>Board: IBM 440GP Evaluation Board (Ebony)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VCO: 800 MHz
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPU: 400 MHz
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PLB: 133 MHz
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OPB: 66 MHz
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EPB: 66 MHz
<br>I2C:&nbsp;&nbsp; ready
<br>DRAM:&nbsp; I2c read: failed 4
<br>I2c read: failed 4
<br>128 MB
<br>FLASH:&nbsp; 4.5 MB
<br>PCI:&nbsp;&nbsp; Bus Dev VenId DevId Class Int
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00&nbsp; 04&nbsp; 1095&nbsp;
0680&nbsp; 0104&nbsp; 00
<br>In:&nbsp;&nbsp;&nbsp; serial
<br>Out:&nbsp;&nbsp; serial
<br>Err:&nbsp;&nbsp; serial
<br>KGDB:&nbsp; kgdb ready
<br>ready
<br>BEDBUG:ready
<br>=>
<p>Why u-boot failed on my DRAM I2C read although it still can find out
the correctly amount ?
<p>At this point of time, I am not able to ping the target from my host(RH
7.3). From the host:
<br>root@Jeff u-boot-0.3.0&lt;1063>ping 7.1.1.6
<br>PING 7.1.1.6 (7.1.1.6) from 7.1.1.4 : 56(84) bytes of data.
<br>From 7.1.1.4 icmp_seq=1 Destination Host Unreachable
<br>From 7.1.1.4 icmp_seq=2 Destination Host Unreachable
<br>....
<p>root@Jeff u-boot-0.3.0&lt;1064>cat /proc/net/arp
<br>IP address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HW type&nbsp;&nbsp;&nbsp;&nbsp;
Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HW address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Mask&nbsp;&nbsp;&nbsp;&nbsp; Device
<br>7.1.1.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00:00:00:00&nbsp;&nbsp;&nbsp;&nbsp;
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eth1
<br>10.1.1.171&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:A0:C5:E0:C4:EC&nbsp;&nbsp;&nbsp;&nbsp;
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eth0
<p>I guess that dear Ms. U-Boot does not bring up arp, is that right?
<p>2. Now, I am trying to tftp kernel image, and on target console:
<p>=> tftp
<br>ENET Speed is 100 Mbps - FULL duplex connection
<br>ARP broadcast 1
<br>TFTP from server 7.1.1.4; our IP address is 7.1.1.6
<br>Filename 'vmlinux.PPCBoot'.
<br>Load address: 0x1000000
<br>Loading: #################################################################
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #################################################################
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ###########
<br>done
<br>Bytes transferred = 718502 (af6a6 hex)
<br>=>
<p>Ok, it got the image.
<p>On host side,&nbsp; I have:
<p>root@Jeff u-boot-0.3.0&lt;1065>cat /proc/net/arp
<br>IP address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HW type&nbsp;&nbsp;&nbsp;&nbsp;
Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HW address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Mask&nbsp;&nbsp;&nbsp;&nbsp; Device
<br>7.1.1.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:04:AC:E3:1D:62&nbsp;&nbsp;&nbsp;&nbsp;
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eth1
<br>10.1.1.171&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:A0:C5:E0:C4:EC&nbsp;&nbsp;&nbsp;&nbsp;
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eth0
<p>Ms. U-Boot looks more pretty and coorprative now, right? But I still
couldn't ping her,
<br>root@Jeff u-boot-0.3.0&lt;1066>ping 7.1.1.6
<br>PING 7.1.1.6 (7.1.1.6) from 7.1.1.4 : 56(84) bytes of data.
<br>From 7.1.1.4 icmp_seq=1 Destination Host Unreachable
<br>From 7.1.1.4 icmp_seq=2 Destination Host Unreachable
<br>......
<p>3. Now I am trying to boot up kernel, she says:
<p>=> bootm
<br>## Booting image at 01000000 ...
<br>&nbsp;&nbsp; Image Name:&nbsp;&nbsp; Linux-2.4.21-pre7-big
<br>&nbsp;&nbsp; Created:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2003-04-15&nbsp;
18:05:48 UTC
<br>&nbsp;&nbsp; Image Type:&nbsp;&nbsp; PowerPC Linux Kernel Image (gzip
compressed)
<br>&nbsp;&nbsp; Data Size:&nbsp;&nbsp;&nbsp; 718438 Bytes = 701.6 kB
<br>&nbsp;&nbsp; Load Address: 00000000
<br>&nbsp;&nbsp; Entry Point:&nbsp; 00000000
<br>&nbsp;&nbsp; Verifying Checksum ... OK
<br>&nbsp;&nbsp; Uncompressing Kernel Image ... OK
<br>Linux version 2.4.21-pre7-big (root@Jeff) (gcc version 2.95.2 19991024
(release)
<br>) #60 Tue Apr 15 18:04:53 UTC 2003
<br>IBM Ebony port (C) 2002 MontaVista Software, Inc. (source@mvista.com)
<br>On node 0 totalpages: 32768
<br>zone(0): 4096 pages.
<br>zone(1): 28672 pages.
<br>zone(2): 0 pages.
<br>Kernel command line: console=ttyS0,9600 ip=7.1.1.6:::255.255.255.0:ppclinux:eth0
<br>&nbsp;nfsroot=7.1.1.4:/exports/eldk/ppc_4xx
<br>Calibrating delay loop... 599.65 BogoMIPS
<br>Memory: 127436k available (1176k kernel code, 420k data, 224k init,
0k highmem)
<br>Dentry cache hash table entries: 16384 (order: 5, 131072 bytes)
<br>Inode cache hash table entries: 8192 (order: 4, 65536 bytes)
<br>Mount cache hash table entries: 512 (order: 0, 4096 bytes)
<br>Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
<br>Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
<br>POSIX conformance testing by UNIFIX
<br>PCI: Probing PCI hardware
<br>Linux NET4.0 for Linux 2.4
<br>Based upon Swansea University Computer Society NET3.039
<br>Initializing RT netlink socket
<br>Starting kswapd
<br>devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
<br>devfs: boot_options: 0x1
<br>Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
<br>i2c-core.o: i2c core module
<br>i2c-dev.o: i2c /dev entries driver module
<br>i2c-core.o: driver i2c-dev dummy driver registered.
<br>i2c-proc.o version 2.6.1 (20010825)
<br>pty: 256 Unix98 ptys configured
<br>Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
SERIAL_PCI en
<br>abled
<br>ttyS00 at 0xfdfe9200 (irq = 0) is a 16550A
<br>ttyS01 at 0xfdfe8300 (irq = 1) is a 16550A
<br>RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
<br>Zmii bridge in RMII mode
<br>eth0: Phy @ 0x8, type Am79c875A (0x00225541)
<br>Reset ethernet interfaces
<br>Zmii bridge in RMII mode
<br>eth1: Phy @ 0x9, type Am79c875A (0x00225541)
<br>Reset ethernet interfaces
<br>Uniform Multi-Platform E-IDE driver Revision: 7.00beta-2.4
<br>ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
<br>SiI680: IDE controller at PCI slot 00:04.0
<br>SiI680: chipset revision 1
<br>SiI680: not 100% native mode: will probe irqs later
<br>SiI680: BASE CLOCK == 133
<br>&nbsp;&nbsp;&nbsp; ide0: MMIO-DMA at 0xc900ef00-0xc900ef07, BIOS settings:
hda:pio, hdb:pio
<br>&nbsp;&nbsp;&nbsp; ide1: MMIO-DMA at 0xc900ef08-0xc900ef0f, BIOS settings:
hdc:pio, hdd:pio
<br>Probing IDE interface ide0...
<br>hda: IBM-DTLA-307015, ATA DISK drive
<br>blk: queue c01c10d0, I/O limit 4095Mb (mask 0xffffffff)
<br>Probing IDE interface ide1...
<br>ide0 at 0xc900ef80-0xc900ef87,0xc900ef8a on irq 26
<br>hda: attached ide-disk driver.
<br>hda: host protected area => 1
<br>hda: 30003120 sectors (15362 MB) w/1916KiB Cache, CHS=29765/16/63,
UDMA(100)
<br>Partition check:
<br>&nbsp;/dev/ide/host0/bus0/target0/lun0: [PTBL] [1867/255/63] p1
<br>IBM IIC driver
<br>i2c-dev.o: Registered 'IBM IIC adapter' as minor 0
<br>i2c-core.o: adapter IBM IIC adapter registered as adapter 0.
<br>i2c-dev.o: Registered 'IBM IIC adapter' as minor 1
<br>i2c-core.o: adapter IBM IIC adapter registered as adapter 1.
<br>NET4: Linux TCP/IP 1.0 for NET4.0
<br>IP Protocols: ICMP, UDP, TCP, IGMP
<br>IP: routing cache hash table of 1024 buckets, 8Kbytes
<br>TCP: Hash tables configured (established 8192 bind 8192)
<br>eth0: IBM EMAC: link up, 100 Mbps Full Duplex, auto-negotiation complete.
<br>eth0: IBM EMAC: MAC ff:ff:ff:ff:ff:ff.
<br>eth0: IBM EMAC: open completed
<p>IP-Config: Complete:
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device=eth0, addr=7.1.1.6, mask=255.255.255.0,
gw=255.255.255.255,
<br>&nbsp;&nbsp;&nbsp;&nbsp; host=ppclinux, domain=, nis-domain=(none),
<br>&nbsp;&nbsp;&nbsp;&nbsp; bootserver=255.255.255.255, rootserver=7.1.1.4,
rootpath=
<br>NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
<br>Looking up port of RPC 100003/2 on 7.1.1.4
<p>Look, Mrs. U-Boot bring up the kernel and Mr. Kernel talks lot but he
stucks here refusing to move ahead. Seems like kernel didn't get his MAC&nbsp;
address properly, so he couldn't connect to host bootp server. My question
is that how does Ms. U-Boot pass the environment variable to Mr. Kernel,
as something I got from this archive?
<p>On host:
<br>root@Jeff u-boot-0.3.0&lt;1067>cat /proc/net/arp
<br>IP address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HW type&nbsp;&nbsp;&nbsp;&nbsp;
Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HW address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Mask&nbsp;&nbsp;&nbsp;&nbsp; Device
<br>7.1.1.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:04:AC:E3:1D:62&nbsp;&nbsp;&nbsp;&nbsp;
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eth1
<br>10.1.1.171&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:A0:C5:E0:C4:EC&nbsp;&nbsp;&nbsp;&nbsp;
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eth0
<br>&nbsp;
<p>4. Then I issued a ping from host,
<br>root@Jeff u-boot-0.3.0&lt;1068>ping 7.1.1.6
<br>PING 7.1.1.6 (7.1.1.6) from 7.1.1.4 : 56(84) bytes of data.
<br>64 bytes from 7.1.1.6: icmp_seq=1 ttl=64 time=0.506 ms
<br>64 bytes from 7.1.1.6: icmp_seq=2 ttl=64 time=0.166 ms
<br>64 bytes from 7.1.1.6: icmp_seq=3 ttl=64 time=0.146 ms
<br>64 bytes from 7.1.1.6: icmp_seq=4 ttl=64 time=0.137 ms
<br>64 bytes from 7.1.1.6: icmp_seq=5 ttl=64 time=0.138 ms
<br>64 bytes from 7.1.1.6: icmp_seq=6 ttl=64 time=0.137 ms
<br>.....
<p>This makes Mr. Kernel keep going:
<br>Looking up port of RPC 100005/1 on 7.1.1.4
<br>VFS: Mounted root (nfs filesystem).
<br>Mounted devfs on /dev
<br>Freeing unused kernel memory: 224k init
<br>INIT: version 2.78 booting
<br>Remounting the root filesystem read-write.
<br>Cleaning: /tmp /var/lock /var/run.
<br>Mounting local file systems...
<br>none on /dev/pts type devpts (rw,gid=5,mode=620)
<br>Setting up IP spoofing protection: rp_filter.
<br>Configuring network interfaces: done.
<br>Starting portmap daemon: portmap.
<br>Initializing random number generator... done.
<br>INIT: Entering runlevel: 2
<br>Starting system logger: Done
<br>Starting kernel logger: Done
<br>Starting xinetd: Done
<p>Welcome to DoReMi Labs. Inc.
<br>ppclinux login:
<br>&nbsp;
<p>Looks like the kernel got himself's MAC through the icmp message. It
is fairly wired to me.
<p>At this moment, on host:
<br>root@Jeff u-boot-0.3.0&lt;1069>cat /proc/net/arp
<br>IP address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HW type&nbsp;&nbsp;&nbsp;&nbsp;
Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HW address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Mask&nbsp;&nbsp;&nbsp;&nbsp; Device
<br>7.1.1.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FF:FF:FF:FF:FF:FF&nbsp;&nbsp;&nbsp;&nbsp;
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eth1
<br>10.1.1.171&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:A0:C5:E0:C4:EC&nbsp;&nbsp;&nbsp;&nbsp;
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eth0
<br>root@Jeff u-boot-0.3.0&lt;1070>
<p>You will see Mr. Linux Kernel tries to cheat the host by a wrong MAC
address.
<br>&nbsp;
<p>Below is my environment variable settings special for dear Ms. U-Boot:
<p>=> printenv
<br>baudrate=9600
<br>loads_echo=1
<br>loadaddr=0x01000000
<br>ethaddr=00:04:ac:e3:1d:62
<br>filesize=b6820
<br>netmask=255.255.255.0
<br>ipaddr=7.1.1.6
<br>serverip=7.1.1.4
<br>bootfile=vmlinux.PPCBoot
<br>bootargs=console=ttyS0,9600 ip=7.1.1.6:::255.255.255.0:ppclinux:eth0
nfsroot=7.1
<br>.1.4:/exports/eldk/ppc_4xx&nbsp;&nbsp; root=/dev/nfs rw
<br>stdin=serial
<br>stdout=serial
<br>stderr=serial
<p>Environment size: 602/4092 bytes
<br>=>
<p>And:
<br>=> bdi
<br>memstart&nbsp;&nbsp;&nbsp; = 0x00000000
<br>memsize&nbsp;&nbsp;&nbsp;&nbsp; = 0x08000000
<br>flashstart&nbsp; = 0xFF800000
<br>flashsize&nbsp;&nbsp; = 0x00480000
<br>flashoffset = 0x00000000
<br>sramstart&nbsp;&nbsp; = 0x00000000
<br>sramsize&nbsp;&nbsp;&nbsp; = 0x00000000
<br>bootflags&nbsp;&nbsp; = 0x00000000
<br>intfreq&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; 400 MHz
<br>busfreq&nbsp;&nbsp;&nbsp;&nbsp; = 133.333 MHz
<br>ethaddr&nbsp;&nbsp;&nbsp;&nbsp; = 00:04:AC:E3:1D:62
<br>IP addr&nbsp;&nbsp;&nbsp;&nbsp; = 7.1.1.6
<br>baudrate&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 9600 bps
<br>=>
<br>&nbsp;
<p>Could anyone give me some hint on these issues?
<p>Thanks in advance,
<pre>--&nbsp;
Jeff H. Zhong
-------------
Doremi Labs, Inc.
306 East Alameda Avenue
Burbank, CA 91502
Tel : (818) 562 1101
Fax : (818) 562 1109</pre>
&nbsp;</html>