contiki/cpu/cc2538/dev
George Oikonomou eed1352282 Fix CC2538 random_init lockup
Contiki sometimes fails to boot correctly and locks up in
random_init()

This problem only manifests itself for specific versions
of the arm-gcc toolchain and then again only for specific
levels of optimisation (-Os vs -O2, depending on the
value of the SMALL make variable)

The lockup is caused when we write an RFCORE XREG before
the RF clock ungating has taken effect, which in turn
only occurs depending on the assembly generated for those
two instructions:

  REG(SYS_CTRL_RCGCRFC) = 1;

  REG(RFCORE_XREG_FRMCTRL0) = 0x00000008;

This commit makes the RNG wait for the ungating to take
effect before attempting to write the register
2014-04-13 14:38:00 +01:00
..
adc.c cc2538: Add adc driver and example 2013-12-06 22:07:45 +01:00
adc.h cc2538: Add adc driver and example 2013-12-06 22:07:45 +01:00
ana-regs.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
cc2538-rf.c Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
cc2538-rf.h Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
cctest.h cc2538: Add adc driver and example 2013-12-06 22:07:45 +01:00
flash-cca.h cc2538: Add header file for flash CCA page and use it 2013-12-05 18:45:51 +01:00
gpio.c cc2538: lpm: Fix RTIMER_NOW() upon wake-up 2013-12-05 20:23:29 +01:00
gpio.h cc2538: gpio: Add macros to use GPIO power-up interrupts 2013-11-26 22:10:47 +01:00
gptimer.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
ioc.c New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
ioc.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
mpu.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
nvic.c New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
nvic.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
random.c Fix CC2538 random_init lockup 2014-04-13 14:38:00 +01:00
rfcore-ffsm.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
rfcore-sfr.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
rfcore-xreg.h cc2538: Add adc driver and example 2013-12-06 22:07:45 +01:00
rfcore.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
rom-util.h cc2538: Add driver for the rom utility function library 2013-11-18 12:38:06 +01:00
scb.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
smwdthrosc.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
soc-adc.h cc2538: Add adc driver and example 2013-12-06 22:07:45 +01:00
spi.c cc2538: Clean up port and pin definitions 2013-11-25 15:00:41 +01:00
ssi.h Added SPI driver for CC2538 2013-09-27 17:46:15 -04:00
sys-ctrl.c cc2538: sys_ctrl: Make it possible to use the 32-kHz crystal 2013-11-15 15:52:10 +01:00
sys-ctrl.h cc2538: sys_ctrl: Make it possible to use the 32-kHz crystal 2013-11-15 15:52:10 +01:00
systick.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
uart1.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
uart.c Eliminate UART_CONF_IBRD and UART_CONF_FBRD. 2014-03-22 10:26:03 -04:00
uart.h Change uart_set_baudrate() to a do-while statement. 2014-03-22 10:22:11 -04:00
udma.c cc2538: Move SoC data to a dedicated section to save space 2013-12-23 15:06:13 +01:00
udma.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
usb-regs.h New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00
watchdog.c New Platform: TI CC2538 Development Kit 2013-04-06 21:07:31 +01:00