Skip to content
  • Julius Werner's avatar
    Consolidate reset API, add generic reset_prepare mechanism · 01f9aa5e
    Julius Werner authored
    
    
    There are many good reasons why we may want to run some sort of generic
    callback before we're executing a reset. Unfortunateley, that is really
    hard right now: code that wants to reset simply calls the hard_reset()
    function (or one of its ill-differentiated cousins) which is directly
    implemented by a myriad of different mainboards, northbridges, SoCs,
    etc. More recent x86 SoCs have tried to solve the problem in their own
    little corner of soc/intel/common, but it's really something that would
    benefit all of coreboot.
    
    This patch expands the concept onto all boards: hard_reset() and friends
    get implemented in a generic location where they can run hooks before
    calling the platform-specific implementation that is now called
    do_hard_reset(). The existing Intel reset_prepare() gets generalized as
    soc_reset_prepare() (and other hooks for arch, mainboard, etc. can now
    easily be added later if necessary). We will also use this central point
    to ensure all platforms flush their cache before reset, which is
    generally useful for all cases where we're trying to persist information
    in RAM across reboots (like the new persistent CBMEM console does).
    
    Also remove cpu_reset() completely since it's not used anywhere and
    doesn't seem very useful compared to the others.
    
    Change-Id: I41b89ce4a923102f0748922496e1dd9bce8a610f
    Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
    Reviewed-on: https://review.coreboot.org/19789
    
    
    Reviewed-by: default avatarAaron Durbin <adurbin@chromium.org>
    Tested-by: default avatarbuild bot (Jenkins) <no-reply@coreboot.org>
    Reviewed-by: default avatarFurquan Shaikh <furquan@google.com>
    01f9aa5e