• Sandrine Bailleux's avatar
    Define frequency of system counter in platform code · 9e86490f
    Sandrine Bailleux authored
    BL3-1 architecture setup code programs the system counter frequency
    into the CNTFRQ_EL0 register. This frequency is defined by the
    platform, though. This patch introduces a new platform hook that
    the architecture setup code can call to retrieve this information.
    In the ARM FVP port, this returns the first entry of the frequency
    modes table from the memory mapped generic timer.
    
    All system counter setup code has been removed from BL1 as some
    platforms may not have initialized the system counters at this stage.
    The platform specific settings done exclusively in BL1 have been moved
    to BL3-1. In the ARM FVP port, this consists in enabling and
    initializing the System level generic timer. Also, the frequency change
    request in the counter control register has been set to 0 to make it
    explicit it's using the base frequency. The CNTCR_FCREQ() macro has been
    fixed in this context to give an entry number rather than a bitmask.
    
    In future, when support for firmware update is implemented, there
    is a case where BL1 platform specific code will need to program
    the counter frequency. This should be implemented at that time.
    
    This patch also updates the relevant documentation.
    
    It properly fixes ARM-software/tf-issues#24
    
    Change-Id: If95639b279f75d66ac0576c48a6614b5ccb0e84b
    9e86490f
platform.h 12.6 KB