Subject: Re: regarding kgdb in ppc

From: sudheer <[email-masked]>
Date: Mon, 29 Jan 2007 17:08:16 +0530

Hello Sergie
Thanks for the reply.
>> I gave the following bootargs:
>> console=ttyS0,115200 root=/dev/ram rw 
>> kgdboe=@192.168.3.80/,@192.168.3.14/00:08:A1:84:EF:CA kgdbwait
>
>    You don't have to specify the remote MAC, IIUC.
When i dont give the mac address, the mac address all FFs(default) is 
considered. So am giving the mac address too, only then its working 
properly.

I have added few lines of code in driver/net/gianfar.c

void gfar_poll_gianfar(struct net_device *dev )
{
    disable_irq(dev->irq);
    gfar_interrupt(dev->irq, dev,  NULL);
    enable_irq(dev->irq);

}

Now am able to boot the target kernel without any error. kgdb waits for gdb connection.

>> kgdboe: local port 6443
>> kgdboe: local IP 192.168.3.80
>> kgdboe: interface eth0
>> kgdboe: remote port 6442
>> kgdboe: remote IP 192.168.3.14
>> kgdboe: remote ethernet address 00:08:a1:84:ef:ca
>> kgdboe: eth0 doesn't support polling, aborting.
>> kgdboe: netpoll_setup failed kgdboe failed
>
>    Have you backported the gianfar netpoll patch from 2.6.20-rc1?

I haven't backported the 2.6.20-rc1. As there are  many patches under that tree , i didnt try for it and could not know which one to add.
I could get only the below when googled.
http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc1/2.6.20-rc1-mm1/

After booting the target kernel, it waits for the gdb connection.
At this point of time, i could not ping to the target kernel. The ping says unreachable.

On the host side :

[root@Sudheer linux-2.6.15.5]# powerpc-eabi-gdb ./vmlinux
GNU gdb 6.3
<gdb stuff>
(gdb) target remote udp:192.168.3.80:6443
warning: The remote protocol may be unreliable over UDP.
warning: Some events may be lost, rendering further debugging impossible.
Remote debugging using udp:192.168.3.80:6443
Ignoring packet error, continuing...
Ignoring packet error, continuing...
Couldn't establish connection to remote target
Quit
(gdb) 

The complete dump on target side is as follows:

<tftp, booting >
mpc8540ads_init(): exit
id mach(): done
MMU:enter
MMU:hw init
MMU:mapin
MMU:setio
MMU:exit
setup_arch: enter
setup_arch: bootmem
mpc8540ads_setup_arch()
arch: exit
openpic: enter

Memory CAM mapping: CAM0=256Mb, CAM1=0Mb, CAM2=0Mb residual: 0Mb
Linux version 2.6.15.5 (root@Sudheer) (gcc version 3.4.4) #48 Mon Jan 29 14:02:38
IST 2007
KGDB cannot initialize I/O yet.
Built 1 zonelists
Kernel command line: console=ttyS0,115200 root=/dev/ram rw
kgdboe=@192.168.3.80/,@192.168.3.14/00:08:A1:84:EF:CA kgdbwait
kgdboe: local port 6443
kgdboe: local IP 192.168.3.80
kgdboe: interface eth0
kgdboe: remote port 6442
kgdboe: remote IP 192.168.3.14
kgdboe: remote ethernet address 00:08:a1:84:ef:ca
OpenPIC Version 1.2 (1 CPUs and 60 IRQ sources) at fcfbb000
PID hash table entries: 2048 (order: 11, 32768 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 255744k available (1596k kernel code, 376k data, 120k init, 0k highmem)
Mount-cache hash table entries: 512
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 1682k freed
NET: Registered protocol family 16
PCI: Probing PCI hardware
Generic PHY: Registered new driver
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Generic RTC Driver v1.07
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO map 0xfdf04500 mem 0xfcffc500 (irq = 26) is a 16550A
serial8250.0: ttyS1 at MMIO map 0xfdf04600 mem 0xfcffb600 (irq = 26) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 32768K size 1024 blocksize
loop: loaded (max 8 devices)
Gianfar MII Bus: probed
eth0: Gianfar Ethernet Controller Version 1.2, 00:01:af:07:9b:8a
eth0: Running with NAPI enabled
eth0: 256/256 RX/TX BD ring size
eth1: Gianfar Ethernet Controller Version 1.2, 00:01:af:07:9b:8b
eth1: Running with NAPI enabled
eth1: 256/256 RX/TX BD ring size
eth2: Gianfar Ethernet Controller Version 1.2, 7f:68:36:82:b9:f7
eth2: Running with NAPI enabled
eth2: 256/256 RX/TX BD ring size
netconsole: not configured, aborting
kgdboe: local port 6443
kgdboe: local IP 192.168.3.80
kgdboe: interface eth0
kgdboe: remote port 6442
kgdboe: remote IP 192.168.3.14
kgdboe: remote ethernet address 00:08:a1:84:ef:ca
kgdboe: device eth0 not up yet, forcing it
kgdboe: carrier detect appears untrustworthy, waiting 4 seconds
phy0:7: Link is Up - 100/Full
kgdboe: debugging over ethernet enabled
i2c /dev entries driver
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 4, 65536 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
kgdb: Waiting for connection from remote gdb...
Waiting for connection from remote gdb...

>> Thanks
>> Sudheer
> WBR, Sergei