gic_v3_cpu_interface.cc (14231:222f6512335e) gic_v3_cpu_interface.cc (14233:a2714268f5c1)
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

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

1648 }
1649
1650 return -1;
1651}
1652
1653uint32_t
1654Gicv3CPUInterface::getHPPIR0() const
1655{
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

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

1648 }
1649
1650 return -1;
1651}
1652
1653uint32_t
1654Gicv3CPUInterface::getHPPIR0() const
1655{
1656 if (hppi.prio == 0xff) {
1656 if (hppi.prio == 0xff || !groupEnabled(hppi.group)) {
1657 return Gicv3::INTID_SPURIOUS;
1658 }
1659
1660 bool irq_is_secure = !distributor->DS && hppi.group != Gicv3::G1NS;
1661
1662 if ((hppi.group != Gicv3::G0S) && isEL3OrMon()) {
1663 // interrupt for the other state pending
1664 return irq_is_secure ? Gicv3::INTID_SECURE : Gicv3::INTID_NONSECURE;

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

1674 }
1675
1676 return hppi.intid;
1677}
1678
1679uint32_t
1680Gicv3CPUInterface::getHPPIR1() const
1681{
1657 return Gicv3::INTID_SPURIOUS;
1658 }
1659
1660 bool irq_is_secure = !distributor->DS && hppi.group != Gicv3::G1NS;
1661
1662 if ((hppi.group != Gicv3::G0S) && isEL3OrMon()) {
1663 // interrupt for the other state pending
1664 return irq_is_secure ? Gicv3::INTID_SECURE : Gicv3::INTID_NONSECURE;

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

1674 }
1675
1676 return hppi.intid;
1677}
1678
1679uint32_t
1680Gicv3CPUInterface::getHPPIR1() const
1681{
1682 if (hppi.prio == 0xff) {
1682 if (hppi.prio == 0xff || !groupEnabled(hppi.group)) {
1683 return Gicv3::INTID_SPURIOUS;
1684 }
1685
1686 ICC_CTLR_EL3 icc_ctlr_el3 = isa->readMiscRegNoEffect(MISCREG_ICC_CTLR_EL3);
1687 if ((currEL() == EL3) && icc_ctlr_el3.RM) {
1688 if (hppi.group == Gicv3::G0S) {
1689 return Gicv3::INTID_SECURE;
1690 } else if (hppi.group == Gicv3::G1NS) {

--- 833 unchanged lines hidden ---
1683 return Gicv3::INTID_SPURIOUS;
1684 }
1685
1686 ICC_CTLR_EL3 icc_ctlr_el3 = isa->readMiscRegNoEffect(MISCREG_ICC_CTLR_EL3);
1687 if ((currEL() == EL3) && icc_ctlr_el3.RM) {
1688 if (hppi.group == Gicv3::G0S) {
1689 return Gicv3::INTID_SECURE;
1690 } else if (hppi.group == Gicv3::G1NS) {

--- 833 unchanged lines hidden ---