init: Split pure_init into pure_init_{early,late} levels

Split the pure init level into two phases this allows for easier
migration of the nano kernel init process without resorting to naming
or link order to force the ordering of functions at pure init
time. The need for change was discovered while moving the system
timers to be initialized by the init system.  The base timer driver
(eg. HPET) must be initialised prior to the system clock being enabled
both of which need to happen before nano-kernel init.

Change-Id: I7a2994965e48a891a78268080113ac8fccceb261
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
This commit is contained in:
Dirk Brandewie 2015-07-14 08:38:48 -07:00 committed by Anas Nashif
commit a88cd0fc34
2 changed files with 20 additions and 15 deletions

View file

@ -282,7 +282,8 @@ FUNC_NORETURN void _Cstart(void)
/* perform basic hardware initialization */
_InitHardware();
_sys_device_do_config_level(PURE);
_sys_device_do_config_level(PURE_EARLY);
_sys_device_do_config_level(PURE_LATE);
/*
* Initialize random number generator