diff options
-rw-r--r-- | bootloader/imx233.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/imx233/system-imx233.c | 7 | ||||
-rw-r--r-- | firmware/target/arm/imx233/system-target.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/bootloader/imx233.c b/bootloader/imx233.c index d115389985..6dc503bb16 100644 --- a/bootloader/imx233.c +++ b/bootloader/imx233.c | |||
@@ -209,6 +209,8 @@ void main(uint32_t arg, uint32_t addr) | |||
209 | 209 | ||
210 | kernel_entry = (void*) loadbuffer; | 210 | kernel_entry = (void*) loadbuffer; |
211 | printf("Executing"); | 211 | printf("Executing"); |
212 | /* stop what was initialized to start from clean state */ | ||
213 | system_prepare_fw_start(); | ||
212 | disable_interrupt(IRQ_FIQ_STATUS); | 214 | disable_interrupt(IRQ_FIQ_STATUS); |
213 | commit_discard_idcache(); | 215 | commit_discard_idcache(); |
214 | kernel_entry(); | 216 | kernel_entry(); |
diff --git a/firmware/target/arm/imx233/system-imx233.c b/firmware/target/arm/imx233/system-imx233.c index 5298f7cff9..d5ed7fc774 100644 --- a/firmware/target/arm/imx233/system-imx233.c +++ b/firmware/target/arm/imx233/system-imx233.c | |||
@@ -197,6 +197,13 @@ void system_init(void) | |||
197 | #endif | 197 | #endif |
198 | } | 198 | } |
199 | 199 | ||
200 | void system_prepare_fw_start(void) | ||
201 | { | ||
202 | /* keep alive to get enough time, stop watchdog */ | ||
203 | imx233_keep_alive(); | ||
204 | imx233_rtc_enable_watchdog(false); | ||
205 | } | ||
206 | |||
200 | bool imx233_us_elapsed(uint32_t ref, unsigned us_delay) | 207 | bool imx233_us_elapsed(uint32_t ref, unsigned us_delay) |
201 | { | 208 | { |
202 | uint32_t cur = HW_DIGCTL_MICROSECONDS; | 209 | uint32_t cur = HW_DIGCTL_MICROSECONDS; |
diff --git a/firmware/target/arm/imx233/system-target.h b/firmware/target/arm/imx233/system-target.h index 6272cf7a85..e77b5dc1b8 100644 --- a/firmware/target/arm/imx233/system-target.h +++ b/firmware/target/arm/imx233/system-target.h | |||
@@ -47,6 +47,7 @@ | |||
47 | #define CPUFREQ_MAX IMX233_CPUFREQ_454_MHz | 47 | #define CPUFREQ_MAX IMX233_CPUFREQ_454_MHz |
48 | #define CPUFREQ_SLEEP IMX233_CPUFREQ_64_MHz | 48 | #define CPUFREQ_SLEEP IMX233_CPUFREQ_64_MHz |
49 | 49 | ||
50 | void system_prepare_fw_start(void); | ||
50 | void udelay(unsigned us); | 51 | void udelay(unsigned us); |
51 | bool imx233_us_elapsed(uint32_t ref, unsigned us_delay); | 52 | bool imx233_us_elapsed(uint32_t ref, unsigned us_delay); |
52 | void imx233_reset_block(volatile uint32_t *block_reg); | 53 | void imx233_reset_block(volatile uint32_t *block_reg); |