Changes

381 bytes added ,  02:02, 14 April 2017
no edit summary
Line 7: Line 7:  
| 0 || 15-0 || IPC version? Always 4.
 
| 0 || 15-0 || IPC version? Always 4.
 
|-
 
|-
| 0 || 19-16 || Number of marshalls type X (each: 2 words). Type mask: 8
+
| 0 || 19-16 || Number of buf X descriptors (each: 2 words). Type mask: 9
 
|-
 
|-
| 0 || 23-20 || Number of buf descriptors (each: 3 words). Type mask: 5
+
| 0 || 23-20 || Number of buf A descriptors (each: 3 words). Type mask: 5
 
|-
 
|-
| 0 || 27-24 || Number of buf2 descriptors (each: 3 words). Type mask: 6
+
| 0 || 27-24 || Number of buf B descriptors (each: 3 words). Type mask: 6
 
|-
 
|-
 
| 0 || 31-28 || Number of marshalls type W (each: 3 words)
 
| 0 || 31-28 || Number of marshalls type W (each: 3 words)
Line 17: Line 17:  
| 1 || 9-0 || Size of data portion in u32's.
 
| 1 || 9-0 || Size of data portion in u32's.
 
|-
 
|-
| 1 || 13-10 || ?
+
| 1 || 13-10 || If set to 2, enable buf C descriptor. Type mask: 0xA.
 
|-
 
|-
 
| 1 || 31 || Enable special descriptor.
 
| 1 || 31 || Enable special descriptor.
Line 25: Line 25:  
| ... || || Type X descriptors, each one 2 words.
 
| ... || || Type X descriptors, each one 2 words.
 
|-
 
|-
| ... || || Buf descriptors, each one 3 words.
+
| ... || || Buf A descriptors, each one 3 words.
 
|-
 
|-
| ... || || Buf2 descriptors, each one 3 words.
+
| ... || || Buf B descriptors, each one 3 words.
 
|-
 
|-
 
| ... || || Type W descriptors, each one 3 words.
 
| ... || || Type W descriptors, each one 3 words.
Line 49: Line 49:  
|}
 
|}
   −
=== Buf descriptor ===
+
=== Buffer descriptor A/B ===
They fucked up this one, big time.
+
This packing is so unnecessarily complex.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 68: Line 68:  
|}
 
|}
   −
=== Descriptor type B ===
+
=== Buffer descriptor C ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Word || Description
+
! Word || Bits || Description
 
|-
 
|-
| 0 || Lower 32-bits of addr?
+
| 0 || || Lower 32-bits of address.
 
|-
 
|-
| 1 || Upper 16bits: Size, Lower 16bits: Rest of addr?
+
| 1 || 15-0 || Rest of address.
 +
|-
 +
| 1 || 31-16 || Size
 
|}
 
|}
   −
=== Descriptor type C ===
+
=== Buffer descriptor X ===
 +
This one is packed even worse than A, they inserted the bit38-36 of the address ''on top'' of the counter field.
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Word || Description
+
! Word || Bits || Description
 
|-
 
|-
| 0 || Upper 16bits: Size, Lower 16: ?
+
| 0 || 5-0 || Bits 5-0 of counter.
 
|-
 
|-
| 1 || ?
+
| 0 || 8-6 || Bit 38-36 of address.
 +
|-
 +
| 0 || 11-9 || Bits 11-9 of counter.
 +
|-
 +
| 0 || 15-12 || Bit 35-32 of address.
 +
|-
 +
| 0 || 31-16 || Size
 +
|-
 +
| 1 || || Lower 32-bits of address.
 
|}
 
|}