diff options
author | David Hendricks <dhendrix@chromium.org> | 2012-08-29 12:03:56 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-08-29 18:16:46 -0700 |
commit | 8cb10aaf5b9dc20517d74cbde2267cbd03b779c7 (patch) | |
tree | 150aab5a8057cc872b1d7eedaf6e62ee441668f6 | |
parent | 23995de3ee9f041ad8b1e1ed4e7002e871af0e9d (diff) | |
download | chrome-ec-8cb10aaf5b9dc20517d74cbde2267cbd03b779c7.tar.gz |
add a new hook for pre-chipset startup
This adds a new hook that is intended to be called immediately before
host chipset/AP startup to initialize components such as the PMU.
Signed-off-by: David Hendricks <dhendrix@chromium.org>
BRANCH=snow
BUG=chrome-os-partner:13315
TEST=tested in subsequent patches
Change-Id: I2b38208de9f0f51abc0b22c49547ee0c4c889b82
Reviewed-on: https://gerrit.chromium.org/gerrit/31738
Reviewed-by: Charlie Mooney <charliemooney@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Ready: David Hendricks <dhendrix@chromium.org>
Tested-by: David Hendricks <dhendrix@chromium.org>
-rw-r--r-- | common/hooks.c | 1 | ||||
-rw-r--r-- | core/cortex-m/ec.lds.S | 4 | ||||
-rw-r--r-- | core/cortex-m/link_defs.h | 2 | ||||
-rw-r--r-- | include/hooks.h | 2 |
4 files changed, 9 insertions, 0 deletions
diff --git a/common/hooks.c b/common/hooks.c index 30154a1060..e51503ed31 100644 --- a/common/hooks.c +++ b/common/hooks.c @@ -20,6 +20,7 @@ static const struct hook_ptrs hook_list[] = { {__hooks_init, __hooks_init_end}, {__hooks_freq_change, __hooks_freq_change_end}, {__hooks_sysjump, __hooks_sysjump_end}, + {__hooks_chipset_pre_init, __hooks_chipset_pre_init_end}, {__hooks_chipset_startup, __hooks_chipset_startup_end}, {__hooks_chipset_resume, __hooks_chipset_resume_end}, {__hooks_chipset_suspend, __hooks_chipset_suspend_end}, diff --git a/core/cortex-m/ec.lds.S b/core/cortex-m/ec.lds.S index 393c6c4bc6..be0e20fdd8 100644 --- a/core/cortex-m/ec.lds.S +++ b/core/cortex-m/ec.lds.S @@ -68,6 +68,10 @@ SECTIONS *(.rodata.HOOK_SYSJUMP) __hooks_sysjump_end = .; + __hooks_chipset_pre_init = .; + *(.rodata.HOOK_CHIPSET_PRE_INIT) + __hooks_chipset_pre_init_end = .; + __hooks_chipset_startup = .; *(.rodata.HOOK_CHIPSET_STARTUP) __hooks_chipset_startup_end = .; diff --git a/core/cortex-m/link_defs.h b/core/cortex-m/link_defs.h index 7f029ec667..86c6b0a311 100644 --- a/core/cortex-m/link_defs.h +++ b/core/cortex-m/link_defs.h @@ -24,6 +24,8 @@ extern const struct hook_data __hooks_freq_change[]; extern const struct hook_data __hooks_freq_change_end[]; extern const struct hook_data __hooks_sysjump[]; extern const struct hook_data __hooks_sysjump_end[]; +extern const struct hook_data __hooks_chipset_pre_init[]; +extern const struct hook_data __hooks_chipset_pre_init_end[]; extern const struct hook_data __hooks_chipset_startup[]; extern const struct hook_data __hooks_chipset_startup_end[]; extern const struct hook_data __hooks_chipset_resume[]; diff --git a/include/hooks.h b/include/hooks.h index b8ed296529..a3b35385a3 100644 --- a/include/hooks.h +++ b/include/hooks.h @@ -34,6 +34,8 @@ enum hook_type { * * NOTE: This hook is called with interrupts * disabled! */ + HOOK_CHIPSET_PRE_INIT, /* Initialization for components such as PMU to + * be done before host chipset/AP starts up. */ HOOK_CHIPSET_STARTUP, /* System is starting up. All suspend rails are * now on. */ HOOK_CHIPSET_RESUME, /* System is resuming from suspend, or booting |