Magic Lantern Firmware Wiki
Register
Advertisement

This is a register map for EOS 600D. Registers are sorted by memory address.

Registers have usually the same meaning among all cameras. See also:

Looks like even compact cameras with DIGIC II and III share the same commands :) [1]

It is the try to create a more or less clean map of the different hardware modules mapped into memory space along with some example data.

FlashIF[]

0xC0000000 FlashIF Base

  +0x000 [32] Flash Write Protect Control
     -------1 -------- -------- --------   Disable Write Protect "ROM1" (0xF8000000)

  +0x004 [32] Flash Write Protect Control
     -------1 -------- -------- --------   Disable Write Protect "BootROM" (0xF0000000)

  +0x010 [32] Flash Write Protect Control Key
     -------- -------- xxxxxxxx xxxxxxxx   Disable Write Protect "BootROM" (0xF0000000)
     xxxxxxxx xxxxxxxx -------- --------   Disable Write Protect "ROM1" (0xF8000000)
     Write 0xD9C5 in those 16 bits to disable WP line.

Power Control[]

0xC0F01000 PowerControl (PWR_CTRL) Base

  +0x000 [32] NRES
  +0x004 [32] LCLK

ObInteg[]

0xC0F0A000 ObInteg Base

  +0x004 [32] Pixel count (resolution used from PROP_CAM_MODEL + 0x30)
     -------- -------- xxxxxxxx xxxxxxxx   X Resolution - 1
     xxxxxxxx xxxxxxxx -------- --------   Y Resolution - 1

  +0x00C [32] Reset?
     -------- -------- -------- -------1   Enable? Reset?

  +0x010 [32] Unknown
     -------- -------- -------- xxxxxxx-   Unknown, never set?
     -------- -------- -------0 --------   Unknown, never set?
     -------- -------- ---1---- --------   Unknown, always set?
     -------- xxxxxxxx -------- --------   Unknown, always set to 0x04?
     -------1 -------- -------- --------   Unknown, always set?

  +0x020 [32] Result 0a (used)
  +0x024 [32] Result 0b (used)
  +0x028 [32] Result 0c (used)
  +0x02C [32] Result 0d (used)

  +0x030 [32] Result 1a
  +0x034 [32] Result 1b
  +0x038 [32] Result 1c
  +0x03C [32] Result 1d

  +0x040 [32] Result 2a
  +0x044 [32] Result 2b
  +0x048 [32] Result 2c
  +0x04C [32] Result 2d

  +0x050 [32] Result 3a
  +0x054 [32] Result 3b
  +0x058 [32] Result 3c
  +0x05C [32] Result 3d

  +0x060 [32] Result 4a
  +0x064 [32] Result 4b
  +0x068 [32] Result 4c
  +0x06C [32] Result 4d
 
  +0x100 [32] 
     -------- -------- -------- -------1   Enable EDMAC data processing? (enabled before, disabled after processing)

  +0x108 [32] window top position
     -------- -------- xxxxxxxx xxxxxxxx   horizontal position
     xxxxxxxx xxxxxxxx -------- --------   vertical position

  +0x10C [32] window bottom position
     -------- -------- xxxxxxxx xxxxxxxx   horizontal position
     xxxxxxxx xxxxxxxx -------- --------   vertical position

  +0x110 [32] Debayer Method
     0x22227777, 0x77772222, 0x8888DDDD or 0xDDDD8888

  +0x12C [32] Unknown
     -------- -------- -------- ----xxxx   Unknown, never set?
     -------- -------- -------- ---x----   Unknown, set most of the time

LVDS[]

0xC0400000 LVDS Base
  +0x454 [32] Used during initialization
  +0x47C [32] Used during initialization
  +0x480 [32] Used during initialization (set to 0x0, 0x10, 0x11 in that order)
  +0x484 [32] Used during initialization (ORRed with 0x02)

Watchdog[]

Uses IRQ level 3

0xC0410000 Watchdog Base
  +0x000 [32] Used during initialization
     11------ -------- -------- --------   Set during init
     -------- -------- ----xxxx --------   Set during init, values 0-4
     -------- -------- -------- xxxx----   Set during init, values 0-6
     -------- -------- -------- -------1   Set during init

  +0x004 [32] Probably wdt-reset - set to 0xAA55 periodically

  +0x008 [32] Flags
     -------- -------- -------- -------x   Set when WDT timed out

CFDMA[]

0xC0620000 CF Base #0 (40D = 0xC0700000)
0xC0630000 CF Base #1 (unused?)
 +0x0000 [8]   CIS data (always or just in special modes?)
 ...
 +0x0FFF [9]

 +0x2000 [8]   PIO DATA
 +0x2001 [8]   Read: Error data, Write: Features
 +0x2002 [8]   Sector count
 +0x2003 [8]   Sector number
 +0x2004 [8]   Cylinder low byte
 +0x2005 [8]   Cylinder high byte
 +0x2006 [8]   Drive/Head
 +0x2007 [8]   Read: Status, Write: Command
 +0x200E [8]   Read: Alt Status, Write: Device control

 +0x8000 [32]  init: 0x0001
 +0x8004 [32]  init: 0x003B
 +0x8008 [32]  init: 0xFFFF

 +0x800C [32]  Data register to feed with data (usually 0x2000)
 +0x8010 [32]  unknown, set to 0x100. maybe sector size?
 +0x8014 [32]  unknown, set to PIO_W:0x1E, PIO_R:0x16, DMA:0x00, init 5D3: 0x12

 +0x8024 [32]  PIO: Command register to use, OR'ed with 0xA000
 +0x8028 [32]  PIO: set to 9
 +0x8030 [32]  PIO: set to 0xFF0001
 +0x8034 [32]  PIO: set to 0x07FF5800 or 0xFF070058 depending on command reg
 +0x8038 [32]  PIO: set to 0xFEFF0100 or 0xFFFE0001 depending on command reg


 +0x8040 [32]  Enable interrupt when flag changed? 0, 1, 0x2000000
 +0x8044 [32]  Interrupt reason, write with negated value upon interrupt
 +0x8048 [32]  set to 1, maybe transfer count?

 +0x8080 [32]  Sector count
 +0x8088 [32]  unknown, set to 0 for PIO, 1 for DMA, 1 on init

 +0x8090 [32]  unknown, related to access timing
 +0x809C [32]  unknown, related to access timing
 +0x80A0 [32]  unknown, related to access timing (init 5D3: 0x63D3F14)
 +0x80A4 [32]  unknown, related to access timing (init 5D3: 0x61D3F06)
 +0x80B0 [32]  init: 0x0000
 +0x80C0 [32]  init: 0x0000

 +0x8500 [32]  init: 0x0000
 +0x8504 [32]  unknown, related to access timing
 +0x8508 [32]  unknown, related to access timing
 +0x850C [32]  UDMA access timing
                 UDMA 0: 7D: 0x1213 5D3: 0x1001616
                 UDMA 1: 7D: 0x0C0C 5D3: 0x1000F0E 
                 UDMA 2: 7D: 0x0909 5D3: 0x1000B0B
                 UDMA 3: 7D: 0x0607 5D3: 0x1000808
                 UDMA 4: 7D: 0x0404 5D3: 0x1000505
                 UDMA 5: 7D: 0x0203 5D3: 0x0000303
                 UDMA 6: 7D: 0x0202 5D3: 0x0000202
 +0x8518 [32]  init 5D3: 0x1817100E
 +0x8528 [32]  init 5D3: 0x00010000


0xC0530000 CFDMA Base
 +0x0000 [32]  HDMAC_CA:  Buffer address with data to transfer
 +0x0004 [32]  HDMAC_LEN: Bytes to transfer (multiple of 512)

 +0x0010 [32]  set to 0x3D(write) or 0x39(read) or 0x00(disable)
 +0x0014 [32]  HDMAC_ST: set to 0, lowest 4 bits are written negated upon interrupt
 +0x0018 [32]  set to 0

SDCON[]

0xC0C10000 SDCON Base (600D) (40D - hw was not released with SD slot)
0xC0C20000 SDCON Base
0xC0C30000 SDCON Base (5D3)
0xC0C40000 SDCON Base
 +0x000 [32]   Set to 0x00 on init
 +0x004 [32]   Set to 0x01 on init
 +0x008 [32]   Set to 0x00 on init, 0x01/0xF1 before read/write, not used for status block. means: use DMA?
 +0x00C [32]   Set to 0x14/0x13/0x12/0x11/0x02 on command, after writing regs +0x024, +0x020 and +0x010
               with 0x11, registers +0x028/+0x02C is ignored probably
    0x13 Write transfer
    0x14 Read transfer

 +0x010 [32]   Status
    ---------------- ---------------1  Transfer finished
    ---------------- --------------1-  Error
    -----------1---- ----------------  DAT transfer data available in reg +0x06C?
    ----------1----- ----------------  DAT transfer finished?

 +0x014 [32]   Set to 0x03 before transfer start, 0x00 on ISR
 +0x018 [32]   Set to 0x08 on init

 +0x020 [32]   Command frame lower 32 bits (needs 0x01 being set, end bit)
 +0x024 [32]   Command frame upper 16 bits (needs 0x4000 being set, transmission bit)
 +0x028 [32]   Written with 0x88/0x30/0x30 before CMD
 +0x02C [32]   Written with 0x7F08/0x2701/0x80000000 before CMD

 +0x034 [32]   Data received lower 32 bits
 +0x038 [32]   Data received upper 16 bits

 +0x058 [32]   SD bus width
    -----------0---0  1 bit
    -----------0---1  4 bit
    -----------1---0  8 bit

 +0x05C [32]   Write transfer block size

 +0x064 [32]   SD bus width
    ----01100000---- -----------0---0  1 bit
    ----01100000---- -----------0---1  4 bit
    ----01110000---- -----------1---0  8 bit

 +0x068 [32]   Read transfer block size
 +0x070 [32]   Some busy flags, set to 0x39 before transfer
    ---------------1  Transfer running

 +0x07C [32]   Read/Write transfer block count

 +0x080 [32]   Transferred blocks
 +0x084 [32]   SDREP: Status register/error codes
 +0x088 [32]   SDBUFCTR: Set to 0x03 before reading
    ---------------1  Write transfer 
    --------------1-  Read transfer


0xC0510000 SDDMA Base
 +0x060 [32]   Transfer memory address
 +0x064 [32]   Transfer byte count
 +0x070 [32]   Flags/Status, set to 0x39 before read transfer start, 0x29|0x04 before write
    ---------------1  Transfer finished
    -------------1--  Write transfer
    -----------1----  use 16 byte wide DMA transfers

 +0x078 [32]   Written with zero before transfer start. position?

JPCORE[]

The JPCore seems to an extra processor based engine that exists at three base addresses with equivalent layouts. JPCORE is e.g. used in YUV2JPEG while JP57 in RAW2JPEG. Those seem both to support lossless compression. It also handles MPEG compression, only seen in JP62 yet.

It uses its own firmware in main memory, the address (!) where it was copied into RAM is written to +0x928 before init. Its size is approx 16-18KiB, depending on its exact instance. The address must be aligned to 0x80 bytes.

There is also a buffer address written to 0x92C which is 0x5000 bytes big and starts with the 32 bit word 0x00500000 and the character sequence "xbuf". Seems not to be used in main firmware, perhaps it is the JPCORE's internal scratchpad memory? Seems the first word is indeed two 16 bit words.

0xC0E00000 JPCORE Base


0xC0E10000 JP62 Base
 +0x000 [32]   JP62_OPCR (Operation Configuration Register?)
     -------- -------- -------1 -------- OPINPROG (Operation in Progress?)
     -------1 -------- -------- -------- Startup Success
     -------- -------- -------- ------1- Reset Engine after operation?
     -------- -------- -------- -------1 Enable Engine?

 +0x00C [32]   JP62_OPMR (Operation Mode Register?)
     00000000 00000000 10100000 10010000 H264 0-Frame
     00000000 00000000 10100000 10000011 H264 0-Frame (H264_SPS_PPS)

     00000000 00000000 10000000 10010000 H264 P-Frame
     00000000 00000000 10000000 10010000 H264 I-Frame

 +0x020 [32]   JP62_  (read after interrupts. reason?)

 +0x040 [32]   JP62_ 0x600

 +0x044 [32]   JP62_INSTR (Interrupt Status Register)
     -------- -------- ------1- -------- IEVSUS (Interrupt Vector Suspend?)
     -------- -------- -----1-- -------- IEVCPLT

 +0x080 [32]   JP62_SIZER
     -------- -------- xxxxxxxx xxxxxxxx (X Resolution >> 4) 16x16 Macroblocks?
     xxxxxxxx xxxxxxxx -------- -------- (Y Resolution >> 4) 

 +0x0C0 [32]   JP62_SEQCR1 (0x1280142)
 +0x0D0 [32]   JP62_PICCR1
     -------- -------- -------- --xxxxxx QPY
     -------- -------- --xxxxxx -------- QPC
     -------- -------1 -------- -------- Set

 +0x0E0 [32]   JP62_SLCCR1
     -------- -------- -------- -----101 0/P-Frame
     -------- -------- -------- -----111 I-Frame
     -------- --xxxxxx -------- -------- Slice QPD

 +0x0E4 [32]   JP62_SLCCR2
     -------- -------- ----xxxx -------- Deblock Alpha
     -------- -------- xxxx---- -------- Deblock Beta

 +0x0FC [32]   JP62_MISCR (0x200)

 +0x928 [32]   JpCoreFirm (written by InitializeJpCore2Driver)
 +0x92C [32]   JpCoreExtStream (written by InitializeJpCore2Driver)


0xC0E20000 JP57 Base (Lossless)
 +0x000        Control/status register?
     x------- -------- -------- -------- set when configuring; expected 0 in JPEGICError
     -------- -------- -------- -------x set when starting operation
     -------- -------x -------- -------- expected 1 before starting read edmacs (else, error code 0x8017)
     -------x -------- -------- -------- expected 1 above (matches Startup Success?)

 +0x004        Maybe mode?
   0x0010002  = Encode
   0x001000A  = Decode
   0x0010008  = ?
   0x1010000  = ?
   0x0000007  = During CaptureInit

 +0x008        1

 +0x010-0x01C  JPEG tags in order of appearance, packed as LE 32 bit words

