/** @file Copyright (c) 2017 - 2019, ARM Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef PLATFORM_H__ #define PLATFORM_H__ #define ENABLE_MEM_MAPPED_TIMER #ifdef ENABLE_MEM_MAPPED_TIMER // REFCLK CNTControl #define JUNO_SYSTEM_TIMER_BASE_ADDRESS 0x2A430000 // REFCLK CNTRead #define JUNO_CNT_READ_BASE_ADDRESS 0x2A800000 #else #define JUNO_SYSTEM_TIMER_BASE_ADDRESS 0xFFFFFFFFFFFFFFFF #define JUNO_CNT_READ_BASE_ADDRESS 0xFFFFFFFFFFFFFFFF #endif // GT Block Timer // AP_REFCLK CNTCTL #define JUNO_GT_BLOCK_CTL_BASE 0x2A810000 #define JUNO_TIMER_FRAMES_COUNT 2 // GT Block Timer Frames // AP_REFCLK_S CNTBase0 #define JUNO_GT_BLOCK_FRAME0_CTL_BASE 0x2A820000 #define JUNO_GT_BLOCK_FRAME0_CTL_EL0_BASE 0xFFFFFFFFFFFFFFFF #define JUNO_GT_BLOCK_FRAME0_GSIV 91 // AP_REFCLK_NS CNTBase1 #define JUNO_GT_BLOCK_FRAME1_CTL_BASE 0x2A830000 #define JUNO_GT_BLOCK_FRAME1_CTL_EL0_BASE 0xFFFFFFFFFFFFFFFF #define JUNO_GT_BLOCK_FRAME1_GSIV 92 #define GTDT_TIMER_EDGE_TRIGGERED \ EFI_ACPI_6_2_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE #define GTDT_TIMER_LEVEL_TRIGGERED 0 #define GTDT_TIMER_ACTIVE_LOW \ EFI_ACPI_6_2_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY #define GTDT_TIMER_ACTIVE_HIGH 0 #define GTDT_TIMER_SAVE_CONTEXT \ EFI_ACPI_6_2_GTDT_TIMER_FLAG_ALWAYS_ON_CAPABILITY #define GTDT_TIMER_LOSE_CONTEXT 0 #define JUNO_GTDT_GTIMER_FLAGS (GTDT_TIMER_LOSE_CONTEXT | \ GTDT_TIMER_ACTIVE_LOW | \ GTDT_TIMER_LEVEL_TRIGGERED) // GT Block Timer Flags #define GTX_TIMER_EDGE_TRIGGERED \ EFI_ACPI_6_2_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_MODE #define GTX_TIMER_LEVEL_TRIGGERED 0 #define GTX_TIMER_ACTIVE_LOW \ EFI_ACPI_6_2_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_POLARITY #define GTX_TIMER_ACTIVE_HIGH 0 #define JUNO_GTX_TIMER_FLAGS (GTX_TIMER_ACTIVE_HIGH | \ GTX_TIMER_LEVEL_TRIGGERED) #define GTX_TIMER_SECURE \ EFI_ACPI_6_2_GTDT_GT_BLOCK_COMMON_FLAG_SECURE_TIMER #define GTX_TIMER_NON_SECURE 0 #define GTX_TIMER_SAVE_CONTEXT \ EFI_ACPI_6_2_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY #define GTX_TIMER_LOSE_CONTEXT 0 #define JUNO_GTX_COMMON_FLAGS_S (GTX_TIMER_SAVE_CONTEXT | \ GTX_TIMER_SECURE) #define JUNO_GTX_COMMON_FLAGS_NS (GTX_TIMER_SAVE_CONTEXT | \ GTX_TIMER_NON_SECURE) // Watchdog #define SBSA_WATCHDOG_EDGE_TRIGGERED \ EFI_ACPI_6_2_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE #define SBSA_WATCHDOG_LEVEL_TRIGGERED 0 #define SBSA_WATCHDOG_ACTIVE_LOW \ EFI_ACPI_6_2_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY #define SBSA_WATCHDOG_ACTIVE_HIGH 0 #define SBSA_WATCHDOG_SECURE \ EFI_ACPI_6_2_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_SECURE_TIMER #define SBSA_WATCHDOG_NON_SECURE 0 #define JUNO_SBSA_WATCHDOG_FLAGS (SBSA_WATCHDOG_NON_SECURE | \ SBSA_WATCHDOG_ACTIVE_HIGH | \ SBSA_WATCHDOG_EDGE_TRIGGERED) #endif // PLATFORM_H__