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