lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 174/879] openrisc: start CPU timer early in boot
    Date
    From: Jason A. Donenfeld <Jason@zx2c4.com>

    [ Upstream commit 516dd4aacd67a0f27da94f3fe63fe0f4dbab6e2b ]

    In order to measure the boot process, the timer should be switched on as
    early in boot as possible. As well, the commit defines the get_cycles
    macro, like the previous patches in this series, so that generic code is
    aware that it's implemented by the platform, as is done on other archs.

    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Jonas Bonn <jonas@southpole.se>
    Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
    Acked-by: Stafford Horne <shorne@gmail.com>
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/openrisc/include/asm/timex.h | 1 +
    arch/openrisc/kernel/head.S | 9 +++++++++
    2 files changed, 10 insertions(+)

    diff --git a/arch/openrisc/include/asm/timex.h b/arch/openrisc/include/asm/timex.h
    index d52b4e536e3f..5487fa93dd9b 100644
    --- a/arch/openrisc/include/asm/timex.h
    +++ b/arch/openrisc/include/asm/timex.h
    @@ -23,6 +23,7 @@ static inline cycles_t get_cycles(void)
    {
    return mfspr(SPR_TTCR);
    }
    +#define get_cycles get_cycles

    /* This isn't really used any more */
    #define CLOCK_TICK_RATE 1000
    diff --git a/arch/openrisc/kernel/head.S b/arch/openrisc/kernel/head.S
    index 15f1b38dfe03..871f4c858859 100644
    --- a/arch/openrisc/kernel/head.S
    +++ b/arch/openrisc/kernel/head.S
    @@ -521,6 +521,15 @@ _start:
    l.ori r3,r0,0x1
    l.mtspr r0,r3,SPR_SR

    + /*
    + * Start the TTCR as early as possible, so that the RNG can make use of
    + * measurements of boot time from the earliest opportunity. Especially
    + * important is that the TTCR does not return zero by the time we reach
    + * rand_initialize().
    + */
    + l.movhi r3,hi(SPR_TTMR_CR)
    + l.mtspr r0,r3,SPR_TTMR
    +
    CLEAR_GPR(r1)
    CLEAR_GPR(r2)
    CLEAR_GPR(r3)
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-08 00:18    [W:4.021 / U:0.352 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site