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.
This commit is contained in:
Takashi Iwai 2003-09-23 14:16:23 +00:00
parent b52baf89dd
commit ac8b155791
11 changed files with 776 additions and 18 deletions

4
usx2yloader/INSTALL Normal file
View file

@ -0,0 +1,4 @@
For Installing from CVS do:
./cvscompile
make install

View file

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

85
usx2yloader/README Normal file
View file

@ -0,0 +1,85 @@
USX2YLOADER - Second Phase Firmware loader for Tascam USX2Y USB soundcards
2003-09-15 Karsten Wiese <annabellesgarden@yahoo.de>
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 <annabellesgarden@yahoo.de>
Distributalbe under GPL.
The firmware files included in firmware sub-directory are copyright
by Tascam / TEAC Corporation.

View file

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

11
usx2yloader/cvscompile Normal file
View file

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

View file

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

View file

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

View file

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

55
usx2yloader/tascam_fw Normal file
View file

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

View file

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

View file

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