/*
- * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
do_cold_boot:
.endif /* _warm_boot_mailbox */
+ /* ---------------------------------------------------------------------
+ * It is a cold boot.
+ * Perform any processor specific actions upon reset e.g. cache, TLB
+ * invalidations etc.
+ * ---------------------------------------------------------------------
+ */
+ bl reset_handler
+
+ el3_arch_init_common \_exception_vectors
+
.if \_secondary_cold_boot
/* -------------------------------------------------------------
- * It is a cold boot.
+ * Check if this is a primary or secondary CPU cold boot.
* The primary CPU will set up the platform while the
* secondaries are placed in a platform-specific state until the
* primary CPU performs the necessary actions to bring them out
.endif /* _secondary_cold_boot */
/* ---------------------------------------------------------------------
- * Perform any processor specific actions upon reset e.g. cache, TLB
- * invalidations etc.
+ * Initialize memory now. Secondary CPU initialization won't get to this
+ * point.
* ---------------------------------------------------------------------
*/
- bl reset_handler
-
- el3_arch_init_common \_exception_vectors
.if \_init_memory
bl platform_mem_init