e.g.              RAW       preview L     unknown 
 +0x010        0xDAC3C4D8 / 0xC4C0DBD8 / 0xDAC0DBD8
 +0x014        0x000000D9 / 0x0000D9DA / 0x000000D9
 +0x018        0x00000000 / 0x00000000 / 0x00000000

 +0x024        output size - number of written bytes for write channel 1

 +0x030        JPEGIC status?
     -------- -------x xxxxxxxx xxxxxxxx all expected 1 in JPEGICError

 +0x040        0x600
 +0x044        matches JP62_INSTR?
 +0x050        0

 +0x080        JP57_SIZER (slice size in px; see also 0xE8 and 0xEC; http://lclevy.free.fr/cr2/#lossless )
     -------- -------- xxxxxxxx xxxxxxxx X Resolution (slice width = image width / 2)
     xxxxxxxx xxxxxxxx -------- -------- Y Resolution (slice height = image height)

 +0x084        Sample properties? for SOF3 header?
     ---- xxxx ---- ----  Theory: Number of components
     ---- ---- ---- xxxx  Theory: Sample precision
     0x030F   = MRAW/SRAW
     0x0308   = unused code?
     0x020E   = RAW

 +0x088
     0x030201 = MRAW/SRAW
     0x000201 = RAW

 +0x08C        Component subsampling?
     -------- -------- -------- xxxxxxxx Theory: Component 2 sampling
     -------- -------- xxxxxxxx -------- Theory: Component 1 sampling
     -------- xxxxxxxx -------- -------- Theory: Component 0 sampling
     0x111121 = 422 (SRAW)
     0x111141 = 420 (MRAW)
     0x001111 = none (RAW)

 +0x090        
     0x010100 = unused code?
     0x000000 = MRAW/SRAW/RAW

 +0x094        Sample properties? for SOS header?
     ---- xxxx ---- ----  ?
     ---- ---- ---- xxxx  Theory: Sample precision
     0x000103 = MRAW/SRAW
     0x000102 = RAW

 +0x098
     0x030201 = MRAW/SRAW
     0x000201 = RAW

 +0x09C
     0x111100 = unused code?
     0x101000 = MRAW/SRAW
     0x001000 = RAW

 +0x0E8        
     -------- -------- xxxxxxxx xxxxxxxx X Resolution (Slice width (px))

 +0x0EC
     xxxxxxxx xxxxxxxx -------- -------1 Y Resolution (Slice height (px) << 16 | 1)

 +0x400-0x430  Some pixel ordering? index table?
 +0x440-0x470  Same values as +0x400

MREQ (7D)[]

0xC0820000 MREQ Base (int ID 0x52)
 +0x304 [32]   written with 1, checked for 1
 +0x318 [32]   written with 0x1C / written with big endian 16 bit word


IPC (7D)[]

This module is for connecting master and slave digics. Not sure about the exact way how it works yet.

Master-side:
0xC0A00000   IPC Base (int ID 0x4F on send/receive, 0x51 on status change)
 +0x000 [32]   CFG 
 +0x008 [32]   INT
 +0x00C [32]   INT confirmation? - written with content from +0x08
 +0x010 [32]   Recv - Received Command
 +0x014 [32]   mBAD - Master Base Address
 +0x018 [32]   sBAD - Slave Base Address
 +0x01C [32]   COM - MasterCommand - read, ORRed with 0x80000000 and further processed
 +0x020 [32]   (compared to content of +0x008)
 +0x024 [32]   Send - Command to send
 +0x040 [32]   VEX
 +0x044 [32]   JEX
Slave-side: same as above, here some memory content
0xC0A00000   IPC Base
 +0x000 [32]   0x000000E1
 +0x010 [32]   0x0000003F
 +0x020 [32]   0x8000ff81 / 0x48000000
 +0x030 [32]   0x00000000
 +0x040 [32]   0x00000007
Slave->Master wakeup commands when entering fromutil
 0x80000052 (fromutil_ipc_wakeup)
 0x80000031 (before entering autoexec.bin) 
   to undo:   0x80000010, then boot normal firmware
 0x80000034 or 0x80000030 (before entering FIR load code)
   to cancel: 0xC8000000, then continue fromutil
 0x88000001 (when going to load .FIR)
   to cancel: 0xC8000000, then continue fromutil
 0x98000000 (when going to execute .FIR)
 0xB8000000|fir_length (when going to execute .FIR)
 0x80000040 (when going to execute .FIR)
   to cancel: no idea

 continue fromutil:
 0x80000020 (then entering TIO loop)


some other details:
 SendIPCSlaveCommand in Slave is writing id, address and data to 0xC0A00024,
 ORed with 0xC2000000 for the ID, 0xC4000000 for the length and 0xC8000000 for every 16 bit data word.
 Interesting is that the address of the buffer containing the data is written there.
 Does the Master have to pick up that memory on its own?

When booting, the master loops in a IPC check loop that waits for slave to send some data. For every data word the slave sends, the master sets some bits (bitstate) in a global variable. Depending on the bitstate the slave causes, the master enters some state.

IPC command mapping in bootrom:

slave sent | bitstate | ipc_get_state returns

0x80000000 | 0x000008 | 0
0x80000010 | 0x000020 | 2
0x80000020 | 0x000040 | 3

0x80000030 | 0x000080 | 10
0x80000031 | 0x000100 | 11
0x80000032 | 0x000200 | 12
0x80000033 | 0x000400 | 13
0x80000034 | 0x000800 | 14
0x80000037 | 0x040000 | 18

0x80000040 | 0x004000 | 17
0x80000041 | -------- | 
0x80000042 | -------- | 
0x80000043 | -------- | 

0x80000050 | 0x008000 | 80
0x80000051 | 0x010000 | 81
0x80000052 | 0x020000 | 0

0x89000012 | 0x100000 | -1
0x89000014 | 0x400000 | -1
0x89000018 | 0x800000 | -1
0x89000020 | 0x000004 | 1
0x89000024 | 0x080000 | -1
0x89000025 | 0x040000 | 18
0x89000026 | 0x000004 | 1

0x90000000 | 0x000008 | 0
0xB0000000 | 0x000008 | 0

0x88000001 | 0x000018 | -1
0x98000000 | 0x000018 | -1
0xB8000000 | 0x000018 | -1

0xC0000000 | 0x000004 | 1
0xD0000000 | 0x000004 | 1

HEAD Timers[]

These timers are used to fire movie mode events like EV_READOUTDONE_INTERRUPT_EVF and EV_SETPARAM_INTERRUPT_EVF.

It seems these timers share the same clock source that is able to run with variable frequency. For 25 FPS modes, the clock source runs with 50 MHz, for 24 FPS modes with 52,7.. MHz on 600D (see VideoTimer)

It looks like the HEAD timers and the video rate timer at 0xC0F06014 are linked in terms of clock source and functionality.

0xC0F07000 [32] SSG Counter (0x01 to restart)
0xC0F07004 [32] 0x01
0xC0F0700C [32] 0x01 to stop/standby
0xC0F07010 [32] 0x3FFF, 0xF000F
0xC0F07014 [32] 0x03 / 0x63
0xC0F07018 [32] 0x7C / 0x1C
0xC0F0701C [32] 0x10
0xC0F07038 [32] 0x00 / 0x01 <- stops processing?
0xC0F0707C [32] 0x00
0xC0F071AC [32] 0x10 / 0x01000010

0xC0F070C8 [32] State 2 Register / VCount?

HEAD1 timer: SSG Counter
0xC0F07048 [32] Set to 0x04 to start
0xC0F0704C [32] Set to 0x0C
0xC0F07050 [32] Timer ticks until interrupt (0-0x3FFF)

HEAD2 timer:
0xC0F0705C [32] Set to 0x04 to start
0xC0F07060 [32] Set to 0x0C
0xC0F07064 [32] Timer ticks until interrupt (0-0x3FFF)

HEAD3 timer: (causing EV_SETPARAM_INTERRUPT_EVF)
0xC0F07134 [32] Set to 0x04 to start
0xC0F07138 [32] Set to 0x0C
0xC0F0713C [32] Timer ticks until interrupt (0-0x3FFF)

HEAD4 timer: (causing EV_READOUTDONE_INTERRUPT_EVF)
0xC0F07148 [32] Set to 0x04 to start
0xC0F0714C [32] Set to 0x0C
0xC0F07150 [32] Timer ticks until interrupt (0-0x3FFF)

Video timer[]

They control the frame rate for reading out the CMOS sensor and processing, displaying and recording.

0xC0F06000  Video timers
 +0x000 [32]   Trigger coherent update
 +0x004 [32]   0=standby, 1=readout
 +0x008 [32]   T0 - Frame rate timer pre-divider register.
               Depending on camera model the input clock is 24, 28.8 or 32MHz
 +0x00C [32]   (should be same as +0x08)
 +0x010 [32]   (should be same as +0x08)

 +0x014 [32]   T1 - Timer reload value for sensor sampling (FPS)
               This will divide the pre-divided clock down to final rame rate.

 +0x084 [32]   (0x0001007E, written with regs 08, 0C, 10 and 88)
 +0x088 [32]   Video Y-Resolution related?
                     0x049E042E: 1182|1070 for 1920x1080 and 640x480
                     0x0418044E: 1048|1102 for 1920x1080 digital zoomed
                     0x02D0042E:  720|1070 for 1280x720
                     maybe "scanline" clock?

 Frame rate calculation:
-----------------------------
             clk1 = BaseClk / (T0 + 1)
  fps = clk1 / (T1 + 1)
 
             BaseClk = 24.0 MHz for 5D II
  BaseClk = 28.8 MHz for 600D, 550D, 50D, 60D
  BaseClk = 32.0 MHz for 500D

  clk1 is also used for HEAD3/HEAD4 event generation. (0xC0F0713C, 0xC0F07150)
  (see google spreadsheet http://bit.ly/HXmy8X)

ASIF[]

ASIF requires clock bits 0x02000000 and 0x00000004 to be enabled in CLOCK_ENABLE register at 0xC0400008 before it can work.

0xC0920000   ASIF Base

 +0x000 [32]   Enable register
 +0x004 [32]   Init: 0x01
 +0x008 [32]   Init: 0x01
 +0x00C [32]   Init: 0x01
 +0x010 [32]   set to 1 StartASIFforObserve, Init: 0x01

 +0x100 [32]   set to 0 StartASIFforObserve, Init: 0x00

 +0x118 [32]   set to 1 on ADC start
 +0x11C [32]   ADC Audio mode
     ---------------1 UINT8
     --------------1- Interleaved mode (stereo)
     -------------1-- INT16
 +0x120 [32]   Transfer start ADC

 +0x204 [32]   Init: 0x00
 +0x208 [32]   Init: 0x00
 +0x20C [32]   set to 1 on DACstart
 +0x210 [32]   DAC Audio mode
     ---------------1 UINT8
     --------------1- Interleaved mode (stereo)
     -------------1-- INT16
 +0x220 [32]   Transfer start DAC
 +0x238 [32]   Read during initializing +0x004, then set to 0x01
 +0x320 [32]   Init: 0x07

0xC0500000   ASIF DMA Controller
 +0x20         DAC 0x80808080/0x00000000 depending on uint16/uint8
 +0x24         DAC set to 8

 +0x80         ADC current buffer
 +0x84         ADC current transfer count
 +0x88         ADC next data buffer
 +0x8C         ADC next transfer count
 +0x90         ADC buffer status?
     Set to 0x23/0x21 on start DAC, 0x00 on stop
     ----------100001 base value
     --------------1- Set when a "next buffer" is set
 +0x94         ADC INT status

 +0xA0         DAC current buffer
 +0xA4         DAC current transfer count
 +0xA8         DAC next data buffer
 +0xAC         DAC next transfer count
 +0xB0         DAC buffer status
     Set to 0x27 on start DAC, 0x00 on stop
 +0xB4         DAC INT status

KAISER[]

This seems to be some hashing hardware extension used in 7D, 5D3 and maybe others.

On 7D and 5D3 the EDMAC connection ID is 0x15.

0xC0F02000   Kaiser Base
 +0x000 [32]   Enable register
     ---------------1 Enable
     1--------------- Init

 +0x004 [32]   Initialized with 0x00 for MD5, 0x30 for SHA256

 /* MD5 init values */
 +0x014 [32]   Initialized with 0x67452301
 +0x018 [32]   Initialized with 0xEFCDAB89
 +0x01C [32]   Initialized with 0x98BADCFE
 +0x020 [32]   Initialized with 0x10325476

 /* SHA init values */
 +0x014 [32]   Initialized with 0x6A09E667
 +0x018 [32]   Initialized with 0xBB67AE85
 +0x01C [32]   Initialized with 0x3C6EF372
 +0x020 [32]   Initialized with 0xA54FF53A
 +0x050 [32]   Initialized with 0x510E527F
 +0x054 [32]   Initialized with 0x9B05688C
 +0x058 [32]   Initialized with 0x1F83D9AB
 +0x05C [32]   Initialized with 0x5BE0CD19


 +0x024 [32]   Initialized with 0x00
 +0x030 [32]   Initialized with 0x04
 +0x034 [32]   Initialized with 0x04

 +0x038 [32]   32 bit digest A
 +0x03C [32]   32 bit digest B
 +0x040 [32]   32 bit digest C
 +0x044 [32]   32 bit digest D

 +0x048 [32]   State register
 +0x04C [32]   Initialized with 0x00 for MD5, 0x01 for SHA256

 +0x060 [32]   32 bit digest E
 +0x064 [32]   32 bit digest F
 +0x068 [32]   32 bit digest G
 +0x06C [32]   32 bit digest H

EDMAC[]

EDMAC means "Engine DMA Controller" (CHDK project, firmware strings) and transfers data from image preprocessing modules into SDRAM and between SDRAM memory areas.

When setting the destination address, its relative to SDRAM start. This means, addresses start at 0x00000000.

Every EDMAC has a source or destination connection, depending on whether it is a write or read channel. Write channels read from their source connection (imagine the connection number is like the data bus where it reads data from) and writes the data into the specified memory address. Read channels read data from the specified memory address and pass it to the assigned destination connection.

The connections, source and destination, are numbers from 0 to 31 where different hardware devices read from or write data to, depending on their setup. For example connection 0 is only used for CRAW transfer from the sensor. So there is some hardware that will send the CRAW stream just to channel 0. When some EDMAC channel is reading from that connection, then the data can be used. When a read channel is reading from RAM and writing to connection 0, it will most likely disturb the write channel that is expecting CRAW data on this connection.

Some devices like the JPCORE can be set up to read or write from/to connections depending on the mode they work in. When decompressing a JPG, the JPCORE is likely to get set up for reading from connection 5, decompressing the image and writing the result to channel 3 or 4. When compressing an image, it is configured the other way: reading from 3 or 4 and writing to 5.

When choosing a connection that has no device listening on it, still some other EDMAC channels will read or write. This means we can use unused connections for stuff like memcpy using EDMAC.

For vignetting shading correction, something like a addition/multiplication path is used by setting write edmac 1 to read from connection 0x10, read edmac 41 to write to connection 1 and read edmac to connection 0. EDMACs 1 and 40 use the same size, so one is probably input from RAM, the other is output to RAM.

Some details about for what the offsets and ya/yb/xa/xb etc. are meant for, the patent at https://www.google.de/patents/US7817297 might explain most of it - especially figure 11A.


EDMAC0 - EDMAC15
  0xC0F04000
  0xC0F04100
  ..
  0xC0F04F00
    +0x00 [32]  DMA control 
       -------- -------1  Start transfer / Transfer in progress

    +0x04 [32]  flags
       -------- -----xxx -------- -------- flags for read channels when calling StartEDmac
       -------- -------- -------- xx------ flags for write channels when calling StartEDmac

       xxx----- -------- ---x---- -----xxx flags for SetEDmac (but you can set any bit)
       1------- -------- -------- --------   only one transfer, causes errors on other DMAs
       -10----- -------- ---1---- --------   16 byte per transfer
       -01----- -------- ---1---- --------    8 byte per transfer
       -10----- -------- ---0---- --------    4 byte per transfer
       -01----- -------- ---0---- --------    2 byte per transfer

    +0x08 [32]  SDRAM destination offset
    +0x0C [32]  ((yn << 16) | xn) & 0x0FFF1FFF
    +0x10 [32]  ((yb << 16) | xb) & 0x7FFFFFFE 
    +0x14 [32]  ((ya << 16) | xa) & 0x0FFF1FFF 
    +0x18 [32]  off1b & 0x0001FFFE if DIGIC <= 4 else 0x0007FFFE
    +0x1C [32]  off2b & 0x0FFFFFFE if DIGIC <= 4 else 0xFFFFFFFE
    +0x20 [32]  off1a & 0x0001FFFE if DIGIC <= 4 else 0x0007FFFE
    +0x24 [32]  off2a & 0x0FFFFFFE if DIGIC <= 4 else 0xFFFFFFFE
    +0x28 [32]  off3  & 0x0FFFFFFE if DIGIC <= 4 else 0xFFFFFFFE
                off1*: signed, 17 bits for DIGIC 4 or lower, 19 bits for DIGIC 5.
                off2*: signed, 28 bits for DIGIC 4 or lower, 32 bits for DIGIC 5.
    +0x30 [32]  interrupt reason (read on interrupt)
                0x01 = normal? (used with PackMem)
                0x02 = normal (transfer finished)
                0x04 = pop (memsuite finished?)
                0x10 = abort
    +0x34 [32]  3 = AbortEDmac
    +0x40 [32]  (fencing uses it and sets it to 0x23 which might be a connection)
       Current assumption:
       (
          ((xa, skip off1a) * ya, xa, skip off2a) * xn
           (xb, skip off1b) * ya, xb, skip off3
       ) * yn,
        
       (
          ((xa, skip off1a) * yb, xa, skip off2b) * xn
           (xb, skip off1b) * yb, xb, skip off3
       )
       Previous assumption:
          xb: block size - number of bytes per copy operation
              this number must be >1 and a multiple of two (write) or four bytes (read)
              after this number of bytes were transmitted, an commit command is issued.
              write channels wait for a commit command before the block is written into memory fully.
          yb: block count | number of blocks to transfer
          xn: transaction count | how often above should get transferred
          ya: same as xb when more transactions?
          off2b: padding (positive) or cropping (negative) at the right edge


EDMAC16 (7D, Digic 4)
  0xC0F27000
  ..

EDMAC16 - EDMAC31 (5D3, Digic 5)
  0xC0F26000
  0xC0F26100
  ..
  0xC0F26F00

EDMAC32 - EDMAC47 (5D3, Digic 5)
  0xC0F30000
  0xC0F30100
  ..
  0xC0F30F00

EDMAC usage: 5D3
  CAPTURE:
  0x03 - OHYE[W]
  0x04 - AE1[W]
  0x10 - AF[W]
  0x20 - AE2[W]
  0x15 - SRKA1[W]
  0x16 - SRKB1[W]
  0x13 - SRKA2[W]
  0x14 - SRKB2[W]
  0x12 - MEM1[W]
  0x18 - HIV[R]
  0x0B - DEFM[R]

  SSDEVELOP:
  0x15 - YUV[W]
  0x06 - ALO[W]
  0x0A - JUKAI[W]
  0x09 - OHYE[R]
  0x1A - SUSA[R]
  0x1B - SUSB[R]

  VRAM:
  0x00 - VRAM[W]
  0x05 - VRAM[W]
  0x02 - NV12[W]
  0x16 - NV12[W]
  0x01 - JPEG[W]
  0x1C - YUV[R]
  0x08 - TA10[R]



EDMAC usage: 600D (info at 0x2BAB4)
  00 - WriteEDmacWbInteg
  01 -
  02 - WriteEDmacYuv
  03 - WriteEDmacVram
  04 - WriteEDmacPackMem, EffectPs
  05 - WriteEDmacFenYuv
  06 - WriteEDmacFen_B
  07 -

  08 - ReadEDmacDefCorre
  09 - ReadEDmacHivshd_V_, EffectPs
  10 - ReadEDmacYuv maybe
  11 -
  12 - ReadEDmac_
  13 - ReadEDmacVram maybe
  14 -
  15 -
  16 - WriteQuarkEDmac

  17 -
  18 - CRaw DMAC?
  

WRITE-EDMAC Connections
  0xC0F05000 [32] WREDMAC00
  0xC0F05004 [32] WREDMAC01
  ..
  0xC0F0501C [32] WREDMAC16 (would be WREDMAC7, but that seems unused)

  0xC0F05020 [32] RDEDMAC0 (would be WREDMAC7, but that seems unused)
  ..

  0xC0F05200 [32] WREDMAC17
  ..
  0xC0F0523C [32] WREDMAC31



EDMAC-Connections: (W:WriteEDMAC connected, R:ReadEDMAC connected)
    0x00 - W:CRaw data
    0x01 - R:ObAreaCopyPath
    0x02 - W:WB Execute, WbInteg

    0x03 - [JPCORE] RAW/JPEG input (depending on mode)
    0x04 - [JPCORE] YUV output, W:FilteringCompositePath
    0x05 - [JPCORE] Encoded data

    0x06 - (used for memcpy operations)
    0x07 - (used for memcpy operations)
    0x08 - R:"Ltkids Shrek"
    0x0A - R:AddPonyPath, DetectAbberationPath.c, W:ObAreaCopyPath
    0x0C - R:AddPonyPath, R:ColorSubPath, DetectAbberationPath.c
    0x0D - W:ColorSubPath, DetectAbberationPath.c
    0x0E - R:ProcessFencingC
    0x0F - R:CaptureImagePath

    0x10 - W:ObAreaCopyPath, Flicker
    0x11 - R:ProcessFencingA
    0x12 - W:ProcessFencingA
    0x13 - W:DevelopPathAddPonyPath
    0x15 - [JPCORE] Input data for MJPEG DecRotate, output on 0x05

    0x1B - [JPCORE] R:FilteringCompositePath
    0x1C - OhyITG, MidInteg

    0x1F - W:"Ltkids Shrek"
    0x20 - W:"Ltkids Shrek"
    0x21 - W:"Ltkids Shrek"
    0x22 - W:"Ltkids Shrek"
    0x23 -
    0x35 - W:AE Execute

EDMAC-Connection groups: (which camera? 600D?)
    AddPonyPath: 
        W: 0x13
        R: 0x0A, 0x0B
    AffineYuvPath: (rotation?)
        W: 0x0D
        R: 0x0B
    GainBlendYuvPath:
        W: 0x1A
        R: 0x03, 0x0C
    Ltkids Shrek:
        W: 0x1F, 0x20 or 0x21, 0x22
        R: 0x08, 0x08
    
EDMAC-Connection groups: (5D3)
    DEFM:
        R: 0x08, 0x0F
        W: 0x00
        WDMAC32_ISEL(2) ADMERG
    DEFD:
        R: 0x01
        W: 0x00   
        WDMAC32_ISEL(1) DS_SEL(0) 
    DEFC:
        R: 0x01
        W: 0x10   
        WDMAC16_ISEL(0) DS_SEL(0) PACK16_ISEL_set(4) PACK16_ISEL2(0)
    SUB:
        R: 0x01, 0x34 (dark frame)
        W: 0x10   
        no ISEL, but using ADUPNACK, DSUNPACK, DARK, PACK16
    OB:
        R: 0x01
        W: no, data is in registers   
        DS_SEL(0) OBINTG_ISEL(6)
    TTJ:
        R: 0x03
        W: 0x05
    OPE:
        R: 0x00, 0x01
        W: 0x01
        PROC24_ISEL(3) PROC24_ISEL_2(0) DS_SEL(0), using DSUNPACK, DARK, UNPACK24
    Hivshd:
        R: 0x01, 0x0F (for shade data)
        W: 0x10
        WDMAC16_ISEL(0) DS_SEL(0) PACK16_ISEL(7) PACK16_ISEL2(0) 


DSUNPACK:
  ISEL 0: conn#1

WDMAC16:
  ISEL 0: PACK16

PACK16:
  ISEL 4: DSUNPACK
  ISEL 7: HIVSHD

WDMAC32
  ISEL 0: (raw dark frame, like photo)
  ISEL 1: (DSUNPACK, DEFD)
  ISEL 2: (ADMERG)
  ISEL 4: 

PACK32:
  ISEL 1: 
  ISEL 5: (raw dark frame, like photo)

PROC24:
  ISEL 14:

DMA[]

Copied from DMA

DMA channel #3 seems to be unused on 600D v1.0.1 and can be used for Magic Lantern.

0xC0A10000    DMA channel 0
 + 0x00  [32]      Control register
                      0x80000000 to reset and disable
                      0x00000001 to enable
 + 0x04  [32]      unknown, written with 0x00 on DMA setup (2 LSB must be 0, others dont care)
 + 0x08  [32]      control bits
   -------- ------1- -------- -------1   written to start transfer
                                         
   -------- -------- -------- -------1   start transfer
   -------- -------- -------- ---1----   decrease source address
   -------- -------- -------- --1-----   dont modify source address
   -------- -------- -------- -1------   decrease destination address
   -------- -------- -------- 1-------   dont modify destination address
   -------- -------1 -------- --------   gets set when (delta(source,dest) & 0x1F) != 0. maybe some cache line issues?
   -------- ------1- -------- --------   set when starting transfer. enable interrupt flag?
   1------- -------- -------- --------   reverse words LE<->BE

 + 0x10  [32]      unknown, written with 0x00 on DMA setup
                   is checked for 0x06 in interrupt handler and set to 0x00
 + 0x14  [32]      unknown, written with 0x07 on DMA setup (only 3 LSB used?)
                   not used when copying without interrupt
 + 0x18  [32]      source address
 + 0x1C  [32]      destination address
 + 0x20  [32]      transfer count (ignoring 2 LSB)
 
0xC0A20000   DMA channel 1 (see above)
0xC0A30000   DMA channel 2 (see above)
0xC0A40000   DMA channel 3 (see above, seems to be unused)

Timer/Clock Module[]

Timer #0 (unused)
0xC0210000 

Timer #1 (unused)
0xC0210100 

Timer #2 (used as 10ms system timer)
0xC0210200 [32] Control register
                  0x80000000 to reset and disable
                  0x00000001 to enable
0xC0210204 [32] (written with 0x02)
0xC0210208 [32] Timer reload value (1µs resolution)
0xC021020C [32] Timer current value?
0xC0210210 [32] Interrupt enable (?)
0xC0210214 [32] (written with 0x03)

Another Timer
0xC0242010 [32] Control register
                  ---------------1 enable flag
                  ----xxxx-------- predivider
                      1 = 3.000 MHz tick rate
                      2 = 2.250 MHz tick rate
                      3 = 1.125 MHz tick rate
                      4 = 1.000 MHz tick rate (default)
0xC0242014 [32] 12 bit counter. used for task load measurement.


Before the timer module will start working, we have to enable the clock
distribution to this modules using these registers.


0xC0400004 [32]  Clock selection
                   Bitmask
                   0x03000000 SD/MMC clock selection bits
                      0 unknown
                      1 16MHz
                      2 24MHz
                      3 48MHz

0xC0400008 [32]  Clock control
                   Bitmask - configures which module gets system clock
                   0x00000002 Engio LCLK
                   0x00000004 (ASIF related too)
                   0x00000008 SD/MMC clock 1
                   0x00000100 Display PWM module
                   0x00000400 Timer #0
                   0x00000800 Timer #1
                   0x00001000 Timer #2
                   0x00010000 LCLK (also set)
                   0x00200000 SIO clock
                   0x01000000 DMA module #0 (fIPCClk)
                   0x01000000 IPC module on 7D
                   0x02000000 ASIF
                   0x10000000 SD/MMC clock 2

0xC0400010 [32]  (Timer #0?)
0xC0400014 [32]  (Timer #1?) 
0xC0400018 [32]  (Timer #2?) written with 0x00 

0xC0400044 [32]  HClk (from 5D Mk1)
0xC0400048 [32]  LClk (from 5D Mk1)
0xC040004C [32]  MClk (from 5D Mk1)
                   0 = Full clock (72 MHz on 5D)
                   1 = Half clock (36 MHz on 5D)
                   3 = Quarter clock (18 MHz on 5D)
                   When switching the clock rate max->min or reverse, always go over half clock.


0xC0400088 [32]  USB PHY - written with 0x030101 ("Xtalless DD")
0xC040008C [32]  USB PHY - written with 0x000001

0xC04000AC [32]  PLL flags
                   0x00000004 (PLLH enable)
                   0x00000008 (PLLV enable)

0xC04000B4 [32]  PSEL

0xC0400704 [32]  MSCLK Enable


Another unknown control register is this one, maybe it has to do with
interrupt priorities?

0xC0203000 [32]  Timer #0 related  
0xC0203004 [32]  Timer #1 related
0xC0203008 [32]  Timer #2 related (initialized with 0x08)

HP timers[]

Microsecond timers: SetHPTimerAfterNow / SetHPTimerNextTick

These are 8 timers sharing the same interrupt. First timer is at 0xC024326x, last is at 0xC02432Ex.

Setting a timer (5D2 212, x is from 0x6 to 0xD):

[HPTimer] at [0xFF9B3678] [0xC02432x0] <- 0x0
[HPTimer] at [0xFF9B3648] [0xC02431x0] <- 0x0 (timer stop?)
[HPTimer] at [0xFF9B35D0] [0xC02431x4] -> ???
[HPTimer] at [0xFF9B35D0] [0xC02431x4] <- timer_value (absolute time?); bit 0x100000 is kept
[HPTimer] at [0xFF9B3698] [0xC02432x4] <- 0x0
[HPTimer] at [0xFF9B3698] [0xC02432x4] -> 0x0?
[HPTimer] at [0xFF9B3638] [0xC02431x0] <- 0x1 (timer start?)
[HPTimer] at [0xFF9B3658] [0xC02432x0] <- 0x1

HP timer interrupt is 0x10 (OC4_14). Let's see what happens there.

C0243300 read, masked with 0x3FFFFF => which timer triggered the interrupt?
     0x10 => timer ID 6
     0x40 => timer ID 7
     ...
     0x40000 => timer ID 0xD
     0 => no more timers (required for the interrupt loop to finish)

C02431x0: set to 0 (stops the timer?)
C02432x4: set to 0, then read back (seems to return always 0)

if this timer should retrigger:
   C02431x0 and C02432x0: set to 0
   C02431x4: timer value goes here; bit 0x100000 is kept
   C02432x4: set to 0, then read back (seems to return always 0)
   C02431x0 and C02432x0: set to 1

loop until C0243300 returns 0

GPIO Ports[]

There are GPIOs at 0xC0220000 and eventually "Advanced GPIO" at 0xC022D000/0xC022F000 (5DII a lot, 600D also some).
These at 0xC0220000 are well documented here, the others are still unclear at the moment. 
GPIO ports start at 0xC0220000 and are 32 bit words per GPIO.
Only up to 9 bits seem to be used.
For every 4 GPIOs, there is one config register at 0xC0221000.

GPIO_EXST   address = (0xC0220000 + 4*[GPIO_num])
GPIO_FSSEL  address = (+ 0x1000 - 0x107C)
GPIO_BUSSEL address = (+ 0x1110, 0x1128, 0x112C, 0x1114, 0x1118, 0x111C, 0x1120)
GPIO_OPSEL  address = (+ 0x1200 - 0x12C0)
GPIO_OPSEL  address = (+ 0x1800 - 0x187C)

 GPIO bits:
      ------------------------------
          
          0xC0220000 [32]  GPIO state
    -------- -------x  Input level. Set when port pin is high.
    -------- xxxxxxx-  port configuration mask
    -------- ------x-  Output level (0 = low, 1 = high)
    -------- ----xx--  Port mode (00 = IN, 01 = OUT, 10 = FS, 11 = BUS)
    -------- --x-----  Pull up mode (0 = pull down, 1 = pull up)
    -------- -x------  OFF bit - no pull up/down?
    -------- x-------  Unknown. Read only bit. 
    -------x --------  Unknown. Set on some in and some out ports

 Config bits:
      ------------------------------
           
            -------- ---xxxxx  Used, Unknown


GPIO usage on 7D on slave side:

0xC0220024 [32]  GPIO__: [IN]  Master is ready? some negotiation
0xC0220094 [32]  GPIO__: [OUT] ICU->MPU reboot?

0xC022D0D0 [32]  GPIO__: [OUT] Used for comm with master
0xC022D0F8 [32]  GPIO__: [OUT] Used for comm with master (= 0x00138800 / 0x00038C00)
0xC022D06C [32]  GPIO__: [OUT] CF Card LED (= 0x00138800 / 0x00038C00)


GPIO usage on 5DMkIII:

0xC0220150 [32]  GPIO__: [IN]  HDMI connected
0xC0220164 [32]  GPIO__: [IN]  headphone connected
0xC022016c [32]  GPIO__: [IN]  external mic connected
0xC0220174 [32]  GPIO__: [IN]  video out connected

0xC0220030 [32]  GPIO__: [OUT] CMOS CS
0xC02200A0 [32]  GPIO__: [OUT] ADTG2 CS
0xC02200A4 [32]  GPIO__: [OUT] ADTG4 CS


GPIO usage on 600D:

0xC0220000 [32]  GPIO00: [OUT] EEPROM ctrl: 0x48 before, 0x44 after data write
0xC0220004 [32]  GPIO01: [OUT] EEPROM ctrl: 0x48 before, 0x44 after data write
0xC0220008 [32]  GPIO02: [OUT] ADTG CS: 0x44 before, 0x46 after data write
0xC0220014 [32]  GPIO05: [IN]  VSW_ON High
0xC0220018 [32]  GPIO06: [OUT] EEPROM ctrl: 0x46 before, 0x44 after data write
0xC0220028 [32]  GPIO10: [OUT] DISP CS: 0x44 before, 0x46 after data write
0xC0220034 [32]  GPIO13: [IN]  USB connected
0xC0220070 [32]  GPIO28: [IN]  Video connected
0xC022009C [32]  GPIO39: [OUT] Set low when starting SIO3 communication to T19x
0xC02200E8 [32]  GPIO58: [IN]  Mic connected
0xC0220108 [32]  GPIO66: [IN]  Erase SW jumper enabled
0xC022010C [32]  GPIO67: [OUT] Display enabled. Maybe some display voltage (0=disable, 1=enable)
0xC0220118 [32]  GPIO70: [OUT] Display enabled, disabled ~200ms later than GPIO67.
0xC022012C [32]  GPIO75: [OUT] CMOS CS: 0x46 before, 0x44 after data write
0xC0220130 [32]  GPIO76: [OUT] SND CS: 0x44 before, 0x46 after data write
0xC0220134 [32]  GPIO77: [OUT] SD/CF Led drive output
0xC0220138 [32]  GPIO78: [IN]  HDMI connected


Some comments about "Advanced GPIO":

the 0xC022D0000 addresses look like set-reset IO ports.

              ___ LED pin high
             /            ___ LED pin low
            |            /
LED_ON:  0001 0011 1000 0000 0000 0000
LED_OFF: 0000 0011 1000 0100 0000 0000
            |----------->|

when setting the "set port" bit, the port is enabled, when setting "clear port" bit, output is disabled. in the slave-master comm routine, 0xF8 is accessed two times - once when saying "wait WakeUp Slave" and then the code waits for a GPIO being set (GPIO09). at the end of the routine, 0xF8 is accessed again and it waits for GPIO09 being cleared.

0xF8_A:  0000 0011 1000 1100 0000 0000
0xF8_B:  0001 0011 1000 1000 0000 0000
            |----------->|

as you see, the same constellation. first clear and later set. the '1' bit left of the clear (marked green) is perhaps another I/O that is permanently cleared on every access.

when looking at 0xD0 that is also written, it is one bit left of the 0xF8 and LED bit position. so i guess the set/clear bits have a 9 bit distance and there are more than just one I/O per 32bit register.

0xD0:    0010 0011 1000 0000 0000 0000 <- found in code
0xD0:    0000 0011 1000 1000 0000 0000 <- maybe for resetting this IO line? just a guess!!!!
           |----------->|

when writing 0xE000... to this register, it is perhaps "tristate bank" or smth like that.

Bufcon[]

This area looks like another GPIO region which is dumped in EOS M and 700D bootloader. (Possibly every other rebel newer than the EOS M)

 GPIO bits for 0xC022C000 (EOS M and 700D)
------------------------------
           
     0xC022C000 [32]  IO Port configuration
    -------- -------x  Port mode (1 = OFF_H, 0 = OFF_L)
    -------- ------x-  Port mode (1 = IN, 0 = OFF)
    -------- -----x--  1 = pull up, 0 = pull down
    -------- ----x---  GPIO_OFF
    -------- -xx-----  Port mode (11 = OUT, 00 = IN or OFF)
    -------- x-------  GPIO_OFF
0xC022C??? - 0xC022C02C    [700D] CF_IORD, CF_IOWR, CF_WE, CF_CD0, CF_CD1, CF_CE2, CF_INT, CF_OE, CF_WAIT, CF_CE1, CCDCLK
0xC022C030 - 0xC022C05C    [700D] -- not dumped --
0xC022C060 - 0xC022C078    SSG_xx
0xC022C07C - 0xC022C098    ELCYB_xx
0xC022C09C - 0xC022C0A8    ELCYCLK, ELCYH, ELCYV, TGCLK
0xC022C0AC - 0xC022C1E8    GPIO_xx
0xC022C1EC - 0xC022C1F8    MON_xx
0xC022C1FC - 0xC022C208    DSPL, DSPR, RXD0, TXD0
0xC022C20C - 0xC022C238    [700D] -- not dumped -- 
0xC022C23C - 0xC022C244    ROMCE, ROMOE, ROMWE
0xC022C248 - 0xC022C284    ROMD_xx
0xC022C288 - 0xC022C2E0    ROMA_xx

 
           0xC022C500 [32]  Drive strength configuration
            -------- ----xxxx  DRVP power in mA
    -------- xxxx----  DRVN power in mA
    ------xx --------  speed (00 = fastest, 01 = fast, 10 = slow, 11 = slowest)
    -----x-- --------  EFUSE (1 = P-only, 0 = PVT)

Interrupts[]

0xC0201000 ID that caused interrupt (ID already shifted left by 2) (7D Master)
0xC0201004 ID that caused interrupt (ID already shifted left by 2)
0xC0201010 re-/enable interrupt by writing its ID

Status Registers[]

0xC0F070DC [32]  HEAD error status
    ...----------1--   CCD Shifter error occurred
    ...---------1---   FIFO error occurred
    ...--------1----   AF Shifter error occurred

EEKO - Second core in Digic5[]

0xC022320C [32]  Clock control
  ---------------x Either enable processor clock or set processor reset (low-active)
  -------------xx- Enable memory clock

0xC0223210 [32]  Unknown
                   Set to 0x7E on init

Misc Registers[]

0xC0F2411C [32]  some bits set when cartridge not initialized/ready

0xC022301C [32]  SD related
  ---------------x When this bit is set, the SD card slot is empty (to be verfified)

0xC0800000 [32]  Serial terminal TX byte
0xC0800004 [32]  Serial terminal RX byte
0xC0800014 [32]  Status lines
  ---------------x When this bit is set, RX byte can be read. must be set to clear RX flag
  --------------x- When this bit is set, the TX byte gets transmitted. gets cleared after transmission

0xC022F480 [32]  Other VSW Status
                   0x40000 /VSW_OPEN Hi
                   0x80000 /VSW_REVO Hi

PWM module (600D):
0xC0238060 [32]  Display PWM init (written with 0x02)
0xC0238064 [32]  Display PWM 0x00(dark) - 0xFF(bright)

PWM module (7D):
0xC0238000 [32]  Display PWM init (written with 0x02)
0xC0238004 [32]  Display PWM 0x00(dark) - 0xFF(bright)


Audio related:
0xC092xxxx ASIF ADC (Analog Digital converter). playing 8/16 signed/unsigned audio?
0xC050xxxx DMA DA or AD

LiveView related:
0xC0F14078 set to 0x01 on vertical blank (reset-on-read, so don't read it); on 5Dc, write 1 to it to apply palette changes (0xC0F14080 - 0xC0F140BC).
0xC0F140C0 does luma scaling
0xC0F140C4 does chroma scaling
0xC0F140C8 sets the bmp overlay mode
0xC0F140E8 [s32] pixels to skip - causes distorted image
0xC0F140F0 [s32] pixels to skip - causes distorted image
0xC0F37010 switches between JP57 (0x40000 - 5D3) and JP51 (0xC0000 - 700D)
0xC0F37014 LV raw type (see lv_af_raw, lv_set_raw) on DIGIC5 (DIGIC4 uses PACK32_ISEL)
0xC0F371FC unpacking mode (see PACK16_MODE) for the input module that feeds image data to lossless encoder
0xC0F06084 RAW first line|column. Column is / 2. 600D: 0x0001007E
0xC0F06088 RAW last line|column. 600D: FHD 1182|1070, 3x 1048|1102, HD 720|1070
0xC0F06800 RAW first line|column. Column is / 8 on 5D3 (parallel readout?)
0xC0F06804 RAW last line|column. 5D3: f6e|2fe, first 1|18 => 5936x3950
0xC0F09050 Aewb metering area (y1|x1)
0xC0F09054 Aewb metering area (y2|x2)
0xC0F383D4 Preview area (y1 << 16) | (x1/4), similar to raw_info.active_area (5D3)
0xC0F383DC Preview area (y2 << 16) | (x2/4)

SIO Registers (serial IO)[]

/* these registers are accessed with 32 bit accesses, but most of them contain 16 bit data only */
 SIO0 (ADTG on 5D3)
---------------------------
           
           0xC0820004 [32]  SIO0 flags
               ...------------1   Busy flag
                       Set this bit when data to write should be transmitted 
                       SIO controller will clear this bit if its done
                      
0xC082000C [32]  SIO0 setup register (maybe leading clocks, polarity, phase etc)
                 The lowest bits are the bit count (8 LSB?)

0xC0820014 [32]  SIO0 setup register (maybe clock speed?)
                   set to 0x00000111 for "ADTG"

0xC0820018 [32]  SIO0 TX-Data
0xC082001C [32]  SIO0 RX-Data

 SIO1 (sound chip, RTC)
---------------------------
           
           0xC0820104 [32]  SIO1 flags
               ...------------1   Busy flag
                       Set this bit when data to write should be transmitted 
                       SIO controller will clear this bit if its done
                       
0xC082010C [32]  SIO1 setup register (maybe leading clocks, polarity, phase etc)
                 The lowest bits are the bit count (8 LSB?)
                   set to 0x800A0300 before reading "SND" (may have no effect, overwritten later)
                   set to 0x800A0308 before reading "SND"
                   set to 0x800A0310 before writing "SND"
                   set to 0x800E0610 for "DISPSTATE" (brightness etc?)

0xC0820114 [32]  SIO1 setup register (maybe clock speed?)
                   set to 0x00000000 after writing "SND"
                   set to 0x00000111 for "DISPSTATE" (brightness etc?)


0xC0820118 [32]  SIO1 TX-Data
0xC082011C [32]  SIO1 RX-Data

 SIO2 (CMOS, ADTG, EEPROM)
---------------------------
           
           0xC0820204 [32]  SIO2 flags
               ...------------1   Busy flag
                       Set this bit when data to write should be transmitted 
                       SIO controller will clear this bit if its done

0xC082020C [32]  SIO2 setup register (maybe leading clocks, polarity, phase etc) default: 0x10000000
                 The lowest bits are the bit count (8 LSB?)
                   set to 0x00020210 before writing "CMOS" (16 bit writes)
                   set to 0x000A0220 before writing "ADTG" (32 bit writes)
                   set to 0x1002061B before writing "EEPROM" (may have no effect, overwritten later)
                   set to 0x1002060B before writing "EEPROM" (upper 11 bits)
                   set to 0x10000610 before writing "EEPROM" (lower 16 bits)

0xC0820210 [32]  SIO2 unknown
    ...------------1   Bit cleared during init

0xC0820214 [32]  SIO2 setup register (maybe clock speed?)
                   set to 0x00000115 before writing "CMOS"
                   set to 0x00000111 before writing "ADTG"
                   set to 0x00000115 before read/write "EEPROM"

0xC0820218 [32]  SIO2 TX-Data - CMOS/ADTG/EEPROM data to write (16 bit data length)
0xC082021C [32]  SIO2 RX-Data - EEPROM data that was read (16 bit data length)

 SIO3 (intercom) IRQ 0x36
---------------------------
           
           0xC0820304 [32]  SIO3 flags
               ...------------1   Busy flag
                       Set this bit when data to write should be transmitted 
                       SIO controller will clear this bit if its done
                       
0xC0820308 [32]  SIO3 unknown. written with 0x01 before interrupt setup for comm. maybe IE flag.

0xC082030C [32]  SIO3 setup register (maybe leading clocks, polarity, phase etc)
                 The lowest bits are the bit count (8 LSB?)
                   set to 0x13020010 before writing "LENS"



0xC0820318 [32]  SIO3 TX-Data
0xC082031C [32]  SIO3 RX-Data


SIO3 ? (600d 1.0.1 at sub_FF1DB44C)
------
           0xC02000AC  (see FF1DB5C8)
           0xC0A00024  (7D IPC Tx)
           0xC0820310  (see sub_FF1DB3B4)

Cartridge stuff[]

This module seems to be a queue of registers and data to write at.

Path code is feeding some registers and their target values into the cardridge and when the frame is going to be exposed, cartridge will write all registers immediately.

0xC0F24100 [32]  CARTRIDGE_USE
                   write 0x0F -> cmd: CARTRIDGE_USE
0xC0F24104 [32]  CARTRIDGE1_ADDR / "WriteAddressData"
                    e.g. 0xC0F16010, 0xC0F16014, 0xC0F15080, 0xC0F150C0
0xC0F24108 [32]  CARTRIDGE1_DATA / "WriteData"
0xC0F2410C [32]  CARTRIDGE1_CMD
                   cmd: 0x01 -> cartridge_start
                   cmd: 0x03 -> cmd: CARTRIDGE1_CMD_USE
                   cmd: 0x04 -> cmd: reset/finish
0xC0F24110 [32]  CARTRIDGE1_OC_EN
                   write 0x00 -> cmd: CARTRIDGE1_OC_EN
0xC0F2411C [32]  Flags? Waiting for 0x00 after cmd 0x01

Image PreProcessing[]

These addresses are used to process the 14 bit raw image stream.

There are various use cases, some are for dark current compensation, some for converting to 16 bit etc. We don't access them directly yet, but we are able to call some routines that make use of these modules.

0xC0F08000 - DARK Control Register
0xC0F08004 - DARK_MODE (bitmask of bits 0x113117F)
0xC0F08008 - DARK_SETUP (mask 0x7FF signed integer!!) (brightens or darkens frame, overwrites DARK_SETUP_14_12)
0xC0F0800C - DARK_LIMIT (mask 0x3FFF) (no noticeable change)
0xC0F08010 - DARK_SETUP_14_12 (mask 0x07FF) (brightens up frame, overwrites DARK_SETUP)
0xC0F08014 - DARK_LIMIT_14_12 (mask 0x0FFF) (no noticeable change)
0xC0F08018 - DARK_SAT_LIMIT (mask 0x3FFF) (no noticeable change)

0xC0F08020 - SHAD Control Register
0xC0F08024 - SHAD_MODE (mask 0x111F)
0xC0F08028 - SHADE_PRESETUP (mask 0x7FF)
0xC0F0802C - SHAD_POSTSETUP (mask 0x1FFF)
0xC0F08030 - SHAD_GAIN (mask 0x1FFF)
0xC0F08034 - SHAD_PRESETUP_14_12 (mask 0x1FFF)
0xC0F08038 - SHAD_POSTSETUP_14_12 (mask 0x7FFF)

0xC0F08040 - TWOADD Control register
0xC0F08044 - TWOADD_MODE
0xC0F08048 - TWOADD_SETUP (mask 0x7FF)
0xC0F0804C - TWOADD_LIMIT (mask 0xFFF)
0xC0F08050 - TWOADD_SETUP_14_12 (mask 0x1FFF)
0xC0F08054 - TWOADD_LIMIT_14_12 (mask 0x3FFF)
0xC0F08058 - TWOADD_SAT_LIMIT (mask 0x3FFF)

0xC0F08060 - DSUNPACK Control Register
0xC0F08064 - DSUNPACK_MODE

0xC0F08070 - UNPACK24 Control Register
0xC0F08074 - UNPACK24_MODE 

0xC0F08080 - ADUNPACK Control Register
0xC0F08084 - ADUNPACK_MODE (mask 0x131)

0xC0F08090 - PACK32 Control register
0xC0F08094 - PACK32_MODE

0xC0F080A0 - DEF Control register
0xC0F080A4 - DEF_unk1
0xC0F080A8 - DEF_DEF_MODE (mask 0x11F, 0x100 always set)
0xC0F080AC - DEF_DEF_CTRL
0xC0F080B0 - DEF_YB_XB (mask 0x1FFF1FFF)
0xC0F080B4 - DEF_YN_XN
0xC0F080BC - DEF_YA_XA?
0xC0F080C0 - DEF_BUF_NUM
0xC0F080C4 - DEF_INTR_BE
0xC0F080C8 - DEF_INTR_AE (AdKizMerge)
0xC0F080D0 - DEF_INTR_NUM/DEF_INTR_EN?
0xC0F080D4 - DEF_HOSEI (mask 0x11)

0xC0F08100 - CCDSEL (0-1)
0xC0F08104 - DS_SEL (0-1)
0xC0F08108 - OBWB_ISEL (0-7)
0xC0F0810C - PROC24_ISEL (0-7)
0xC0F08110 - DPCME_ISEL (0-15)
0xC0F08114 - PACK32_ISEL (0-15)

0xC0F08120 - PACK16 Control register
0xC0F08124 - PACK16_MODE (mask 0x131)
             From ProcessPathForFurikake (raw_twk):
             -------x --xx----
                  1?? (0x100) = 16-bit output (? = don't care)
                  01? (0x020) = 14-bit output
                  001 (0x010) = 12-bit output
                  000 (0x000) = 10-bit output

0xC0F08130 - DEFM Control Register
0xC0F08134 - DEFM_unk1
0xC0F08138 - DEFM_MODE
0xC0F08140 - DEFM_INTR_NUM
0xC0F0814C - DEFM_GRADE
0xC0F08150 - DEFM_DAT_TH
0xC0F08154 - DEFM_INTR_CLR
0xC0F08158 - DEFM_INTR_EN
0xC0F0815C - DEFM_14_12_SEL
0xC0F08160 - DEFM_DAT_TH_14_12
0xC0F0816C - DEFM_X2MODE

0xC0F08180 - HIV Control Register
0xC0F08184 - HIV_V_SIZE
0xC0F08188 - HIV_H_SIZE
0xC0F0818C - HIV_POS_V_OFST
0xC0F08190 - HIV_POS_H_OFST
0xC0F08194 - HIV_unk1
0xC0F08198 - HIV_unk2
0xC0F0819C - HIV_POST_SETUP /* called SaturateOffset, seems black level, lowering it recovers extra highlights */
0xC0F081C0 - HIV_H_SWS_ENB
0xC0F08214 - HIV_PPR_EZ
0xC0F08218 - HIV_IN_SEL

0xC0F08220 - ADKIZ_unk1
0xC0F08224 - ADKIZ_THRESHOLD
0xC0F08234 - ADKIZ_TOTAL_SIZE
0xC0F08238 - ADKIZ_INTR_CLR
0xC0F0823C - ADKIZ_INTR_EN: interrupt enable (60D: 0x65)
0xC0F08240 - ADMERG_INTR_EN
0xC0F08244 - ADMERG_TOTAL_SIZE
0xC0F08248 - ADMERG_MergeDefectsCount
0xC0F08250 - ADMERG_2_IN_SE
0xC0F0825C - ADKIZ_THRESHOLD_14_12

0xC0F08260 - UNPACK24_DM_EN
0xC0F08264 - PACK32_DM_EN
0xC0F08268 - PACK32_MODE_H
0xC0F0826C - unk_MODE_H
0xC0F08270 - DEFC_X2MODE (0-1)
0xC0F08274 - DSUNPACK_DM_EN
0xC0F08278 - ADUNPACK_DM_EN (0-1)
0xC0F0827C - PACK16_CCD2_DM_EN

0xC0F08280 - SHAD_CBIT
0xC0F08284 - SHAD_C8MODE
0xC0F08288 - SHAD_C12MODE
0xC0F0828C - SHAD_RMODE (0-1)
0xC0F08290 - SHAD_COF_SEL

0xC0F082A0 - DARK_KZMK_SAV_A (0/1) (causes white or black screen)
0xC0F082A4 - DARK_KZMK_SAV_B (0/1) (no noticeable change)
0xC0F082A8 - SHAD_KZMK_SAV (0-1)
0xC0F082AC - TWOA_KZMK_SAV_A (0-1)
0xC0F082B0 - TWOA_KZMK_SAV_B (0-1)
0xC0F082B4 - DEFC_DET_MODE (0-1)
0xC0F082B8 - PACK16_DEFM_ON (0-1)
0xC0F082BC - PACK32_DEFM_ON
0xC0F082C4 - HIV_DEFMARK_CANCEL

0xC0F082D0 - PACK16_ISEL (0-15)
0xC0F082D4 - WDMAC32_ISEL (0-7)
0xC0F082D8 - WDMAC16_ISEL (0-1)
0xC0F082DC - OBINTG_ISEL (0-15)
0xC0F082E0 - AFFINE_ISEL (0-15)
0xC0F08390 - OBWB_ISEL2 (0-1)
0xC0F08394 - PROC24_ISEL2 (0-1)
0xC0F08398 - PACK32_ISEL2 (0-3)
0xC0F0839C - PACK16_ISEL2 (0-3)
0xC0F083A0 - TAIWAN_ISEL (0-3)

0xC0F08420 - HIV_BASE_OFST
0xC0F08428 - HIV_GAIN_DIV
0xC0F0842C - HIV_PATH

0xC0F08540 - RSHD_ENB

0xC0F085B0 - PACK32_ILIM
0xC0F085B4 - PACK16_ILIM (mask 0x3FFF)

Path Setup[]

These are dumps of the registers used for the video path and preprocessing configurations and the data that gets written to them. Registers are sorted by their address. a "<-" means, "see left" and a "*" marks registers that are written more than once per function call.

When neither a value nor a "<-" is in a field, this means the function does not write this register at all.

Horizontally you see the different live view/recording modes.

Example: See the first entry in the table below. This means: when having mode set to "Live view 1x zoom" (LVx1) the procedure "SetPreProcessingPath" will set 0xC0F08000 to 0x80000000. Same for all the other modes.

There is also a list with some addresses replaced with register names: http://pastebin.com/5irg7dWU


path 'PreProcessing' func 'Set*Path'
  Mode 0x00 (LVx1) equals: 0x05 (LVx1_Ta10), 0x08 ((unknown)), 0x0E ((unknown)), 0x10 (RecStandby_x1), 0x12 (RecStandby_x1), 
  Mode 0x01 (RecStandby_x1_60fps) equals: 0x0B (Rec_720p), 0x11 (RecStandby_x1_60fps), 
  Mode 0x02 (LVx5) equals: 0x03 (LVx10), 0x06 (LVx5), 0x07 (LVx10), 
  Mode 0x04 (LV_VgaTele) equals: 0x0D (Rec_VgaTele), 
  Mode 0x09 (Rec_DZ_Crop_HD) equals: 0x0F (Rec_DZ_Crop_HD), 
  Mode 0x0A (Rec_HD) equals: 0x0C (Rec_Vga), 
             | 
             |     0x00            0x01             0x02        0x04          0x09          0x0A    
             |     LVx1     RecStandby_x1_60fps     LVx5     LV_VgaTele  Rec_DZ_Crop_HD    Rec_HD   
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F08000 |  0x80000000       <-               <-          <-            <-            <-        
  0xC0F08004 |  0x00000120       <-               <-          <-            <-            <-        
  0xC0F08008 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F0800C |  0x00000FFF       <-               <-          <-            <-            <-        
  0xC0F08010 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08014 |  0x00003FFF       <-               <-          <-            <-            <-        
  0xC0F08018 |  0x00003FFF       <-               <-          <-            <-            <-        
  0xC0F08020 |  0x80000000       <-               <-          <-            <-            <-        
  0xC0F08024 |  0x00001008       <-               <-          <-            <-            <-        
  0xC0F08028 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F0802C |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08030 |  0x00001000       <-               <-          <-            <-            <-        
  0xC0F08034 |  0x00001800       <-               <-          <-            <-            <-        
  0xC0F08038 |  0x00000800       <-               <-          <-            <-            <-        
  0xC0F08090 |  0x80000000       <-               <-          <-            <-            <-        
  0xC0F08094 |  0x00000030       <-               <-          <-            <-            <-        
  0xC0F080A0 |  0x80000000       <-               <-          <-            <-            <-        
  0xC0F080A4 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F080A8 |  0x00000103       <-               <-          <-            <-            <-        
  0xC0F080AC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F080B0 |  0x049D075F      0x02CF075F       0x045109D7  0x026F0397    0x0417079F    0x049D075F 
  0xC0F080B4 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F080BC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F080D0 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F080D4 |  0x00000011       <-               <-          <-            <-            <-        
  0xC0F08100 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08108 |  0x00000003       <-               <-          <-            <-            <-        
  0xC0F0810C |  0x0000000E       <-                                         <-            <-        
  0xC0F08114 |  0x0000000B      0x00000005       0x0000000B   <-            <-           0x00000005 
  0xC0F08130 |  0x80000000       <-               <-          <-            <-            <-        
  0xC0F08134 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F08138 |  0x00000010       <-               <-          <-            <-            <-        
  0xC0F08140 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F0814C |  0x0000000E       <-               <-          <-            <-            <-        
  0xC0F08150 |  0x00000FFF       <-               <-          <-            <-            <-        
  0xC0F08154 |  0x00000008       <-               <-          <-            <-            <-        
  0xC0F08158 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F0815C |  0x00000002       <-               <-          <-            <-            <-        
  0xC0F08160 |  0x00003FFF       <-               <-          <-            <-            <-        
  0xC0F08180 | *0x80000000     * <-             * <-        * <-          * <-          * <-        
  0xC0F08184 |  0x0000049D      0x000002CF       0x00000451  0x0000026F    0x00000417    0x0000049D 
  0xC0F08188 |  0x0000075F       <-              0x000009D7  0x00000397    0x0000079F    0x0000075F 
  0xC0F0818C |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08190 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08194 |  0x0000075F       <-              0x000009D7  0x00000397    0x0000079F    0x0000075F 
  0xC0F08198 |  0x0000075F       <-              0x000009D7  0x00000397    0x0000079F    0x0000075F 
  0xC0F0819C |  0x00000800       <-               <-          <-            <-            <-        
  0xC0F081A4 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F081A8 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F081AC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081B0 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081B4 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081C4 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F081C8 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081CC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081D0 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081D4 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081D8 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081DC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081E0 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F081E4 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081E8 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081EC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081F0 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F081F4 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08214 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08218 |  0x0000000A       <-               <-          <-            <-            <-        
  0xC0F08264 | *0x00000000     * <-             * <-        * <-          * <-          * <-        
  0xC0F08268 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F0826C |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08270 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08280 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08284 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08288 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F0828C |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F08290 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F082A0 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F082A4 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F082A8 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F082B4 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F082C4 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F082D4 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F082DC |  0x00000004       <-               <-          <-            <-            <-        
  0xC0F082E0 |  0x00000005       <-               <-          <-            <-            <-        
  0xC0F08390 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08394 |  0x00000000       <-              0x00000002   <-           0x00000000     <-        
  0xC0F08398 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F083B0 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F083B4 |  0x00000004       <-               <-          <-            <-            <-        
  0xC0F083B8 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F083BC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F083C0 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F083E8 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F083EC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F083F0 |  0x1FFF0000       <-               <-          <-            <-            <-        
  0xC0F083F4 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F083F8 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F083FC |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08404 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08420 |  0x00000600       <-               <-          <-            <-            <-        
  0xC0F08428 |  0x00000111       <-               <-          <-            <-            <-        
  0xC0F0842C |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08430 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08510 |                                   0x00000000   <-            <-                      
  0xC0F08514 |                                   0x00000000   <-            <-                      
  0xC0F08518 |                                   0x045109D7  0x026F0397    0x0417079F               
  0xC0F0851C |                                   0x00DC02E0  0x00490108     <-                      
  0xC0F08520 |                                   0x039006F8  0x02370000     <-                      
  0xC0F08540 |  0x80000000       <-               <-          <-            <-            <-        
  0xC0F08544 |  0x00000116       <-               <-          <-            <-            <-        
  0xC0F08548 |  0x049D075F      0x02CF075F       0x045109D7  0x026F0397    0x0417079F    0x049D075F 
  0xC0F0854C |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08550 |  0x1FFF1FFF       <-               <-          <-            <-            <-        
  0xC0F08554 |  0x1FFF1FFF       <-               <-          <-            <-            <-        
  0xC0F08558 |  0x01010101       <-               <-          <-            <-            <-        
  0xC0F0855C |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08560 |  0x00000800       <-               <-          <-            <-            <-        
  0xC0F08564 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08568 |  0x0000003F       <-               <-          <-            <-            <-        
  0xC0F0856C |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08570 |  0x00000800       <-               <-          <-            <-            <-        
  0xC0F08574 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08580 |  0x00000001       <-               <-          <-            <-            <-        
  0xC0F0858C |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08590 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08594 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08650 |  0x00000000       <-               <-          <-            <-            <-        
  0xC0F08654 |  0x00000001       <-               <-          <-            <-            <-        

path 'PreProcessing' func 'Start*Path'
  Mode 0x00 (LVx1) equals: 0x05 (LVx1_Ta10), 0x08 ((unknown)), 0x0E ((unknown)), 0x10 (RecStandby_x1), 0x12 (RecStandby_x1), 
  Mode 0x01 (RecStandby_x1_60fps) equals: 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x11 (RecStandby_x1_60fps), 
  Mode 0x02 (LVx5) equals: 0x06 (LVx5), 
  Mode 0x03 (LVx10) equals: 0x04 (LV_VgaTele), 0x07 (LVx10), 0x09 (Rec_DZ_Crop_HD), 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 
             | 
             |     0x00            0x01             0x02        0x03    
             |     LVx1     RecStandby_x1_60fps     LVx5       LVx10    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F08000 |  0x00000001       <-               <-          <-        
  0xC0F08020 |  0x00000001       <-               <-          <-        
  0xC0F08090 |  0x00000001       <-               <-          <-        
  0xC0F080A0 |  0x00000001       <-               <-          <-        
  0xC0F08130 |  0x00000001       <-               <-          <-        
  0xC0F08180 |  0x00000001       <-               <-          <-        
  0xC0F08208 |                 *0x00000010                  * <-        
  0xC0F083B0 |  0x00000001       <-               <-          <-        
  0xC0F08510 |                                   0x00000001   <-        
  0xC0F08540 |  0x00000001       <-               <-          <-        

path 'PreProcessing' func 'Stop*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x05 (LVx1_Ta10), 0x08 ((unknown)), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0E ((unknown)), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x02 (LVx5) equals: 0x03 (LVx10), 0x04 (LV_VgaTele), 0x06 (LVx5), 0x07 (LVx10), 0x09 (Rec_DZ_Crop_HD), 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 
             | 
             |     0x00        0x02    
             |     LVx1        LVx5    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F08000 |  0x80000000   <-        
  0xC0F08020 |  0x80000000   <-        
  0xC0F08090 |  0x80000000   <-        
  0xC0F080A0 |  0x80000000   <-        
  0xC0F08130 |  0x80000000   <-        
  0xC0F08180 |  0x80000000   <-        
  0xC0F083B0 |  0x00000000   <-        
  0xC0F08510 |              0x80000000 
  0xC0F08540 |  0x80000000   <-        

path 'PreProcessing' func 'Start*YuvPass'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
             | 
             |     0x00    
             |     LVx1    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

path 'PreProcessing' func '(unused)'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
             | 
             |     0x00    
             |     LVx1    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

path 'VRAM' func 'Set*Path'
  Mode 0x01 (RecStandby_x1_60fps) equals: 0x0B (Rec_720p), 0x11 (RecStandby_x1_60fps), 
  Mode 0x02 (LVx5) equals: 0x06 (LVx5), 
  Mode 0x03 (LVx10) equals: 0x07 (LVx10), 
  Mode 0x08 ((unknown)) equals: 0x0E ((unknown)), 
  Mode 0x09 (Rec_DZ_Crop_HD) equals: 0x0F (Rec_DZ_Crop_HD), 
  Mode 0x0C (Rec_Vga) equals: 0x10 (RecStandby_x1), 0x12 (RecStandby_x1), 
             | 
             |     0x00            0x01             0x02        0x03        0x04        0x05        0x08          0x09          0x0A        0x0C        0x0D     
             |     LVx1     RecStandby_x1_60fps     LVx5       LVx10     LV_VgaTele  LVx1_Ta10   (unknown)   Rec_DZ_Crop_HD    Rec_HD     Rec_Vga    Rec_VgaTele 
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F0430C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F04310 |  0x01DF05A0       <-               <-          <-         0x01DF0500  0x01DF05A0  0x019305A0    0x01DF0500    0x01DF05A0   <-         0x01DF0500  
  0xC0F04314 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F04318 |  0x00000000       <-               <-          <-         0x000000A0  0x00000000   <-            <-            <-          <-         0x000000A0  
  0xC0F0431C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F04320 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F04324 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F04328 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F04F10 |  0x00000001       <-               <-          <-          <-                      <-            <-            <-          <-          <-         
  0xC0F0D000 |  0x80000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D004 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D008 |  0x77772222       <-               <-          <-         0xDDDD8888  0x77772222   <-            <-            <-          <-         0xDDDD8888  
  0xC0F0D00C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D010 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D014 |  0x049D0760      0x02CF0760       0x02B30418   <-         0x01ED0290  0x049D0760   <-           0x041707A0    0x049D0760   <-         0x01ED0290  
  0xC0F0D018 |  0x000007AF      0x0000079B       0x0000046F   <-         0x000002E7  0x000007AF   <-           0x000007EB    0x0000079B   <-         0x000002E7  
  0xC0F0D01C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D020 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D024 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D028 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D02C | *0x00000000     * <-             * <-        * <-        * <-        * <-        * <-          * <-          * <-        * <-        * <-         
  0xC0F0D030 |  0x00000010       <-               <-          <-         0x00000040  0x00000010   <-            <-            <-          <-         0x00000040  
  0xC0F0D038 |  0x00000020       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D03C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D040 | *0x00000000     * <-             * <-        * <-        * <-        * <-        * <-          * <-          * <-        * <-        * <-         
  0xC0F0D044 | *0x00000000     * <-             * <-        * <-        * <-        * <-        * <-          * <-          * <-        * <-        * <-         
  0xC0F0D048 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D04C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D050 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D054 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D058 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D05C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D060 |                                   0x00000000   <-          <-                                                                                     
  0xC0F0D064 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D068 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D06C |  0x00000000       <-                                                   <-          <-            <-            <-          <-          <-         
  0xC0F0D070 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D074 |  0x00000113       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D078 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D07C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D080 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D084 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D088 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D094 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D098 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D09C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D0A4 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D0A8 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F0D0AC |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11004 |  0x00000000       <-               <-          <-          <-                      <-            <-            <-          <-          <-         
  0xC0F1100C |                                                                       0x00000000                                                                  
  0xC0F11044 |  0x00000000       <-               <-          <-          <-                      <-            <-            <-          <-          <-         
  0xC0F1108C |  0x00000004       <-               <-          <-          <-                      <-            <-            <-          <-          <-         
  0xC0F11094 |                                                                       0x00000005                                                                  
  0xC0F110C4 |  0x00000001       <-              0x0000000A   <-         0x00000001  0x00000003  0x0000000A     <-           0x00000001   <-          <-         
  0xC0F11100 |  0x00000009       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11104 |                                   0x00000001   <-                                  <-            <-                                               
  0xC0F11108 |  0x00000005       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11144 |  0x00000007       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11170 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F111C0 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F111C4 |  0x00000001       <-              0x00000000   <-          <-         0x00000001   <-           0x00000000    0x00000001   <-         0x00000000  
  0xC0F111C8 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11240 |                                   0x00000001   <-                                  <-            <-                                               
  0xC0F11244 |                                   0x00000000   <-                                  <-            <-                                               
  0xC0F11248 |                                   0x00000000  0x00000003                           <-            <-                                               
  0xC0F1124C |                                   0x02AF0407   <-                                 0x03CB06B7     <-                                               
  0xC0F11250 |                                   0x00000000  0x00AC0102                          0x00020004     <-                                               
  0xC0F11254 |                                   0x02AF0407  0x02040307                          0x03C906B7     <-                                               
  0xC0F11258 |                                   0x00000000   <-                                  <-            <-                                               
  0xC0F1125C |                                   0x00000000   <-                                  <-            <-                                               
  0xC0F11260 |                                   0x00000000   <-                                  <-            <-                                               
  0xC0F11264 |                                   0x00000000   <-                                  <-            <-                                               
  0xC0F112C0 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F112C4 |  0x00011010       <-               <-         0x00010011  0x00010100  0x00011010   <-           0x00010100    0x00011010   <-         0x00010100  
  0xC0F112C8 |  0x0007242B      0x002A0607       0x00081E2B  0x00042B3C  0x00000000  0x0007242B   <-           0x00000000    0x002A0607   <-         0x00000000  
  0xC0F112CC |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F112D0 |  0x000002CF       <-               <-          <-         0x00000000  0x000002CF   <-           0x00000000    0x000002CF   <-         0x00000000  
  0xC0F112D4 |  0x0477035C      0x029F0348       0x02AF0408  0x01DF0FFF  0x00000000  0x0477035C  0x03C7035C    0x00000000    0x045F0348   <-         0x00000000  
  0xC0F112D8 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F112DC |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11300 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11304 |  0x00000010       <-               <-         0x00000011  0x00000000  0x00000010   <-           0x00000000    0x00000010   <-         0x00000000  
  0xC0F11308 |  0x0002788F      0x00330507       0x00081E2B  0x00042B3C  0x00000000  0x0002788F  0x00026579    0x00000000    0x002A0607   <-         0x00000000  
  0xC0F1130C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11310 |  0x03BF0000      0x01DF0000        <-          <-         0x00000000  0x03BF0000  0x03270000    0x00000000    0x03BF0000   <-         0x00000000  
  0xC0F11314 |  0x047702CF      0x029F02CF       0x02AF02CF  0x0FFF0205  0x00000000  0x047702CF  0x03C702CF    0x00000000    0x045F02CF   <-         0x00000000  
  0xC0F11318 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F1131C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F1133C |  0x000001BB       <-               <-         0x000002EE  0x0000008A  0x000001BB   <-           0x0000008A    0x000001BB   <-         0x0000008A  
  0xC0F11440 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11444 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11448 |  0x00001000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F1144C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11450 |  0x01DF02CF       <-               <-          <-         0x01DF027F  0x01DF02CF  0x019302CF    0x01DF027F    0x01DF02CF   <-         0x01DF027F  
  0xC0F11454 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11580 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11584 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11588 |  0x00000001      0x00000000        <-          <-          <-         0x00000001   <-           0x00000000    0x00000001   <-         0x00000000  
  0xC0F1158C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F11590 |  0x01DF02CF       <-               <-          <-         0x03BF027F  0x01DF02CF  0x019302CF    0x03BF027F    0x01DF02CF   <-         0x03BF027F  
  0xC0F11594 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F15000 |                                                                       0x00000005                                                                  
  0xC0F15004 |                                                                       0x00000000                                                                  
  0xC0F1500C |                                                                       0x00000000                                                                  
  0xC0F1501C |                                                                       0x00000000                                                                  
  0xC0F15040 |                                                                       0x80000000                                                                  
  0xC0F15044 |                                                                       0x00010000                                                                  
  0xC0F15048 |                                                                       0x00000000                                                                  
  0xC0F1504C |                                                                       0x047706B7                                                                  
  0xC0F15050 |                                                                       0x00000000                                                                  
  0xC0F15054 |                                                                       0x00000000                                                                  
  0xC0F15058 |                                                                       0x00000000                                                                  
  0xC0F15060 |                                                                       0x80000000                                                                  
  0xC0F15064 |                                                                       0x00010000                                                                  
  0xC0F15068 |                                                                       0x00000000                                                                  
  0xC0F1506C |                                                                       0x047706B7                                                                  
  0xC0F15070 |                                                                       0x00000000                                                                  
  0xC0F15074 |                                                                       0x00000000                                                                  
  0xC0F15078 |                                                                       0x00000000                                                                  
  0xC0F150A0 |                                                                       0x80000000                                                                  
  0xC0F150A4 |                                                                       0x07001071                                                                  
  0xC0F150A8 |                                                                       0x00000000                                                                  
  0xC0F150AC |                                                                       0x00000000                                                                  
  0xC0F150B0 |                                                                       0x00000000                                                                  
  0xC0F150B4 |                                                                       0x00000026                                                                  
  0xC0F15100 |                                                                       0x80000000                                                                  
  0xC0F15104 |                                                                       0x00040000                                                                  
  0xC0F15108 |                                                                       0x00000000                                                                  
  0xC0F1510C |                                                                       0x047706B7                                                                  
  0xC0F15110 |                                                                       0x00000000                                                                  
  0xC0F15114 |                                                                       0x00000000                                                                  
  0xC0F15118 |                                                                       0x00000000                                                                  
  0xC0F25000 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25004 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25008 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F2500C |  0x000006B7      0x0000068F       0x00000407   <-         0x0000027F  0x000006B7   <-           0x000006BF    0x0000068F   <-         0x0000027F  
  0xC0F25010 |  0x00000001       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25014 |  0x00000001       <-               <-          <-          <-          <-         0x00000000     <-           0x00000001   <-          <-         
  0xC0F2501C |  0x00000000      0x0000000F       0x00000000   <-          <-          <-          <-            <-            <-         0x0000000F  0x00000000  
  0xC0F25024 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25028 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25034 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25038 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25044 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25048 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F2504C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25050 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F25054 |  0x000006B7      0x0000068F       0x00000407   <-         0x0000027F  0x000006B7   <-           0x000006BF    0x0000068F   <-         0x0000027F  
  0xC0F25058 |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         
  0xC0F2505C |  0x00000000       <-               <-          <-          <-          <-          <-            <-            <-          <-          <-         

path 'VRAM' func 'Start*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x04 (LV_VgaTele), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x02 (LVx5) equals: 0x03 (LVx10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 
             | 
             |     0x00        0x02        0x05    
             |     LVx1        LVx5     LVx1_Ta10  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F03048 | *0x00000002 * <-        * <-        
  0xC0F03050 | *0x00000002 * <-        * <-        
  0xC0F0D000 |  0x00000001   <-          <-        
  0xC0F11004 |  0x00000001   <-                    
  0xC0F1100C |                          0x00000001 
  0xC0F11044 |  0x00000001   <-          <-        
  0xC0F11064 |  0x00000001   <-          <-        
  0xC0F111C0 |  0x00000000   <-          <-        
  0xC0F11240 |              0x00000000             
  0xC0F11244 |              0x00000001             
  0xC0F112C0 |  0x00000000   <-          <-        
  0xC0F11300 |  0x00000000   <-          <-        
  0xC0F11440 |  0x00000000   <-          <-        
  0xC0F11444 |  0x00000001   <-          <-        
  0xC0F11580 |  0x00000000   <-          <-        
  0xC0F11584 |  0x00000001   <-          <-        

path 'VRAM' func 'Stop*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x04 (LV_VgaTele), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x02 (LVx5) equals: 0x03 (LVx10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 
             | 
             |     0x00        0x02        0x05    
             |     LVx1        LVx5     LVx1_Ta10  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F0D000 |  0x80000000   <-          <-        
  0xC0F11004 |  0x00000000   <-                    
  0xC0F1100C |                          0x00000000 
  0xC0F11044 |  0x00000000   <-          <-        
  0xC0F111C0 |  0x00000001   <-          <-        
  0xC0F11240 |              0x00000001             
  0xC0F11244 |              0x00000000             
  0xC0F112C0 |  0x00000001   <-          <-        
  0xC0F11300 |  0x00000001   <-          <-        
  0xC0F11440 |  0x00000001   <-          <-        
  0xC0F11444 |  0x00000000   <-          <-        
  0xC0F11580 |  0x00000001   <-          <-        
  0xC0F11584 |  0x00000000   <-          <-        

path 'VRAM' func 'Start*YuvPass'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
             | 
             |     0x00    
             |     LVx1    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

path 'VRAM' func '(unused)'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
             | 
             |     0x00    
             |     LVx1    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

path 'YUV' func 'Set*Path'
  Mode 0x01 (RecStandby_x1_60fps) equals: 0x11 (RecStandby_x1_60fps), 
  Mode 0x02 (LVx5) equals: 0x03 (LVx10), 0x06 (LVx5), 0x07 (LVx10), 
  Mode 0x08 ((unknown)) equals: 0x0E ((unknown)), 
  Mode 0x09 (Rec_DZ_Crop_HD) equals: 0x0F (Rec_DZ_Crop_HD), 
  Mode 0x10 (RecStandby_x1) equals: 0x12 (RecStandby_x1), 
             | 
             |     0x00            0x01             0x02        0x04        0x05        0x08          0x09          0x0A        0x0B        0x0C        0x0D          0x10      
             |     LVx1     RecStandby_x1_60fps     LVx5     LV_VgaTele  LVx1_Ta10   (unknown)   Rec_DZ_Crop_HD    Rec_HD     Rec_720p    Rec_Vga    Rec_VgaTele  RecStandby_x1 
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F0420C |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F04210 |  0x02BF0840      0x02A70800        <-         0x01DF0500              0x03CB0D70    0x01DF0500    0x03B70D20  0x02370A00  0x01DF0500   <-           0x02BF0840   
  0xC0F04214 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F04218 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F0421C |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F04220 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F04224 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F04228 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F110C0 |  0x00000007       <-               <-          <-                                                                          <-                        <-          
  0xC0F11104 |                                                                                                   0x00000001   <-          <-          <-                        
  0xC0F11110 |  0x00000001       <-               <-          <-                                                             0x00000008   <-                       0x00000001   
  0xC0F11114 |  0x0000000B       <-               <-          <-                                                                          <-                        <-          
  0xC0F11118 |  0x00000004       <-               <-          <-                                                                          <-                        <-          
  0xC0F11128 |                                                           0x0000000A                                                                                             
  0xC0F11130 |  0x0000000D       <-               <-          <-                     0x00000001     <-           0x00000008  0x0000000B  0x0000000D  0x00000008    0x0000000D   
  0xC0F11180 |  0x00000001       <-               <-          <-                                                                          <-                        <-          
  0xC0F11184 |  0x00000000       <-               <-          <-                                                                         0x00000001                0x00000000   
  0xC0F11188 |  0x00000000       <-               <-          <-                                                                          <-                        <-          
  0xC0F11240 |                                                                                                   0x00000001   <-          <-          <-                        
  0xC0F11244 |                                                                                                   0x00000000   <-          <-          <-                        
  0xC0F11248 |                                                                                                   0x00000003   <-          <-         0x00000000                 
  0xC0F1124C |                                                                                                   0x045F068F  0x029F068F  0x045F068F  0x01DF027F                 
  0xC0F11250 |                                                                                                   0x00580000  0x00340000  0x0000005E  0x00000000                 
  0xC0F11254 |                                                                                                   0x040F068F  0x026B068F  0x045F0631  0x01DF027F                 
  0xC0F11258 |                                                                                                   0x00000000   <-          <-          <-                        
  0xC0F1125C |                                                                                                   0x00000000   <-          <-          <-                        
  0xC0F11260 |                                                                                                   0x00000000   <-          <-          <-                        
  0xC0F11264 |                                                                                                   0x00000000   <-          <-          <-                        
  0xC0F11500 |  0x00000001       <-               <-          <-                                                              <-          <-                        <-          
  0xC0F11504 |  0x00000000       <-               <-          <-                                                              <-          <-                        <-          
  0xC0F11508 |  0x00000000       <-               <-         0x80000000                                                      0x00000000   <-                        <-          
  0xC0F1150C |  0x008400D7      0x00400069       0x00800081  0x00000000                                                      0x00100015  0x01400175                0x00160023   
  0xC0F11510 |  0x000703E1      0x00050200       0x00060200  0x00000000                                                      0x00030200  0x00080333                0x000402E9   
  0xC0F11514 |  0x00000000       <-               <-          <-                                                              <-          <-                        <-          
  0xC0F11518 |  0x0000041F      0x000003FF        <-         0x0000027F                                                      0x000004FF   <-                       0x0000041F   
  0xC0F1151C |  0x047706B7      0x029F068F       0x02AF0407  0x01DF027F                                                      0x0237068F  0x045F05D3                0x045F068F   
  0xC0F11520 |  0x00000000       <-               <-          <-                                                              <-          <-                        <-          
  0xC0F11524 |  0x00000000       <-               <-          <-                                                              <-          <-                        <-          
  0xC0F11540 |  0x00000001       <-               <-          <-                                                                          <-                        <-          
  0xC0F11544 |  0x00000000       <-               <-          <-                                                                          <-                        <-          
  0xC0F11548 |  0x00000000      0x00000001       0x00000000  0x80000000                                                                  0x00000000                 <-          
  0xC0F1154C |  0x0008000D      0x00540055       0x00550056  0x00000000                                                                  0x00060007                0x00160023   
  0xC0F11550 |  0x00020200      0x00060303        <-         0x00000000                                                                  0x000202AB                0x000402E9   
  0xC0F11554 |  0x00000000       <-               <-          <-                                                                          <-                        <-          
  0xC0F11558 |  0x000002BF      0x000002A7        <-         0x000001DF                                                                  0x000003BF                0x000002BF   
  0xC0F1155C |  0x0477041F      0x029F03FF       0x02AF03FF  0x01DF027F                                                                  0x045F04FF                0x045F041F   
  0xC0F11560 |  0x00000000       <-               <-          <-                                                                          <-                        <-          
  0xC0F11564 |  0x00000000       <-               <-          <-                                                                          <-                        <-          
  0xC0F116A0 |  0x00000001       <-               <-          <-                                                                          <-                        <-          
  0xC0F116A4 |  0x00000000       <-               <-          <-                                                                          <-                        <-          
  0xC0F116A8 |  0x00000000       <-               <-          <-                                                                         0x00000001                0x00000000   
  0xC0F116AC |  0x00000000       <-               <-          <-                                                                          <-                        <-          
  0xC0F116B0 |  0x02BF041F      0x02A703FF        <-         0x01DF027F                                                                   <-                       0x02BF041F   
  0xC0F116B4 |  0x00000000       <-               <-          <-                                                                          <-                        <-          
  0xC0F2600C |                                                           0x00000000                                                                                             
  0xC0F26010 |                                                           0x027F0276                                                                                             
  0xC0F26014 |                                                           0x00000000                                                                                             
  0xC0F26018 |                                                           0x00000000                                                                                             
  0xC0F2601C |                                                           0x00000000                                                                                             
  0xC0F26020 |                                                           0x00000000                                                                                             
  0xC0F26024 |                                                           0x00000000                                                                                             
  0xC0F26028 |                                                           0x00000000                                                                                             
  0xC0F2A000 |                                                           0x80000000                                                                                             
  0xC0F2A00C |                                                           0x00000001                                                                                             
  0xC0F2A010 |                                                           0x00000001                                                                                             
  0xC0F2A014 |                                                           0x00000000                                                                                             
  0xC0F2A018 |                                                           0x01DF04FE                                                                                             
  0xC0F2A01C |                                                           0x00000000                                                                                             
  0xC0F2A020 |                                                           0x00010001                                                                                             
  0xC0F2A024 |                                                           0x00000000                                                                                             
  0xC0F2A028 |                                                           0x00000000                                                                                             
  0xC0F2A02C |                                                           0x01DF04FE                                                                                             
  0xC0F2C000 |  0x00000002       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C004 |  0x80000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C008 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C00C |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C010 |  0x00000001       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C014 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C018 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C01C |  0x02BF041F      0x02A703FF        <-         0x01DF027F              0x03CB06B7    0x01DF027F    0x03B7068F  0x023704FF  0x01DF027F   <-           0x02BF041F   
  0xC0F2C020 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C024 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C028 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C02C |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C030 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          
  0xC0F2C034 |  0x00000000       <-               <-          <-                      <-            <-            <-          <-          <-          <-            <-          

path 'YUV' func 'Start*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x06 (LVx5), 0x07 (LVx10), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x08 ((unknown)) equals: 0x09 (Rec_DZ_Crop_HD), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 
  Mode 0x0A (Rec_HD) equals: 0x0D (Rec_VgaTele), 
             | 
             |     0x00        0x05        0x08        0x0A        0x0B        0x0C    
             |     LVx1     LVx1_Ta10   (unknown)     Rec_HD     Rec_720p    Rec_Vga   
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F03074 | *0x00000002                                                 * <-        
  0xC0F030C0 | *0x00000002                                                 * <-        
  0xC0F11180 |  0x00000000                                                   <-        
  0xC0F11240 |                                      0x00000000   <-          <-        
  0xC0F11244 |                                      0x00000001   <-          <-        
  0xC0F11500 |  0x00000000                                       <-          <-        
  0xC0F11504 |  0x00000001                                       <-          <-        
  0xC0F11540 |  0x00000000                                                   <-        
  0xC0F11544 |  0x00000001                                                   <-        
  0xC0F116A0 |  0x00000000                                                   <-        
  0xC0F116A4 |  0x00000001                                                   <-        
  0xC0F2A000 |              0x00000001                                                 
  0xC0F2C004 |  0x00000001               <-          <-          <-          <-        
  0xC0F2C008 |  0x00000001               <-          <-          <-          <-        
  0xC0F2C00C |  0x00000001               <-          <-          <-          <-        

path 'YUV' func 'Stop*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x06 (LVx5), 0x07 (LVx10), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x08 ((unknown)) equals: 0x0E ((unknown)), 
  Mode 0x09 (Rec_DZ_Crop_HD) equals: 0x0F (Rec_DZ_Crop_HD), 
             | 
             |     0x00        0x05        0x08          0x09          0x0A        0x0B        0x0C        0x0D     
             |     LVx1     LVx1_Ta10   (unknown)   Rec_DZ_Crop_HD    Rec_HD     Rec_720p    Rec_Vga    Rec_VgaTele 
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F11180 |  0x00000001                                                                   <-                     
  0xC0F11240 |                                                      0x00000001   <-          <-          <-         
  0xC0F11244 |                                                      0x00000000   <-          <-          <-         
  0xC0F11500 |  0x00000001                                                       <-          <-                     
  0xC0F11504 |  0x00000000                                                       <-          <-                     
  0xC0F11540 |  0x00000001                                                                   <-                     
  0xC0F11544 |  0x00000000                                                                   <-                     
  0xC0F116A0 |  0x00000001                                                                   <-                     
  0xC0F116A4 |  0x00000000                                                                   <-                     
  0xC0F2A000 |              0x80000000                                                                              
  0xC0F2C004 |  0x80000000               <-          * <-            <-          <-          <-        * <-         
  0xC0F2C008 |                          0x00000000     <-            <-                                  <-         
  0xC0F2C00C |                          0x00000000     <-            <-                                  <-         

path 'YUV' func 'Start*YuvPass'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
             | 
             |     0x00    
             |     LVx1    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

path 'YUV' func '(unused)'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
             | 
             |     0x00    
             |     LVx1    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

path 'Quark' func 'Set*Path'
  Mode 0x00 (LVx1) equals: 0x02 (LVx5), 0x03 (LVx10), 0x06 (LVx5), 0x07 (LVx10), 0x10 (RecStandby_x1), 0x12 (RecStandby_x1), 
  Mode 0x01 (RecStandby_x1_60fps) equals: 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x11 (RecStandby_x1_60fps), 
  Mode 0x08 ((unknown)) equals: 0x0E ((unknown)), 
  Mode 0x09 (Rec_DZ_Crop_HD) equals: 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 
             | 
             |     0x00            0x01             0x04        0x05        0x08          0x09      
             |     LVx1     RecStandby_x1_60fps  LV_VgaTele  LVx1_Ta10   (unknown)   Rec_DZ_Crop_HD 
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F0450C |                                               0x00000000   <-                        
  0xC0F04510 |                                               0x027F05A0  0x010F02D0                 
  0xC0F04514 |                                               0x00000000   <-                        
  0xC0F04518 |                                               0x00000000   <-                        
  0xC0F0451C |                                               0x00000000   <-                        
  0xC0F04520 |                                               0x00000000   <-                        
  0xC0F04524 |                                               0x00000000   <-                        
  0xC0F04528 |                                               0x00000000   <-                        
  0xC0F11004 |                                               0x00000000                             
  0xC0F1100C |                                                           0x00000000                 
  0xC0F1108C |                                               0x00000003                             
  0xC0F11094 |                                                           0x00000003                 
  0xC0F1110C |                                               0x00000001  0x00000003                 
  0xC0F11128 |  0x0000000A       <-               <-                                    <-          
  0xC0F11140 |                                               0x0000000A   <-                        
  0xC0F11340 |                                               0x00000001   <-                        
  0xC0F11344 |                                               0x00011010   <-                        
  0xC0F11348 |                                               0x000A182B   <-                        
  0xC0F1134C |                                               0x00000000   <-                        
  0xC0F11350 |                                               0x000003BF  0x000001DF                 
  0xC0F11354 |                                               0x027F06B8  0x021B06B8                 
  0xC0F11358 |                                               0x00000000   <-                        
  0xC0F1135C |                                               0x00000000   <-                        
  0xC0F11380 |                                               0x00000001   <-                        
  0xC0F11388 |                                               0x0000508F  0x00000509                 
  0xC0F1138C |                                               0x00000000   <-                        
  0xC0F11394 |                                               0x047706B7  0x03CB06B7                 
  0xC0F1139C |                                               0x00000000   <-                        
  0xC0F113BC |                                               0x00000001   <-                        
  0xC0F11400 |                                               0x00000001   <-                        
  0xC0F11404 |                                               0x00000000   <-                        
  0xC0F11408 |                                               0x00000000   <-                        
  0xC0F1140C |                                               0x00000000   <-                        
  0xC0F11410 |                                               0x027F03BF  0x010F01DF                 
  0xC0F11414 |                                               0x00000000   <-                        
  0xC0F2600C |  0x00000000                        <-                                                
  0xC0F26010 |  0x00FF00FC                       0x027F0276                                         
  0xC0F26014 |  0x00000000                        <-                                                
  0xC0F26018 |  0x00000000                        <-                                                
  0xC0F2601C |  0x00000000                        <-                                                
  0xC0F26020 |  0x00000000                        <-                                                
  0xC0F26024 |  0x00000000                        <-                                                
  0xC0F26028 |  0x00000000                        <-                                                
  0xC0F2610C |                  0x00000000                                              <-          
  0xC0F26110 |                  0x00FF00FC                                             0x01DF01A4   
  0xC0F26114 |                  0x00000000                                              <-          
  0xC0F26118 |                  0x00000000                                              <-          
  0xC0F2611C |                  0x00000000                                              <-          
  0xC0F26120 |                  0x00000000                                              <-          
  0xC0F26124 |                  0x00000000                                              <-          
  0xC0F26128 |                  0x00000000                                              <-          
  0xC0F2A000 |  0x80000000       <-               <-                                    <-          
  0xC0F2A00C |  0x00000001       <-               <-                                    <-          
  0xC0F2A010 |  0x00000001       <-               <-                                    <-          
  0xC0F2A014 |  0x00000000       <-               <-                                    <-          
  0xC0F2A018 |  0x00FF02FE       <-              0x01DF04FE                             <-          
  0xC0F2A01C |  0x00000000       <-               <-                                    <-          
  0xC0F2A020 |  0x00010001       <-               <-                                    <-          
  0xC0F2A024 |  0x00000000       <-               <-                                    <-          
  0xC0F2A028 |  0x00000000       <-               <-                                    <-          
  0xC0F2A02C |  0x00FF02FE       <-              0x01DF04FE                             <-          

path 'Quark' func 'Start*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x06 (LVx5), 0x07 (LVx10), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x08 ((unknown)) equals: 0x0E ((unknown)), 
             | 
             |     0x00        0x05        0x08    
             |     LVx1     LVx1_Ta10   (unknown)  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F11004 |              0x00000001             
  0xC0F11340 |              0x00000000             
  0xC0F11380 |              0x00000000             
  0xC0F11400 |              0x00000000   <-        
  0xC0F11404 |              0x00000001   <-        
  0xC0F2A000 |  0x00000001                         

path 'Quark' func 'Stop*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x06 (LVx5), 0x07 (LVx10), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x08 ((unknown)) equals: 0x0E ((unknown)), 
             | 
             |     0x00        0x05        0x08    
             |     LVx1     LVx1_Ta10   (unknown)  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F11004 |              0x00000000             
  0xC0F1100C |                          0x00000000 
  0xC0F11340 |              0x00000001   <-        
  0xC0F11380 |              0x00000001   <-        
  0xC0F11400 |              0x00000001   <-        
  0xC0F11404 |              0x00000000   <-        
  0xC0F2A000 |  0x80000000                         

path 'Quark' func 'Start*YuvPass'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x08 ((unknown)) equals: 0x0E ((unknown)), 
             | 
             |     0x00        0x08    
             |     LVx1     (unknown)  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F1100C |              0x00000001 
  0xC0F11340 |              0x00000000 
  0xC0F11380 |              0x00000000 

path 'Quark' func '(unused)'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
             | 
             |     0x00    
             |     LVx1    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

path 'Fencing' func 'Set*Path'
  Mode 0x01 (RecStandby_x1_60fps) equals: 0x11 (RecStandby_x1_60fps), 
  Mode 0x02 (LVx5) equals: 0x06 (LVx5), 
  Mode 0x03 (LVx10) equals: 0x07 (LVx10), 
  Mode 0x04 (LV_VgaTele) equals: 0x0D (Rec_VgaTele), 
  Mode 0x05 (LVx1_Ta10) equals: 0x08 ((unknown)), 0x0E ((unknown)), 
  Mode 0x09 (Rec_DZ_Crop_HD) equals: 0x0F (Rec_DZ_Crop_HD), 
  Mode 0x0A (Rec_HD) equals: 0x0C (Rec_Vga), 0x10 (RecStandby_x1), 0x12 (RecStandby_x1), 
             | 
             |     0x00            0x01             0x02        0x03        0x04        0x05          0x09          0x0A        0x0B    
             |     LVx1     RecStandby_x1_60fps     LVx5       LVx10     LV_VgaTele  LVx1_Ta10   Rec_DZ_Crop_HD    Rec_HD     Rec_720p  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F0450C |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F04510 |  0x00FF0240       <-               <-         0x027F05A0  0x01DF03C0                0x010F02D0    0x00FF0240   <-        
  0xC0F04514 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F04518 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F0451C |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F04520 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F04524 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F04528 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F1100C |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11094 |  0x00000003       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F1110C |  0x00000003       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11140 |  0x0000000A       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11340 |  0x00000001       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11344 |  0x00011010       <-               <-          <-         0x00010100                0x00011010     <-          <-        
  0xC0F11348 |  0x000530D7      0x00200823       0x0010102B  0x0006282B  0x00000000                 <-           0x00200823   <-        
  0xC0F1134C |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11350 |  0x0000017F       <-               <-         0x000003BF  0x00000000                0x000001DF    0x0000017F   <-        
  0xC0F11354 |  0x00FF06B8      0x00FF0690       0x00FF0408  0x027F0408  0x00000000                 <-           0x00FF0690  0x01000690 
  0xC0F11358 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F1135C |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11380 |  0x00000001       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11388 |  0x0000208F      0x00000815       0x0000102B  0x0000282B  0x00000000                 <-           0x00000823  0x000040A7 
  0xC0F1138C |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11394 |  0x047706B7      0x029F068F       0x02AF0407   <-         0x00000000                 <-           0x045F068F  0x029F068F 
  0xC0F1139C |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F113BC |  0x00000001       <-               <-          <-         0x00000003                0x00000001     <-          <-        
  0xC0F11400 |  0x00000001       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11404 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11408 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F1140C |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        
  0xC0F11410 |  0x00FF017F       <-               <-         0x027F03BF  0x01DF027F                0x010F01DF    0x00FF017F   <-        
  0xC0F11414 |  0x00000000       <-               <-          <-          <-                        <-            <-          <-        

path 'Fencing' func 'Start*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x06 (LVx5), 0x07 (LVx10), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x05 (LVx1_Ta10) equals: 0x08 ((unknown)), 0x0E ((unknown)), 
             | 
             |     0x00        0x05    
             |     LVx1     LVx1_Ta10  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F11400 |  0x00000000             
  0xC0F11404 |  0x00000001             

path 'Fencing' func 'Stop*Path'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x06 (LVx5), 0x07 (LVx10), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x05 (LVx1_Ta10) equals: 0x08 ((unknown)), 0x0E ((unknown)), 
             | 
             |     0x00        0x05    
             |     LVx1     LVx1_Ta10  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F1100C |  0x00000000             
  0xC0F11340 |  0x00000001             
  0xC0F11380 |  0x00000001             
  0xC0F11400 |  0x00000001             
  0xC0F11404 |  0x00000000             

path 'Fencing' func 'Start*YuvPass'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x06 (LVx5), 0x07 (LVx10), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
  Mode 0x05 (LVx1_Ta10) equals: 0x08 ((unknown)), 0x0E ((unknown)), 
             | 
             |     0x00        0x05    
             |     LVx1     LVx1_Ta10  
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  0xC0F1100C |  0x00000001             
  0xC0F11340 |  0x00000000             
  0xC0F11380 |  0x00000000             

path 'Fencing' func '(unused)'
  Mode 0x00 (LVx1) equals: 0x01 (RecStandby_x1_60fps), 0x02 (LVx5), 0x03 (LVx10), 0x04 (LV_VgaTele), 0x05 (LVx1_Ta10), 0x06 (LVx5), 0x07 (LVx10), 0x08 ((unknown)), 0x09 (Rec_DZ_Crop_HD), 0x0A (Rec_HD), 0x0B (Rec_720p), 0x0C (Rec_Vga), 0x0D (Rec_VgaTele), 0x0E ((unknown)), 0x0F (Rec_DZ_Crop_HD), 0x10 (RecStandby_x1), 0x11 (RecStandby_x1_60fps), 0x12 (RecStandby_x1), 
             | 
             |     0x00    
             |     LVx1    
  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

sht_mirror[]

 C0F01000 ... C0F01040: POWER CONTROL
 C0F03000 ... C0F030C8: SHAREMEM1
 C0F03200 ... C0F03350: SHAREMEM2
 C0F04000 ... C0F04050: DMAC CONTROL WR0
 C0F04100 ... C0F04150: DMAC CONTROL WR1
 C0F04200 ... C0F04250: DMAC CONTROL WR2
 C0F04300 ... C0F04350: DMAC CONTROL WR3
 C0F04400 ... C0F04450: DMAC CONTROL WR4
 C0F04500 ... C0F04550: DMAC CONTROL WR5
 C0F04600 ... C0F04650: DMAC CONTROL WR6
 C0F26000 ... C0F26050: DMAC CONTROL WR7
 C0F26100 ... C0F26150: DMAC CONTROL WR8
 C0F26200 ... C0F26250: DMAC CONTROL WR9
 C0F04800 ... C0F04850: DMAC CONTROL RD0
 C0F04900 ... C0F04950: DMAC CONTROL RD1
 C0F04A00 ... C0F04A50: DMAC CONTROL RD2
 C0F04B00 ... C0F04B50: DMAC CONTROL RD3
 C0F04C00 ... C0F04C50: DMAC CONTROL RD4
 C0F04D00 ... C0F04D50: DMAC CONTROL RD5
 C0F26800 ... C0F26850: DMAC CONTROL RD6
 C0F26900 ... C0F26950: DMAC CONTROL RD7
 C0F05000 ... C0F050AC: DMAC CH SWITCH
 C0F07000 ... C0F072B0: HEAD CONTROL
 C0F11000 ... C0F11170: RESAMPLE SEL
 C0F11500 ... C0F1152C: RESAMPLE LESSER H
 C0F11540 ... C0F1156C: RESAMPLE LESSER V
 C0F13000 ... C0F13068: RABBIT
 C0F0D000 ... C0F0D0AC: SNDPAS
 C0F2C000 ... C0F2C034: JUKAI
 C0F09000 ... C0F090A4: FSTPAS
 C0F0E000 ... C0F0E184: OBINTEG
 C0F0B000 ... C0F0B104: WBTHM
 C0F38000 ... C0F38C4C: SHREK

See DMA http://magiclantern.wikia.com/wiki/DMA

See DIGIC

Advertisement