RE: Setting up a configuration ROM

From: Steve Kinneberg <kberg_at_pobox.com>
Date: Tue 16 Nov 2004 - 03:36:22 CET
Message-Id: <1100572582.2897.34.camel@dell>

On Mon, 2004-11-15 at 02:23, Alex Shnitman wrote:
> 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.

The IEEE 1394 Configuration ROM has nothing to do with the serial EEPROM
that OHCI chips use. It is used by remote devices to determine the
capabilities and services of the local node (and vice versa). The
Configuation ROM is specified by IEEE 1212. There is no software that
will program the serial EEPROM via the OHCI chip. Please read the
following documents:
http://www-s.ti.com/sc/ds/tsb82aa2.pdf
http://www-s.ti.com/sc/psheets/slla077/slla077.pdf
http://developer.intel.com/technology/1394/download/ohci_11.pdf
They all contain information about the serial EEPROM interface.
Particularly note section 7 of the first document listed and all of the
second document.

>
> 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.

Not really, when you consider that most manufactures produce 100's of
thousands to millions of these boards. It's faster and cheaper for them
to have the chips pre-programmed by the EEPROM manufacturer. The GUID
is FireWire's equivalent to Ethernet's MAC Address. The serial EEPROM
manufacturers have developed methods of quickly and cheaply programming
their parts for their large customers. This does make prototyping more
of a pain, but that's just the way things are.

>
> > > 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

I'd say that the chip is recognized. Compare the value of the GUID with
what you wrote to OHCI_GUIDHi and OHCI_GUIDLo. If you are having other
problems, I'd suggest describing what those problems are. There does
not appear to be any problems with the FireWire chip itself or its
configuration.

-- 
Steve Kinneberg
-------------------------------------------------------
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 Tue Nov 16 03:37:41 2004

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