[U-Boot-Users] Ebony boot issues -- help wanted

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