check return value for plat_interrupt_type_to_line function 60/150760/4
authoregukim <egukim@dignsys.com>
Mon, 18 Sep 2017 10:16:50 +0000 (19:16 +0900)
committeregukim <egukim@dignsys.com>
Wed, 27 Sep 2017 05:28:42 +0000 (14:28 +0900)
This patch is intended to clarify the handling of rpi3's el3 interrupt.

Change-Id: Ibc83edbea2c7025e2547727e07bfc0aee88df26c
Signed-off-by: egukim <egukim@dignsys.com>
bl31/interrupt_mgmt.c
plat/rpi3/aarch64/plat_helpers.S

index 5478902..5b7dcd5 100644 (file)
@@ -128,6 +128,8 @@ static void set_scr_el3_from_rm(uint32_t type,
 
        flag = get_interrupt_rm_flag(interrupt_type_flags, security_state);
        bit_pos = plat_interrupt_type_to_line(type, security_state);
+       if ((bit_pos != 1) && (bit_pos != 2))
+               return;
        intr_type_descs[type].scr_el3[security_state] = flag << bit_pos;
        cm_write_scr_el3_bit(security_state, bit_pos, flag);
 }
@@ -173,6 +175,8 @@ int disable_intr_rm_local(uint32_t type, uint32_t security_state)
        flag = get_interrupt_rm_flag(INTR_DEFAULT_RM, security_state);
 
        bit_pos = plat_interrupt_type_to_line(type, security_state);
+       if ((bit_pos != 1) && (bit_pos != 2))
+               return 0;
        cm_write_scr_el3_bit(security_state, bit_pos, flag);
 
        return 0;
@@ -192,6 +196,8 @@ int enable_intr_rm_local(uint32_t type, uint32_t security_state)
                                security_state);
 
        bit_pos = plat_interrupt_type_to_line(type, security_state);
+       if ((bit_pos != 1) && (bit_pos != 2))
+               return 0;
        cm_write_scr_el3_bit(security_state, bit_pos, flag);
 
        return 0;
index 71e3d12..eae85f7 100644 (file)
@@ -175,9 +175,11 @@ func plat_print_interconnect_regs
        ret
 
 func plat_interrupt_type_to_line
+       mov     x0, #0  /* Not used interrupt line for rpi3 */
        ret
 
 func plat_ic_get_pending_interrupt_type
+       mov     x0, #0  /* if pending interrupt in rpi3, then use scure el1 type */
        ret
        
        /* -----------------------------------------------------