[U-Boot] [PATCH 2/3] lib: rand: add call to hw_rand() - hardware random number generator

Przemyslaw Marczak
2014-03-03T14:19:43Z

Hello Michael,
Thank you for reply.

On 02/28/2014 06:02 PM, Michael Walle wrote:
> Am Freitag, 28. Februar 2014, 17:30:54 schrieb Przemyslaw Marczak:
>> Changes:
>> - lib/rand.c: add call to hw_rand() (depends on CONFIG_RAND_HW_ACCEL)
>> - include/common.h: add hw_rand() declaration.
>>
>> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
>> cc: Michael Walle <michael@walle.cc>
>> cc: Tom Rini <trini@ti.com>
>> ---
>> include/common.h | 3 +++
>> lib/rand.c | 4 ++++
>> 2 files changed, 7 insertions(+)
>>
>> diff --git a/include/common.h b/include/common.h
>> index 96a45a6..58e2fbc 100644
>> --- a/include/common.h
>> +++ b/include/common.h
>> @@ -836,6 +836,9 @@ void srand(unsigned int seed);
>> unsigned int rand(void);
>> unsigned int rand_r(unsigned int *seedp);
>> #endif
>> +#ifdef CONFIG_RAND_HW_ACCEL
>> +unsigned int hw_rand(void);
>> +#endif
>>
>> /* common/console.c */
>> int console_init_f(void); /* Before relocation; uses the serial stuff
> */
>> diff --git a/lib/rand.c b/lib/rand.c
>> index 5c367e1..f534635 100644
>> --- a/lib/rand.c
>> +++ b/lib/rand.c
>> @@ -23,7 +23,11 @@ unsigned int rand_r(unsigned int *seedp)
>>
>> unsigned int rand(void)
>> {
>> +#ifdef CONFIG_RAND_HW_ACCEL
>> + return hw_rand();
>> +#else
>> return rand_r(&y);
>> +#endif
>> }
>
> shouldn't we put that into rand_r() and ignore the argument? because then both
> users of rand() and rand_r() will benefit from the hardware random generator.
>

Ok, I can change this.

> and what does HW_ACCEL mean? is this a real hardware random generator? if this
> is the case, wouldn't it make more sense to name it CONFIG_RAND_USE_HW_RNG.
>
> -michael
>

HW_ACCEL means hardware accelerated, and it really is.
I followed common/hash.c code - there is declared array "hash_algo" and
config name for sha hardware acceleration is "CONFIG_SHA_HW_ACCEL", so I
think CONFIG_RAND_HW_ACCEL coresponds well to CONFIG_RAND.

Thank you
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com