stm32wl: Fix incomplete RNG initialisation
Этот коммит содержится в:
родитель
334a12818d
коммит
eec915170d
3 изменённых файлов: 15 добавлений и 1 удалений
|
@ -4,6 +4,8 @@ import "errors"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrTimeoutRNG = errors.New("machine: RNG Timeout")
|
ErrTimeoutRNG = errors.New("machine: RNG Timeout")
|
||||||
|
ErrClockRNG = errors.New("machine: RNG Clock Error")
|
||||||
|
ErrSeedRNG = errors.New("machine: RNG Seed Error")
|
||||||
ErrInvalidInputPin = errors.New("machine: invalid input pin")
|
ErrInvalidInputPin = errors.New("machine: invalid input pin")
|
||||||
ErrInvalidOutputPin = errors.New("machine: invalid output pin")
|
ErrInvalidOutputPin = errors.New("machine: invalid output pin")
|
||||||
ErrInvalidClockPin = errors.New("machine: invalid clock pin")
|
ErrInvalidClockPin = errors.New("machine: invalid clock pin")
|
||||||
|
|
|
@ -15,6 +15,13 @@ func GetRNG() (uint32, error) {
|
||||||
rngInitDone = true
|
rngInitDone = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stm32.RNG.SR.HasBits(stm32.RNG_SR_CECS) {
|
||||||
|
return 0, ErrClockRNG
|
||||||
|
}
|
||||||
|
if stm32.RNG.SR.HasBits(stm32.RNG_SR_SECS) {
|
||||||
|
return 0, ErrSeedRNG
|
||||||
|
}
|
||||||
|
|
||||||
cnt := RNG_MAX_READ_RETRIES
|
cnt := RNG_MAX_READ_RETRIES
|
||||||
for !stm32.RNG.SR.HasBits(stm32.RNG_SR_DRDY) {
|
for !stm32.RNG.SR.HasBits(stm32.RNG_SR_DRDY) {
|
||||||
cnt--
|
cnt--
|
||||||
|
|
|
@ -407,7 +407,12 @@ func (t *TIM) enableMainOutput() {
|
||||||
|
|
||||||
func initRNG() {
|
func initRNG() {
|
||||||
stm32.RCC.AHB3ENR.SetBits(stm32.RCC_AHB3ENR_RNGEN)
|
stm32.RCC.AHB3ENR.SetBits(stm32.RCC_AHB3ENR_RNGEN)
|
||||||
stm32.RNG.CR.SetBits(stm32.RNG_CR_RNGEN)
|
|
||||||
|
// Enable RNG with config.A (See RM0453 22.6.2)
|
||||||
|
stm32.RNG.CR.Set(0x40F00D40) // RNG Config. A
|
||||||
|
stm32.RNG.HTCR.Set(0x17590ABC) // MAGIC NUMBER
|
||||||
|
stm32.RNG.HTCR.Set(0x0000AA74) // HTCR VALUE
|
||||||
|
stm32.RNG.CR.Set(0x00F00D4C) // CONFIG A + RNG_EN=1 + IE=1
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------
|
//----------
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче