linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
  • [parent not found: <1386069328-22502-2-git-send-email-hanjun.guo@linaro.org>]
  • * [RFC part3 PATCH 0/2] Using ACPI GTDT table to initialize arch timer
    @ 2013-12-03 16:41 Hanjun Guo
      2013-12-03 16:41 ` [RFC part3 PATCH 2/2] ARM64 / clocksource: Use arch_timer_acpi_init() Hanjun Guo
      0 siblings, 1 reply; 13+ messages in thread
    From: Hanjun Guo @ 2013-12-03 16:41 UTC (permalink / raw)
      To: linux-arm-kernel
    
    This is the last part of patch set for core of ARM64 ACPI, and is based
    on the patch set part2 "Using ACPI MADT table to initialise SMP and GIC".
    
    ACPI GTDT (Generic Timer Description Table) is used for ARM/ARM64 only,
    and contains the information for arch timer initialisation.
    
    This patch trys to convert the arch timer to ACPI using GTDT. 
    
    After this patch set was posted, we already finished the SMP, GIC and
    arch timer initialisation, which all are essential for ARM64 core system
    running, then we will focus on converting the device drivers to ACPI.
    
    Here is the GTDT ASL code I used:
    ---
     platforms/foundation-v8.acpi/gtdt.asl |   35 ++++++++++++++++++++++-----------
     1 file changed, 23 insertions(+), 12 deletions(-)
    
    diff --git a/platforms/foundation-v8.acpi/gtdt.asl b/platforms/foundation-v8.acpi/gtdt.asl
    index 18c821a..714d61c 100644
    --- a/platforms/foundation-v8.acpi/gtdt.asl
    +++ b/platforms/foundation-v8.acpi/gtdt.asl
    @@ -1,5 +1,6 @@
     /*
      * Copyright (c) 2013, Al Stone <al.stone@linaro.org>
    + *                     Hanjun Guo <hanjun.guo@linaro.org>
      * 
      * [GTDT] Generic Timer Description Table
      * Format: [ByteLength]  FieldName : HexFieldValue
    @@ -21,22 +22,32 @@
     [0004]              Flags (decoded below) : 00000001
                                Memory Present : 1
     
    -[0004]               Secure PL1 Interrupt : 00000000
    -[0004]         SPL1 Flags (decoded below) : 00000000
    -                             Trigger Mode : 0
    +/* In Foundation model's dts file, the last cell of interrupts
    + * is 0xff01, it means its cpu mask is FF, and trigger type
    + * and flag is 1 = low-to-high edge triggered.
    + * 
    + * so in ACPI the Trigger Mode is 1 - Edge triggered, and 
    + * Polarity is 0 - Active high as ACPI spec describled.
    + *
    + * using direct mapping for hwirqs, it means that we using
    + * ID [16, 31] for PPI, not [0, 15] used in FDT.
    + */
    +[0004]               Secure PL1 Interrupt : 0000001d
    +[0004]         SPL1 Flags (decoded below) : 00000001
    +                             Trigger Mode : 1
                                      Polarity : 0
     
    -[0004]           Non-Secure PL1 Interrupt : 00000000
    -[0004]        NSPL1 Flags (decoded below) : 00000000
    -                             Trigger Mode : 0
    +[0004]           Non-Secure PL1 Interrupt : 0000001e
    +[0004]        NSPL1 Flags (decoded below) : 00000001
    +                             Trigger Mode : 1
                                      Polarity : 0
     
    -[0004]            Virtual Timer Interrupt : 00000000
    -[0004]           VT Flags (decoded below) : 00000000
    -                             Trigger Mode : 0
    +[0004]            Virtual Timer Interrupt : 0000001b
    +[0004]           VT Flags (decoded below) : 00000001
    +                             Trigger Mode : 1
                                      Polarity : 0
     
    -[0004]           Non-Secure PL2 Interrupt : 00000000
    -[0004]        NSPL2 Flags (decoded below) : 00000000
    -                             Trigger Mode : 0
    +[0004]           Non-Secure PL2 Interrupt : 0000001a
    +[0004]        NSPL2 Flags (decoded below) : 00000001
    +                             Trigger Mode : 1
                                      Polarity : 0
    
    Hanjun Guo (2):
      clocksource / arch_timer: Use ACPI GTDT table to initialize arch
        timer
      ARM64 / clocksource: Use arch_timer_acpi_init()
    
     arch/arm64/kernel/time.c             |    4 ++
     drivers/clocksource/arm_arch_timer.c |  129 ++++++++++++++++++++++++++++++----
     include/clocksource/arm_arch_timer.h |    7 +-
     3 files changed, 124 insertions(+), 16 deletions(-)
    
    -- 
    1.7.9.5
    
    ^ permalink raw reply related	[flat|nested] 13+ messages in thread

    end of thread, other threads:[~2013-12-09 18:37 UTC | newest]
    
    Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1386069328-22502-1-git-send-email-hanjun.guo@linaro.org>
         [not found] ` <1386069328-22502-3-git-send-email-hanjun.guo@linaro.org>
    2013-12-03 12:27   ` [RFC part3 PATCH 2/2] ARM64 / clocksource: Use arch_timer_acpi_init() Linus Walleij
    2013-12-03 13:52     ` Hanjun Guo
    2013-12-03 14:13       ` Linus Walleij
    2013-12-03 14:43         ` Mark Rutland
    2013-12-03 16:30           ` Hanjun Guo
    2013-12-09 18:37       ` Olof Johansson
         [not found] ` <1386069328-22502-2-git-send-email-hanjun.guo@linaro.org>
    2013-12-04 15:33   ` [RFC part3 PATCH 1/2] clocksource / arch_timer: Use ACPI GTDT table to initialize arch timer Rob Herring
    2013-12-05 13:26     ` Hanjun Guo
    2013-12-03 16:41 [RFC part3 PATCH 0/2] Using " Hanjun Guo
    2013-12-03 16:41 ` [RFC part3 PATCH 2/2] ARM64 / clocksource: Use arch_timer_acpi_init() Hanjun Guo
    2013-12-03 17:08   ` Mark Rutland
    2013-12-04 14:27     ` Hanjun Guo
    2013-12-04 15:07       ` Mark Rutland
    2013-12-05 13:09         ` Hanjun Guo
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for NNTP newsgroup(s).