RE: Setting up a configuration ROM

From: Alex Shnitman <alexs_at_mangodsp.com>
Date: Mon 15 Nov 2004 - 11:23:29 CET
Message-ID: <43EC06B16C77D411AE7B00E018C28FE096A52B@Exchange.jerusalem.mangodsp.com>

Hi Steve,

> As far as I am aware, the serial EEPROM cannot be programmed via the
> link layer chip. Generally, you would have the EEPROM pre-programmed
> prior to installation on the board. If you want to be able to program
> it after installation, then you will need connect the programming pins
> to the processor in some other way and program it directly.

I was just browsing the libraw1394 header and noticed a function called
"raw1394_update_config_rom". What does it do? Doesn't it update the EEPROM
in some way? I couldn't find any documentation on it.

It's quite strange that the EEPROM chip needs to be pre-programmed, as it is
an SMD and couldn't fit into a socket. So it needs to be soldered to a board
in order to be accessed.

> > And finally, can the current driver possibly work with this chip without
> the
> > EEPROM at all? (The chip can be configured that way.)
>
> Have the boot loader program the GUID registers with a unique number and
> you wont need the serial EEPROM. More information on this can be found
> in the OHCI spec, and in TI's documentation.

I tried it right now. Just to test if it solves the problem, I put the
following lines into ohci1394.c in the pci_probe function, right after the
ohci->registers are ioremapped:

        reg_write(ohci, OHCI1394_GUIDHi, 0x66a91cf9);
        reg_write(ohci, OHCI1394_GUIDLo, 0x29f15a5b);
        {
                int i, j;
                i = reg_read(ohci, OHCI1394_GUIDHi);
                j = reg_read(ohci, OHCI1394_GUIDLo);
                DBGMSG("GUID: %x%x", i, j);
        }

The device is still not recognized. Any ideas at all? Here is the dmesg
output:

ohci1394: $Rev$ Ben Collins <bcollins@debian.org>
ohci1394: fw-host0: Remapped memory spaces reg 0xc1068800
ohci1394: fw-host0: GUID: 66a91cf929f15a5b
ohci1394: fw-host0: Soft reset finished
ohci1394: fw-host0: Iso contexts reg: 000000a8 implemented: 0000000f
ohci1394: fw-host0: 4 iso receive contexts available
ohci1394: fw-host0: Iso contexts reg: 00000098 implemented: 000000ff
ohci1394: fw-host0: 8 iso transmit contexts available
ohci1394: fw-host0: Receive DMA ctx=0 initialized
ohci1394: fw-host0: Receive DMA ctx=0 initialized
ohci1394: fw-host0: Transmit DMA ctx=0 initialized
ohci1394: fw-host0: Transmit DMA ctx=1 initialized
ohci1394: fw-host0: IntEvent: 00020010
ohci1394: fw-host0: irq_handler: Bus reset requested
ohci1394: fw-host0: Cancel request received
ohci1394: fw-host0: Got RQPkt interrupt status=0x00008409
ohci1394: fw-host0: Single packet rcv'd
ohci1394: fw-host0: Got phy packet ctx=0 ... discarded
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[0] MMIO=[bbdff800-bbdfffff]
Max Packet=[4096]
ieee1394: CSR: setting expire to 98, HZ=1000
ieee1394: raw1394: /dev/raw1394 device initialized

And when I plug in the hard disk:

ohci1394: fw-host0: IntEvent: 00000010
ohci1394: fw-host0: Got RQPkt interrupt status=0x00008409
ohci1394: fw-host0: Single packet rcv'd
ohci1394: fw-host0: Got phy packet ctx=0 ... discarded
ohci1394: fw-host0: Single packet rcv'd
ohci1394: fw-host0: Got phy packet ctx=0 ... discarded
ohci1394: fw-host0: IntEvent: 00010000
ohci1394: fw-host0: SelfID interrupt received (phyid 1, root)
ohci1394: fw-host0: Error in reception of SelfID packets
[0x80950000/0x00661741] (count: 0)
ohci1394: fw-host0: PhyReqFilter=0000000000000000
ieee1394: selfid_complete called with successful SelfID stage ... irm_id:
0xFFFF node_id: 0xFFC1
ohci1394: fw-host0: Cycle master enabled
ieee1394: NodeMgr: Processing host reset for knodemgrd_0
ohci1394: fw-host0: IntEvent: 00030000
ohci1394: fw-host0: irq_handler: Bus reset requested
ohci1394: fw-host0: Cancel request received
ohci1394: fw-host0: SelfID interrupt received (phyid 1, root)
ohci1394: fw-host0: Error in reception of SelfID packets
[0x80e60000/0x00b71a5f] (count: 1)
ohci1394: fw-host0: PhyReqFilter=0000000000000000
ieee1394: selfid_complete called with successful SelfID stage ... irm_id:
0xFFFF node_id: 0xFFC1
ohci1394: fw-host0: Cycle master enabled
ieee1394: NodeMgr: Processing host reset for knodemgrd_0
ohci1394: fw-host0: IntEvent: 00020000
ohci1394: fw-host0: irq_handler: Bus reset requested
ohci1394: fw-host0: Cancel request received
ieee1394: Current remote IRM is not 1394a-2000 compliant, resetting...

Thanks!
--Alex

-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
_______________________________________________
mailing list Linux1394-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux1394-user
Received on Mon Nov 15 11:27:24 2004

This archive was generated by hypermail 2.1.8 : Mon 02 May 2005 - 09:16:50 CEST