Eagle chipset hardware description.
Eagle bugs
Pre Eagle
ADI910
AD6435 : Digital interface
AD6436 : DMT (DSP core operation of DMT)
AD6437 : AFE
ADTSP-2183 : general purpose DSP
AD8042 : Ampli (TX op)
AD816 : line driver (RX op)
ADI918
AD6438 : Digital interface using UTOPIA2
AD6439 : DMT (DSP core operation of DMT)
AD6437 : AFE
ADTSP-2183 : general purpose DSP
AD8016 : line driver (TX op)
AD8022/AD812 : Ampli (RX op)
ADI930
AD6449 : Digital interface using UTOPIA2, DMT (DSP core operation of DMT), general purpose DSP
AD6440 : AFE (programmable analog equalizer (use fpga.bin ???))
AD8016 : line driver (TX op)
AD8022/AD812 : Ampli (RX op)
ADI930PCI
AD6481 : PCI bridge
AD6449 : Digital interface using UTOPIA2, DMT (DSP core operation of DMT), general purpose DSP
AD6440 : AFE (programmable analog equalizer (use fpga.bin ???))
AD8016 : line driver (TX op)
AD8022/AD812 : Ampli (RX op)
ADI930USB
CY7C64613 : USB bridge
AD6449 : Digital interface using UTOPIA2, DMT (DSP core operation of DMT), general purpose DSP
AD6440 : AFE (programmable analog equalizer (use fpga.bin ???))
AD8016 : line driver (TX op)
AD8022/AD812 : Ampli (RX op)
Anaconda
AD6497
AD6492
AD6493
Eagle
EagleII
Eagle hardware version
Eagle I : AD6484 (usb) AD6482 (uptopia) AD6483 (pci)
Eagle II : ADIKE6485
Eagle III : AD/IKE6486
Eagle Plus (adsl2+) : IKE6487 (utopia) AD/IKE6505 (usb)
The Eagle usb chipset can be split in 3 components :
- a Analog Front End that do the analog/digital conservion
- a front end that do some computing on the digital signal
- an usb device chipset
Analog Front End for eagle III, IV
It come as an external chip.
For adsl2+ : AD/IKE6488
Analog Front End for eagle I,II
It come as an external chip.
For adsl : AD6480
Front end for eagle IV
Eagle IV uses the
stratiphy core.
It seems to be a
ARC core.
There is some
arc datasheets.
A gnu binutils support ARC platform. A
binary toolchain can be found
sending DSP page 0
sending DSP page 3
sending DSP page 4
sending DSP page 29
sending DSP page 6
sending DSP page 34
sending DSP page 8
sending DSP page 9
sending DSP page 10
sending DSP page 12
sending DSP page 13
sending DSP page 14
sending DSP page 16
sending DSP page 17
sending DSP page 18
sending DSP page 19
sending DSP page 21
sending DSP page 23
sending DSP page 22
sending DSP page 24
sending DSP page 25
Front end for eagle I,II,III
The dsp processor in the eagle is based on ADI dsp processor.
With the information included in the driver (24 bits instructions, 16 bits data) and the fact that ADI make some
ADSL modem with adsp processor, we found that it is an
adsp processor.
Looking at
ADSP datasheet we can see similar features to eagle dsp :
- IDMA boot
- 24bits instruction
- 16bits data
- Internal memory and overlay stuff.
According to
a sumary of adsp chip, IDMA overlay (p17), the dsp could be a ADSP-2187, ADSP-2188 or ADSP-2189.
The adsp insctruction could be found on the analog website :
http://www.analog.com/processors/epManualsDisplay/0,2795,,00.html?SectionWeblawId=432&ContentID=33133&Language=English.
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
- load main program (pageno eq 0), run CPU
- load additional data/program pages at DSP request
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
usb device for eagle I,II,III,IV
The usb part is based on
cypress EZ-USB (the ADI driver source code give some hints).
Eagle IV don't support usb2 (we could have use new
cypress).
The datasheet is can be found on the web :
Software
Others project using the cypress EZ-USB :
Tools :