diff --git a/drivers/arm/ccn/ccn.c b/drivers/arm/ccn/ccn.c index d739c6b..ca06182 100644 --- a/drivers/arm/ccn/ccn.c +++ b/drivers/arm/ccn/ccn.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2017, 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: @@ -38,7 +38,7 @@ #include "ccn_private.h" static const ccn_desc_t *ccn_plat_desc; -#ifdef IMAGE_BL31 +#if defined(IMAGE_BL31) || (defined(AARCH32) && defined(IMAGE_BL32)) DEFINE_BAKERY_LOCK(ccn_lock); #endif @@ -285,7 +285,7 @@ assert(ccn_plat_desc); assert(ccn_plat_desc->periphbase); -#ifdef IMAGE_BL31 +#if defined(IMAGE_BL31) || (defined(AARCH32) && defined(IMAGE_BL32)) bakery_lock_get(&ccn_lock); #endif start_region_id = region_id; @@ -305,7 +305,7 @@ rn_id_map); } -#ifdef IMAGE_BL31 +#if defined(IMAGE_BL31) || (defined(AARCH32) && defined(IMAGE_BL32)) bakery_lock_release(&ccn_lock); #endif } diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h index 697b917..0b57ba8 100644 --- a/include/plat/arm/common/plat_arm.h +++ b/include/plat/arm/common/plat_arm.h @@ -64,7 +64,7 @@ #endif ); -#ifdef IMAGE_BL31 +#if defined(IMAGE_BL31) || (defined(AARCH32) && defined(IMAGE_BL32)) /* * Use this macro to instantiate lock before it is used in below * arm_lock_xxx() macros @@ -88,7 +88,7 @@ #define arm_lock_get() #define arm_lock_release() -#endif /* IMAGE_BL31 */ +#endif /* defined(IMAGE_BL31) || (defined(AARCH32) && defined(IMAGE_BL32)) */ #if ARM_RECOM_STATE_ID_ENC /* diff --git a/lib/locks/bakery/bakery_lock_normal.c b/lib/locks/bakery/bakery_lock_normal.c index 5a2fb07..a3a6c00 100644 --- a/lib/locks/bakery/bakery_lock_normal.c +++ b/lib/locks/bakery/bakery_lock_normal.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2017, 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: @@ -178,8 +178,11 @@ unsigned int their_bakery_data; me = plat_my_core_pos(); - +#ifdef AARCH32 + is_cached = read_sctlr() & SCTLR_C_BIT; +#else is_cached = read_sctlr_el3() & SCTLR_C_BIT; +#endif /* Get a ticket */ my_ticket = bakery_get_ticket(lock, me, is_cached); @@ -231,7 +234,11 @@ void bakery_lock_release(bakery_lock_t *lock) { bakery_info_t *my_bakery_info; +#ifdef AARCH32 + unsigned int is_cached = read_sctlr() & SCTLR_C_BIT; +#else unsigned int is_cached = read_sctlr_el3() & SCTLR_C_BIT; +#endif my_bakery_info = get_bakery_info(plat_my_core_pos(), lock); diff --git a/plat/common/aarch32/platform_mp_stack.S b/plat/common/aarch32/platform_mp_stack.S index a015436..0266e83 100644 --- a/plat/common/aarch32/platform_mp_stack.S +++ b/plat/common/aarch32/platform_mp_stack.S @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2017, 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: @@ -32,8 +32,8 @@ #include #include - .globl plat_get_my_stack - .globl plat_set_my_stack + .weak plat_get_my_stack + .weak plat_set_my_stack /* ----------------------------------------------------- * uintptr_t plat_get_my_stack (u_register_t mpidr)