Difference between revisions of "DSP Binary"

From 3dbrew
Jump to navigation Jump to search
Line 19: Line 19:
 
|-
 
|-
 
| 0x108
 
| 0x108
| 4
+
| 2
| ?
+
| Communication ports? (bits 0-7: ???, 8-15: ???)
 
|-
 
|-
 
| 0x10C
 
| 0x10C
Line 28: Line 28:
 
| 0x10D
 
| 0x10D
 
| 1
 
| 1
| ?
+
| Special segment Mem type (0=1=0x1FF00000+,2=0x1FF40000+)
 
|-
 
|-
 
| 0x10E
 
| 0x10E
 
| 1
 
| 1
| Num segments (must be 1..9)
+
| Num segments (must be 1..10)
 
|-
 
|-
 
| 0x10F
 
| 0x10F
 
| 1
 
| 1
| ?
+
| Flags (bit0=??, bit1=special segment)
 
|-
 
|-
 
| 0x110
 
| 0x110
 
| 4
 
| 4
| ?
+
| Special segment start in 16-bit words
 
|-
 
|-
 
| 0x114
 
| 0x114
 
| 4
 
| 4
| ?
+
| Special segment size in bytes
 
|-
 
|-
 
| 0x118
 
| 0x118
Line 54: Line 54:
 
| Segment records
 
| Segment records
 
|}
 
|}
 +
 +
If "special segment" flag is set, 0x214 bytes are read from [[CfgS:GetConfigInfoBlk8]] block 0x70000, and then copied to the special segment given. If the reading fails, zeroes are written in its place.
  
 
Each segment record:
 
Each segment record:
Line 68: Line 70:
 
| 4
 
| 4
 
| 4
 
| 4
| Load addr?
+
| Load addr in 16-bit words (must be < 0x20000 for type 0, < 0x10000 for type 1,2)
 
|-
 
|-
 
| 8
 
| 8
 
| 4
 
| 4
| Size
+
| Size in bytes
 
|-
 
|-
| 12
+
| 15
| 4
+
| 1
| Mem selector? (0/2)
+
| Mem type (0=1=0x1FF00000+,2=0x1FF40000+)
 
|-
 
|-
 
| 16
 
| 16

Revision as of 01:15, 11 June 2014


Offset Size Description
0x0 0x100 RSA Signature
0x100 4 Magic ('DSP1')
0x104 4 DSP Binary size
0x108 2 Communication ports? (bits 0-7: ???, 8-15: ???)
0x10C 1 ?
0x10D 1 Special segment Mem type (0=1=0x1FF00000+,2=0x1FF40000+)
0x10E 1 Num segments (must be 1..10)
0x10F 1 Flags (bit0=??, bit1=special segment)
0x110 4 Special segment start in 16-bit words
0x114 4 Special segment size in bytes
0x118 8 Zero
0x120 0x30*10 Segment records

If "special segment" flag is set, 0x214 bytes are read from CfgS:GetConfigInfoBlk8 block 0x70000, and then copied to the special segment given. If the reading fails, zeroes are written in its place.

Each segment record:

Offset Size Description
0 4 Offset data
4 4 Load addr in 16-bit words (must be < 0x20000 for type 0, < 0x10000 for type 1,2)
8 4 Size in bytes
15 1 Mem type (0=1=0x1FF00000+,2=0x1FF40000+)
16 32 SHA256 hash of segment