Bienvenue sur eagle-usb.org

WikiEagle

DSPfirmware

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-3-80-131-164.compute-1.amazonaws.com
Memory map :
0x0 - 0x161a main page program
0x50f6 - 0x7f76 main page data


Writing at adress 0 make the dsp start.
Each instruction is coded on 24 bits. That's why the padding stuff is need because 21*3=63 and usb work by 64 bits. The padding should be removed in the usb firmware before sending it to dsp.
The data is 16 bits words.

Analog supports 4 types of dsp (http://www.analog.com/processors/processors/index.html ).
Analog make dsl modem with adsp dsp : http://www.analog.com/UploadedFiles/Obsolete_Data_Sheets/3520938669281275868AD20mps910.pdf

Looking at http://www.analog.com/UploadedFiles/Data_Sheets/131820591231341383244687ADSP_2185L_a.pdf we can see similar features to eagle dsp :

there is a sumary of adsp chip on http://www.analog.com/UploadedFiles/Data_Sheets/26988897222791524014637367292314678ADSP_218xN_0.pdf .
From the IDMA overlay (p17) it could be a ADSP-2187, ADSP-2188 or ADSP-2189.

TODO : check all chip that support IDMA on http://www.analog.com/processors/processors/ADSP/dataSheets.html
TODO : find the instructions supported by this dsp. (http://www.analog.com/processors/epManualsDisplay/0,2795,,00.html?SectionWeblawId=432&ContentID=33133&Language=English )
TODO : look at other cpu familly
TS have 32 bits intructions


Software for adsp :


Example of a firmware image
DSP Informations
Page Count: 40
Page 1 at offset 0x00019de6
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 496
        Block 1 Address 0x2000 Program ExtSize 15825
Page 2 at offset 0x0001ddb4
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 4914
        Block 1 Address 0x2000 Program ExtSize 19848
Page 3 at offset 0x00023e7b
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 3466
        Block 1 Address 0x2000 Program ExtSize 24567
Page 4 at offset 0x0002ac09
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 7816
        Block 1 Address 0x16d0 Program ExtSize 29466
Page 5 at offset 0x00033db8
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 6354
        Block 1 Address 0x2000 Program ExtSize 19827
Page 6 at offset 0x0003a40a
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 288
        Block 1 Address 0x2000 Program ExtSize 1233
Page 7 at offset 0x0003aa08
        Block Count 1
        Block 0 Address 0x2000 Program ExtSize 30
Page 8 at offset 0x0003aa2d
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 4020
        Block 1 Address 0x2000 Program ExtSize 22800
Page 9 at offset 0x00000000
Page 10 at offset 0x000412fe
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 1384
        Block 1 Address 0x2000 Program ExtSize 4359
Page 11 at offset 0x0004297a
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 8332
        Block 1 Address 0x16d0 Program ExtSize 31089
Page 12 at offset 0x0004c384
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 3976
        Block 1 Address 0x2000 Program ExtSize 21909
Page 13 at offset 0x000528ae
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 7186
        Block 1 Address 0x2200 Program ExtSize 12081
Page 14 at offset 0x000573fe
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 2636
        Block 1 Address 0x2000 Program ExtSize 1323
Page 15 at offset 0x00058382
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 2288
        Block 1 Address 0x2000 Program ExtSize 10008
Page 16 at offset 0x0005b397
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 958
        Block 1 Address 0x2000 Program ExtSize 18807
Page 17 at offset 0x000600d9
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 7470
        Block 1 Address 0x16d0 Program ExtSize 26307
Page 18 at offset 0x000684d7
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 1742
        Block 1 Address 0x16d0 Program ExtSize 23427
Page 19 at offset 0x00000000
Page 20 at offset 0x0006e735
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 60
        Block 1 Address 0x2000 Program ExtSize 2658
Page 21 at offset 0x00000000
Page 22 at offset 0x00000000
Page 23 at offset 0x00000000
Page 24 at offset 0x00000000
Page 25 at offset 0x00000000
Page 26 at offset 0x00000000
Page 27 at offset 0x00000000
Page 28 at offset 0x00000000
Page 29 at offset 0x00000000
Page 30 at offset 0x0006f1e0
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 8494
        Block 1 Address 0x2000 Program ExtSize 16347
Page 31 at offset 0x000752f6
        Block Count 2
        Block 0 Address 0x4020 Data ExtSize 5258
        Block 1 Address 0x2000 Program ExtSize 9468
Page 32 at offset 0x00000000
Page 33 at offset 0x00000000
Page 34 at offset 0x00000000
Page 35 at offset 0x00000000
Page 36 at offset 0x00000000
Page 37 at offset 0x00000000
Page 38 at offset 0x00000000
Page 39 at offset 0x00000000
Page 40 at offset 0x00078c89
        Block Count 1
        Block 0 Address 0x2000 Program ExtSize 20889
Main Page at offset 0x000101e5
        Block Count 13
        Block 0 Address 50f6 Data Size 1533
        Block 1 Address 56f3 Data Size 1533
        Block 2 Address 5cf0 Data Size 1488
        Block 3 Address 63ca Data Size 566
        Block 4 Address 6d00 Data Size 1200
        Block 5 Address 7541 Data Size 1533
        Block 6 Address 7b3e Data Size 1081
        Block 7 Address 3fe Program Size 1022
        Block 8 Address 7fc Program Size 1022
        Block 9 Address bfa Program Size 1022
        Block 10 Address ff8 Program Size 1022
        Block 11 Address 13f6 Program Size 549
        Block 12 Address 0 Program Size 1022


Firmware is sended to DSP it two stages
The second stage is needed because DSP have limited memory

Example of a DSP firmware upload:
block_info wOvl, wOvlOffset, wAddress, wSize
ovl = 0x0000, pageno = 0
ovl 0x0000 off 0x8000 addr 0x50f6 size 3066
ovl 0x0000 off 0x8000 addr 0x56f3 size 3066
ovl 0x0000 off 0x8000 addr 0x5cf0 size 2976
ovl 0x0000 off 0x8000 addr 0x63ca size 1132
ovl 0x0000 off 0x8000 addr 0x6d00 size 2400
ovl 0x0000 off 0x8000 addr 0x7541 size 3066
ovl 0x0000 off 0x8000 addr 0x7b3e size 2162
ovl 0x0000 off 0x8000 addr 0x03fe size 3114
ovl 0x0000 off 0x8000 addr 0x07fc size 3114
ovl 0x0000 off 0x8000 addr 0x0bfa size 3114
ovl 0x0000 off 0x8000 addr 0x0ff8 size 3114
ovl 0x0000 off 0x8000 addr 0x13f6 size 1673
ovl 0x0000 off 0x8000 addr 0x0001 size 3111
ovl 0x0000 off 0x8000 addr 0x0000 size 3

ovl = 0x0444, pageno = 10
ovl 0x0444 off 0x8444 addr 0x4020 size 1384
ovl 0x0444 off 0x8444 addr 0x2000 size 4428

ovl = 0x0040, pageno = 20
ovl 0x0040 off 0x8040 addr 0x4020 size 60
ovl 0x0040 off 0x8040 addr 0x2000 size 2700

ovl = 0x0444, pageno = 1
ovl 0x0444 off 0x8444 addr 0x4020 size 496
ovl 0x0444 off 0x8444 addr 0x2000 size 16076

ovl = 0x0040, pageno = 12
ovl 0x0040 off 0x8040 addr 0x4020 size 3976
ovl 0x0040 off 0x8040 addr 0x2000 size 22256

ovl = 0x0444, pageno = 1
ovl 0x0444 off 0x8444 addr 0x4020 size 496
ovl 0x0444 off 0x8444 addr 0x2000 size 16076

ovl = 0x0040, pageno = 18
ovl 0x0040 off 0x8040 addr 0x4020 size 1742
ovl 0x0040 off 0x8040 addr 0x16d0 size 23798

ovl = 0x0444, pageno = 13
ovl 0x0444 off 0x8444 addr 0x4020 size 7186
ovl 0x0444 off 0x8444 addr 0x2200 size 12272

ovl = 0x0040, pageno = 2
ovl 0x0040 off 0x8040 addr 0x4020 size 4914
ovl 0x0040 off 0x8040 addr 0x2000 size 20163

ovl = 0x0444, pageno = 15
ovl 0x0444 off 0x8444 addr 0x4020 size 2288
ovl 0x0444 off 0x8444 addr 0x2000 size 10166

ovl = 0x0444, pageno = 15
ovl 0x0444 off 0x8444 addr 0x4020 size 2288
ovl 0x0444 off 0x8444 addr 0x2000 size 10166

ovl = 0x0040, pageno = 17
ovl 0x0040 off 0x8040 addr 0x4020 size 7470
ovl 0x0040 off 0x8040 addr 0x16d0 size 26724

ovl = 0x0444, pageno = 8
ovl 0x0444 off 0x8444 addr 0x4020 size 4020
ovl 0x0444 off 0x8444 addr 0x2000 size 23161

ovl = 0x0040, pageno = 3
ovl 0x0040 off 0x8040 addr 0x4020 size 3466
ovl 0x0040 off 0x8040 addr 0x2000 size 24956

ovl = 0x0444, pageno = 16
ovl 0x0444 off 0x8444 addr 0x4020 size 958
ovl 0x0444 off 0x8444 addr 0x2000 size 19105

ovl = 0x0040, pageno = 11
ovl 0x0040 off 0x8040 addr 0x4020 size 8332
ovl 0x0040 off 0x8040 addr 0x16d0 size 31582

ovl = 0x0444, pageno = 40
ovl 0x0444 off 0x8444 addr 0x2000 size 21220

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]