diff options
Diffstat (limited to 'drivers/auth/auth_mod.c')
-rw-r--r-- | drivers/auth/auth_mod.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/auth/auth_mod.c b/drivers/auth/auth_mod.c index 88ef0b026..2c8643f40 100644 --- a/drivers/auth/auth_mod.c +++ b/drivers/auth/auth_mod.c @@ -1,5 +1,5 @@ /* - * 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: @@ -50,6 +50,8 @@ } \ } while (0) +#pragma weak plat_set_nv_ctr2 + /* Pointer to CoT */ extern const auth_img_desc_t *const cot_desc_ptr; extern unsigned int auth_img_flags[]; @@ -297,21 +299,20 @@ static int auth_nvctr(const auth_method_param_nv_ctr_t *param, /* Invalid NV-counter */ return 1; } else if (cert_nv_ctr > plat_nv_ctr) { - if (img_desc->parent == NULL) { - /* This certificate has been signed with the ROT key. - * Update the platform counter value */ - rc = plat_set_nv_ctr(param->plat_nv_ctr->cookie, - cert_nv_ctr); - return_if_error(rc); - } else { - /* Secondary certificates cannot modify the counter */ - return 1; - } + rc = plat_set_nv_ctr2(param->plat_nv_ctr->cookie, + img_desc, cert_nv_ctr); + return_if_error(rc); } return 0; } +int plat_set_nv_ctr2(void *cookie, const auth_img_desc_t *img_desc __unused, + unsigned int nv_ctr) +{ + return plat_set_nv_ctr(cookie, nv_ctr); +} + /* * Return the parent id in the output parameter '*parent_id' * |