diff --git a/include/plat/arm/board/common/board_css_def.h b/include/plat/arm/board/common/board_css_def.h
index 6cca38909ac2a291ef418bcf173a737e0049c868..a77ea96ef391bd9a7d147103f5ece3efc5394c84 100644
--- a/include/plat/arm/board/common/board_css_def.h
+++ b/include/plat/arm/board/common/board_css_def.h
@@ -8,11 +8,10 @@
 #define BOARD_CSS_DEF_H
 
 #include <lib/utils_def.h>
+#include <plat/arm/board/common/v2m_def.h>
+#include <plat/arm/soc/common/soc_css_def.h>
 #include <plat/common/common_def.h>
 
-#include <soc_css_def.h>
-#include <v2m_def.h>
-
 /*
  * Definitions common to all ARM CSS-based development platforms
  */
diff --git a/include/plat/arm/board/common/v2m_def.h b/include/plat/arm/board/common/v2m_def.h
index c5de407af511bf1f04fca23f310cb3282c38dc8e..6a6979c9c3a5eef1d024ab445368b82730f4ac07 100644
--- a/include/plat/arm/board/common/v2m_def.h
+++ b/include/plat/arm/board/common/v2m_def.h
@@ -6,7 +6,7 @@
 #ifndef V2M_DEF_H
 #define V2M_DEF_H
 
-#include <lib/xlat_tables/xlat_tables_compat.h>
+#include <lib/utils_def.h>
 
 /* V2M motherboard system registers & offsets */
 #define V2M_SYSREGS_BASE		UL(0x1c010000)
diff --git a/lib/utils/mem_region.c b/lib/utils/mem_region.c
index 662f6a05aee3345dab886f4f7621e76fc9a6acdc..08bccf64bae99f0eb6e4331d1ca87fde5f426af2 100644
--- a/lib/utils/mem_region.c
+++ b/lib/utils/mem_region.c
@@ -6,7 +6,9 @@
 
 #include <assert.h>
 
+#include <common/debug.h>
 #include <lib/utils.h>
+#include <lib/xlat_tables/xlat_tables_compat.h>
 
 /*
  * All the regions defined in mem_region_t must have the following properties
diff --git a/plat/arm/board/common/board_common.mk b/plat/arm/board/common/board_common.mk
index 487aad7399ac6e046fec18fbd6183131b1b8b7ed..b98dfd48b28a87ae48810cdfce33afe627b4c0be 100644
--- a/plat/arm/board/common/board_common.mk
+++ b/plat/arm/board/common/board_common.mk
@@ -4,8 +4,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 #
 
-PLAT_INCLUDES		+=	-Iinclude/plat/arm/board/common/
-
 PLAT_BL_COMMON_SOURCES	+=	drivers/arm/pl011/${ARCH}/pl011_console.S	\
 				plat/arm/board/common/${ARCH}/board_arm_helpers.S
 
diff --git a/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.c b/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.c
index cae9827c30ad032eb87be9a3125439ac637a1bc6..9080e22f810c802a7d0f8adfe7abf8a17221a067 100644
--- a/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.c
+++ b/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.c
@@ -6,9 +6,9 @@
 
 #include <lib/bakery_lock.h>
 #include <lib/mmio.h>
+#include <plat/arm/common/plat_arm.h>
 #include <platform_def.h>
 
-#include <plat_arm.h>
 #include "../../fvp_private.h"
 #include "fvp_pwrc.h"
 
diff --git a/plat/arm/board/fvp/fvp_bl1_setup.c b/plat/arm/board/fvp/fvp_bl1_setup.c
index d6e82f50d90a76e178085ff13a2e55670373559b..75090e87cb5040ab2c90bdd6cb1535063bc14d49 100644
--- a/plat/arm/board/fvp/fvp_bl1_setup.c
+++ b/plat/arm/board/fvp/fvp_bl1_setup.c
@@ -5,10 +5,9 @@
  */
 
 #include <common/tbbr/tbbr_img_def.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 #include "fvp_private.h"
 
 /*******************************************************************************
diff --git a/plat/arm/board/fvp/fvp_bl2_el3_setup.c b/plat/arm/board/fvp/fvp_bl2_el3_setup.c
index 69f2f7adf70bd90bc7416d5dbe1e51e1464a76d2..7def56a7098a72b6ceb6721989c31489ad514e00 100644
--- a/plat/arm/board/fvp/fvp_bl2_el3_setup.c
+++ b/plat/arm/board/fvp/fvp_bl2_el3_setup.c
@@ -4,7 +4,8 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
+
 #include "fvp_private.h"
 
 void bl2_el3_early_platform_setup(u_register_t arg0 __unused,
diff --git a/plat/arm/board/fvp/fvp_bl2_setup.c b/plat/arm/board/fvp/fvp_bl2_setup.c
index 7aa620b1aba862cf8e564307a1fabebd5d7f8837..d28094993d06f089e82b2997ca613b6e0807b7db 100644
--- a/plat/arm/board/fvp/fvp_bl2_setup.c
+++ b/plat/arm/board/fvp/fvp_bl2_setup.c
@@ -7,10 +7,10 @@
 #include <drivers/arm/sp804_delay_timer.h>
 #include <drivers/generic_delay_timer.h>
 #include <lib/mmio.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-#include <plat_arm.h>
 #include "fvp_private.h"
 
 void bl2_early_platform_setup2(u_register_t arg0, u_register_t arg1, u_register_t arg2, u_register_t arg3)
diff --git a/plat/arm/board/fvp/fvp_bl2u_setup.c b/plat/arm/board/fvp/fvp_bl2u_setup.c
index 6367be626cccd4db8c93f81cbe0e5e5360875bdd..a8db055678a8b9c2fc80263a6111f552fa4310aa 100644
--- a/plat/arm/board/fvp/fvp_bl2u_setup.c
+++ b/plat/arm/board/fvp/fvp_bl2u_setup.c
@@ -4,10 +4,10 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-#include <plat_arm.h>
 #include "fvp_private.h"
 
 void bl2u_early_platform_setup(struct meminfo *mem_layout, void *plat_info)
diff --git a/plat/arm/board/fvp/fvp_bl31_setup.c b/plat/arm/board/fvp/fvp_bl31_setup.c
index 5f2121c528c44b7981c789d4f59a386dce0cebfe..7f28b202d692762fc308c7c9a8b79c7f7e316869 100644
--- a/plat/arm/board/fvp/fvp_bl31_setup.c
+++ b/plat/arm/board/fvp/fvp_bl31_setup.c
@@ -5,10 +5,10 @@
  */
 
 #include <drivers/arm/smmu_v3.h>
