Deleted Added
sdiff udiff text old ( 14231:222f6512335e ) new ( 14258:c75d22c32dec )
full compact
1/*
2 * Copyright (c) 2019 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 43 unchanged lines hidden (view full) ---

52 SGI_base + 0x041f);
53
54Gicv3Redistributor::Gicv3Redistributor(Gicv3 * gic, uint32_t cpu_id)
55 : gic(gic),
56 distributor(nullptr),
57 cpuInterface(nullptr),
58 cpuId(cpu_id),
59 memProxy(nullptr),
60 peInLowPowerState(true),
61 irqGroup(Gicv3::SGI_MAX + Gicv3::PPI_MAX, 0),
62 irqEnabled(Gicv3::SGI_MAX + Gicv3::PPI_MAX, false),
63 irqPending(Gicv3::SGI_MAX + Gicv3::PPI_MAX, false),
64 irqActive(Gicv3::SGI_MAX + Gicv3::PPI_MAX, false),
65 irqPriority(Gicv3::SGI_MAX + Gicv3::PPI_MAX, 0),
66 irqConfig(Gicv3::SGI_MAX + Gicv3::PPI_MAX, Gicv3::INT_EDGE_TRIGGERED),
67 irqGrpmod(Gicv3::SGI_MAX + Gicv3::PPI_MAX, 0),
68 irqNsacr(Gicv3::SGI_MAX + Gicv3::PPI_MAX, 0),
69 DPG1S(false),
70 DPG1NS(false),
71 DPG0(false),
72 EnableLPIs(false),
73 lpiConfigurationTablePtr(0),
74 lpiIDBits(0),
75 lpiPendingTablePtr(0),
76 addrRangeSize(gic->params()->gicv4 ? 0x40000 : 0x20000)
77{
78}
79
80void
81Gicv3Redistributor::init()
82{
83 distributor = gic->getDistributor();
84 cpuInterface = gic->getCPUInterface(cpuId);
85
86 memProxy = &gic->getSystem()->physProxy;
87}
88
89uint64_t
90Gicv3Redistributor::read(Addr addr, size_t size, bool is_secure_access)
91{
92 if (GICR_IPRIORITYR.contains(addr)) { // Interrupt Priority Registers
93 uint64_t value = 0;
94 int first_intid = addr - GICR_IPRIORITYR.start();
95
96 for (int i = 0, int_id = first_intid; i < size; i++, int_id++) {

--- 964 unchanged lines hidden ---