diff mbox

[4/9] crypto: atmel-ecc: Provide config zone defines

Message ID 20180605134950.6605-4-linus.walleij@linaro.org (mailing list archive)
State Changes Requested
Delegated to: Herbert Xu
Headers show

Commit Message

Linus Walleij June 5, 2018, 1:49 p.m. UTC
The config zone has 0x16 words of 4 bytes each, so provide
some basic defines so that we can address these individually.
Rename the last word to "footer", this is where we currently
look to see if the configuration is locked.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/crypto/atmel-ecc.c |  2 +-
 drivers/crypto/atmel-ecc.h | 25 +++++++++++++++++++++++--
 2 files changed, 24 insertions(+), 3 deletions(-)

Comments

Tudor Ambarus June 12, 2018, 12:59 p.m. UTC | #1
Hi, Linus,

On 06/05/2018 04:49 PM, Linus Walleij wrote:
> The config zone has 0x16 words of 4 bytes each, so provide
> some basic defines so that we can address these individually.

Are you going to use all these defines? I would add just the defines
that are needed, when they are needed, but I guess it's a matter of
preference.

Thanks,
ta

> Rename the last word to "footer", this is where we currently
> look to see if the configuration is locked.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>   drivers/crypto/atmel-ecc.c |  2 +-
>   drivers/crypto/atmel-ecc.h | 25 +++++++++++++++++++++++--
>   2 files changed, 24 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c
> index 214b0572bf8b..f1f422385a91 100644
> --- a/drivers/crypto/atmel-ecc.c
> +++ b/drivers/crypto/atmel-ecc.c
> @@ -145,7 +145,7 @@ static void atmel_ecc_init_read_cmd(struct atmel_ecc_cmd *cmd)
>   	 * (UserExtra, Selector, LockValue, LockConfig).
>   	 */
>   	cmd->param1 = CONFIG_ZONE;
> -	cmd->param2 = DEVICE_LOCK_ADDR;
> +	cmd->param2 = CONFIG_ZONE_FOOTER;
>   	cmd->count = READ_COUNT;
>   
>   	atmel_ecc_checksum(cmd);
> diff --git a/drivers/crypto/atmel-ecc.h b/drivers/crypto/atmel-ecc.h
> index 25232c8abcc2..6d586a3e443d 100644
> --- a/drivers/crypto/atmel-ecc.h
> +++ b/drivers/crypto/atmel-ecc.h
> @@ -89,8 +89,29 @@ static const struct {
>   #define RSP_DATA_IDX			1 /* buffer index of data in response */
>   #define DATA_SLOT_2			2 /* used for ECDH private key */
>   
> -/* Definitions for the device lock state */
> -#define DEVICE_LOCK_ADDR		0x15
> +/* Definitions for the configuration zone words, these are 4 bytes each */
> +#define CONFIG_ZONE_SERIAL_0_3		0x00
> +#define CONFIG_ZONE_REVISION		0x01
> +#define CONFIG_ZONE_SERIAL_4_7		0x02
> +#define CONFIG_ZONE_SERIAL_8_I2CEN	0x03
> +#define CONFIG_ZONE_I2C_OTP		0x04
> +#define CONFIG_ZONE_SLOT_0_1		0x05
> +#define CONFIG_ZONE_SLOT_2_3		0x06
> +#define CONFIG_ZONE_SLOT_4_5		0x07
> +#define CONFIG_ZONE_SLOT_6_7		0x08
> +#define CONFIG_ZONE_SLOT_8_9		0x09
> +#define CONFIG_ZONE_SLOT_10_11		0x0a
> +#define CONFIG_ZONE_SLOT_12_13		0x0b
> +#define CONFIG_ZONE_SLOT_14_15		0x0c
> +#define CONFIG_ZONE_FLAG_0_1		0x0d
> +#define CONFIG_ZONE_FLAG_2_3		0x0e
> +#define CONFIG_ZONE_FLAG_4_5		0x0f
> +#define CONFIG_ZONE_FLAG_6_7		0x10
> +#define CONFIG_ZONE_LKU_0_1		0x11
> +#define CONFIG_ZONE_LKU_2_3		0x12
> +#define CONFIG_ZONE_LKU_4_5		0x13
> +#define CONFIG_ZONE_LKU_6_7		0x14
> +#define CONFIG_ZONE_FOOTER		0x15
>   #define LOCK_VALUE_IDX			(RSP_DATA_IDX + 2)
>   #define LOCK_CONFIG_IDX			(RSP_DATA_IDX + 3)
>   
>
Linus Walleij June 28, 2018, 12:48 p.m. UTC | #2
On Tue, Jun 12, 2018 at 2:59 PM Tudor Ambarus
<tudor.ambarus@microchip.com> wrote:
> On 06/05/2018 04:49 PM, Linus Walleij wrote:
> > The config zone has 0x16 words of 4 bytes each, so provide
> > some basic defines so that we can address these individually.
>
> Are you going to use all these defines? I would add just the defines
> that are needed, when they are needed, but I guess it's a matter of
> preference.

I can cut it down to the ones I actually use in the subsequent
patches, but I'd like to keep it in a separate patch so as not
to disturb the order of the patch series. I can do like you say and
add it when adding users in future patches.

Yours,
Linus Walleij
diff mbox

Patch

diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c
index 214b0572bf8b..f1f422385a91 100644
--- a/drivers/crypto/atmel-ecc.c
+++ b/drivers/crypto/atmel-ecc.c
@@ -145,7 +145,7 @@  static void atmel_ecc_init_read_cmd(struct atmel_ecc_cmd *cmd)
 	 * (UserExtra, Selector, LockValue, LockConfig).
 	 */
 	cmd->param1 = CONFIG_ZONE;
-	cmd->param2 = DEVICE_LOCK_ADDR;
+	cmd->param2 = CONFIG_ZONE_FOOTER;
 	cmd->count = READ_COUNT;
 
 	atmel_ecc_checksum(cmd);
diff --git a/drivers/crypto/atmel-ecc.h b/drivers/crypto/atmel-ecc.h
index 25232c8abcc2..6d586a3e443d 100644
--- a/drivers/crypto/atmel-ecc.h
+++ b/drivers/crypto/atmel-ecc.h
@@ -89,8 +89,29 @@  static const struct {
 #define RSP_DATA_IDX			1 /* buffer index of data in response */
 #define DATA_SLOT_2			2 /* used for ECDH private key */
 
-/* Definitions for the device lock state */
-#define DEVICE_LOCK_ADDR		0x15
+/* Definitions for the configuration zone words, these are 4 bytes each */
+#define CONFIG_ZONE_SERIAL_0_3		0x00
+#define CONFIG_ZONE_REVISION		0x01
+#define CONFIG_ZONE_SERIAL_4_7		0x02
+#define CONFIG_ZONE_SERIAL_8_I2CEN	0x03
+#define CONFIG_ZONE_I2C_OTP		0x04
+#define CONFIG_ZONE_SLOT_0_1		0x05
+#define CONFIG_ZONE_SLOT_2_3		0x06
+#define CONFIG_ZONE_SLOT_4_5		0x07
+#define CONFIG_ZONE_SLOT_6_7		0x08
+#define CONFIG_ZONE_SLOT_8_9		0x09
+#define CONFIG_ZONE_SLOT_10_11		0x0a
+#define CONFIG_ZONE_SLOT_12_13		0x0b
+#define CONFIG_ZONE_SLOT_14_15		0x0c
+#define CONFIG_ZONE_FLAG_0_1		0x0d
+#define CONFIG_ZONE_FLAG_2_3		0x0e
+#define CONFIG_ZONE_FLAG_4_5		0x0f
+#define CONFIG_ZONE_FLAG_6_7		0x10
+#define CONFIG_ZONE_LKU_0_1		0x11
+#define CONFIG_ZONE_LKU_2_3		0x12
+#define CONFIG_ZONE_LKU_4_5		0x13
+#define CONFIG_ZONE_LKU_6_7		0x14
+#define CONFIG_ZONE_FOOTER		0x15
 #define LOCK_VALUE_IDX			(RSP_DATA_IDX + 2)
 #define LOCK_CONFIG_IDX			(RSP_DATA_IDX + 3)