<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<br>Hi Guys,
<p>I am new to both this mailing-list and embedded linuxppc. Currently
I am working on IBM ebony evaluation platform, and I 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> VCO: 800 MHz
<br> CPU: 400 MHz
<br> PLB: 133 MHz
<br> OPB: 66 MHz
<br> EPB: 66 MHz
<br>I2C: ready
<br>DRAM: I2c read: failed 4
<br>I2c read: failed 4
<br>128 MB
<br>FLASH: 4.5 MB
<br>PCI: Bus Dev VenId DevId Class Int
<br> 00 04 1095
0680 0104 00
<br>In: serial
<br>Out: serial
<br>Err: serial
<br>KGDB: 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<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<1064>cat /proc/net/arp
<br>IP address HW type
Flags HW address
Mask Device
<br>7.1.1.6 0x1
0x0 00:00:00:00:00:00
* eth1
<br>10.1.1.171 0x1
0x2 00:A0:C5:E0:C4:EC
* 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> #################################################################
<br> ###########
<br>done
<br>Bytes transferred = 718502 (af6a6 hex)
<br>=>
<p>Ok, it got the image.
<p>On host side, I have:
<p>root@Jeff u-boot-0.3.0<1065>cat /proc/net/arp
<br>IP address HW type
Flags HW address
Mask Device
<br>7.1.1.6 0x1
0x0 00:04:AC:E3:1D:62
* eth1
<br>10.1.1.171 0x1
0x2 00:A0:C5:E0:C4:EC
* 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<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> Image Name: Linux-2.4.21-pre7-big
<br> Created: 2003-04-15
18:05:48 UTC
<br> Image Type: PowerPC Linux Kernel Image (gzip
compressed)
<br> Data Size: 718438 Bytes = 701.6 kB
<br> Load Address: 00000000
<br> Entry Point: 00000000
<br> Verifying Checksum ... OK
<br> 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> 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> ide0: MMIO-DMA at 0xc900ef00-0xc900ef07, BIOS settings:
hda:pio, hdb:pio
<br> 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> /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> device=eth0, addr=7.1.1.6, mask=255.255.255.0,
gw=255.255.255.255,
<br> host=ppclinux, domain=, nis-domain=(none),
<br> 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
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<1067>cat /proc/net/arp
<br>IP address HW type
Flags HW address
Mask Device
<br>7.1.1.6 0x1
0x0 00:04:AC:E3:1D:62
* eth1
<br>10.1.1.171 0x1
0x2 00:A0:C5:E0:C4:EC
* eth0
<br>
<p>4. Then I issued a ping from host,
<br>root@Jeff u-boot-0.3.0<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>
<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<1069>cat /proc/net/arp
<br>IP address HW type
Flags HW address
Mask Device
<br>7.1.1.6 0x1
0x2 FF:FF:FF:FF:FF:FF
* eth1
<br>10.1.1.171 0x1
0x2 00:A0:C5:E0:C4:EC
* eth0
<br>root@Jeff u-boot-0.3.0<1070>
<p>You will see Mr. Linux Kernel tries to cheat the host by a wrong MAC
address.
<br>
<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 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 = 0x00000000
<br>memsize = 0x08000000
<br>flashstart = 0xFF800000
<br>flashsize = 0x00480000
<br>flashoffset = 0x00000000
<br>sramstart = 0x00000000
<br>sramsize = 0x00000000
<br>bootflags = 0x00000000
<br>intfreq = 400 MHz
<br>busfreq = 133.333 MHz
<br>ethaddr = 00:04:AC:E3:1D:62
<br>IP addr = 7.1.1.6
<br>baudrate = 9600 bps
<br>=>
<br>
<p>Could anyone give me some hint on these issues?
<p>Thanks in advance,
<pre>--
Jeff H. Zhong
-------------
Doremi Labs, Inc.
306 East Alameda Avenue
Burbank, CA 91502
Tel : (818) 562 1101
Fax : (818) 562 1109</pre>
</html>