Subject: Re: regarding kgdb in ppc

From: sudheer <[email-masked]>
Date: Wed, 31 Jan 2007 09:09:52 +0530

Hello Sergei Shtylyov

It is working now. Thank you very much  for all the help and  support.
>
> sudheer wrote:
>
>>>> 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
   I gave the bootargs
console=ttyS0,115200 root=/dev/ram rw 
kgdboe=@192.168.3.80/,@192.168.3.14/ 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.
>
>    What, you don't have ARP on host?!
I have added the patch and  the arp entry in the host for the target , 
only then the gdb and kgdb are communicating.

Even now it shows all FFs while booting but after booting i could bring 
up eth0 and ping.

<DUMP>

Memory CAM mapping: CAM0=256Mb, CAM1=0Mb, CAM2=0Mb residual: 0Mb
Linux version 2.6.15.5 (root@Sudheer) (gcc version 3.4.4) #54 Tue Jan 30 
15:30:07 IST 2007
KGDB cannot initialize I/O yet.
Built 1 zonelists
Kernel command line: console=ttyS0,115200 root=/dev/ram rw 
ramdisk_size=12288 kgdboe=@192.168.3.80/,@192.168.3.14/ 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 ff:ff:ff:ff:ff:ff
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: 254976k available (1616k kernel code, 444k 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: 2260k 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 12288K 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:78: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 ff:ff:ff:ff:ff:ff
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...               <WAITS 
HERE FOR GDB>
RAMDISK: Compressed image found at block 0
EXT2-fs warning: maximal mount count reached, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 120k init
init started:  BusyBox v1.1.2 (2006.09.27-13:46+0000) multi-call binary
### Application running ...

Thanks
Sudheer

>
>> 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);
>>
>> }
>
>    This isn't complete, please use the community patch.  Gianfar TSEC 
> has 3 interrupts and all of them must be disabled.
>
>> 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.
>
>    You certainly didn't need to backport the whole 2.6.20-rc1, only a 
> signle patch (-:
>
> http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=f2d71c2d800e68f158a5949e38b23f5140948548 
>
>
> WBR, Sergei
>