Magic Lantern Firmware Wiki
Register
Advertisement


The following routine is located at 0xFF9B3AF4 and used to setup Interrupt Handlers

+----------------------------------------------------------------------------+
| AJ_setup_Interrrupt_Handler__R0.IntName__R1.Int.ID__R2.sub_ISR__R3.num2()  |
+----------------------------------------------------------------------------+

int R0 = interrupt_name            [eg "USBDET" - thrown away by this routine]
int R1 = int_id                    [eg 0x44 - used as a x4 storage of info into Interrupt struct]
int R2 = sub_ISR()                 [eg Interrupt SubRoutine = AJ_USBDetectISR() ]
int R3 = gues_ISR_parm             [eg #0]

[0x400006F8 + 4 x Int_id ] = sub_ISR()
[0x40000AF8 + 4 x Int_id ] = guess_ISR_parm
 
Makes use of structs at 0x1960, 0x21F20 and 0xC0201000

And here is the complete list:

Addr

Sub where

AJ_setup_Interrrupt_Handler()

is called from

R0=

Interrupt

Name

R1=

Int_id

R2=


sub_ISR

R3=

guess_

ISR_parm

Comment
0xFF81E1B0 AJ_hotplug_taskmaster() "VIDEODET" 0x45 AJ_VideoDetectISR() 0
0xFF81E1B0 AJ_hotplug_taskmaster() "USBDET" 0x44 AJ_USBDetectISR() 0
0xFF81E1B0 AJ_hotplug_taskmaster() "TOEDET" 0x57 AJ_TOEDetectISR() 0
0xFF81E1B0 AJ_hotplug_taskmaster() "HDMIDET" 0x56 AJ_HDMIDetectISR() 0
0xFF839474

AJ_sys_FEN_

ProcessFencingA()

"Fencing_A" 0xC9

AJ_FEN_FencingA_

CB_interrupt_handler()

0 AJ need to name related Subs
0xFF8397B0

AJ_FEN_

ProcessFencingB()

"Fencing_B" 0xD0

AJ_FEN_FencingB_

CB_interupt_handler

0 AJ need to name related Subs
0xFF839A90

AJ_FEN_

ProcessFencingC()

"Fencing_C" 0xD1

AJ_FEN_FencingC

_CB_interrupt_handler()

0 AJ need to name related Subs
0xFF857F90 TH_asif_initialize() 0 0x2C

AJ_sys_

DmaADIntHandler()

0
0xFF857F90 TH_asif_initialize() 0 0x2D

AJ_sys_

DmaDAIntHandler()

0
0xFF857F90 TH_asif_initialize() 0 0x42

AJ_sys_

ASIFAdcIntHandler()

0
0xFF857F90 TH_asif_initialize() 0 0x43

AJ_sys_

ASIFDacIntHandler()

0
0xFF858AD8

AJ_JumpTable_n_

binarySemaPhore_

0x1960()

0

0x33

0x34

0x35

0x36

0x36

[Duplicate] AJ_guess_EngioBinary

Semaphore_interrupt_

Handler()

0..10 = selection of Int in arrays

(of which some are Null)

Maybe the R3 column

is wrong in definition

0xFF859090

AJ_ORPHAN_setup

_interrupt_handler()

0

0x33

0x34

0x35

0x36

0x36

[Duplicate]

AJ_guess_EngioBinary

Semaphore_interrupt_

Handler()

guess 0..10
0xFF859C10 AJ_WaitPllLockComplete() "MICDET" 0x47

TH_audio_ic_mic_connect_

AJ_MICDET_interrupt_handler

0
0xFF86761C

AJ_InitializeDisplay

DeviceController()

[Duplicate]

"EngInt PBVD"

0x68 AJ_Vd_InterruptHandler() 0
0xFF86761C

AJ_InitializeDisplay DeviceController()

[Duplicate]

"EngInt PBVD"

0x69

AJ_PBERROR_

InterruptHandler()

0
0xFF869DE4

AJ_guess_Digic_setup_

Analgue2Digital_channels()

0 0x40

AJ_DigicRelated_

interrupt_handler()

0
0xFF869DE4

AJ_guess_Digic_setup_ Analgue2Digital_channels()

0 0x02

AJ_DigicRelated_

interrupt_handler2()

0
0xFF869DE4

AJ_guess_Digic_setup_ Analgue2Digital_channels()

0 0x01

AJ_DigicRelated_

interrupt_handler3()

0
0xFF86CD80

AJ_setup_IC_n_OC_

related_Interrupts()

"OCH_SPx"

0x1A

0x1C

0x1E

AJ_OCH_SPx_

Interrupt_handler()

1

2

3

0xFF86CD80

AJ_setup_IC_n_OC_

related_Interrupts()

"OCHxEPx"

0x1B

0x1D

0x1F

AJ_OCHxEPx_

Interrupt_handler()

1

2

3

0xFF86CD80

AJ_setup_IC_n_OC_

related_Interrupts()

"OC4_14" 0x10

AJ_OC4_14_

Interrupt_handler()

0
0xFF86CD80

AJ_setup_IC_n_OC_

related_Interrupts()

"ICAPCHx"

0x20

0x21

0x22

0x23

0x24

0x25

0x26

0x27

AJ_ICAPCHx_

Interrupt_handler()

0

1

2

3

4

5

6

7

0xFF871C7C AJ_Serial_IO_pChannel() 0 not sure

AJ_Serial_IO_

Interrupt_handler()

not sure
0xFF872830

AJ_HP_Copy_n_DMA_

channel_n_BLTDMA()

"BLTDMA"

Either

0x2F

or

0x73

AJ_BLTDMA_

interrupt_handler()

not sure
0xFF8729DC

AJ_ORPHAN_guess_

HPC_n_DMA_channel()

"BLTDMA"

Either

0x2F

or

0x74

AJ_BLTDMA_

interrupt_handler()

not sure

Addr

Sub where

AJ_setup_Interrrupt_Handler()

is called from

R0=

Interrupt

Name

R1=

Int_id

R2=


sub_ISR

R3=

guess_

ISR_parm

Comment
0xFF872B9C

AJ_HPC_DMA_

n_BLTDMA()

"BLTDMA"

Either

0x2F

or

0x74

AJ_BLTDMA_

interrupt_handler2()

not sure
0xFF872CD0

AJ_BLTDMA_interrupt_

handler_related()

"BLTDMA"

Either

0x2F

or

0x74

AJ_BLTDMA_

interrupt_handler2()

not sure
0xFF872EB0

AJ_BLTDMA_interrupt_

handler_related2()

"BLTDMA"

Either

0x2F

or

0x74

AJ_BLTDMA_

interrupt_handler3()

not sure
0xFF874174 AJ_HARB_HarbInt() "HarbInt" 0x70 AJ_HARB_harbIntISR() 0
0xFF876B98

AJ_SND_HARB_

ARBMODE_n_

HARBCTRL()

"SEQ" 0x9C

AJ_HARBCTRL_

interrupt_handler()

0
0xFF985B98 AJ_IMGPOWDET_setup() "IMGPOWDET" 0x52

AJ_SHTLV_IMGPOWDET_

interrupt_handler()

0
0xFF986B98

AJ_setup_HEAD1_

interrupt_handler()

"HEAD1" 0x6A

AJ_HEAD1_

interrupt_handler()

0
0xFF986C50

AJ_setup_HEAD2_

interrupt_handler()

"HEAD2" 0x6B

AJ_HEAD2_

interrupt_handler()

0
0xFF986D70

AJ_setup_HEAD3_

interrupt_handler()

"HEAD3" 0xD9

AJ_HEAD3_

interrupt_handler()

0
0xFF986E28

AJ_setup_HEAD4_

interrupt_handler()

"HEAD4" 0xE0

AJ_HEAD4_

interrupt_handler()

0
0xFF987068

AJ_setup_

CapIsrHeadError_ISR()

"HEADERROR" 0x6C

AJ_CapIsrHeadError_

ISR()

0
0xFF99725C

AJ_setup_DiUSB20Hal_

interrupt_handler()

"DiUSB20Hal" 0x7B

AJ_DiUSB20Hal_

interrupt_handler()

0
0xFF997CF8

AJ_setup_HDMAC_INT_

interrupt_handler()

"HDMAC_INT" 0x7A

AJ_HDMAC_INT_

interrupt_handler()

0
0xFF99F288

AJ_setup_MREQ_

n_SIO3_ISR()

"MREQ_ISR" 0x50 AJ_MREQ_ISR() 0
0xFF99F288

AJ_setup_MREQ_

n_SIO3_ISR()

"SIO3_ISR" 0x36 AJ_SIO3_ISR() 0
0xFF9A4214

AJ_0x33B88_eng_callbacks_

n_initialse_Interrupt_Handler()

See comment See Comment 26 ISR setup from struct at 0x33B88
0xFF9A5A4C

AJ_JpCoreIntrHandler_

setup()

"JpCoreIntrHandler" 0x64 AJ_JpCoreIntrHandler() 0
0xFF9A6524

AJ_JpCore2IntrHandler_

setup()

"JpCore2IntrHandler" 0xA3

AJ_JpCoreSliceqpdD_

Qscale_Interrupt_Handler()

0
0xFF9A8BF8

AJ_setup_AfComplete_

AfOverRun_Interrupt_Handlers()

"AfComplete" 0x61

AJ_AfComplete_

Interrupt_Handler()

0
0xFF9A8BF8

AJ_setup_AfComplete_ AfOverRun_Interrupt_Handlers()

"AfOverRun" 0x62

AJ_AfOverRun_

Interrupt_Handler()

0
0xFFA1CDB8 AJ_sdcomInitializeInterrupt() "Sdcom" not sure

AJ_sdcom_Interrupt_

Handler()

0
0xFFA357A0

AJ_engio_n_CAPREADY_

initialise_Int_Handler()

"CAPREADY" 0x51

AJ_CAPREADY_

Int_handler()

0
0xFFA35E80

AJ_setup_

IMGPOWDET_ISR()

"IMGPOWDET" 0x52

AJ_IMGPOWDET_

interrupt_handler()

0
0xFFA37BDC

AJ_RegisterHead1

InterruptHandler()

"HEAD1" 0x6A

AJ_HEAD1_

interrupt_handler_p2()

0
0xFFA37EC0

AJ_setup_

HEADERROR_ISR()

"HEADERROR" 0x6C

AJ_HEADERROR_

interrupt_handler()

0
0xFFA59E88

AJ_FACE_

LockEngineResources_

FaceCatchPath

"Fencing_C" 0xD1

AJ_Fencing_C_

Interrupt_Handler()

0

.

Addr

Sub where

AJ_setup_Interrrupt_Handler()

is called from

R0=

Interrupt

Name

R1=

Int_id

R2=


sub_ISR

R3=

guess_

ISR_parm

Comment
0xFFA5A2D4

AJ_Fencing_B_

FB_STARTWR7()

"Fencing_B" 0xD0

AJ_Fencing_B_

Interrupt_Handler()

0
0xFFAEB95C

AJ_sdcomDrv

InitializeInterrupt()

"SdcomDrv" Either 0x4B or 0xB1

AJ_sdcomDrv_

Interrupt_Handler_p2()

0
0xFFAEB95C

AJ_sdcomDrv

InitializeInterrupt()

"SdcomDrv" Either 0x32 or 0xB8

AJ_sdcomDrv_

Interrupt_Handler()

0
0xFFAF6AB4

AJ_ORPHAN_ADKIZDET_

initialise_interrupt_handler()

"ADKIZDET" 0x65

AJ_ADKIZDET_

interrupt_handler()

0
0xFFAFE42C

AJ_HASH_Engine_Hash_

Init_KaiserHashType()

"Kaiser" 0xD8

AJ_Kaiser_

interrupt_handler()

0 Weird Interrupt name or what?
0xFFB26598 AJ_WbInteg_WbBlock() "WbInteg" 0x66

AJ_WbInteg_

interrupt_handler()

0
0xFFB26598 AJ_WbInteg_WbBlock() "WbBlock" 0x67

AJ_WbBlock_

interrupt_handler

0
0xFFB2720C

AJ_Hist.c_Complete

ReadOperation()

"CompleteReadOperation" 0x60

AJ_Complete

ReadOperation_

interrupt_handler()

0
0xFFB27560

AJ_Obinteg_

setup_int_handler()

"Obinteg" 0x63

AJ_Obinteg_

interrupt_handler()

0
0xFFB27DC8

AJ_ADKIZ_

setup_int_handler

"ADKIZ" 0x65

AJ_ADKIZ_

interrupt_handler()

0
0xFFB29EDC

AJ_setup_Complete

Operation_ISR()

"CompleteOperation" 0x93

AJ_CompleteOperation_

interrupt_handler()

0
0xFFB3C57C

AJ_WatchDogTimer_

setup_interrupt()

"WDTInterrupt" 0x03

AJ_WDTInterrupt_

interrupt_handler()

0
0xFFB87930

AJ_HeadInterrupt1_

setup_ISR()

"HeadInterrupt1" 0x6A

AJ_HeadInterrupt1_

ISR()

0
0xFFB87A04

AJ_setup_

HeadInterrupt2_ISR()

"HeadInterrupt2" 0x6B

AJ_HeadInterrupt2_

ISR()

0
0xFFB87A2C

AJ_setup_

HeadErrorInterrupt_ISR()

"HeadErrorInterrupt" 0x6C

AJ_HeadErrorInterrupt_

ISR()

0
0xFFB887E0

AJ_setup_

HeadInterrupt3_ISR()

"HeadInterrupt3" 0xD9

AJ_HeadInterrupt3_

ISR()

0
0xFFB88864

AJ_setup_HeadInterrupt4_

ISR()

"HeadInterrupt4" 0xE0

AJ_HeadInterrupt4_

ISR()

0
0xFFB88A38

AJ_setup_

SsgStopIrq_ISR()

"SsgStopIrq" 0xE1 AJ_SsgStopIrq_ISR() 0
0xFFB893D8

AJ_CompleteOperation_

setup_ISR()

"CompleteOperation" 0x9A

AJ_CompleteOperation_

ISR

0
0xFFB8B6EC AJ_CF_DeviceCreate() not sure Either 0x4B or 0xB1

AJ_CFdeviceCreate_

ISR()

0
0xFFB97D04 AJ_SD_DeviceCreate() not sure Either 0x4B or 0xB1

AJ_SDdeviceCreate_

ISR()

0
0xFFB9A014

AJ_IPC_stats_n_master_

setup_interrupt_handlers()

"IPCMaster" not sure

AJ_IPC_ERROR_

ipcMasterInterruptHandler()

0
0xFFB9A014

AJ_IPC_stats_n_master_ setup_interrupt_handlers()

"IPCMaster" not sure

AJ_IPC_ERROR_

ipcStatusInterruptHandler()

0
0xFFB9A574

AJ_setup_IPCSlave_

Interrupt_Handler()

"IPCSlave" 0x4F

AJ_IPCSlave_

Interrupt_Handler()

0
0xFFBDA984

AJ_guess_CF_ResetCard_

related_setup_interrupt_handler()

"CFDMADriver" not sure

AJ_guess_CF_ResetCard_

Interupt_handler()

0
0xFFBDDAC8

AJ_setup_SDDMADriver_

interrupt_handler()

"SDDMADriver" Either 0x32 or 0xB8

AJ_SDDMADriver_

interrupt_handler()

0
Advertisement