diff --git a/patch/fault_inject/.explicit-events.patch.swp b/patch/fault_inject/.explicit-events.patch.swp
new file mode 100644
index 0000000..a9b34f3
--- /dev/null
+++ b/patch/fault_inject/.explicit-events.patch.swp
Binary files differ
diff --git a/patch/fault_inject/explicit-events.patch b/patch/fault_inject/explicit-events.patch
index 7b6e72f..80acc20 100644
--- a/patch/fault_inject/explicit-events.patch
+++ b/patch/fault_inject/explicit-events.patch
@@ -1,7 +1,7 @@
 --- a/plat/arm/common/aarch64/arm_sdei.c
 +++ b/plat/arm/common/aarch64/arm_sdei.c
-@@ -12,7 +12,12 @@
- 
+@@ -48,7 +48,12 @@ void plat_sdei_setup(void)
+ #else
  /* Private event mappings */
  static sdei_ev_map_t arm_sdei_private[] = {
 -	PLAT_ARM_PRIVATE_SDEI_EVENTS
diff --git a/patch/fault_inject/injected-fault-in-absence-of-ras.patch b/patch/fault_inject/injected-fault-in-absence-of-ras.patch
new file mode 100644
index 0000000..f50b04d
--- /dev/null
+++ b/patch/fault_inject/injected-fault-in-absence-of-ras.patch
@@ -0,0 +1,16 @@
+--- a/Makefile
++++ b/Makefile
+@@ -533,13 +533,6 @@ ifeq ($(RAS_EXTENSION),1)
+     endif
+ endif
+
+-# When FAULT_INJECTION_SUPPORT is used, require that RAS_EXTENSION is enabled
+-ifeq ($(FAULT_INJECTION_SUPPORT),1)
+-    ifneq ($(RAS_EXTENSION),1)
+-        $(error For FAULT_INJECTION_SUPPORT, RAS_EXTENSION must also be 1)
+-    endif
+-endif
+-
+ # DYN_DISABLE_AUTH can be set only when TRUSTED_BOARD_BOOT=1
+ ifeq ($(DYN_DISABLE_AUTH), 1)
+     ifeq (${TRUSTED_BOARD_BOOT}, 0)
diff --git a/patch/readonly_xlat_tables/arm_bl31_setup_write_after_readonly.patch b/patch/readonly_xlat_tables/arm_bl31_setup_write_after_readonly.patch
new file mode 100644
index 0000000..b6869d6
--- /dev/null
+++ b/patch/readonly_xlat_tables/arm_bl31_setup_write_after_readonly.patch
@@ -0,0 +1,10 @@
+--- a/plat/arm/common/arm_bl31_setup.c
++++ b/plat/arm/common/arm_bl31_setup.c
+@@ -256,6 +256,7 @@ void arm_bl31_plat_runtime_setup(void)
+
+ #if PLAT_RO_XLAT_TABLES
+ 	arm_xlat_make_tables_readonly();
++	arm_free_init_memory();
+ #endif
+ }
+
diff --git a/patch/readonly_xlat_tables/arm_sp_min_setup_write_after_readonly.patch b/patch/readonly_xlat_tables/arm_sp_min_setup_write_after_readonly.patch
new file mode 100644
index 0000000..70c751b
--- /dev/null
+++ b/patch/readonly_xlat_tables/arm_sp_min_setup_write_after_readonly.patch
@@ -0,0 +1,17 @@
+--- a/plat/arm/common/sp_min/arm_sp_min_setup.c
++++ b/plat/arm/common/sp_min/arm_sp_min_setup.c
+@@ -171,6 +171,14 @@ void arm_sp_min_plat_runtime_setup(void)
+
+ #if PLAT_RO_XLAT_TABLES
+ 	arm_xlat_make_tables_readonly();
++	int rc = xlat_change_mem_attributes(BL_CODE_BASE,
++					    BL_CODE_END - BL_CODE_BASE,
++					    MT_RW_DATA);
++	if (rc == 0) {
++		ERROR("Memory attributes were successfully changed after xlat tables were made read-only.\n");
++	}
++	ERROR("We should not have returned from xlat_change_mem_attributes().\n");
++	panic();
+ #endif
+ }
+
diff --git a/patch/readonly_xlat_tables/arm_tsp_setup_write_after_readonly.patch b/patch/readonly_xlat_tables/arm_tsp_setup_write_after_readonly.patch
new file mode 100644
index 0000000..cdb190e
--- /dev/null
+++ b/patch/readonly_xlat_tables/arm_tsp_setup_write_after_readonly.patch
@@ -0,0 +1,16 @@
+--- a/plat/arm/common/tsp/arm_tsp_setup.c
++++ b/plat/arm/common/tsp/arm_tsp_setup.c
+@@ -82,5 +82,13 @@ void tsp_plat_arch_setup(void)
+
+ #if PLAT_RO_XLAT_TABLES
+ 	arm_xlat_make_tables_readonly();
++	int rc = xlat_change_mem_attributes(BL_CODE_BASE,
++					    BL_CODE_END - BL_CODE_BASE,
++					    MT_RW_DATA);
++	if (rc == 0) {
++		ERROR("Memory attributes were successfully changed after xlat tables were made read-only.\n");
++	}
++	ERROR("We should not have returned from xlat_change_mem_attributes().\n");
++	panic();
+ #endif
+ }
diff --git a/patch/readonly_xlat_tables/sp_min_data_abort_print_panic_message.patch b/patch/readonly_xlat_tables/sp_min_data_abort_print_panic_message.patch
new file mode 100644
index 0000000..c1ba3d8
--- /dev/null
+++ b/patch/readonly_xlat_tables/sp_min_data_abort_print_panic_message.patch
@@ -0,0 +1,11 @@
+--- a/bl32/sp_min/aarch32/entrypoint.S
++++ b/bl32/sp_min/aarch32/entrypoint.S
+@@ -50,7 +50,7 @@ vector_base sp_min_vector_table
+ 	b	plat_panic_handler	/* Undef */
+ 	b	sp_min_handle_smc	/* Syscall */
+ 	b	plat_panic_handler	/* Prefetch abort */
+-	b	plat_panic_handler	/* Data abort */
++	b	do_panic		/* Data abort */
+ 	b	plat_panic_handler	/* Reserved */
+ 	b	plat_panic_handler	/* IRQ */
+ 	b	sp_min_handle_fiq	/* FIQ */
diff --git a/patch/readonly_xlat_tables/tsp_sync_exception_print_panic_message.patch b/patch/readonly_xlat_tables/tsp_sync_exception_print_panic_message.patch
new file mode 100644
index 0000000..8c20dfd
--- /dev/null
+++ b/patch/readonly_xlat_tables/tsp_sync_exception_print_panic_message.patch
@@ -0,0 +1,11 @@
+--- a/bl32/tsp/aarch64/tsp_exceptions.S
++++ b/bl32/tsp/aarch64/tsp_exceptions.S
+@@ -102,7 +102,7 @@ end_vector_entry serror_sp_el0
+ 	 * -----------------------------------------------------
+ 	 */
+ vector_entry sync_exception_sp_elx
+-	b	plat_panic_handler
++	b	do_panic
+ end_vector_entry sync_exception_sp_elx
+
+ vector_entry irq_sp_elx
diff --git a/patch/tbb_dyn_auth/disable_dyn_auth.patch b/patch/tbb_dyn_auth/disable_dyn_auth.patch
new file mode 100644
index 0000000..841cc23
--- /dev/null
+++ b/patch/tbb_dyn_auth/disable_dyn_auth.patch
@@ -0,0 +1,28 @@
+diff --git a/common/bl_common.c b/common/bl_common.c
+index 03ebb3a64..524fc4720 100644
+--- a/common/bl_common.c
++++ b/common/bl_common.c
+@@ -29,7 +29,7 @@ static int disable_auth;
+  *****************************************************************************/
+ void dyn_disable_auth(void)
+ {
+-	INFO("Disabling authentication of images dynamically\n");
++	NOTICE("Disabling authentication of images dynamically\n");
+ 	disable_auth = 1;
+ }
+ # endif /* DYN_DISABLE_AUTH */
+diff --git a/plat/arm/board/fvp/fdts/fvp_tb_fw_config.dts b/plat/arm/board/fvp/fdts/fvp_tb_fw_config.dts
+index 576eded93..ec49225e8 100644
+--- a/plat/arm/board/fvp/fdts/fvp_tb_fw_config.dts
++++ b/plat/arm/board/fvp/fdts/fvp_tb_fw_config.dts
+@@ -11,7 +11,7 @@
+ 		compatible = "arm,tb_fw";
+ 
+ 		/* Disable authentication for development */
+-		disable_auth = <0x0>;
++		disable_auth = <0x1>;
+ 
+ 		/*
+ 		 * The following two entries are placeholders for Mbed TLS
+--
+2.20.1
diff --git a/patch/ubsan/ubsan_test.patch b/patch/ubsan/ubsan_test.patch
new file mode 100644
index 0000000..70af5e9
--- /dev/null
+++ b/patch/ubsan/ubsan_test.patch
@@ -0,0 +1,48 @@
+From 080e004b7ba917bd88d9f9c51d077e32a959d8fa Mon Sep 17 00:00:00 2001
+From: Zelalem <zelalem.aweke@arm.com>
+Date: Fri, 6 Dec 2019 10:29:13 -0600
+Subject: [PATCH] Add UBSAN test patch
+
+Change-Id: Ib2c78d9da0f214957dcad0d1d9a89089c10c9b48
+---
+ bl31/bl31_main.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/bl31/bl31_main.c b/bl31/bl31_main.c
+index 92a2027dd..46cbed65e 100644
+--- a/bl31/bl31_main.c
++++ b/bl31/bl31_main.c
+@@ -85,6 +85,19 @@ void bl31_setup(u_register_t arg0, u_register_t arg1, u_register_t arg2,
+ #endif /* CTX_INCLUDE_PAUTH_REGS */
+ }
+ 
++/*
++* UBSAN test function. This is used to test whether CI handles
++* undefined behaviour errors correctly.
++*/
++#include <limits.h>
++
++static int ubsan_test_add_overflow(void)
++{
++        static int32_t val = INT_MAX;
++        val += 0x1;
++        return val;
++}
++
+ /*******************************************************************************
+  * BL31 is responsible for setting up the runtime services for the primary cpu
+  * before passing control to the bootloader or an Operating System. This
+@@ -147,6 +160,10 @@ void bl31_main(void)
+ 	 * from BL31
+ 	 */
+ 	bl31_plat_runtime_setup();
++
++	/* Run UBSAN Test */
++        INFO("BL31: Running UBSAN test\n");
++        ubsan_test_add_overflow();
+ }
+ 
+ /*******************************************************************************
+-- 
+2.17.1
+
