Merge pull request #11985 from fjmolinas/pr_k64f_hwrng

cpu/kinetis: enable HWRNG for k64f
This commit is contained in:
Juan I Carrano 2019-08-09 16:45:52 +02:00 committed by GitHub
commit e806d4bcbd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 8 deletions

View File

@ -3,8 +3,6 @@ FEATURES_PROVIDED += periph_cpuid
# HACK Do not define 'hwrng' if the board does not supports it # HACK Do not define 'hwrng' if the board does not supports it
# A whitelist on CPU_MODEL would be better but this information/variable is not # A whitelist on CPU_MODEL would be better but this information/variable is not
# available yet. # available yet.
# HWRNG uses the wrong hwrng register for the frdm-k64f board/cpu_model
_KINETIS_BOARDS_WITHOUT_HWRNG += frdm-k64f
# TRNG driver is not implemented for 'CPU_MODEL == mkw41z512vht4' # TRNG driver is not implemented for 'CPU_MODEL == mkw41z512vht4'
_KINETIS_BOARDS_WITHOUT_HWRNG += frdm-kw41z phynode-kw41z usb-kw41z _KINETIS_BOARDS_WITHOUT_HWRNG += frdm-kw41z phynode-kw41z usb-kw41z
# No HWRNG in MK20D7 devices # No HWRNG in MK20D7 devices

View File

@ -154,15 +154,19 @@ extern "C"
* @name Hardware random number generator module configuration * @name Hardware random number generator module configuration
* @{ * @{
*/ */
#if !defined(HWRNG_CLKEN) && defined(RNG) && !defined(RNG_CMD_ST_MASK) #if !defined(HWRNG_CLK_REG) && !defined(HWRNG_CLK_REG_SHIFT)
#define KINETIS_RNGA RNG
#if defined(SIM_SCGC3_RNGA_SHIFT) #if defined(SIM_SCGC3_RNGA_SHIFT)
#define HWRNG_CLKEN() (bit_set32(&SIM->SCGC3, SIM_SCGC3_RNGA_SHIFT)) #define HWRNG_CLK_REG SIM->SCGC3
#define HWRNG_CLKDIS() (bit_clear32(&SIM->SCGC3, SIM_SCGC3_RNGA_SHIFT)) #define HWRNG_CLK_REG_SHIFT SIM_SCGC3_RNGA_SHIFT
#elif defined(SIM_SCGC6_RNGA_SHIFT) #elif defined(SIM_SCGC6_RNGA_SHIFT)
#define HWRNG_CLKEN() (bit_set32(&SIM->SCGC6, SIM_SCGC6_RNGA_SHIFT)) #define HWRNG_CLK_REG SIM->SCGC6
#define HWRNG_CLKDIS() (bit_clear32(&SIM->SCGC6, SIM_SCGC6_RNGA_SHIFT)) #define HWRNG_CLK_REG_SHIFT SIM_SCGC6_RNGA_SHIFT
#endif #endif
#endif
#if defined(RNG)
#define KINETIS_RNGA RNG
#define HWRNG_CLKEN() (bit_set32(&HWRNG_CLK_REG, HWRNG_CLK_REG_SHIFT))
#define HWRNG_CLKDIS() (bit_clear32(&HWRNG_CLK_REG, HWRNG_CLK_REG_SHIFT))
#endif /* KINETIS_RNGA */ #endif /* KINETIS_RNGA */
/** @} */ /** @} */

View File

@ -119,6 +119,19 @@
defined(CPU_MODEL_MK64FX512VLQ12) || \ defined(CPU_MODEL_MK64FX512VLQ12) || \
defined(CPU_MODEL_MK64FX512VMD12) defined(CPU_MODEL_MK64FX512VMD12)
#include "vendor/MK64F12.h" #include "vendor/MK64F12.h"
/**
* @name Hardware random number generator module configuration
*
* For K64F SCG3 or SCG6 can be used depending on if the the
* peripheral is accessed through AIPS-lite0 or AIPS-lite1.
* For K64F RNGA is only mapped to SCG6.
* @{
*/
#define HWRNG_CLK_REG (SIM->SCGC6)
#define HWRNG_CLK_REG_SHIFT (SIM_SCGC6_RNGA_SHIFT)
/** @} */
#endif #endif
#endif /* (KINETIS_SUBFAMILY == y) */ #endif /* (KINETIS_SUBFAMILY == y) */
#endif /* (KINETIS_FAMILY == x) */ #endif /* (KINETIS_FAMILY == x) */