Fandom

Magic Lantern Firmware Wiki

2.0.4 Interrupt Handlers

328pages on
this wiki
Add New Page
Talk0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.


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

Also on Fandom

Random Wiki