Hi there,
I am using dm6467 based custom board. i have a firewire chip sitting on the PCI 
bus.After enabling the PCI support in the kernel , i could list the following 
entry when lspci executed.
## lspci00:08.0 Class 0c00: 104c:8026

I have a requirement to use Networking over firewire, so following are enabled 
on the menuconfig
CONFIG_IEEE1394CONFIG_IEEE1394_OHCI1394CONFIG_IEEE1394_RAWIOCONFIG_IEEE1394_ETH1394

when the board boots up, ifconfig shows the following:
#ifconfig eth0eth0      Link encap:UNSPEC  HWaddr 
00-30-8D-01-20-C0-95-8D-00-00-00-00-00-00-00-00          inet addr:172.16.1.57  
Bcast:172.16.255.255  Mask:255.255.0.0          UP BROADCAST RUNNING MULTICAST  
MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          
collisions:0 txqueuelen:1000          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
but tried to ping to any PC, it does not ping.
after some time of debugging i came to know that  PCI Host on default EVMs 
cannot receive PCI interrupts ( 
http://processors.wiki.ti.com/index.php/DaVinci_PSP_3.02_Linux_Installation_User_Guide#PCI_Host_Driver_Known_Issues
 ), i connected the the PCI interrupt line to one of the GPIO interrupt lines. 