+#include <plat/arm/common/arm_config.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <arm_config.h>
-#include <plat_arm.h>
 #include "fvp_private.h"
 
 void __init bl31_early_platform_setup2(u_register_t arg0,
diff --git a/plat/arm/board/fvp/fvp_common.c b/plat/arm/board/fvp/fvp_common.c
index fdf82f493f0075a6519e870119ed1f476bf21bc4..b885b47a462b58d0d6e6e77891811e335c839c51 100644
--- a/plat/arm/board/fvp/fvp_common.c
+++ b/plat/arm/board/fvp/fvp_common.c
@@ -12,13 +12,12 @@
 #include <drivers/arm/gicv2.h>
 #include <lib/mmio.h>
 #include <lib/xlat_tables/xlat_tables_compat.h>
+#include <plat/arm/common/arm_config.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 #include <services/secure_partition.h>
 
-#include <arm_config.h>
-#include <plat_arm.h>
-
 #include "fvp_private.h"
 
 /* Defines for GIC Driver build time selection */
diff --git a/plat/arm/board/fvp/fvp_io_storage.c b/plat/arm/board/fvp/fvp_io_storage.c
index e186b3083872359cc442379ebd007aacc00adc90..9c4c1d574b0dcf3b60d07595d7e80ff483675654 100644
--- a/plat/arm/board/fvp/fvp_io_storage.c
+++ b/plat/arm/board/fvp/fvp_io_storage.c
@@ -11,10 +11,9 @@
 #include <drivers/io/io_semihosting.h>
 #include <drivers/io/io_storage.h>
 #include <lib/semihosting.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/common_def.h>
 
-#include <plat_arm.h>
-
 /* Semihosting filenames */
 #define BL2_IMAGE_NAME			"bl2.bin"
 #define BL31_IMAGE_NAME			"bl31.bin"
diff --git a/plat/arm/board/fvp/fvp_pm.c b/plat/arm/board/fvp/fvp_pm.c
index 8ba828155c5c93339d5387b0492330ece962550a..a51fa17183f7cd70a3d40210d03ac9305e1d27e1 100644
--- a/plat/arm/board/fvp/fvp_pm.c
+++ b/plat/arm/board/fvp/fvp_pm.c
@@ -13,13 +13,11 @@
 #include <lib/extensions/spe.h>
 #include <lib/mmio.h>
 #include <lib/psci/psci.h>
+#include <plat/arm/common/arm_config.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-#include <arm_config.h>
-#include <plat_arm.h>
-
-#include "../../../../drivers/arm/gic/v3/gicv3_private.h"
 #include "drivers/pwrc/fvp_pwrc.h"
 #include "fvp_private.h"
 
diff --git a/plat/arm/board/fvp/fvp_private.h b/plat/arm/board/fvp/fvp_private.h
index e7dea9944dc008a490003753f36605b189de39d2..3d9653739c90098c8fad955cdbe0c67a30fd5f67 100644
--- a/plat/arm/board/fvp/fvp_private.h
+++ b/plat/arm/board/fvp/fvp_private.h
@@ -7,7 +7,7 @@
 #ifndef FVP_PRIVATE_H
 #define FVP_PRIVATE_H
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 /*******************************************************************************
  * Function and variable prototypes
diff --git a/plat/arm/board/fvp/fvp_security.c b/plat/arm/board/fvp/fvp_security.c
index 028522cfefd9ceb31aa4d8c61d5e645036c1d933..80ec2171b061686a2746d9518c354c27227d3a70 100644
--- a/plat/arm/board/fvp/fvp_security.c
+++ b/plat/arm/board/fvp/fvp_security.c
@@ -4,8 +4,8 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <arm_config.h>
-#include <plat_arm.h>
+#include <plat/arm/common/arm_config.h>
+#include <plat/arm/common/plat_arm.h>
 
 /*
  * We assume that all security programming is done by the primary core.
diff --git a/plat/arm/board/fvp/fvp_topology.c b/plat/arm/board/fvp/fvp_topology.c
index 3384a2f7045bd27729a034a5db0572c61f6a8cb4..5e066eaabde303f8a96df7e10aa8e039ec0074a7 100644
--- a/plat/arm/board/fvp/fvp_topology.c
+++ b/plat/arm/board/fvp/fvp_topology.c
@@ -8,10 +8,10 @@
 
 #include <arch.h>
 #include <lib/cassert.h>
+#include <plat/arm/common/arm_config.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-#include <arm_config.h>
 #include "drivers/pwrc/fvp_pwrc.h"
 
 /* The FVP power domain tree descriptor */
diff --git a/plat/arm/board/fvp/include/plat.ld.S b/plat/arm/board/fvp/include/plat.ld.S
index ad2d46c436f7f56517add722f1a100ded799eede..f024f551ae5ad26d6a71fd012970abc99b64e5d3 100644
--- a/plat/arm/board/fvp/include/plat.ld.S
+++ b/plat/arm/board/fvp/include/plat.ld.S
@@ -6,7 +6,7 @@
 #ifndef PLAT_LD_S
 #define PLAT_LD_S
 
-#include <arm_tzc_dram.ld.S>
-#include <arm_reclaim_init.ld.S>
+#include <plat/arm/common/arm_tzc_dram.ld.S>
+#include <plat/arm/common/arm_reclaim_init.ld.S>
 
 #endif /* PLAT_LD_S */
diff --git a/plat/arm/board/fvp/include/platform_def.h b/plat/arm/board/fvp/include/platform_def.h
index 8c0daf130eb48b8d6ee1c8662ab0dfcbc4464e56..e325aa558463a204b9488bb9822c377d16c0a86f 100644
--- a/plat/arm/board/fvp/include/platform_def.h
+++ b/plat/arm/board/fvp/include/platform_def.h
@@ -20,12 +20,11 @@
 
 #include <drivers/arm/tzc400.h>
 #include <lib/utils_def.h>
+#include <plat/arm/board/common/v2m_def.h>
+#include <plat/arm/common/arm_def.h>
+#include <plat/arm/common/arm_spm_def.h>
 #include <plat/common/common_def.h>
 
-#include <arm_def.h>
-#include <arm_spm_def.h>
-#include <v2m_def.h>
-
 #include "../fvp_def.h"
 
 /* Required platform porting definitions */
diff --git a/plat/arm/board/fvp/sp_min/fvp_sp_min_setup.c b/plat/arm/board/fvp/sp_min/fvp_sp_min_setup.c
index 7c89c27e3d262c17dd107c3c01fe9987fcfff801..88c91e6feb183a31ee61d57c6523f2b96caf09ff 100644
--- a/plat/arm/board/fvp/sp_min/fvp_sp_min_setup.c
+++ b/plat/arm/board/fvp/sp_min/fvp_sp_min_setup.c
@@ -4,7 +4,8 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
+
 #include "../fvp_private.h"
 
 void plat_arm_sp_min_early_platform_setup(u_register_t arg0, u_register_t arg1,
diff --git a/plat/arm/board/fvp/tsp/fvp_tsp_setup.c b/plat/arm/board/fvp/tsp/fvp_tsp_setup.c
index 86d265a38d0e80453f395df3c4601c30844a6eea..3c8a9639cd5dbe9131db7d71f461aac33bd4174b 100644
--- a/plat/arm/board/fvp/tsp/fvp_tsp_setup.c
+++ b/plat/arm/board/fvp/tsp/fvp_tsp_setup.c
@@ -4,7 +4,8 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
+
 #include "../fvp_private.h"
 
 void tsp_early_platform_setup(void)
diff --git a/plat/arm/board/juno/include/platform_def.h b/plat/arm/board/juno/include/platform_def.h
index b10cfdcbd2f936ce4a01a69c187ac80b93914328..3be1b6843218c91d6a2c5ce575414f89a7632b85 100644
--- a/plat/arm/board/juno/include/platform_def.h
+++ b/plat/arm/board/juno/include/platform_def.h
@@ -23,13 +23,13 @@
 #if TRUSTED_BOARD_BOOT
 #include <drivers/auth/mbedtls/mbedtls_config.h>
 #endif
+#include <plat/arm/board/common/board_css_def.h>
+#include <plat/arm/board/common/v2m_def.h>
+#include <plat/arm/common/arm_def.h>
+#include <plat/arm/css/common/css_def.h>
+#include <plat/arm/soc/common/soc_css_def.h>
 #include <plat/common/common_def.h>
 
-#include <arm_def.h>
-#include <board_css_def.h>
-#include <css_def.h>
-#include <soc_css_def.h>
-#include <v2m_def.h>
 #include "../juno_def.h"
 
 /* Required platform porting definitions */
diff --git a/plat/arm/board/juno/juno_bl1_setup.c b/plat/arm/board/juno/juno_bl1_setup.c
index 383409df0c481a2678223f11ed994989777f3b34..f72dba181c1b1dc88858bfd46f78bba48ca8a1b0 100644
--- a/plat/arm/board/juno/juno_bl1_setup.c
+++ b/plat/arm/board/juno/juno_bl1_setup.c
@@ -10,10 +10,10 @@
 #include <common/debug.h>
 #include <common/tbbr/tbbr_img_def.h>
 #include <drivers/arm/sp805.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-#include <plat_arm.h>
 #include <sds.h>
 
 void juno_reset_to_aarch32_state(void);
diff --git a/plat/arm/board/juno/juno_bl2_setup.c b/plat/arm/board/juno/juno_bl2_setup.c
index 56f05eb185a9dee5f553c5cf8583103b9de67e93..95ef77c0d04b4c7e4a028875928c484e4362ce55 100644
--- a/plat/arm/board/juno/juno_bl2_setup.c
+++ b/plat/arm/board/juno/juno_bl2_setup.c
@@ -8,8 +8,7 @@
 
 #include <common/bl_common.h>
 #include <common/desc_image_load.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 #if JUNO_AARCH32_EL3_RUNTIME
 /*******************************************************************************
diff --git a/plat/arm/board/juno/juno_common.c b/plat/arm/board/juno/juno_common.c
index e13410836c14e94f11d9a94fc387518041c289f4..118c19ab709b22bc76a86317c556bfc042f0921d 100644
--- a/plat/arm/board/juno/juno_common.c
+++ b/plat/arm/board/juno/juno_common.c
@@ -5,7 +5,7 @@
  */
 
 #include <platform_def.h>
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 /*
  * Table of memory regions for different BL stages to map using the MMU.
diff --git a/plat/arm/board/juno/juno_pm.c b/plat/arm/board/juno/juno_pm.c
index dbf7b6c69198e64e91b4a33c6a032e4e85ce6331..4864f488b97d1d1bb16558e2251d1635abbb2a3b 100644
--- a/plat/arm/board/juno/juno_pm.c
+++ b/plat/arm/board/juno/juno_pm.c
@@ -4,7 +4,8 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
+
 #include <scmi.h>
 
 const plat_psci_ops_t *plat_arm_psci_override_pm_ops(plat_psci_ops_t *ops)
diff --git a/plat/arm/board/juno/juno_security.c b/plat/arm/board/juno/juno_security.c
index 51c8669a8ea8d973b481a9b859a7ff05ebb74571..9d7f0e4218fbda8eeee00b01fe806a08cd4ae3bb 100644
--- a/plat/arm/board/juno/juno_security.c
+++ b/plat/arm/board/juno/juno_security.c
@@ -8,9 +8,9 @@
 #include <drivers/arm/nic_400.h>
 #include <lib/mmio.h>
 #include <platform_def.h>
+#include <plat/arm/common/plat_arm.h>
+#include <plat/arm/soc/common/soc_css.h>
 
-#include <plat_arm.h>
-#include <soc_css.h>
 #include "juno_tzmp1_def.h"
 
 #ifdef JUNO_TZMP1
diff --git a/plat/arm/board/juno/juno_topology.c b/plat/arm/board/juno/juno_topology.c
index e70cbdcb02d2edfedc1a433e115b65e0af73a8e7..1402bbdf7fa83a0a1f430e25cdd69f9a3e0d8376 100644
--- a/plat/arm/board/juno/juno_topology.c
+++ b/plat/arm/board/juno/juno_topology.c
@@ -4,11 +4,11 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
+#include <plat/arm/common/plat_arm.h>
+#include <plat/arm/css/common/css_pm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-#include <css_pm.h>
-#include <plat_arm.h>
 #include "../../css/drivers/scmi/scmi.h"
 #include "../../css/drivers/mhu/css_mhu_doorbell.h"
 
diff --git a/plat/arm/board/n1sdp/include/platform_def.h b/plat/arm/board/n1sdp/include/platform_def.h
index 68d0f936c9ca0be3e6ff50548c27dd552c243fd6..7b8c367a2d4aea840ac0d9a865114f107ad66379 100644
--- a/plat/arm/board/n1sdp/include/platform_def.h
+++ b/plat/arm/board/n1sdp/include/platform_def.h
@@ -7,9 +7,9 @@
 #ifndef PLATFORM_DEF_H
 #define PLATFORM_DEF_H
 
-#include <arm_def.h>
-#include <css_def.h>
-#include <v2m_def.h>
+#include <plat/arm/board/common/v2m_def.h>
+#include <plat/arm/common/arm_def.h>
+#include <plat/arm/css/common/css_def.h>
 
 /* UART related constants */
 #define PLAT_ARM_BOOT_UART_BASE			0x2A400000
diff --git a/plat/arm/board/n1sdp/n1sdp_bl31_setup.c b/plat/arm/board/n1sdp/n1sdp_bl31_setup.c
index d044b7ccf3ca68f6a0d4491daded7764ec0cddfa..93f2803c9efd73b7c6bc09624d124b52d5149198 100644
--- a/plat/arm/board/n1sdp/n1sdp_bl31_setup.c
+++ b/plat/arm/board/n1sdp/n1sdp_bl31_setup.c
@@ -6,9 +6,10 @@
 
 #include <platform_def.h>
 
+#include <plat/arm/common/plat_arm.h>
+
 #include "../../css/drivers/scmi/scmi.h"
 #include "../../css/drivers/mhu/css_mhu_doorbell.h"
-#include <plat_arm.h>
 
 static scmi_channel_plat_info_t n1sdp_scmi_plat_info = {
 		.scmi_mbx_mem = N1SDP_SCMI_PAYLOAD_BASE,
diff --git a/plat/arm/board/n1sdp/n1sdp_plat.c b/plat/arm/board/n1sdp/n1sdp_plat.c
index 87e15110894d1ccb131de0aab98c0f628efedee5..6905896c8e4540de7f8d220b14db53b058a1f56b 100644
--- a/plat/arm/board/n1sdp/n1sdp_plat.c
+++ b/plat/arm/board/n1sdp/n1sdp_plat.c
@@ -8,10 +8,9 @@
 
 #include <common/bl_common.h>
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 /*
  * Table of regions to map using the MMU.
  * Replace or extend the below regions as required
diff --git a/plat/arm/board/n1sdp/n1sdp_topology.c b/plat/arm/board/n1sdp/n1sdp_topology.c
index c3b4550d0928d87a543677e747b69f789e4497b0..edf1170997956c6e26be2faa7779c43f0e644a2b 100644
--- a/plat/arm/board/n1sdp/n1sdp_topology.c
+++ b/plat/arm/board/n1sdp/n1sdp_topology.c
@@ -4,7 +4,7 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 /* Topology */
 typedef struct n1sdp_topology {
diff --git a/plat/arm/common/arm_bl1_fwu.c b/plat/arm/common/arm_bl1_fwu.c
index cd92aa8ed0fce3d1ef8aa8f51243d050c20f5b30..124c1af53138665137fe49c0661080dc97d73739 100644
--- a/plat/arm/common/arm_bl1_fwu.c
+++ b/plat/arm/common/arm_bl1_fwu.c
@@ -13,10 +13,9 @@
 #include <common/bl_common.h>
 #include <common/debug.h>
 #include <lib/utils.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 /* Struct to keep track of usable memory */
 typedef struct bl1_mem_info {
 	uintptr_t mem_base;
diff --git a/plat/arm/common/arm_bl1_setup.c b/plat/arm/common/arm_bl1_setup.c
index 3a8b5c27546d236239fd4b092cca8921e7d7053a..fd4809c16294cdf80c357d5b61109c22caa48bf8 100644
--- a/plat/arm/common/arm_bl1_setup.c
+++ b/plat/arm/common/arm_bl1_setup.c
@@ -14,10 +14,9 @@
 #include <drivers/arm/sp805.h>
 #include <lib/utils.h>
 #include <lib/xlat_tables/xlat_tables_compat.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 /* Weak definitions may be overridden in specific ARM standard platform */
 #pragma weak bl1_early_platform_setup
 #pragma weak bl1_plat_arch_setup
diff --git a/plat/arm/common/arm_bl2_el3_setup.c b/plat/arm/common/arm_bl2_el3_setup.c
index c38f2ec94923ad57d767588333f1a0d32363c767..0c01c872eada2a244c73f4c1e9d3f0eba9e3c827 100644
--- a/plat/arm/common/arm_bl2_el3_setup.c
+++ b/plat/arm/common/arm_bl2_el3_setup.c
@@ -7,11 +7,10 @@
 #include <assert.h>
 
 #include <drivers/generic_delay_timer.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-#include <plat_arm.h>
-
 #pragma weak bl2_el3_early_platform_setup
 #pragma weak bl2_el3_plat_arch_setup
 #pragma weak bl2_el3_plat_prepare_exit
diff --git a/plat/arm/common/arm_bl2_setup.c b/plat/arm/common/arm_bl2_setup.c
index b661eb15afd82499421e6025cb26287aa14b2ad7..32617f68d92eb2f13c559c99a2104c9c0cab7179 100644
--- a/plat/arm/common/arm_bl2_setup.c
+++ b/plat/arm/common/arm_bl2_setup.c
@@ -18,10 +18,9 @@
 #include <lib/optee_utils.h>
 #endif
 #include <lib/utils.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 /* Data structure which holds the extents of the trusted SRAM for BL2 */
 static meminfo_t bl2_tzram_layout __aligned(CACHE_WRITEBACK_GRANULE);
 
diff --git a/plat/arm/common/arm_bl2u_setup.c b/plat/arm/common/arm_bl2u_setup.c
index 332ed14cf123cd1454d963a776d6b1814235f41e..9f44b9e6c656ef173a6c75f5514920b29b378ed0 100644
--- a/plat/arm/common/arm_bl2u_setup.c
+++ b/plat/arm/common/arm_bl2u_setup.c
@@ -12,10 +12,9 @@
 #include <arch_helpers.h>
 #include <common/bl_common.h>
 #include <drivers/generic_delay_timer.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 /* Weak definitions may be overridden in specific ARM standard platform */
 #pragma weak bl2u_platform_setup
 #pragma weak bl2u_early_platform_setup
diff --git a/plat/arm/common/arm_bl31_setup.c b/plat/arm/common/arm_bl31_setup.c
index dacefc457b0ec6bf3ec951feb84399221e77245f..8e1a26300e8d12cfc3e5843478be42b7b34aab48 100644
--- a/plat/arm/common/arm_bl31_setup.c
+++ b/plat/arm/common/arm_bl31_setup.c
@@ -15,11 +15,10 @@
 #include <lib/mmio.h>
 #include <lib/utils.h>
 #include <lib/xlat_tables/xlat_tables_compat.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-#include <plat_arm.h>
-
 /*
  * Placeholder variables for copying the arguments that have been passed to
  * BL31 from BL2.
diff --git a/plat/arm/common/arm_cci.c b/plat/arm/common/arm_cci.c
index 7ee997e29641e1821453526fb768f0261db18693..3795fc52f0f59811b987e13349fa9841ff3decab 100644
--- a/plat/arm/common/arm_cci.c
+++ b/plat/arm/common/arm_cci.c
@@ -9,8 +9,7 @@
 #include <arch.h>
 #include <drivers/arm/cci.h>
 #include <lib/utils.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 static const int cci_map[] = {
 	PLAT_ARM_CCI_CLUSTER0_SL_IFACE_IX,
diff --git a/plat/arm/common/arm_ccn.c b/plat/arm/common/arm_ccn.c
index 6aa56f217dabd080658859c94ff0c79d0440fcef..2e681ca1f17c57c671f03850a88b73db84c386d2 100644
--- a/plat/arm/common/arm_ccn.c
+++ b/plat/arm/common/arm_ccn.c
@@ -8,8 +8,7 @@
 
 #include <arch.h>
 #include <drivers/arm/ccn.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 static const unsigned char master_to_rn_id_map[] = {
 	PLAT_ARM_CLUSTER_TO_CCN_ID_MAP
diff --git a/plat/arm/common/arm_common.c b/plat/arm/common/arm_common.c
index 4cd2ce3d6b3ce151b35dae0a117530df7c1ba0b9..5361d4ad169760a7eca197e583bdf19f7de54428 100644
--- a/plat/arm/common/arm_common.c
+++ b/plat/arm/common/arm_common.c
@@ -14,11 +14,10 @@
 #include <common/romlib.h>
 #include <lib/mmio.h>
 #include <lib/xlat_tables/xlat_tables_compat.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <services/secure_partition.h>
 
-#include <plat_arm.h>
-
 /* Weak definitions may be overridden in specific ARM standard platform */
 #pragma weak plat_get_ns_image_entrypoint
 #pragma weak plat_arm_get_mmap
diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk
index 9ad7bd7231fb82721ebeba1b689eadc17288770d..f18a9af698268d4cd5f78dee06c8abc3f065c31a 100644
--- a/plat/arm/common/arm_common.mk
+++ b/plat/arm/common/arm_common.mk
@@ -141,9 +141,6 @@ ifeq (${ARM_CRYPTOCELL_INTEG},1)
     endif
 endif
 
-PLAT_INCLUDES		+=	-Iinclude/common/tbbr				\
-				-Iinclude/plat/arm/common
-
 ifeq (${ARCH}, aarch64)
 PLAT_INCLUDES		+=	-Iinclude/plat/arm/common/aarch64
 endif
@@ -257,8 +254,6 @@ ifneq (${TRUSTED_BOARD_BOOT},0)
 				drivers/auth/img_parser_mod.c			\
 				drivers/auth/tbbr/tbbr_cot.c			\
 
-    PLAT_INCLUDES	+=	-Iinclude/bl1/tbbr
-
     BL1_SOURCES		+=	${AUTH_SOURCES}					\
 				bl1/tbbr/tbbr_img_desc.c			\
 				plat/arm/common/arm_bl1_fwu.c			\
diff --git a/plat/arm/common/arm_console.c b/plat/arm/common/arm_console.c
index 29cb378275803b901e9907d8da58f5d45d579d07..03670858ca3b640fc8ae3600dffbcf97306cf086 100644
--- a/plat/arm/common/arm_console.c
+++ b/plat/arm/common/arm_console.c
@@ -11,8 +11,7 @@
 #include <common/debug.h>
 #include <drivers/arm/pl011.h>
 #include <drivers/console.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 /*******************************************************************************
  * Functions that set up the console
diff --git a/plat/arm/common/arm_dyn_cfg.c b/plat/arm/common/arm_dyn_cfg.c
index 6c6dc568ca34d1ad6e5e51621ae966b16caeb66e..1c58649ba51c59695940d6c63ad798d0b7eb067b 100644
--- a/plat/arm/common/arm_dyn_cfg.c
+++ b/plat/arm/common/arm_dyn_cfg.c
@@ -15,11 +15,10 @@
 #if TRUSTED_BOARD_BOOT
 #include <drivers/auth/mbedtls/mbedtls_config.h>
 #endif
+#include <plat/arm/common/arm_dyn_cfg_helpers.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <arm_dyn_cfg_helpers.h>
-#include <plat_arm.h>
-
 /* Variable to store the address to TB_FW_CONFIG passed from BL1 */
 static void *tb_fw_cfg_dtb;
 static size_t tb_fw_cfg_dtb_size;
diff --git a/plat/arm/common/arm_dyn_cfg_helpers.c b/plat/arm/common/arm_dyn_cfg_helpers.c
index bf2f15643d54cb4e6357819f64cc2e4982b99b91..36d37f8f66069ae4091d765eeb9a59e3a1b2e3bb 100644
--- a/plat/arm/common/arm_dyn_cfg_helpers.c
+++ b/plat/arm/common/arm_dyn_cfg_helpers.c
@@ -10,9 +10,8 @@
 
 #include <common/desc_image_load.h>
 #include <common/fdt_wrappers.h>
-
-#include <arm_dyn_cfg_helpers.h>
-#include <plat_arm.h>
+#include <plat/arm/common/arm_dyn_cfg_helpers.h>
+#include <plat/arm/common/plat_arm.h>
 
 #define DTB_PROP_MBEDTLS_HEAP_ADDR "mbedtls_heap_addr"
 #define DTB_PROP_MBEDTLS_HEAP_SIZE "mbedtls_heap_size"
diff --git a/plat/arm/common/arm_err.c b/plat/arm/common/arm_err.c
index 8650d48a7d7e43e99c76bf9b15e807984e0eae3f..e77f5dc5c8c43a1dd4faa689068e6492c0d3bcee 100644
--- a/plat/arm/common/arm_err.c
+++ b/plat/arm/common/arm_err.c
@@ -13,10 +13,9 @@
 #include <common/debug.h>
 #include <drivers/cfi/v2m_flash.h>
 #include <drivers/console.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 #pragma weak plat_arm_error_handler
 
 /*
diff --git a/plat/arm/common/arm_gicv2.c b/plat/arm/common/arm_gicv2.c
index fc848c19878389a664f85791a38b4969b22139c1..80a845fa12b2c6f7d95a03c6c13b37b9da65001a 100644
--- a/plat/arm/common/arm_gicv2.c
+++ b/plat/arm/common/arm_gicv2.c
@@ -7,10 +7,9 @@
 #include <platform_def.h>
 
 #include <drivers/arm/gicv2.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 /******************************************************************************
  * The following functions are defined as weak to allow a platform to override
  * the way the GICv2 driver is initialised and used.
diff --git a/plat/arm/common/arm_gicv3.c b/plat/arm/common/arm_gicv3.c
index e16e13d2447b3380f0ec41ee38080fff4107648f..93bebf34702c360049d4a49d28fe46cc4ed88017 100644
--- a/plat/arm/common/arm_gicv3.c
+++ b/plat/arm/common/arm_gicv3.c
@@ -9,10 +9,9 @@
 #include <common/interrupt_props.h>
 #include <drivers/arm/gicv3.h>
 #include <lib/utils.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 /******************************************************************************
  * The following functions are defined as weak to allow a platform to override
  * the way the GICv3 driver is initialised and used.
diff --git a/plat/arm/common/arm_image_load.c b/plat/arm/common/arm_image_load.c
index 74018d2d07978c2f105155dcc2efbf59cc7b6220..2faaa76c4319be2213daa0a49624a7e5a069ef87 100644
--- a/plat/arm/common/arm_image_load.c
+++ b/plat/arm/common/arm_image_load.c
@@ -7,10 +7,9 @@
 #include <assert.h>
 #include <common/bl_common.h>
 #include <common/desc_image_load.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 #pragma weak plat_flush_next_bl_params
 #pragma weak plat_get_bl_image_load_info
 #pragma weak plat_get_next_bl_params
diff --git a/plat/arm/common/arm_io_storage.c b/plat/arm/common/arm_io_storage.c
index d7c5cac2463e9cc3f7106fcf1b131a7aa60429a2..fc1eb490e93374254763bdef8faba89177f5cf0a 100644
--- a/plat/arm/common/arm_io_storage.c
+++ b/plat/arm/common/arm_io_storage.c
@@ -15,11 +15,10 @@
 #include <drivers/io/io_memmap.h>
 #include <drivers/io/io_storage.h>
 #include <lib/utils.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <tools_share/firmware_image_package.h>
 
-#include <plat_arm.h>
-
 /* IO devices */
 static const io_dev_connector_t *fip_dev_con;
 static uintptr_t fip_dev_handle;
diff --git a/plat/arm/common/arm_nor_psci_mem_protect.c b/plat/arm/common/arm_nor_psci_mem_protect.c
index 4ae57e5344cc965f590f4b74fcd25352b50ff0c1..dfbd12900c69e73961c83188d5b46c0c14345ae2 100644
--- a/plat/arm/common/arm_nor_psci_mem_protect.c
+++ b/plat/arm/common/arm_nor_psci_mem_protect.c
@@ -11,8 +11,7 @@
 #include <lib/psci/psci.h>
 #include <lib/mmio.h>
 #include <lib/utils.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 /*
  * DRAM1 is used also to load the NS boot loader. For this reason we
diff --git a/plat/arm/common/arm_pm.c b/plat/arm/common/arm_pm.c
index 4ce13aa6ab06bf403fc3436ddca8aeaa7f482639..cb87bafdd0bff45d4431580b5046dbc00f4aff89 100644
--- a/plat/arm/common/arm_pm.c
+++ b/plat/arm/common/arm_pm.c
@@ -11,10 +11,9 @@
 
 #include <arch_helpers.h>
 #include <lib/psci/psci.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 /* Allow ARM Standard platforms to override these functions */
 #pragma weak plat_arm_program_trusted_mailbox
 
diff --git a/plat/arm/common/arm_sip_svc.c b/plat/arm/common/arm_sip_svc.c
index 6b0f7e7be8ab475ac13e136d5e6d27033186782c..3d308a3351f7bcfe8d9524520d1a43f05d672220 100644
--- a/plat/arm/common/arm_sip_svc.c
+++ b/plat/arm/common/arm_sip_svc.c
@@ -9,11 +9,10 @@
 #include <common/debug.h>
 #include <common/runtime_svc.h>
 #include <lib/pmf/pmf.h>
+#include <plat/arm/common/arm_sip_svc.h>
+#include <plat/arm/common/plat_arm.h>
 #include <tools_share/uuid.h>
 
-#include <arm_sip_svc.h>
-#include <plat_arm.h>
-
 /* ARM SiP Service UUID */
 DEFINE_SVC_UUID2(arm_sip_svc_uid,
 	0x556d75e2, 0x6033, 0xb54b, 0xb5, 0x75,
diff --git a/plat/arm/common/arm_topology.c b/plat/arm/common/arm_topology.c
index 6986e52b0380a4eea7eee8c7209567b8008154e4..37047bcf39c8de0deabc0eb576fd4fde6a9e7c6b 100644
--- a/plat/arm/common/arm_topology.c
+++ b/plat/arm/common/arm_topology.c
@@ -7,8 +7,7 @@
 #include <platform_def.h>
 
 #include <arch.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 /*******************************************************************************
  * This function validates an MPIDR by checking whether it falls within the
diff --git a/plat/arm/common/arm_tzc400.c b/plat/arm/common/arm_tzc400.c
index 322713b5f8c8053effa78c74130d6f9f94042eac..34e650f196220be1ca7d4f2256da9f0a44be1fa3 100644
--- a/plat/arm/common/arm_tzc400.c
+++ b/plat/arm/common/arm_tzc400.c
@@ -8,8 +8,7 @@
 
 #include <common/debug.h>
 #include <drivers/arm/tzc400.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 /* Weak definitions may be overridden in specific ARM standard platform */
 #pragma weak plat_arm_security_setup
diff --git a/plat/arm/common/arm_tzc_dmc500.c b/plat/arm/common/arm_tzc_dmc500.c
index 07260a7e9b5b5b27e3dca74c74e6d69ac4cc11ca..e9f897f4d293d3627259077daa1c827c4b2b0138 100644
--- a/plat/arm/common/arm_tzc_dmc500.c
+++ b/plat/arm/common/arm_tzc_dmc500.c
@@ -10,8 +10,7 @@
 
 #include <common/debug.h>
 #include <drivers/arm/tzc_dmc500.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 /*******************************************************************************
  * Initialize the DMC500-TrustZone Controller for ARM standard platforms.
diff --git a/plat/arm/common/execution_state_switch.c b/plat/arm/common/execution_state_switch.c
index e3134102dd68391aeb8fcecd2ff550f61b0c6bd7..d471130294f1a71d32105482f894596ba18b9404 100644
--- a/plat/arm/common/execution_state_switch.c
+++ b/plat/arm/common/execution_state_switch.c
@@ -12,11 +12,10 @@
 #include <lib/el3_runtime/context_mgmt.h>
 #include <lib/psci/psci.h>
 #include <lib/utils.h>
+#include <plat/arm/common/arm_sip_svc.h>
+#include <plat/arm/common/plat_arm.h>
 #include <smccc_helpers.h>
 
-#include <arm_sip_svc.h>
-#include <plat_arm.h>
-
 /*
  * Handle SMC from a lower exception level to switch its execution state
  * (either from AArch64 to AArch32, or vice versa).
diff --git a/plat/arm/common/sp_min/arm_sp_min_setup.c b/plat/arm/common/sp_min/arm_sp_min_setup.c
index 967b551e4e725573e864c77730f9dfba10bdd011..c0ea027b846839ad23df7ea53d37d0fa5275e8fb 100644
--- a/plat/arm/common/sp_min/arm_sp_min_setup.c
+++ b/plat/arm/common/sp_min/arm_sp_min_setup.c
@@ -14,10 +14,9 @@
 #include <drivers/arm/pl011.h>
 #include <drivers/console.h>
 #include <lib/mmio.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 static entry_point_info_t bl33_image_ep_info;
 
 /* Weak definitions may be overridden in specific ARM standard platform */
diff --git a/plat/arm/common/tsp/arm_tsp_setup.c b/plat/arm/common/tsp/arm_tsp_setup.c
index 29376972de680d64890beb729f177fe42eab53df..2965ccd40cb44f640411f7281ada2f0a102407b3 100644
--- a/plat/arm/common/tsp/arm_tsp_setup.c
+++ b/plat/arm/common/tsp/arm_tsp_setup.c
@@ -13,8 +13,7 @@
 #include <common/debug.h>
 #include <drivers/arm/pl011.h>
 #include <drivers/console.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 #define BL32_END (unsigned long)(&__BL32_END__)
 
diff --git a/plat/arm/css/common/css_bl1_setup.c b/plat/arm/css/common/css_bl1_setup.c
index ae0f01133f631865c1137d70d79f625c36dbedc8..596cc3d676c20cc1345b2959b3a6e885e56cf98a 100644
--- a/plat/arm/css/common/css_bl1_setup.c
+++ b/plat/arm/css/common/css_bl1_setup.c
@@ -6,11 +6,10 @@
 
 #include <common/bl_common.h>
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
+#include <plat/arm/soc/common/soc_css.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-#include <soc_css.h>
-
 void bl1_platform_setup(void)
 {
 	arm_bl1_platform_setup();
diff --git a/plat/arm/css/common/css_bl2_setup.c b/plat/arm/css/common/css_bl2_setup.c
index 6aefe03a7b03a1b6b503f9aabc7b7de1bb994541..1538e29763ba58479913b0aa43eddfa88d1794fd 100644
--- a/plat/arm/css/common/css_bl2_setup.c
+++ b/plat/arm/css/common/css_bl2_setup.c
@@ -10,10 +10,9 @@
 #include <common/debug.h>
 #include <lib/mmio.h>
 #include <lib/utils.h>
+#include <plat/arm/common/plat_arm.h>
 #include <platform_def.h>
 
-#include <plat_arm.h>
-
 #include "../drivers/scp/css_scp.h"
 
 /* Weak definition may be overridden in specific CSS based platform */
diff --git a/plat/arm/css/common/css_bl2u_setup.c b/plat/arm/css/common/css_bl2u_setup.c
index 564e98f705a2def3d317389af991b363c175ff42..c3b4f2b3ffcb73bef44ab8c54800f9c0344df0a3 100644
--- a/plat/arm/css/common/css_bl2u_setup.c
+++ b/plat/arm/css/common/css_bl2u_setup.c
@@ -6,10 +6,9 @@
 
 #include <common/bl_common.h>
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 #include "../drivers/scp/css_scp.h"
 
 /* Weak definition may be overridden in specific CSS based platform */
diff --git a/plat/arm/css/common/css_common.mk b/plat/arm/css/common/css_common.mk
index ca1edab1754ca3cd72d56a34abf5ad43a6862c6c..0795306cb3f31a8a06a8ef448ec814be98a73b56 100644
--- a/plat/arm/css/common/css_common.mk
+++ b/plat/arm/css/common/css_common.mk
@@ -11,8 +11,7 @@ CSS_LOAD_SCP_IMAGES	?=	1
 # By default, SCMI driver is disabled for CSS platforms
 CSS_USE_SCMI_SDS_DRIVER	?=	0
 
-PLAT_INCLUDES		+=	-Iinclude/plat/arm/css/common			\
-				-Iinclude/plat/arm/css/common/aarch64
+PLAT_INCLUDES		+=	-Iinclude/plat/arm/css/common/aarch64
 
 
 PLAT_BL_COMMON_SOURCES	+=	plat/arm/css/common/${ARCH}/css_helpers.S
diff --git a/plat/arm/css/common/css_pm.c b/plat/arm/css/common/css_pm.c
index 8a156e675dfa14c2f762c1d1e108c58c642a88d7..47412dfa4277f1ce4bfd1af05b92fbaa1fae74d2 100644
--- a/plat/arm/css/common/css_pm.c
+++ b/plat/arm/css/common/css_pm.c
@@ -12,11 +12,10 @@
 #include <arch_helpers.h>
 #include <common/debug.h>
 #include <lib/cassert.h>
+#include <plat/arm/common/plat_arm.h>
+#include <plat/arm/css/common/css_pm.h>
 #include <plat/common/platform.h>
 
-#include <css_pm.h>
-#include <plat_arm.h>
-
 #include "../drivers/scp/css_scp.h"
 
 /* Allow CSS platforms to override `plat_arm_psci_pm_ops` */
diff --git a/plat/arm/css/common/css_topology.c b/plat/arm/css/common/css_topology.c
index 8ac223230812d99093fa79f1426e7a1428b8525c..8aca7449fb61c325a8285a227d3dfbeff9f42cd0 100644
--- a/plat/arm/css/common/css_topology.c
+++ b/plat/arm/css/common/css_topology.c
@@ -6,10 +6,9 @@
 
 #include <assert.h>
 
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
-
 #if ARM_PLAT_MT
 #pragma weak plat_arm_get_cpu_pe_count
 #endif
diff --git a/plat/arm/css/drivers/mhu/css_mhu.c b/plat/arm/css/drivers/mhu/css_mhu.c
index 981df9c4327fabbfb77ded1ba1545c4b8674c9a2..65695d846212ca4970b69414bbbb1a70fef6e8ba 100644
--- a/plat/arm/css/drivers/mhu/css_mhu.c
+++ b/plat/arm/css/drivers/mhu/css_mhu.c
@@ -11,8 +11,7 @@
 #include <arch_helpers.h>
 #include <lib/bakery_lock.h>
 #include <lib/mmio.h>
-
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
 
 #include "css_mhu.h"
 
diff --git a/plat/arm/css/drivers/scp/css_pm_scmi.c b/plat/arm/css/drivers/scp/css_pm_scmi.c
index fa4dd8a886fcee48af3aeb9e6f0f4ff4033f2e38..ab9f5f58dfd541806bb741dd4fee7a7276f02d9d 100644
--- a/plat/arm/css/drivers/scp/css_pm_scmi.c
+++ b/plat/arm/css/drivers/scp/css_pm_scmi.c
@@ -9,12 +9,11 @@
 
 #include <arch_helpers.h>
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
+#include <plat/arm/css/common/css_pm.h>
 #include <plat/common/platform.h>
 #include <platform_def.h>
 
-#include <css_pm.h>
-#include <plat_arm.h>
-
 #include "../scmi/scmi.h"
 #include "css_scp.h"
 
diff --git a/plat/arm/css/drivers/scp/css_pm_scpi.c b/plat/arm/css/drivers/scp/css_pm_scpi.c
index f53ac301587f1aa44e121596d2be3174f7cf0993..04c5f9b4968c03f19cddc0da66093d8fec23c1d9 100644
--- a/plat/arm/css/drivers/scp/css_pm_scpi.c
+++ b/plat/arm/css/drivers/scp/css_pm_scpi.c
@@ -8,9 +8,8 @@
 
 #include <arch_helpers.h>
 #include <common/debug.h>
-
-#include <css_pm.h>
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
+#include <plat/arm/css/common/css_pm.h>
 
 #include "../scpi/css_scpi.h"
 #include "css_scp.h"
diff --git a/plat/arm/css/sgi/include/sgi_base_platform_def.h b/plat/arm/css/sgi/include/sgi_base_platform_def.h
index 4afaae1d9ad528f3c7cd28f7a6adaebbe4304cc8..c0e655586137f674b42c2412ff1be796d45e9fb3 100644
--- a/plat/arm/css/sgi/include/sgi_base_platform_def.h
+++ b/plat/arm/css/sgi/include/sgi_base_platform_def.h
@@ -9,15 +9,14 @@
 
 #include <lib/utils_def.h>
 #include <lib/xlat_tables/xlat_tables_defs.h>
+#include <plat/arm/board/common/board_css_def.h>
+#include <plat/arm/board/common/v2m_def.h>
+#include <plat/arm/common/arm_def.h>
+#include <plat/arm/common/arm_spm_def.h>
+#include <plat/arm/css/common/css_def.h>
+#include <plat/arm/soc/common/soc_css_def.h>
 #include <plat/common/common_def.h>
 
-#include <arm_def.h>
-#include <arm_spm_def.h>
-#include <board_css_def.h>
-#include <css_def.h>
-#include <soc_css_def.h>
-#include <v2m_def.h>
-
 #define PLATFORM_CORE_COUNT		(PLAT_ARM_CLUSTER_COUNT *	\
 					CSS_SGI_MAX_CPUS_PER_CLUSTER * \
 					CSS_SGI_MAX_PE_PER_CPU)
diff --git a/plat/arm/css/sgi/sgi_bl31_setup.c b/plat/arm/css/sgi/sgi_bl31_setup.c
index 617a62b775db7f07316d42f3e72783c38a61f4b3..53244825b96c468aa98b3472e05da44399a4f36f 100644
--- a/plat/arm/css/sgi/sgi_bl31_setup.c
+++ b/plat/arm/css/sgi/sgi_bl31_setup.c
@@ -10,8 +10,8 @@
 
 #include <common/bl_common.h>
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
 
-#include <plat_arm.h>
 #include <sgi_ras.h>
 #include <sgi_variant.h>
 
diff --git a/plat/arm/css/sgi/sgi_image_load.c b/plat/arm/css/sgi/sgi_image_load.c
index e52124f2246f55e97f92cc14ecc668b65ad71e8b..a2f10dcc7f716394238e29aa86ac925dd4fcef30 100644
--- a/plat/arm/css/sgi/sgi_image_load.c
+++ b/plat/arm/css/sgi/sgi_image_load.c
@@ -9,9 +9,9 @@
 #include <arch_helpers.h>
 #include <common/debug.h>
 #include <common/desc_image_load.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
 #include <sgi_variant.h>
 
 /*******************************************************************************
diff --git a/plat/arm/css/sgi/sgi_plat.c b/plat/arm/css/sgi/sgi_plat.c
index 72cda7f15d22463b1a088e52c54f740b19071592..83ca30c87e57c29f6b4df78850f093ee85cc2350 100644
--- a/plat/arm/css/sgi/sgi_plat.c
+++ b/plat/arm/css/sgi/sgi_plat.c
@@ -11,11 +11,10 @@
 #include <common/bl_common.h>
 #include <common/debug.h>
 #include <drivers/arm/ccn.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 #include <services/secure_partition.h>
 
-#include <plat_arm.h>
-
 #if USE_COHERENT_MEM
 /*
  * The next 2 constants identify the extents of the coherent memory region.
diff --git a/plat/arm/css/sgi/sgi_ras.c b/plat/arm/css/sgi/sgi_ras.c
index a6a32d150d1bd5a6f5985df7dd42c1d2a8caa90d..0001ffdde973f89eb48dbc36746d8023ee056de4 100644
--- a/plat/arm/css/sgi/sgi_ras.c
+++ b/plat/arm/css/sgi/sgi_ras.c
@@ -10,12 +10,12 @@
 #include <bl31/interrupt_mgmt.h>
 #include <lib/el3_runtime/context_mgmt.h>
 #include <lib/extensions/ras.h>
+#include <plat/arm/common/arm_spm_def.h>
 #include <plat/common/platform.h>
 #include <services/mm_svc.h>
 #include <services/sdei.h>
 #include <services/spm_svc.h>
 
-#include <arm_spm_def.h>
 #include <sgi_ras.h>
 
 static int sgi_ras_intr_handler(const struct err_record_info *err_rec,
diff --git a/plat/arm/css/sgi/sgi_topology.c b/plat/arm/css/sgi/sgi_topology.c
index 2921c0c276e5f441855c655ea1e6f5a76c7d7243..dafaf40bf986029ef1145a6f166b9fc1a9550b51 100644
--- a/plat/arm/css/sgi/sgi_topology.c
+++ b/plat/arm/css/sgi/sgi_topology.c
@@ -4,7 +4,8 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
+
 #include <sgi_variant.h>
 
 /* Topology */
diff --git a/plat/arm/css/sgm/include/platform_oid.h b/plat/arm/css/sgm/include/platform_oid.h
index 18d41e3dfffe33e11d4390c2d0a8a8b807d7ed9f..fd1854a038abd54bf57a472df2d180ea8ebc6e7d 100644
--- a/plat/arm/css/sgm/include/platform_oid.h
+++ b/plat/arm/css/sgm/include/platform_oid.h
@@ -3,7 +3,8 @@
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
-#include "../../../../../include/plat/arm/board/common/board_arm_oid.h"
+
+#include <plat/arm/board/common/board_arm_oid.h>
 
 /*
  * Required platform OIDs
diff --git a/plat/arm/css/sgm/include/sgm_base_platform_def.h b/plat/arm/css/sgm/include/sgm_base_platform_def.h
index e3fa3f30e6ac76c90de4e0c0f104190200b0e9c7..4647e742fa895e1fe2c59e5c90e89851ea7f272f 100644
--- a/plat/arm/css/sgm/include/sgm_base_platform_def.h
+++ b/plat/arm/css/sgm/include/sgm_base_platform_def.h
@@ -9,14 +9,13 @@
 
 #include <drivers/arm/tzc400.h>
 #include <drivers/arm/tzc_common.h>
+#include <plat/arm/board/common/board_css_def.h>
+#include <plat/arm/board/common/v2m_def.h>
+#include <plat/arm/common/arm_def.h>
+#include <plat/arm/css/common/css_def.h>
+#include <plat/arm/soc/common/soc_css_def.h>
 #include <plat/common/common_def.h>
 
-#include <arm_def.h>
-#include <board_css_def.h>
-#include <css_def.h>
-#include <soc_css_def.h>
-#include <v2m_def.h>
-
 /* CPU topology */
 #define PLAT_ARM_CLUSTER_COUNT		1
 #define PLAT_ARM_CLUSTER_CORE_COUNT	8
diff --git a/plat/arm/css/sgm/sgm_bl1_setup.c b/plat/arm/css/sgm/sgm_bl1_setup.c
index 8b7c5dabbea31858976dc52ad6b8dd55612f799d..203651598d0ee125d6204351d3b9f22592b438df 100644
--- a/plat/arm/css/sgm/sgm_bl1_setup.c
+++ b/plat/arm/css/sgm/sgm_bl1_setup.c
@@ -6,10 +6,10 @@
 
 #include <common/bl_common.h>
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
+#include <plat/arm/soc/common/soc_css.h>
 
-#include <plat_arm.h>
 #include <sgm_plat_config.h>
-#include <soc_css.h>
 
 void bl1_early_platform_setup(void)
 {
diff --git a/plat/arm/css/sgm/sgm_bl31_setup.c b/plat/arm/css/sgm/sgm_bl31_setup.c
index 7967cb59c4de29bccdb1b65495b72ed1d6b1a306..03d88e8cefba66c6e9b59116f3ead97ad13f093f 100644
--- a/plat/arm/css/sgm/sgm_bl31_setup.c
+++ b/plat/arm/css/sgm/sgm_bl31_setup.c
@@ -6,10 +6,9 @@
 
 #include <common/bl_common.h>
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
 
-#include <plat_arm.h>
 #include <sgm_plat_config.h>
-
 #include "../../css/drivers/scmi/scmi.h"
 #include "../../css/drivers/mhu/css_mhu_doorbell.h"
 
diff --git a/plat/arm/css/sgm/sgm_mmap_config.c b/plat/arm/css/sgm/sgm_mmap_config.c
index 763f36a82f095a64c3e4cff017c35d25a2365d78..e5b4b0338735a0e6e8ad527595c93bf266c58a2f 100644
--- a/plat/arm/css/sgm/sgm_mmap_config.c
+++ b/plat/arm/css/sgm/sgm_mmap_config.c
@@ -8,8 +8,8 @@
 
 #include <common/bl_common.h>
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
 
-#include <plat_arm.h>
 #include <sgm_variant.h>
 
 /*
diff --git a/plat/arm/css/sgm/sgm_plat_config.c b/plat/arm/css/sgm/sgm_plat_config.c
index 2a43487f1a721b66b2c210b7cc2ce1c288dc4e38..d9e65c513fecc83f52251dbb0f0a34e5f28656fd 100644
--- a/plat/arm/css/sgm/sgm_plat_config.c
+++ b/plat/arm/css/sgm/sgm_plat_config.c
@@ -10,8 +10,8 @@
 #include <platform_def.h>
 
 #include <common/debug.h>
+#include <plat/arm/common/plat_arm.h>
 
-#include <plat_arm.h>
 #include <sgm_plat_config.h>
 #include <sgm_variant.h>
 
diff --git a/plat/arm/css/sgm/sgm_security.c b/plat/arm/css/sgm/sgm_security.c
index 548ec7bd59e0ba06463e4264d500f7df4105223d..21d53069af5631ebed00f534056fe0be94185ef5 100644
--- a/plat/arm/css/sgm/sgm_security.c
+++ b/plat/arm/css/sgm/sgm_security.c
@@ -6,10 +6,10 @@
 
 #include <common/debug.h>
 #include <drivers/arm/tzc_dmc500.h>
+#include <plat/arm/common/plat_arm.h>
+#include <plat/arm/soc/common/soc_css.h>
 
-#include <plat_arm.h>
 #include <sgm_variant.h>
-#include <soc_css.h>
 
 /* Is populated with the DMC-500 controllers base addresses */
 static tzc_dmc500_driver_data_t plat_driver_data;
diff --git a/plat/arm/css/sgm/sgm_topology.c b/plat/arm/css/sgm/sgm_topology.c
index ce72464482cb55928f0bbe16acdfd2c1e63aece9..2d9552d7cb83ed62e4d02a51bb6efad61d557d51 100644
--- a/plat/arm/css/sgm/sgm_topology.c
+++ b/plat/arm/css/sgm/sgm_topology.c
@@ -4,7 +4,8 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
+
 #include <sgm_plat_config.h>
 
 /*******************************************************************************
diff --git a/plat/arm/css/sgm/tsp/sgm_tsp_setup.c b/plat/arm/css/sgm/tsp/sgm_tsp_setup.c
index 39bba94a3016d53aed216df8e91d0116b20ae979..5f40c4c8241487372b0cd78d6b425a1fa27c0451 100644
--- a/plat/arm/css/sgm/tsp/sgm_tsp_setup.c
+++ b/plat/arm/css/sgm/tsp/sgm_tsp_setup.c
@@ -4,7 +4,8 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include <plat_arm.h>
+#include <plat/arm/common/plat_arm.h>
+
 #include <sgm_plat_config.h>
 
 void tsp_early_platform_setup(void)
diff --git a/plat/arm/soc/common/soc_css.mk b/plat/arm/soc/common/soc_css.mk
index e00946744a7b7e0deec231f6f987ea4b5ba73dc7..8cad2a58d7aeb22acb25b5291b31d33875ab7883 100644
--- a/plat/arm/soc/common/soc_css.mk
+++ b/plat/arm/soc/common/soc_css.mk
@@ -4,8 +4,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 #
 
-PLAT_INCLUDES		+=	-Iinclude/plat/arm/soc/common/
-
 #PLAT_BL_COMMON_SOURCES	+=
 
 BL1_SOURCES		+=	plat/arm/soc/common/soc_css_security.c
diff --git a/plat/arm/soc/common/soc_css_security.c b/plat/arm/soc/common/soc_css_security.c
index b48357a6fca52733fae2c63ce65da7415820128e..4f6bf61b0ccc4272114b2f0156350515cc39491a 100644
--- a/plat/arm/soc/common/soc_css_security.c
+++ b/plat/arm/soc/common/soc_css_security.c
@@ -8,8 +8,7 @@
 
 #include <drivers/arm/nic_400.h>
 #include <lib/mmio.h>
-
-#include <soc_css.h>
+#include <plat/arm/soc/common/soc_css.h>
 
 void soc_css_init_nic400(void)
 {
diff --git a/plat/mediatek/mt8173/bl31_plat_setup.c b/plat/mediatek/mt8173/bl31_plat_setup.c
index bd384a1d418f7ee9160a2f2c7fa9ee83caaa31a9..dd23e63e6d747c56de24161cfa82dc6f197aa6c3 100644
--- a/plat/mediatek/mt8173/bl31_plat_setup.c
+++ b/plat/mediatek/mt8173/bl31_plat_setup.c
@@ -11,13 +11,13 @@
 #include <drivers/console.h>
 #include <drivers/generic_delay_timer.h>
 #include <lib/mmio.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/common_def.h>
 #include <plat/common/platform.h>
 
 #include <mcucfg.h>
 #include <mtcmos.h>
 #include <mtk_plat_common.h>
-#include <plat_arm.h>
 #include <plat_private.h>
 #include <spm.h>
 
diff --git a/plat/mediatek/mt8173/plat_pm.c b/plat/mediatek/mt8173/plat_pm.c
index 9673d2c28924230c1277e9fb0cb34fa6496fec02..1b52470d574994ffda4d6152dc0e3365b45925d6 100644
--- a/plat/mediatek/mt8173/plat_pm.c
+++ b/plat/mediatek/mt8173/plat_pm.c
@@ -15,11 +15,11 @@
 #include <lib/bakery_lock.h>
 #include <lib/mmio.h>
 #include <lib/psci/psci.h>
+#include <plat/arm/common/plat_arm.h>
 
 #include <mcucfg.h>
 #include <mt8173_def.h>
 #include <mt_cpuxgpt.h> /* generic_timer_backup() */
-#include <plat_arm.h>
 #include <plat_private.h>
 #include <power_tracer.h>
 #include <rtc.h>
diff --git a/plat/mediatek/mt8173/platform.mk b/plat/mediatek/mt8173/platform.mk
index 294aea4f8b3606d982ef8056536f1fe19c5eda4f..0726efe45d25b31d96a92db5471daf968b0d06c7 100644
--- a/plat/mediatek/mt8173/platform.mk
+++ b/plat/mediatek/mt8173/platform.mk
@@ -9,7 +9,6 @@ MTK_PLAT_SOC		:=	${MTK_PLAT}/${PLAT}
 
 PLAT_INCLUDES		:=	-I${MTK_PLAT}/common/				\
 				-I${MTK_PLAT}/common/drivers/uart/		\
-				-Iinclude/plat/arm/common			\
 				-Iinclude/plat/arm/common/aarch64		\
 				-I${MTK_PLAT_SOC}/drivers/crypt/		\
 				-I${MTK_PLAT_SOC}/drivers/mtcmos/		\
diff --git a/plat/xilinx/zynqmp/bl31_zynqmp_setup.c b/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
index 8ecd6d7afbe567fd36917c26a4cec0a8be071e8d..b0eb66ca40aa59ae23bc0ae2834e62d3c668843c 100644
--- a/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
+++ b/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
@@ -11,10 +11,11 @@
 #include <common/bl_common.h>
 #include <common/debug.h>
 #include <drivers/console.h>
-#include <plat_arm.h>
-#include <plat_private.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
+#include <plat_private.h>
+
 #define BL31_END (unsigned long)(&__BL31_END__)
 
 static entry_point_info_t bl32_image_ep_info;
diff --git a/plat/xilinx/zynqmp/plat_psci.c b/plat/xilinx/zynqmp/plat_psci.c
index 8522d3e6c1c2217f5a0a4c4353c563fb47e2a1a1..a32e08988a519feac07b7a2e1a4f9b4c872778ff 100644
--- a/plat/xilinx/zynqmp/plat_psci.c
+++ b/plat/xilinx/zynqmp/plat_psci.c
@@ -12,10 +12,10 @@
 #include <drivers/arm/gicv2.h>
 #include <lib/mmio.h>
 #include <lib/psci/psci.h>
-#include <plat_private.h>
+#include <plat/arm/common/plat_arm.h>
 #include <plat/common/platform.h>
 
-#include <plat_arm.h>
+#include <plat_private.h>
 #include "pm_api_sys.h"
 #include "pm_client.h"
 
diff --git a/plat/xilinx/zynqmp/platform.mk b/plat/xilinx/zynqmp/platform.mk
index d147916f7cf43c7147c3eacee5961fc549ab43e0..b2f91cd8e0df90aeb688b9192e931be4ec7b40a6 100644
--- a/plat/xilinx/zynqmp/platform.mk
+++ b/plat/xilinx/zynqmp/platform.mk
@@ -45,8 +45,7 @@ ifdef ZYNQMP_WDT_RESTART
 $(eval $(call add_define,ZYNQMP_WDT_RESTART))
 endif
 
-PLAT_INCLUDES		:=	-Iinclude/plat/arm/common/			\
-				-Iinclude/plat/arm/common/aarch64/		\
+PLAT_INCLUDES		:=	-Iinclude/plat/arm/common/aarch64/		\
 				-Iplat/xilinx/common/include/			\
 				-Iplat/xilinx/zynqmp/include/			\
 				-Iplat/xilinx/zynqmp/pm_service/		\
diff --git a/plat/xilinx/zynqmp/tsp/tsp_plat_setup.c b/plat/xilinx/zynqmp/tsp/tsp_plat_setup.c
index 97718d6566b452be5e73e2ed34436c04b3161044..902e4b3b6d09cccb05d844b152cde84a776ef01f 100644
--- a/plat/xilinx/zynqmp/tsp/tsp_plat_setup.c
+++ b/plat/xilinx/zynqmp/tsp/tsp_plat_setup.c
@@ -7,8 +7,8 @@
 #include <common/bl_common.h>
 #include <common/debug.h>
 #include <drivers/console.h>
+#include <plat/arm/common/plat_arm.h>
 
-#include <plat_arm.h>
 #include <plat_private.h>
 #include <platform_tsp.h>