Hi, On Wed, Aug 16, 2023 at 03:05:36PM +0200, Michele Perrone wrote: > That is very kind of you. You can now find our current AVC code in the > following public repository (branch 'avc'): > [1]https://github.com/weiss-engineering/snd-dice/tree/avc > If you have questions about the code, also on the firmware side of > things, > feel free to ask. This is my first time to see implementation of 1394TA AV/C transaction for TCAT DICE ASICs. I know that TCAT provides own protocol and mLAN/OGT, however it is the third protocol, interesting. It takes me a bit time to read it, thus leave it next work. > You can find the `clock caps` and `clock source names` fields for all > our Firewire devices below. As I currently do not have access to our > Firewire hardware except for MAN301, DAC202, and INT202, for the > remaining devices I copied the fields from their latest firmware source > code. Good. I filed a merge request for these models in common protocol implementation[1]. I note that the code is released under GPLv3, thus it shall include concern when included to your product. Please take care of it. > I have created a pull request in takaswie/am-config-roms with three ROM > images: MAN301, DAC202, INT202. I cannot extract the remaining images > at the moment, because I do not have all Firewire devices available. I > will add the remaining images as soon as I can get my hands on them. They are really useful, thanks. Later I deal with the request filed to it as well as alsa-gobject project. Well, as long as I print the content of configuration ROM[2] for MAN301, it includes two units. The first unit expresses AV/C device compliant to AV/C command set generic specification. The second unit expresses TCAT DICE protocol. I guess that the AV/C Vendor-dependent command is just implemented to MAN301 only. Is it right? If not, I would ask you to provide configuration ROM for the other models. Anyway, such device is likely undetected in current implementation of snd-dice-ctl-service due to the layout of configuration ROM[3]. Take me a bit time to solve it. ``` $ config-rom-pretty-printer < audio_and_music/dice/weiss-man301.img ROM header and bus information block ----------------------------------------------------------------- 1024 0404f4fa bus_info_length 4, crc_length 4, crc 62714 1028 31333934 bus_name "1394" 1032 e0008122 irmc 1, cmc 1, isc 1, bmc 0, pmc 0, cyc_clk_acc 0, max_rec 8 (512), max_rom 1, gen 2, spd 2 (S400) 1036 001c6a00 company_id 001c6a | 1040 02c000ca device_id 0046137546 | EUI-64 7997847626580170 root directory ----------------------------------------------------------------- 1044 00074103 directory_length 7, crc 16643 1048 03001c6a vendor 1052 81000010 --> descriptor leaf at 1116 1056 1700000b model 1060 81000017 --> descriptor leaf at 1152 1064 0c0087c0 node capabilities: per IEEE 1394 1068 d1000002 --> unit directory at 1076 1072 d1000006 --> unit directory at 1096 unit directory at 1076 ----------------------------------------------------------------- 1076 000421e1 directory_length 4, crc 8673 1080 1200a02d specifier id 1084 13010001 version 1088 1700000b model 1092 81000014 --> descriptor leaf at 1172 unit directory at 1096 ----------------------------------------------------------------- 1096 000473f8 directory_length 4, crc 29688 1100 12001c6a specifier id 1104 13000001 version 1108 1700000b model 1112 81000014 --> descriptor leaf at 1192 descriptor leaf at 1116 ----------------------------------------------------------------- 1116 0008decb leaf_length 8, crc 57035 1120 00000000 textual descriptor 1124 00000000 minimal ASCII 1128 57656973 "Weis" 1132 735f456e "s_En" 1136 67696e65 "gine" 1140 6572696e "erin" 1144 675f4c74 "g_Lt" 1148 642e0000 "d." descriptor leaf at 1152 ----------------------------------------------------------------- 1152 00041b75 leaf_length 4, crc 7029 1156 00000000 textual descriptor 1160 00000000 minimal ASCII 1164 4d414e5f "MAN_" 1168 33303100 "301" descriptor leaf at 1172 ----------------------------------------------------------------- 1172 00041b75 leaf_length 4, crc 7029 1176 00000000 textual descriptor 1180 00000000 minimal ASCII 1184 4d414e5f "MAN_" 1188 33303100 "301" descriptor leaf at 1192 ----------------------------------------------------------------- 1192 00041b75 leaf_length 4, crc 7029 1196 00000000 textual descriptor 1200 00000000 minimal ASCII 1204 4d414e5f "MAN_" 1208 33303100 "301" ``` [1] [PATCH 0/2] dice: add support for Weiss Engineering models https://github.com/alsa-project/snd-firewire-ctl-services/pull/175 [2] config-rom-pretty-printer is available in linux-firewire-utils v0.5.0 or later. https://git.kernel.org/pub/scm/utils/ieee1394/linux-firewire-utils.git/ [3] `DiceConfigRom` implementation for `ConfigRom` just handles the first unit in configuration ROM. https://github.com/alsa-project/snd-firewire-ctl-services/blob/master/protocols/dice/src/tcat/config_rom.rs Thanks Takashi Sakamoto