(GPIO0 - 48 ). and in the pci-dm646x.c following are changed:
int dm646x_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin){        /*         
* Standard EVM doesn't have any dedicated lines connected to PCI         * 
Interrupts.         */
        return 48; // testing added by xxxxx , GPIO line 48        return -1;}
kernel boot log as follows:
Linux version 2.6.32-rc2-davinci1final (r...@ieee) (gcc version 4.3.3 (Sourcery 
G++ Lite 2009q1-203) ) #763 PREEMPT Mon Oct 18 19:05:32 IST 2010CPU: ARM926EJ-S 
[41069265] revision 5 (ARMv5TEJ), cr=00053177CPU: VIVT data cache, VIVT 
instruction cacheMachine: DaVinci DM646x EVMMemory policy: ECC disabled, Data 
cache writebackOn node 0 totalpages: 65536free_area_init_node: node 0, pgdat 
c0d16dd4, node_mem_map c8000000  DMA zone: 256 pages used for memmap  DMA zone: 
0 pages reserved  DMA zone: 32512 pages, LIFO batch:7  Normal zone: 256 pages 
used for memmap  Normal zone: 32512 pages, LIFO batch:7DaVinci dm6467_rev3.x 
variant 0x1Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 
65024Kernel command line: console=ttyS0,115200n8 ip=dhcpPID hash table entries: 
1024 (order: 0, 4096 bytes)Dentry cache hash table entries: 32768 (order: 5, 
131072 bytes)Inode-cache hash table entries: 16384 (order: 4, 65536 
bytes)Memory: 256MB = 256MB totalMemory: 246044KB available (3304K code, 307K 
data, 9936K init, 0K highmem)SLUB: Genslabs=11, HWalign=32, Order=0-3, 
MinObjects=0, CPUs=1, Nodes=1Hierarchical RCU 
implementation.NR_IRQS:245Console: colour dummy device 80x30Calibrating delay 
loop... 181.86 BogoMIPS (lpj=909312)Mount-cache hash table entries: 512CPU: 
Testing write buffer coherency: okDaVinci: 43 gpio irqsNET: Registered protocol 
family 16MUX: Setting register STSOMUX_DISABLE           PINMUX0 (0x00000000) = 
0x00040000 -> 0x00040000MUX: Setting register STSIMUX_DISABLE           PINMUX0 
(0x00000000) = 0x00040000 -> 0x00040000MUX: initialized PTSOMUX_DISABLEMUX: 
Setting register PTSOMUX_DISABLE           PINMUX0 (0x00000000) = 0x00040000 -> 
0x00000000MUX: Setting register PTSIMUX_DISABLE           PINMUX0 (0x00000000) 
= 0x00000000 -> 0x00000000@@@@@@ UART 0@@@@@@ UART 1@@@@@@ UART 2MUX: 
initialized HPI32ENMUX: Setting register HPI32EN           PINMUX0 (0x00000000) 
= 0x00000000 -> 0x00000002MUX: initialized PCIENMUX: Setting register PCIEN     
      PINMUX0 (0x00000000) = 0x00000002 -> 0x00000004Driver Reg with 0bio: 
create slab <bio-0> at 0vgaarb: loadedSCSI subsystem initializedSwitching to 
clocksource timer0_1Switched to high resolution mode on CPU 0 musb_hdrc: USB 
Peripheral mode controller at fec64000 using PIO, IRQ 13Driver Reg with 0NET: 
Registered protocol family 2IP route cache hash table entries: 2048 (order: 1, 
8192 bytes)TCP established hash table entries: 8192 (order: 4, 65536 bytes)TCP 
bind hash table entries: 8192 (order: 3, 32768 bytes)TCP: Hash tables 
configured (established 8192 bind 8192)TCP reno registeredNET: Registered 
protocol family 1RPC: Registered udp transport module.RPC: Registered tcp 
transport module.RPC: Registered tcp NFSv4.1 backchannel transport module.      
                                                   PCI DM646x 
:dm646x_pci_initPCI: bootcfg = 0x106, bootmode = 0x6PCI: Invoking PCI 
BIOS...PCI: Enabling Clock...PCI: Setting up Host Controller...PCI: Starting 
PCI scan... nr = 0PCI: Scanning bus 0000:00pci 0000:00:08.0: found [104c:8026] 
class 000c00 header type 00pci 0000:00:08.0: reg 10 32bit mmio: 
[0x000000-0x0007ff]pci 0000:00:08.0: reg 14 32bit mmio: [0x000000-0x003fff]pci 
0000:00:08.0: calling pci_fixup_ide_bases+0x0/0x50pci 0000:00:08.0: calling 
quirk_resource_alignment+0x0/0x1a4pci 0000:00:08.0: calling 
quirk_usb_early_handoff+0x0/0x560pci 0000:00:08.0: supports D1 D2pci 
0000:00:08.0: PME# supported from D0 D1 D2 D3hotpci 0000:00:08.0: PME# 
disabledPCI: Fixups for bus 0000:00PCI: bus0: Fast back to back transfers 
disabledPCI: Bus scan for 0000:00 returning with max=00PCI: 0000:00:08.0 
swizzling pin 1 => pin 1 slot 8PCI: 0000:00:08.0 mapping slot 8 pin 1 => irq 
48pci 0000:00:08.0: fixup irq: got 48PCI: Assigning IRQ 48 to 0000:00:08.0pci 
0000:00:08.0: BAR 1: got res [0x30000000-0x30003fff] bus 
[0x30000000-0x30003fff] flags 0x20200pci 0000:00:08.0: BAR 1: moved to bus 
[0x30000000-0x30003fff] flags 0x20200pci 0000:00:08.0: BAR 0: got res 
[0x30004000-0x300047ff] bus [0x30004000-0x300047ff] flags 0x20200pci 
0000:00:08.0: BAR 0: moved to bus [0x30004000-0x300047ff] flags 0x20200msgmni 
has been set to 481io scheduler noop registeredio scheduler anticipatory 
registered (default)pci 0000:00:08.0: calling 
quirk_cardbus_legacy+0x0/0x38Serial: 8250/16550 driver, 3 ports, IRQ sharing 
disabledserial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a ST16654console 
[ttyS0] enabledserial8250.0: ttyS1 at MMIO 0x1c20400 (irq = 41) is a 
ST16654serial8250.0: ttyS2 at MMIO 0x1c20800 (irq = 42) is a ST16654brd: module 
loadedloop: module loadedat24 1-0050: 32768 byte 24c256 EEPROM (writable)Read 
MAC addr from EEPROM: ff:ff:ff:ff:ff:ff
spi_davinci spi_davinci.0: DaVinci SPI driver in EDMA modeUsing RX channel = 17 
, TX channel = 16 and event queue = 3spi_davinci spi_davinci.0: registered 
master spi0spi spi0.1: setup mode 0, 8 bits/w, 750000 Hz max --> 0spi_davinci 
spi_davinci.0: registered child spi0.1spi_davinci spi_davinci.0: Controller at 
0xfec66800Driver Reg with 0PPP generic driver version 2.4.2PPP Deflate 
Compression module registeredtun: Universal TUN/TAP device driver, 1.6tun: (C) 
1999-2004 Max Krasnyansky <[email protected]>console [netcon0] 
enablednetconsole: network logging started                                      
          DEBUG : ohci1394_pci_probePCI: enabling device 0000:00:08.0 (0140 -> 
0142)ohci1394 0000:00:08.0: enabling bus masteringohci1394: fw-host0: Remapped 
memory spaces reg 0xd0814000ohci1394: fw-host0: SelfID buffer ff001000 is not 
aligned on 8Kb boundary... may cause problems on some CXD3222 chipohci1394: 
fw-host0: Soft reset finishedohci1394: fw-host0: Iso contexts reg: 000000a8 
implemented: 0000000fohci1394: fw-host0: Iso contexts reg: 00000098 
implemented: 000000ff                                                DEBUG : 
PCI_INTERRUPT_LINE: 48,retval:0ohci1394: fw-host0: Receive DMA ctx=0 
initializedohci1394: fw-host0: Receive DMA ctx=0 initializedohci1394: fw-host0: 
Transmit DMA ctx=0 initializedohci1394: fw-host0: Transmit DMA ctx=1 
initializedohci1394: fw-host0: physUpperBoundOffset=00000000ohci1394: fw-host0: 
OHCI-1394 1.1 (PCI): IRQ=[48]  MMIO=[30004000-300047ff]  Max Packet=[2048]  
IR/IT contexts=[4/8]ieee1394: CSR: setting expire to 10, HZ=100ieee1394: 
raw1394: /dev/raw1394 device initialized
eth1394: eth0: IPv4 over IEEE 1394 (fw-host0)ohci1394: fw-host0: 
ohci_iso_recv_init: packet-per-buffer mode, DMA buffer is 16 pages (65536 
bytes), using 16 blocks, buf_stride 4096, block_irq_interval 1mice: PS/2 mouse 
device common for all micei2c /dev entries driverTCP cubic registeredNET: 
Registered protocol family 10NET: Registered protocol family 17Clocks: disable 
unused mcasp0Clocks: disable unused mcasp1Clocks: disable unused emacClocks: 
disable unused timer1Clocks: disable unused idedavinci_emac_probe: using random 
MAC addr: be:b6:99:c7:3a:57emac-mii: probedbase address :  
0x1c80000mdio_register successfullProbe Device Not Found
ieee1394: send packet at S200: 0200dfa0ohci1394: fw-host0: Inserting packet for 
node 0-63:1023, tlabel=0, tcode=0xa, speed=1ohci1394: fw-host0: Starting 
transmit DMA ctx=0ohci1394: fw-host0:  OHCI_BASE+80   0x04520000ohci1394: 
fw-host0:  OHCI_BASE+84   0x00020000.ieee1394: send packet at S200: 
0200dfa0ohci1394: fw-host0: Inserting packet for node 0-63:1023, tlabel=0, 
tcode=0xa, speed=1ohci1394: fw-host0: Waking transmit DMA ctx=0
Freeing init memory: 9936KDSPLINK Module (1.65.00.02) created on Date: Oct  5 
2010 Time: 11:43:58eth1: no IPv6 routers present#
when i tried to ping  following prints are got from kernel:
# ping 172.16.1.55PING 172.16.1.55 (172.16.1.55): 56 data bytesohci1394: 
fw-host0: Inserting packet for node 0-63:1023, tlabel=0, tcode=0xa, 
speed=1ohci1394: fw-host0: Waking transmit DMA ctx=0ohci1394: fw-host0:  
OHCI_BASE+80   0x04520000 // IntEventSet registerohci1394: fw-host0:  
OHCI_BASE+84   0x00020000 // IntEventClearohci1394: fw-host0: Inserting packet 
for node 0-63:1023, tlabel=0, tcode=0xa, speed=1ohci1394: fw-host0: Waking 
transmit DMA ctx=0ohci1394: fw-host0:  OHCI_BASE+80   0x04520000ohci1394: 
fw-host0:  OHCI_BASE+84   0x00020000ohci1394: fw-host0: Inserting packet for 
node 0-63:1023, tlabel=0, tcode=0xa, speed=1ohci1394: fw-host0: Waking transmit 
DMA ctx=0ohci1394: fw-host0:  OHCI_BASE+80   0x04520000ohci1394: fw-host0:  
OHCI_BASE+84   0x00020000ohci1394: fw-host0: Inserting packet for node 
0-63:1023, tlabel=0, tcode=0xa, speed=1ohci1394: fw-host0: Waking transmit DMA 
ctx=0ohci1394: fw-host0:  OHCI_BASE+80   0x04520000ohci1394: fw-host0:  
OHCI_BASE+84   0x00020000ohci1394: fw-host0: Inserting packet for node 
0-63:1023, tlabel=0, tcode=0xa, speed=1ohci1394: fw-host0: Waking transmit DMA 
ctx=0ohci1394: fw-host0:  OHCI_BASE+80   0x04520000ohci1394: fw-host0:  
OHCI_BASE+84   0x00020000ohci1394: fw-host0: Inserting packet for node 
0-63:1023, tlabel=0, tcode=0xa, speed=1ohci1394: fw-host0: Waking transmit DMA 
ctx=0ohci1394: fw-host0:  OHCI_BASE+80   0x04520000ohci1394: fw-host0:  
OHCI_BASE+84   0x00020000
--- 172.16.1.55 ping statistics ---7 packets transmitted, 0 packets received, 
100% packet loss
I guess no interrupts are received by the driver,no prints form the irq handler 
are printed.when observed /proc/interrupts  the firewire driver received NO 
interrupts.

any idea why this can be? is there any other known issue for PCI on davinci?? 
or am i missing something? is my interrupt setting correct?any suggestion would 
be great help.
Thanks,Sumesh.


                                          
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to