A Linux IEEE 1394 Configuration ROM Decoder
by William F. Alexander


Listing One
OHCI Register Memory Map = 40014800
OHCI DMA Memory Map = 40017000
OHCI DMA Memory Physical Address = 00E3A000
**************** EVENT OCCURRED *****************
Event = busReset
timeStamp = 000000A0
selfIDGeneration = 00000001
0 40017004 phy_ID 00,L 1,gap_cnt 3F,sp 1,del 0,c 0,pwr 6,p0 1,p1 1,p2 2
1 4001700C phy_ID 01,L 1,gap_cnt 00,sp 2,del 0,c 0,pwr 4,p0 3,p1 1,p2 1
**************** EVENT OCCURRED *****************
Event = phyRegRcvd
**************** EVENT OCCURRED *****************
Event = selfIDComplete
**************** EVENT OCCURRED *****************
Event = RSPkt
**************** EVENT OCCURRED *****************
Event = RSPkt
  ...
**************** EVENT OCCURRED *****************
Event = RSPkt
**************** EVENT OCCURRED *****************
Event = RSPkt
OHCI Register Memory Map = 40014800
OHCI DMA Memory Map = 40017000
OHCI DMA Memory Physical Address = 00E3A000
Raw Data Dump of the Configuration ROM

1394 Addr Off    Data
-------------    --------  --------  --------  -------- 
FFFF:F0000400    041F40AA  31333934  20FF4000  08004602  
FFFF:F0000410    000003BD  0004C80A  03080046  0C0083C0  
FFFF:F0000420    8D000002  D1000004  00029E8D  08004602  
FFFF:F0000430    000003BD  0003D7FE  1200A02D  13000100  
FFFF:F0000440    D4000001  00034FEA  403C0000  81000002  
FFFF:F0000450    82000005  00033A64  00000000  00000000  
FFFF:F0000460    534F4E59  0006010B  00000000  00000000  
FFFF:F0000470    43434D2D  44533235  3020312E  30380000  

Decode of the Configuration ROM

1394 Addr Off Quadlet  Meaning
------------- -------- --------------------------------------------------

Confiruation ROM Header
FFFF:F0000400 041F40AA info_length=04, crc_length=1F, rom_crc_value=40AA

Bus_Info_Block
FFFF:F0000404 31333934 bus_name=31333934 ("1394")
FFFF:F0000408 20FF4000 irmc=0, cmc=0, isc=1, bmc=0, cyc_clk_acc=FF, max_rec=4
FFFF:F000040C 08004602 node_vendor_id=080046, chip_id_hi=02
FFFF:F0000410 000003BD chip_id_lo=000003BD

Root_Directory
FFFF:F0000414 0004C80A length=0004, crc=C80A
FFFF:F0000418 03080046 Module_Vendor_Id 080046
FFFF:F000041C 0C0083C0 Node_Capabilities spt 64 fix lst drg 
FFFF:F0000420 8D000002 Node_Unique_Id leaf ind_off=000002 (FFFF:F0000428)
FFFF:F0000424 D1000004 Unit_Directory directory ind_off=000004 (FFFF:F0000434)

Node_Unique_Id leaf referenced from FFFF:F0000420
FFFF:F0000428 00029E8D length=0002, crc=9E8D
FFFF:F000042C 08004602 ..F.
FFFF:F0000430 000003BD ....

Unit_Directory directory referenced from FFFF:F0000424
FFFF:F0000434 0003D7FE length=0003, crc=D7FE
FFFF:F0000438 1200A02D Unit_Spec_Id 00A02D
FFFF:F000043C 13000100 Unit_Sw_Version 000100
FFFF:F0000440 D4000001 Unit_Dependent_Info directory 
                                               ind_off=000001 (FFFF:F0000444)

Unit_Dependent_Info directory referenced from FFFF:F0000440
FFFF:F0000444 00034FEA length=0003, crc=4FEA
FFFF:F0000448 403C0000 key=40 (UNKNOWN) crc_offset=3C0000 (FFFF:F0F00000)
FFFF:F000044C 81000002 Textual_Descriptor leaf ind_off=000002 (FFFF:F0000454)
FFFF:F0000450 82000005 Bus_Dependent_Info leaf ind_off=000005 (FFFF:F0000464)

Textual_Descriptor leaf referenced from FFFF:F000044C
FFFF:F0000454 00033A64 length=0003, crc=3A64
FFFF:F0000458 00000000 ....
FFFF:F000045C 00000000 ....
FFFF:F0000460 534F4E59 SONY

Bus_Dependent_Info leaf referenced from FFFF:F0000450
FFFF:F0000464 0006010B length=0006, crc=010B
FFFF:F0000468 00000000 ....
FFFF:F000046C 00000000 ....
FFFF:F0000470 43434D2D CCM-
FFFF:F0000474 44533235 DS25
FFFF:F0000478 3020312E 0 1.
FFFF:F000047C 30380000 08..




2


