From: Takashi Iwai Date: Tue, 23 Sep 2003 14:16:23 +0000 (+0000) Subject: updated to version 0.3 by Karsten: X-Git-Tag: v1.0.3~57 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=ac8b15579186cea57538a03eefc59c8eddbcd0e7;p=alsa-tools.git updated to version 0.3 by Karsten: - added INSTALL and README documents. - fixed compile warnings. - install hotplug scripts to /etc/hotplug/usb. - added phase1 firmware files. --- diff --git a/usx2yloader/INSTALL b/usx2yloader/INSTALL new file mode 100644 index 0000000..9b435a4 --- /dev/null +++ b/usx2yloader/INSTALL @@ -0,0 +1,4 @@ +For Installing from CVS do: +./cvscompile +make install + diff --git a/usx2yloader/Makefile.am b/usx2yloader/Makefile.am index a321dbd..31c3d08 100644 --- a/usx2yloader/Makefile.am +++ b/usx2yloader/Makefile.am @@ -11,6 +11,11 @@ usx2yloader_SOURCES = usx2yloader.c EXTRA_DIST = depcomp +hotplug_files = tascam_fw.usermap tascam_fw tascam_fpga +hotplugdir = /etc/hotplug/usb +hotplug_SCRIPTS = $(hotplug_files) + + alsa-dist: distdir @rm -rf ../distdir/usx2yloader @mkdir -p ../distdir/usx2yloader diff --git a/usx2yloader/README b/usx2yloader/README new file mode 100644 index 0000000..70ce095 --- /dev/null +++ b/usx2yloader/README @@ -0,0 +1,85 @@ + USX2YLOADER - Second Phase Firmware loader for Tascam USX2Y USB soundcards + 2003-09-15 Karsten Wiese + + +GENERAL +======= + +Usx2yloader is a helper program to load the 2nd Phase firmware binaries +onto the Tascam USX2Y USB soundcards. +It has proven to work so far only for the US428. +US122 & US224 will hopefully follow. +The snd-usb-us428 module requires this program. + + +US428 initialisation outlined +============================= + +A. Phase 1 +A.1. US428 is plugged to the PC and powered on. + This makes the kernel see a new USB-device with the Vendor/Product + ID 0x1604/0x8000. + The kernel reacts by starting the usb-hotplug script. +A.2. The usb-hotplug script starts the executable fxload, + which transfers the EZUSB firmware to the US428. +A.3. The US428 disconnects itself from the USB-Bus and ... (see Phase 2). + +B. Phase 2 +B.1. The US428 reintroduces itself as USB-device with the Vendor/Product + ID 0x1604/0x8001. + The kernel reacts by loading the module snd-usb-us428, if it is not + already loaded. +B.2 The module snd-usb-us428 "takes" the US428 as its device and sets up + a "hardware dependent interface". + (The module doesn't create any pcm nor midi devices now.) +B.3 Subsequently the kernel starts the usb-hotplug script, which launches + usx2yloader. +B.4 usx2yloader transfers the 2nd Phase firmware binary to the US428 by means + of the "hardware dependent interface". When this transfer finishes, + the snd-usb-us428 module creates the pcm- and midi-devices. + Initialisation is complete. + + +USAGE +===== + +When usx2yloader is invoked without options, it will probe all existing +soundcards until a valid USX2Y-driver is found. If a valid USX2Y-driver is +found, usx2yloader reads the board type from the driver. The corresponding +firmware binaries are then read and transferred to the driver. +Finally, usx2yloader initializes the PCM, MIDI and the mixer devices on the +driver for making the soundcard full functional. + +Instead of auto-probing, you can specify the card number or the hwdep +device name or the usb device name via -c, -D or -u options, respectively. + + % usx2yloader -c 1 + % usx2yloader -D hw:0 + % usx2yloader -u /proc/bus/usb/001/003 + +For loading everything automatically in response to a hotplug event +there are the hotplug script files + - tascam_fw.usermap + - tascam_fw + - tascam_fpga +and the Firmwarefiles. +You also need hotplug to be installed. + + +FIRMWAREFILES +============= + +The firmware binaries are installed on /usr/share/alsa/firmware +(or /usr/local/share/alsa/firmware, depending to the prefix option of +configure). There will be *.conf files, which define the dsp image +files for each different card type. + + +COPYRIGHT +========= + +Copyright (c) 2003 Karsten Wiese +Distributalbe under GPL. + +The firmware files included in firmware sub-directory are copyright +by Tascam / TEAC Corporation. diff --git a/usx2yloader/configure.in b/usx2yloader/configure.in index 4107d28..908371e 100644 --- a/usx2yloader/configure.in +++ b/usx2yloader/configure.in @@ -1,5 +1,5 @@ AC_INIT(usx2yloader.c) -AM_INIT_AUTOMAKE(usx2yloader, 0.2) +AM_INIT_AUTOMAKE(usx2yloader, 0.3) AC_PROG_CC AC_PROG_INSTALL AC_HEADER_STDC diff --git a/usx2yloader/cvscompile b/usx2yloader/cvscompile new file mode 100644 index 0000000..5daa701 --- /dev/null +++ b/usx2yloader/cvscompile @@ -0,0 +1,11 @@ +#!/bin/bash + +aclocal $ACLOCAL_FLAGS +automake --foreign --add-missing +autoconf +export CFLAGS='-O2 -Wall -pipe -g' +echo "CFLAGS=$CFLAGS" +echo "./configure $@" +./configure $@ +unset CFLAGS +make diff --git a/usx2yloader/firmware/Makefile.am b/usx2yloader/firmware/Makefile.am index 8e52869..ffa9c37 100644 --- a/usx2yloader/firmware/Makefile.am +++ b/usx2yloader/firmware/Makefile.am @@ -1,5 +1,4 @@ -cfg_files = us428.conf us428.prepad us428.rbt - +cfg_files = us428.conf us428.prepad us428.rbt tascam_loader.ihx us428fw.ihx EXTRA_DIST = $(cfg_files) firmwaredir = $(datadir)/alsa/firmware diff --git a/usx2yloader/firmware/tascam_loader.ihx b/usx2yloader/firmware/tascam_loader.ihx new file mode 100644 index 0000000..faf5d9b --- /dev/null +++ b/usx2yloader/firmware/tascam_loader.ihx @@ -0,0 +1,139 @@ +:10146C00C200907FA5E05418FF131313541F44506F +:10147C00F51C139201D2E8907FAB74FFF0907FA91A +:10148C00F0907FAAF05391EF907F95E044C0F090DC +:10149C007FAFE04401F0907FAEE04405F0D2AF1294 +:0D14AC00175F3000FD121100C20080F62213 +:10110000907FE9E0245D600D147003021244240214 +:10111000600302124A907FEAE0750800F509A3E037 +:10112000FEE42509F509EE3508F508907FEEE07537 +:101130000A00F50BA3E0FEE4250BF50BEE350AF5EE +:101140000A907FE8E064C060030211D4E50B450A11 +:10115000700302124AC3E50B9440E50A940050085C +:10116000850A0C850B0D8006750C00750D40907F6F +:10117000E9E0B4A325AE0CAF0DAA08A9097B01C014 +:1011800003C002C0017A7F790078007C7FAD03D074 +:1011900001D002D003121356800FAF09AE08AD0D77 +:1011A0007A7F79007B001215A4907FB5E50DF0E5FC +:1011B0000D2509F509E50C3508F508C3E50B950D76 +:1011C000F50BE50A950CF50A907FB4E020E20302E6 +:1011D000114C80F4907FE8E06440706EE50B450AA6 +:1011E0006068E4907FC5F0907FB4E020E3F9907FE1 +:1011F000C5E0750C00F50D907FE9E0B4A315AE0CC9 +:10120000AF0DA809AC087D017B017A7E79C012136D +:1012100056800FAF09AE08AD0D7A7F79007B0012C2 +:1012200014B9E50D2509F509E50C3508F508C3E500 +:101230000B950DF50BE50A950CF50A907FB4E0448B +:0A12400002F08098907FEAE0F51CB0 +:01124A002281 +:06155800AB07AA06AC057A +:10155E00E4FD300111EAFFAE050DEE2400F582E444 +:10156E0034E0F583EFF0EBAE050D74002EF582E45A +:10157E0034E0F583EBF0AF050D74002FF582E43403 +:10158E00E0F583ECF0AF1C7AE07B001217207F0AA7 +:05159E007E0012173C65 +:0115A3002225 +:0A14B9008E0E8F0F8D108A118B121A +:1014C300E4F513E513C395105020050FE50FAE0E99 +:1014D3007002050E14FFE5122513F582E43511F5AC +:0A14E30083E0FD121558051380D9AF +:0114ED0022DC +:0A15A4008E0E8F0F8D108A118B122E +:1015AE00E4FD300112E50EFFAE050DEE2403F582CB +:1015BE00E434E0F583EFF0E50FAE050D74032EF580 +:1015CE0082E434E0F583E50FF0AF1C7AE07B031282 +:0D15DE001720AF1CAD10AB12AA111217049C +:0115EB0022DD +:10166E00C0E0C083C082C085C084C086758600D2AB +:10167E00005391EF907FAB7401F0D086D084D0856B +:07168E00D082D083D0E032CE +:10164400C0E0C083C082C085C084C0867586009017 +:101654007FC4E4F05391EF907FAB7404F0D086D054 +:0A16640084D085D082D083D0E0321C +:10169500C0E0C083C082C085C084C0867586005303 +:1016A50091EF907FAB7402F0D086D084D085D08244 +:0516B500D083D0E032FB +:1016BA00C0E0C083C082C085C084C08675860053DE +:1016CA0091EF907FAB7410F0D086D084D085D08211 +:0516DA00D083D0E032D6 +:0114FF0032BA +:1016DF00C0E0C083C082C085C084C08675860053B9 +:1016EF0091EF907FAB7408F0D086D084D085D082F4 +:0516FF00D083D0E032B1 +:01176700324F +:01176800324E +:01176900324D +:01176A00324C +:01176B00324B +:01176C00324A +:01176D003249 +:01176E003248 +:01176F003247 +:011770003246 +:011771003245 +:011772003244 +:011773003243 +:011774003242 +:011775003241 +:011776003240 +:03004300021500A3 +:1015000002166E0002169500021644000216DF0055 +:101510000216BA000214FF000217670002176800E3 +:101520000217690002176A0002176B0002176C00AD +:1015300002176D0002176E0002176F00021770008D +:10154000021771000217720002177300021774006D +:08155000021775000217760076 +:10173C008E148F15E5151515AE14700215144E6028 +:07174C00051214EE80EE22ED +:08175F00E4F51BD2E9D2AF2230 +:10161900A907E51B7023907FA5E04480F0E925E048 +:10162900907FA6F08D16AF03A9077517018A18894F +:0B16390019E4F51A751B01D322C3222F +:1015EC00A907E51B7025907FA5E04480F0E925E074 +:1015FC004401907FA6F08D16AF03A9077517018AD9 +:0D160C00188919E4F51A751B03D322C322B7 +:03004B0002137F1E +:10137F00C0E0C083C082C085C084C086758600C0AF +:10138F00D075D000C000C001C002C003C006C007A6 +:10139F00907FA5E030E206751B0602144E907FA5E4 +:1013AF00E020E10CE51B64026006751B0702144E7A +:1013BF00AF1BEF24FE604814602C24FE60772404DA +:1013CF00600302144EAB17AA18A919AF1A051A8F8A +:1013DF008275830012124B907FA6F0E51A65167086 +:1013EF005E751B058059907FA6E0AB17AA18A91947 +:1013FF00AE1A8E82758300121278751B028040E53B +:10140F001624FEB51A07907FA5E04420F0E51614C8 +:10141F00B51A0A907FA5E04440F0751B00907FA697 +:10142F00E0AB17AA18A919AE1A8E82758300121293 +:10143F0078051A800A907FA5E04440F0751B005391 +:10144F0091DFD007D006D003D002D001D000D0D08A +:0D145F00D086D084D085D082D083D0E032FA +:101704001215ECE51B24FA600E146006240770F32E +:0C171400D322E4F51BD322E4F51BD32202 +:10172000121619E51B24FA600E146006240770F3E4 +:0C173000D322E4F51BD322E4F51BD322E6 +:1014EE007400F58690FDA57C05A3E582458370F911 +:0114FE0022CB +:0300000002175391 +:0C175300787FE4F6D8FD75812002146C4C +:10124B00BB010CE58229F582E5833AF583E0225058 +:10125B0006E92582F8E622BBFE06E92582F8E222A2 +:0D126B00E58229F582E5833AF583E49322BC +:10127800F8BB010DE58229F582E5833AF583E8F0AC +:10128800225006E92582C8F622BBFE05E92582C858 +:02129800F22240 +:10129A00E709F608DFFA8046E709F208DFFA803E36 +:1012AA0088828C83E709F0A3DFFA8032E309F60823 +:1012BA00DFFA806EE309F208DFFA806688828C839F +:1012CA00E309F0A3DFFA805A89828A83E0A3F60849 +:1012DA00DFFA804E89828A83E0A3F208DFFA80422D +:1012EA0080D280FA80C680D4805580F2802980100E +:1012FA0080A680EA809A80A880DA80E280CA802963 +:10130A0088848C8589828A83E493A30586F0A30561 +:10131A0086DFF5DEF3800B89828A83E493A3F608DD +:10132A00DFF9ECFAA9F0EDFB2288848C8589828AA0 +:10133A0083E0A30586F0A30586DFF6DEF480E38961 +:10134A00828A83E493A3F208DFF980D688F0ED2439 +:10135A0002B4040050CCF582EB2402B4040050C25B +:10136A0023234582F582EF4E60B8EF60010EE582D5 +:05137A00239012EA734C +:00000001FF diff --git a/usx2yloader/firmware/us428fw.ihx b/usx2yloader/firmware/us428fw.ihx new file mode 100644 index 0000000..d3e580d --- /dev/null +++ b/usx2yloader/firmware/us428fw.ihx @@ -0,0 +1,459 @@ +:10139C00755600755500755400755300C203C20094 +:1013AC00C202C2011210CFD2E843D820907F95E040 +:1013BC0044C0F0907FAFE04401F0907FAEE0441D5C +:1013CC00F0D2AF20014A200105D2051216DB75566A +:1013DC00007555007554007553007F2A7E0C7D03F3 +:1013EC007C00AB56AA55A954A853C3120D7450D304 +:1013FC002001D07A0079007800E5562401F556EAF0 +:10140C003555F555E93554F554E83553F55380CA3F +:10141C00300105120530C20130031A1219C15015E2 +:10142C00C203121954200007907FD6E020E7F31274 +:0B143C001990120F4612008080D6228B +:10053000907FE9E070030206B714700302072B24D2 +:10054000FE700302079724FB70030206B1147003C8 +:100550000206AB14700302069F1470030206A52462 +:100560000560030207E6907FEBE024FE601914604B +:1005700043240260030206957412907FD4F074CD78 +:10058000907FD5F00207ED907FEAE0FF1217588BBD +:10059000578A588959EA496011AE02EE907FD4F02B +:1005A000AF01EF907FD5F00207ED907FB4E04401FA +:1005B000F00207ED907FEAE0FF1217F48B578A589C +:1005C0008959EA49700302068B8B5E8A5F89601243 +:1005D0000C9EF561907FEEE0FFE561D39F4003E064 +:1005E000F561E561700302067D755D00755C00755F +:1005F0005B00755A00E561C394405004AF6180020E +:100600007F40E4FCFDFEAB5DAA5CA95BA85AC31267 +:100610000D745038E560255DF582E55C355FF58346 +:10062000E0FF7400255DF582E4347FF583EFF07A16 +:100630000079007800E55D2401F55DEA355CF55C44 +:10064000E9355BF55BE8355AF55A80A9E561C39455 +:10065000405004AF6180027F40907FB5EFF0E561CC +:10066000C394405004AF6180027F40C3E5619FF5B1 +:1006700061907FB4E020E2030205E280F4E4907F21 +:10068000B5F0907FB47402F00207ED907FB4E044BF +:1006900001F00207ED907FB4E04401F00207ED1293 +:1006A00019E10207ED1219750207ED1219F8020798 +:1006B000ED1219D30207ED907FE8E0247F60241447 +:1006C00060312402705BA200E433FF25E0FFA20248 +:1006D000E4334F907F00F0E4A3F0907FB57402F014 +:1006E0000207EDE4907F00F0A3F0907FB57402F074 +:1006F0000207ED907FECE0F45480FFC4540FFFE05C +:1007000054072F25E024B4F582E4347FF583E054C8 +:10071000FD907F00F0E4A3F0907FB57402F0020733 +:10072000ED907FB4E04401F00207ED907FE8E02413 +:10073000FE601D240260030207ED907FEAE0B40131 +:1007400005C2000207ED907FB4E04401F00207ED1E +:10075000907FEAE07038907FECE0F45480FFC4545E +:100760000FFFE054072F25E024B4F582E4347FF531 +:1007700083E4F0907FECE05480FF131313541FFFC9 +:10078000E054072F907FD7F0E04420F0805F907F07 +:10079000B4E04401F08056907FE8E024FE60182425 +:1007A00002704A907FEAE0B40104D200803F907F5B +:1007B000B4E04401F08036907FEAE07020907FEC56 +:1007C000E0F45480FFC4540FFFE054072F25E024C9 +:1007D000B4F582E4347FF5837401F08010907FB427 +:1007E000E04401F08007907FB4E04401F0907FB4D2 +:0507F000E04402F022CC +:03003300020F3D7C +:040F3D0053D8EF3264 +:1012CD001201000100000040041601800100000021 +:1012DD0000010902B70001010040000904000005EA +:1012ED00FF000000070504024000000705840315F8 +:1012FD00000A0705060240000007058602400000AF +:10130D00070502024000000904000108FF0000006B +:10131D00070504024000000705840315000A0705B0 +:10132D000602400000070586024000000705020284 +:10133D0040000007058801C8000107058A01C800A3 +:10134D000107050A01C800010904000208FF000099 +:10135D0000070504024000000705840315000A0775 +:10136D000506024000000705860240000007050241 +:10137D0002400000070588012C010107058A012C98 +:0F138D00010107050A012C0101040309040000F6 +:03002300020EBF0B +:03003B0002157C2F +:050F41000000000000AB +:050F510000000000009B +:0919EF00030001020507040608CB +:1015FA0001260001220001240001500001270001F8 +:10160A002300012500012100014300013E0001479A +:10161A0000013B00014200014C00014D00014E0057 +:10162A00014F00501A8A0000020303010203030358 +:10163A000303020203010C2900000000000001005C +:10164A0000000000014B00014A00013C0001360085 +:10165A0001370002380000491A05000000000000A6 +:0B166A00000000014800C1040149011C +:1016DB00907FD6E054FBF0E04408F0300504E04482 +:1016EB0002F07FDC7E051219AA907FD6E054F7F04A +:0516FB00E04404F022B0 +:10183500907F977413F07E80EE602A5F6014907F2E +:101845009D7413F0907F9714F004F0E4907F9DF061 +:10185500800D907F9D7413F0E4907F97F004F0EE77 +:06186500C313FE80D32234 +:1018E300AD07EDC3940240037F0022ED7008C3E50A +:1018F300269522FE8006C3E5279523FEEE540FFFAF +:06190300C3740F9FFF22D8 +:10167600EF7031E52604540FFE65226057746A2523 +:1016860026F582E4341AF583EDF0C2ACE522B526E0 +:10169600028D998E26D2AC754E1943420490201FB6 +:1016A600E542F022E52704540FFE65236026747A8E +:1016B6002527F582E4341AF583EDF0C2AEE523B5AD +:1016C60027028DC18E27D2AE754F1943420890204E +:0516D6001FE542F022B7 +:1011EF00E544700E907FD0E020E107A3E0F544E4E2 +:1011FF00F53DE544D3940050030212CC74C0253D55 +:10120F00F582E4347BF583E0FCC4540FFBE544C363 +:10121F00940450030212BEAF031218E3EFC39403FA +:10122F005009EBD3940150030212BE053D74C02543 +:10123F003DF582E4347BF583E0FE053D74C0253D2A +:10124F00F582E4347BF583E0F569053D74C0253DF7 +:10125F00F582E4347BF583E0FAEBD394015034EC60 +:10126F00540F248AF582E4341AF583E0F9D39400FD +:10127F004007AF03AD06121676E9D394014007AFCE +:10128F0003AD69121676E9D394024007AF03AD029E +:10129F00121676053D74C0253DF582E4347BF58347 +:1012AF00E0FCC4540FFB74FC2544F54402121CE50A +:0E12BF0044C394045007E4F544907FD1F0221C +:1017A700EFC454F0FFED540F4FFFAE4B054B7400E1 +:1017B7002EF582E4347CF583EFF0AF4B054B7400D4 +:1017C7002FF582E4347CF583EBF0AF4B054B7400C7 +:1017D7002FF582E4347CF583E578F0AF4B054B7445 +:0D17E700002FF582E4347CF583E579F022D3 +:10190900900004120CB7FE7002FF22EEC4540F249B +:10191900F824FC500860091460061470067F02223E +:061929007F01227F002275 +:101447008B728A738974AC05900002EC120CE490DD +:101457000002120CB7FFC4540F24F824FC500C6090 +:101467001C14601924FE6027047079AB72AA73A953 +:1014770074900004EC120CE47D02AF0522AB72AA53 +:1014870073A974900004EC120CE47D01AF0522AB44 +:1014970072AA73A974900004E4120CE4EC64F1607E +:1014A70003BCF3057D01AF0522BCF2057D02AF0544 +:1014B70022BCF615120C9EFF7D05AB04E4F578F50A +:1014C700791217A77D00AF0522BCF013AB72AA7380 +:1014D700A9749000057401120CE47D04AF05227D08 +:0914E70000AF05227D00AF0522D3 +:1007F5008F698D6AE56AC394F8400D7D0FAB6AE495 +:10080500F578F5791217A722E56975F006A424296C +:10081500F9E4FAFBF56FF5708971900001120CB7D8 +:100825001460471470030208D414700302090B14F2 +:10083500700302097B24046003020A4BE56AC39432 +:10084500804019AB6FAA70A971AD6A121447AB6FDE +:10085500AA70A971900001EF120CE422AB6FAA7087 +:10086500A971900001E4120CE422E56AC39480505A +:1008750045AB6FAA70A971900002120CB7F56BC356 +:1008850094F05009E56BC4540FF56C8003756C0248 +:10089500AF69AD6CAB6B856A78E4F5791217A7ABD8 +:1008A5006FAA70A971121909AB6FAA70A97190008E +:1008B50001EF120CE422AB6FAA70A971AD6A121494 +:1008C50047AB6FAA70A971900001EF120CE422E505 +:1008D5006AC394805017AB6FAA70A971900003E5A5 +:1008E5006A120CE49000017403120CE422AB6FAAA7 +:1008F50070A971AD6A121447AB6FAA70A971900007 +:1009050001EF120CE422E56AC394805050AB6FAA44 +:1009150070A971900002120CB7F56BC394F05009E1 +:10092500E56BC4540FF56C8003756C03AF69AD6C52 +:10093500AB6FAA70A971900003120CB7F578856AA0 +:1009450079AB6B1217A7AB6FAA70A971121909AB16 +:0D0955006FAA70A971900001EF120CE4224E +:10096200AB6FAA70A971AD6A121447AB6FAA70A9D6 +:1009720071900001EF120CE422AB6FAA70A9719082 +:100982000005120CB704FCE56AC394805058BC0100 +:100992000A900002E56A120CE48035BC020A90005B +:1009A20003E56A120CE48028BC0325AF697D04903C +:1009B2000002120CB7FBC003AB6FAA70A9719000C2 +:1009C20003120CB7F578856A79D0031217A7E4FCF5 +:1009D200AB6FAA70A971900005EC120CE4900001B3 +:1009E2007404120CE422E4F56EFEBC0108756C0579 +:1009F200856A6D800EAB6FAA70A971900002120C0D +:100A0200B7F56DBC0207756C06AE6A800DAB6FAAB6 +:100A120070A971900003120CB7FEBC0306756C0737 +:100A2200856A6EAF69AD6CAB6D8E78856E79121783 +:100A3200A7AB6FAA70A971AD6A121447AB6FAA7007 +:0A0A4200A971900001EF120CE422EC +:1010CF00E4F53AF541F546FFEF25E02436F582E4E5 +:1010DF00341AF583E4F0A3F0EF25E0240EF582E453 +:1010EF00341AF583E4F0A3F0EF25E02422F582E42F +:1010FF00341AF583E4F0A3F00FBF0ACCE4F528F51A +:10110F0035F54BF526F522F524F550F527F523F5A2 +:10111F0025F521F544F53DFF7F05901A00E4F0A376 +:10112F00DFFC907FDF7454F0907FDE7450F0907F7F +:10113F00DD7418F0E4907FC9F0907FCDF0907FD1EF +:10114F00F0907FE17404F0907FE004F0E4907FF280 +:10115F00F0907FF8744CF0907FFA7498F075CBFF95 +:10116F0075CAE875C834758920758DFA758E10D2D9 +:10117F008E75985075C050D2ACD2AE907FAE741FA2 +:10118F00F0D200907FB27400F0A37480F0907FAF24 +:10119F00E04402F0E054FBF0907FE274D2F0907FD5 +:1011AF00937430F0907F9674FFF0907F9CF0907F57 +:1011BF0094740CF0E4907F97F0907F9DF0907F9562 +:1011CF0074C3F0907F9874FFF0907F9E7430F0900E +:1011DF007F9674BFF074FFF07F057E001219AA226C +:100F5600E54125E02436F582E4341AF583E0FEA364 +:100F6600E0FFE54125E02422F582E4341AF583E02A +:100F7600FCA3E08C69F56AE54125E0240EF582E4E0 +:100F8600341AF583E0FCA3E0FDE546700302101772 +:100F96001546ED6F7002EC6E6077C3ED9FEE6480D0 +:100FA600F8EC6480985031E54125E024AEF582E402 +:100FB600341AF583E0FAA3E02DFDEA3CFCD3ED9F5D +:100FC600EE6480F8EC6480985008C3EC64809480EA +:100FD600502DAC06AD078027E54125E024AEF5820D +:100FE600E4341AF583E0FAA3E02DFDEA3CFCC3EDF8 +:100FF6009FEE6480F8EC6480985004AC06AD07E57B +:101006004125E0240EF582E4341AF583ECF0A3EDD5 +:10101600F0E56A6D7003E5696C70030210C4E54182 +:1010260025E0249AF582E4341AF583E0FEA3E0FF76 +:10103600C3E56A9DEC6480F8E5696480985028EF02 +:10104600256AF56AEE3569F569D3E56A9DEC648033 +:0D105600F8E5696480985009C3E56964807D +:10106300948050238C698D6A801DEF256AF56AEEA2 +:101073003569F569C3E56A9DEC6480F8E5696480C8 +:101083009850048C698D6AE54125E02422F582E4B9 +:10109300341AF583E569F0A3E56AF0E54125E0FF3D +:1010A300902110E020E5F974002FF582E43420F557 +:1010B30083E569F074012FF582E43420F583E56A52 +:0C10C300F00541E541B40A03E4F54122C8 +:10008000785D7C007D007BFF7A1979EF7E007F0927 +:10009000120E41907FC8E020E147A3E0F567E4F548 +:1000A00066E566C3956750340539E539AE387002A8 +:1000B000053814C39448EE9400401074C02566F5CA +:1000C00082E4347DF583E0FF121835E539B4C308C6 +:1000D000E538B45703753A01056680C5E4907FC9D9 +:1000E000F01211EF120F56120F56907FCCE030E154 +:1000F00003020273A3E0F567E4FDEDC395674003D7 +:1001000002026E74C02DF582E4347CF583E0F5685C +:10011000C39405400302020EE56825E0F568E4F5A6 +:1001200066E566C39402400302020AE56825E024FE +:1001300022F582E4341AF583E0FEA3E08E57F558E9 +:100140000D74C02DF582E4347CF583E0FE0D74C09F +:100150002DF582E4347CF583E0FBEEF559EBF55A9E +:1001600065587004E55765597003020203E5682578 +:10017000E02436F582E4341AF583E559F0A3E55A14 +:10018000F0C3E55A9558FFE5599557FEEF7803CE31 +:10019000A2E713CE13D8F8F55C8E5B455B7005F5CE +:1001A0005B755C01E56825E024AEF582E4341AF560 +:0D01B00083E55BF0A3E55CF0E558255CFFFE +:1001BD00E557355BFEE56825E0240EF582E4341A3B +:1001CD00F583EEF0A3EFF0E55CAE5B7802CEA2E72F +:1001DD0013CE13D8F8F55C8E5B455B7005F55B753A +:1001ED005C01E56825E0249AF582E4341AF583E58F +:1001FD005BF0A3E55CF0056605680201210D0200C8 +:10020D00FA74C12DF582E4347CF583E0FFE568B422 +:10021D00140C8F47E5474535902014F0803EE56876 +:10022D00B41507902015EFF08032E568B4180790EB +:10023D002018EFF08026E568C39420501FE568B4C0 +:10024D001D0DEF54F7F543453E90201DF0800D74C4 +:10025D00002568F582E43420F583EFF00D0D0200E2 +:10026D00FAE4907FCDF0E53A70030204CB907F96CF +:10027D0074FEF0907F9AE0FF131313541F5402FE87 +:10028D00EF33333354F854104EFEEF54E14EFF90DC +:10029D007F9BE0540C4FF4FF5455FEE53654556EDC +:1002AD00700302032DE4F566AE66EFA80608800222 +:1002BD00C313D8FCFE30E15BE536F4FDAC66A80453 +:1002CD00088002C313D8FC5401FDEE54015D60108B +:0F02DD00E566C3132400F582E4341AF583E004C8 +:1002EC00F0EFF4FEAD66A805088002C313D8FC54E9 +:1002FC0001FEAD66E536A805088002C313D8FC5490 +:10030C00015E6010E566C3132400F582E4341AF52F +:10031C0083E014F005660566E566C39408408A8F91 +:10032C0036907F9674F7F0907F9AE0FF5440FEE58C +:10033C00375440FD6E6021EF30E71BE537F4544035 +:10034C005E6006901A04E004F0EFF454405D600621 +:10035C00901A04E014F08F37E540453F6017E540F4 +:10036C0015407002153F14453F700AF53EE54345B4 +:10037C003E90201DF0907FBCE030E1030204CB7571 +:10038C003E08753F02754000E543453E90201DF048 +:10039C009020157440F0E4F566745D2566F8E6244B +:1003AC0000F582E43421F583E0FE74052566F582C0 +:1003BC00E4341AF583E0FDC3EE9DFDD394014008AF +:1003CC00EDC394FF5002EEF074052566F582E4341B +:1003DC001AF583E0FE74002566F582E4347DF5831E +:1003EC00EEF00566E566B409B09020157480F07ED9 +:1003FC00FDE4F566EE4440907F98F0907F96F09087 +:0D040C007F9AE0FF131313541F5402FDEFFD +:1004190033333354F854104DFDEF54E14DFF907FC1 +:100429009BE0540C4FF4FF74092566F582E4347D92 +:10043900F583EFF0EE25E04401FE0566E566B407B5 +:10044900B6902110E054076006902015740CF090C6 +:100459007D0BE0543FF0902110E054C7907D0EF0E1 +:100469009020157420F0901A00E0907D10F0901AF9 +:1004790001E0907D11F0901A02E0907D12F0901A3F +:1004890003E0907D13F0901A04E0907D14F0907FC2 +:10049900BD7415F0E54C6006D54C035342FEE54D9D +:1004A9006006D54D035342FDE54E6006D54E035314 +:1004B90042FBE54F6006D54F035342F790201FE5F5 +:1004C90042F0907FC0E020E15DE5506524601EE5C3 +:1004D9005004540FF566E4FF744A2566F582E43446 +:1004E9001AF583E0FD1207F585665080DCE5216584 +:1004F90025601CE52104540FF5667F01245AF58215 +:10050900E4341AF583E0FD1207F585662180DEE5FE +:100519004BD394004010E54BC394405009907FC1E0 +:07052900E54BF0E4F54B2265 +:1019C100907FAFE04408F05343F790201DE543F0CA +:0219D100D3221F +:0B0F460043430890201DE543F0D32238 +:0819F800907FEAE0F545D322DF +:0E19D300907F00E545F0907FB57401F0D322BF +:10197500907FEAE0F528B401057535648003E4F548 +:0B19850035E5474535902014F0D322D3 +:0E19E100907F00E528F0907FB57401F0D322CE +:100EBF00C0E0C083C082C085C084C086758600C074 +:100ECF00D075D000C007309836C298E52404540F6F +:100EDF00FF6550600F744A2FF582E4341AF583E5ED +:100EEF0099F08F24744A2FF582E4341AF583E06465 +:100EFF00FE600C754C1943420190201FE542F03003 +:100F0F00991BC299E52204540FFF6526600D746A80 +:100F1F002FF582E4341AF583E0F5998F22D007D0AC +:0E0F2F00D0D086D084D085D082D083D0E0325E +:10157C00C0E0C083C082C085C084C086758600C0B0 +:10158C00D075D000C00730C036C2C0E52504540F5A +:10159C00FF6521600F745A2FF582E4341AF583E548 +:1015AC00C1F08F25745A2FF582E4341AF583E06468 +:1015BC00FE600C754D1943420290201FE542F0303D +:1015CC00C11BC2C1E52304540FFF6527600D747A5B +:1015DC002FF582E4341AF583E0F5C18F23D007D0C0 +:0E15EC00D0D086D084D085D082D083D0E0329B +:10189500C0E0C083C082C085C084C086758600D282 +:1018A500015391EF907FAB7401F0D086D084D08541 +:0718B500D082D083D0E032A5 +:10186B00C0E0C083C082C085C084C08675860090EE +:10187B007FC4E4F05391EF907FAB7404F0D086D02B +:0A188B0084D085D082D083D0E032F3 +:100A4C00C0E0C0F0C083C082C085C084C0867586FB +:100A5C0000C0D075D000C000C002C003C004C005E7 +:100A6C00C006C0079020157401F0902118E0FFD249 +:100A7C00BCD2BED394324003020C6BE54745359093 +:100A8C002014F0A37402F0E52864017030907F68A4 +:100A9C00EF1313543FFBEB6013F0F0F0F0F0F0F0B9 +:100AAC00F0F0F0F0F0F0F0F0F01B80EAEF5403FB04 +:100ABC00EB7003020B00F0F0F0F01B80F3907F68FA +:100ACC00EF1313543FFBEB601BF0F0F0F0F0F0F081 +:100ADC00F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F00A +:100AEC00F01B80E2EF5403FBEB6009F0F0F0F0F048 +:100AFC00F01B80F4E54745354480902014F0A37436 +:100B0C0002F0E52864017030907F6AEF1313543FB4 +:100B1C00FBEB6013F0F0F0F0F0F0F0F0F0F0F0F030 +:100B2C00F0F0F0F01B80EAEF5403FBEB7003020BC8 +:100B3C007BF0F0F0F01B80F3907F6AEF1313543FBF +:010B4C00FBAD +:100B4D00EB601BF0F0F0F0F0F0F0F0F0F0F0F0F002 +:100B5D00F0F0F0F0F0F0F0F0F0F0F01B80E2EF5478 +:100B6D0003FBEB6009F0F0F0F0F0F01B80F4E548CA +:100B7D007014902110E030E321754801C2049020DB +:100B8D00157410F08014E548B4010F902110E03079 +:100B9D00E308754802754900D204907F74E0FE9019 +:100BAD007F75E0FDEEF551EDF552E528B4011BAF73 +:100BBD00527C007D04120D06AA05EAFFC3E5529F83 +:100BCD00F552E5519400F551801BAE51AF527C00AA +:100BDD007D06120D06AA05EAFFC3E5529FF552E503 +:100BED00519400F551E552AE517804CEA2E713CEE3 +:100BFD0013D8F8FB200403020C6BC3940A500302B4 +:100C0D000C6B907F62EBD394004013E0E0E0E0E0EA +:100C1D00E0E0E0E0E0E0E0E0E0E0E01B80E7E5526E +:100C2D00540FFB907F62EBD394004004E01B80F6E1 +:100C3D00907FE27452F0907F62EAD394004004E01A +:100C4D001A80F6907FE274D2F0E548B4021005499F +:100C5D00E549B401097548009020157410F0C2BC27 +:090C6D00C2BEE546700375460A9B +:100C76005391EF907FAB7402F0D007D006D005D029 +:100C860004D003D002D000D0D0D086D084D085D076 +:080C960082D083D0F0D0E032DF +:10192F00C0E0C083C082C085C084C0867586005366 +:10193F0091EF907FAB7410F0D086D084D085D08299 +:05194F00D083D0E0325E +:011A000032B3 +:1018BC00C0E0C083C082C085C084C086758600D25B +:1018CC00035391EF907FAB7408F0D086D084D08511 +:0718DC00D082D083D0E0327E +:011A010032B2 +:011A020032B1 +:011A030032B0 +:011A040032AF +:011A050032AE +:011A060032AD +:011A070032AC +:011A080032AB +:011A090032AA +:011A0A0032A9 +:011A0B0032A8 +:011A0C0032A7 +:011A0D0032A6 +:011A0E0032A5 +:011A0F0032A4 +:011A100032A3 +:03004300021700A1 +:1017000002189500020A4C0002186B000218BC0077 +:1017100002192F00021A0000021A0100021A020028 +:10172000021A0300021A0400021A0500021A060037 +:10173000021A0700021A0800021A0900021A0A0017 +:10174000021A0B00021A0C00021A0D00021A0E00F7 +:08175000021A0F00021A10003A +:10199000907FD6E030E712E04401F07F147E001221 +:0A19A00019AA907FD6E054FEF02251 +:10195400907FD6E04480F04387010000000000221D +:1019AA008E578F58E5581558AE57700215574E6026 +:0719BA000512196480EE2202 +:0217F4008F6202 +:1017F600E4F5637564FF756513756696AB64AA6553 +:10180600A966900001120CB7B4031DAF630563EF20 +:10181600B5620122120C9E7E0029FFEE3AA90775D9 +:0E18260064FFF565896680D47B007A00790046 +:011834002291 +:10175800E4FE7564FF7565127566DFAB64AA65A95A +:1017680066900001120CB76402702DAD060EEDB53F +:10177800070122900002120D3C85F062F563626257 +:10178800E5626263E563626229FDE5623AA905756F +:0E17980064FFF565896680C37B007A007900E6 +:0117A6002220 +:101964007400F58690FDA57C05A3E582458370F996 +:011974002250 +:030000000214F0F7 +:0C14F000787FE4F6D8FD7581790215378D +:100C9E00BB010689828A83E0225002E722BBFE0254 +:090CAE00E32289828A83E4932287 +:100CB700BB010CE58229F582E5833AF583E02250F2 +:100CC70006E92582F8E622BBFE06E92582F8E2223C +:0D0CD700E58229F582E5833AF583E4932256 +:100CE400F8BB010DE58229F582E5833AF583E8F046 +:100CF400225006E92582C8F622BBFE05E92582C8F2 +:020D0400F222D9 +:100D0600C2D5EC30E709B2D5E4C39DFDE49CFCEE08 +:100D160030E715B2D5E4C39FFFE49EFE120E6AC308 +:100D2600E49DFDE49CFC8003120E6A30D507C3E403 +:060D36009FFFE49EFE2277 +:100D3C00BB0110E58229F582E5833AF583E0F5F0F5 +:100D4C00A3E0225009E92582F886F008E622BBFED2 +:100D5C000AE92582F8E2F5F008E222E5832AF58318 +:080D6C00E993F5F0A3E99322DD +:100D7400EB9FF5F0EA9E42F0E99D42F0E89C45F0D5 +:010D8400224C +:100D8500E709F608DFFA8046E709F208DFFA803E50 +:100D950088828C83E709F0A3DFFA8032E309F6083D +:100DA500DFFA806EE309F208DFFA806688828C83B9 +:100DB500E309F0A3DFFA805A89828A83E0A3F60863 +:100DC500DFFA804E89828A83E0A3F208DFFA804247 +:100DD50080D280FA80C680D4805580F28029801028 +:100DE50080A680EA809A80A880DA80E280CA80297D +:100DF50088848C8589828A83E493A30586F0A3057C +:100E050086DFF5DEF3800B89828A83E493A3F608F7 +:100E1500DFF9ECFAA9F0EDFB2288848C8589828ABA +:100E250083E0A30586F0A30586DFF6DEF480E3897B +:100E3500828A83E493A3F208DFF980D688F0ED2453 +:100E450002B4040050CCF582EB2402B4040050C275 +:100E550023234582F582EF4E60B8EF60010EE582EF +:050E650023900DD57380 +:1014FC0002139CE493A3F8E493A34003F68001F257 +:10150C0008DFF48029E493A3F85407240CC8C333F0 +:10151C00C4540F4420C8834004F456800146F6DFBF +:10152C00E4800B01020408102040809015FAE47E40 +:10153C00019360BCA3FF543F30E509541FFEE493B4 +:10154C00A360010ECF54C025E060A840B8E493A37B +:10155C00FAE493A3F8E493A3C8C582C8CAC583CAA6 +:10156C00F0A3C8C582C8CAC583CADFE9DEE780BE5E +:011675000074 +:100E6A00BC000BBE0029EF8DF084FFADF022E4CC6C +:100E7A00F875F008EF2FFFEE33FEEC33FCEE9DEC35 +:100E8A00984005FCEE9DFE0FD5F0E9E4CEFD22ED7B +:100E9A00F8F5F0EE8420D21CFEADF075F008EF2FC5 +:100EAA00FFED33FD4007985006D5F0F222C398FDB6 +:050EBA000FD5F0EA2253 +:00000001FF diff --git a/usx2yloader/tascam_fw b/usx2yloader/tascam_fw new file mode 100644 index 0000000..b44fa4f --- /dev/null +++ b/usx2yloader/tascam_fw @@ -0,0 +1,55 @@ +#!/bin/sh + +# load the firmware into Tascam USB devices + +FIRMWARE= +FIRMWAREDIR=/usr/local/share/alsa/firmware +FLAGS= +LOADER=/sbin/fxload +LOADERFIRMWARE=$FIRMWAREDIR/tascam_loader.ihx + +case $PRODUCT in +1604/8000/*) + FIRMWARE=$FIRMWAREDIR/us428fw.ihx + ;; +1604/8004/*) + FIRMWARE=$FIRMWAREDIR/us224fw.ihx + ;; +1604/8006/*) + FIRMWARE=$FIRMWAREDIR/us122fw.ihx + ;; +*) + if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 "unknown product $PRODUCT" + fi + exit 1 +esac + +# missing loader firmware? +if [ ! -r $LOADERFIRMWARE ]; then + if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 "missing $LOADERFIRMWARE ??" + fi + exit 1 +fi + +# missing firmware? +if [ ! -r $FIRMWARE ]; then + if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 "missing $FIRMWARE for $PRODUCT ??" + fi + exit 1 +fi + +# missing loader? +if [ ! -x $LOADER ]; then + if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 "missing $LOADER ??" + fi + exit 1 +fi + +if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 "load $FIRMWARE for $PRODUCT to $DEVICE" +fi +$LOADER $FLAGS -s $LOADERFIRMWARE -I $FIRMWARE diff --git a/usx2yloader/tascam_fw.usermap b/usx2yloader/tascam_fw.usermap new file mode 100644 index 0000000..79562a7 --- /dev/null +++ b/usx2yloader/tascam_fw.usermap @@ -0,0 +1,6 @@ +tascam_fw 0x0003 0x1604 0x8000 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 +tascam_fw 0x0003 0x1604 0x8004 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 +tascam_fw 0x0003 0x1604 0x8006 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 +tascam_fpga 0x0003 0x1604 0x8001 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 +tascam_fpga 0x0003 0x1604 0x8005 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 +tascam_fpga 0x0003 0x1604 0x8007 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 diff --git a/usx2yloader/usx2yloader.c b/usx2yloader/usx2yloader.c index 93c430b..ab76acc 100644 --- a/usx2yloader/usx2yloader.c +++ b/usx2yloader/usx2yloader.c @@ -63,15 +63,17 @@ static void error(const char *fmt, ...) /* - * read a xilinx bitstream file + * read a xilinx bitstream file. + * NOTE: This interprets somehow differently from the vxloaders read_xilinx_image()! + * I took this from rbtload.c of the project usb-midi-fw.sf.net. */ static int read_xilinx_image(snd_hwdep_dsp_image_t *img, const char *fname) { FILE *fp; char buf[256]; - int data, c, idx, length; + int data = 0, c = 0, idx = 0, length = 0; char *p; - char *imgbuf; + char *imgbuf = 0; if ((fp = fopen(fname, "r")) == NULL) { fprintf(stderr, PROGNAME ": cannot open %s\n", fname); @@ -79,10 +81,6 @@ static int read_xilinx_image(snd_hwdep_dsp_image_t *img, const char *fname) } snd_hwdep_dsp_image_set_name(img, fname); - c = 0; - data = 0; - idx = 0; - length = 0; while (fgets(buf, sizeof(buf), fp)) { if (strncmp(buf, "Bits:", 5) == 0) { for (p = buf + 5; *p && isspace(*p); p++); @@ -140,15 +138,13 @@ static int read_xilinx_image(snd_hwdep_dsp_image_t *img, const char *fname) } } } - if (c) - imgbuf[idx++] = data; - if (idx != length) { - fprintf(stderr, - PROGNAME ": length doesn't match: %d != %d\n", idx, - length); + if (idx != length || 0 == imgbuf) { + fprintf(stderr, PROGNAME ": length doesn't match: %d != %d\n", idx, length); fclose(fp); return -EINVAL; } + if (c) + imgbuf[idx++] = data; snd_hwdep_dsp_image_set_length(img, length); snd_hwdep_dsp_image_set_image(img, imgbuf); fclose(fp); @@ -223,7 +219,6 @@ static int get_file_name(const char *key, unsigned int idx, char *fname) len = strlen(temp); while (fgets(buf, sizeof(buf), fp)) { - int prepad; if (strncmp(buf, temp, len)) continue; @@ -303,7 +298,7 @@ static int usx2y_boot(const char *devname) { snd_hwdep_t *hw; const char *id; - int err, is_pcmcia; + int err; unsigned int idx, dsps, loaded; snd_hwdep_dsp_status_t *stat;