sw_apps:zynqmp_pmufw: Syncup PMUFW App with PMUFW Git Repo
swbeta2 commit ae6d9a98edb99ce4c51c85bce4872a9f11c7eb74 PMU Firmware is being updated to the latest code base available in the pmufw git repo. Major changes are: -Error Management is enabled by default -PM Module bug fixes -Code formatting changes -PMU ROM handlers use ROM Table instead of individual handler addresses -Bug fixes in scheduler -FW_IS_PRESENT bit is set if PM is enabled Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
This commit is contained in:
parent
22b06a8e40
commit
6fcdc41593
40 changed files with 2122 additions and 2027 deletions
|
@ -170,116 +170,4 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
|
|||
_end = .;
|
||||
}
|
||||
|
||||
XpbrACPU0SleepHandler = 0xffd00f98;
|
||||
XpbrACPU0WakeHandler = 0xffd00d4c;
|
||||
XpbrACPU1SleepHandler = 0xffd00fbc;
|
||||
XpbrACPU1WakeHandler = 0xffd00d70;
|
||||
XpbrACPU2SleepHandler = 0xffd00fe0;
|
||||
XpbrACPU2WakeHandler = 0xffd00d94;
|
||||
XpbrACPU3SleepHandler = 0xffd01004;
|
||||
XpbrACPU3WakeHandler = 0xffd00db8;
|
||||
XpbrCsuSecureLockdownHandler = 0xffd01e60;
|
||||
XpbrDapFpdWakeHandler = 0xffd01c70;
|
||||
XpbrDapRpuWakeHandler = 0xffd01cd8;
|
||||
XpbrDefaultWakeHandler = 0xffd036d0;
|
||||
XpbrFpdGicProxyWakeHandler = 0xffd00f04;
|
||||
XpbrFPIsolationReqHandler = 0xffd01518;
|
||||
XpbrFPLockIsoHandler = 0xffd0156c;
|
||||
XpbrGpi1Router = 0xffd038ac;
|
||||
XpbrGpi2Router = 0xffd03960;
|
||||
XpbrGpi3Handler = 0xffd00d30;
|
||||
XpbrHwExceptionHandler = 0xffd03d6c;
|
||||
XpbrHwRstReqHandler = 0xffd01be0;
|
||||
XpbrIpi0Handler = 0xffd00cf4;
|
||||
XpbrIsoReqRouter = 0xffd03b94;
|
||||
XpbrMio0WakeHandler = 0xffd00e5c;
|
||||
XpbrMio1WakeHandler = 0xffd00e78;
|
||||
XpbrMio2WakeHandler = 0xffd00e94;
|
||||
XpbrMio3WakeHandler = 0xffd00eb0;
|
||||
XpbrMio4WakeHandler = 0xffd00ecc;
|
||||
XpbrMio5WakeHandler = 0xffd00ee8;
|
||||
XpbrNullInterruptHandler = 0xffd03d8c;
|
||||
XpbrNullServiceHandler = 0xffd020e0;
|
||||
XpbrPLIsolationReqHandler = 0xffd01534;
|
||||
XpbrPLNonPCAPIsoReqHandler = 0xffd01550;
|
||||
XpbrPwrDnACPU0Handler = 0xffd0158c;
|
||||
XpbrPwrDnACPU1Handler = 0xffd015b0;
|
||||
XpbrPwrDnACPU2Handler = 0xffd015d4;
|
||||
XpbrPwrDnACPU3Handler = 0xffd015f8;
|
||||
XpbrPwrDnFpdHandler = 0xffd01814;
|
||||
XpbrPwrDnGpuHandler = 0xffd0184c;
|
||||
XpbrPwrDnL2Bank0Handler = 0xffd01664;
|
||||
XpbrPwrDnOcmBank0Handler = 0xffd0173c;
|
||||
XpbrPwrDnOcmBank1Handler = 0xffd01760;
|
||||
XpbrPwrDnOcmBank2Handler = 0xffd01784;
|
||||
XpbrPwrDnOcmBank3Handler = 0xffd017a8;
|
||||
XpbrPwrDnPldHandler = 0xffd01830;
|
||||
XpbrPwrDnPp0Handler = 0xffd0161c;
|
||||
XpbrPwrDnPp1Handler = 0xffd01640;
|
||||
XpbrPwrDnR50Handler = 0xffd01878;
|
||||
XpbrPwrDnR51Handler = 0xffd01894;
|
||||
XpbrPwrDnReqRouter = 0xffd03ad4;
|
||||
XpbrPwrDnRpuHandler = 0xffd01688;
|
||||
XpbrPwrDnTcm0AHandler = 0xffd016ac;
|
||||
XpbrPwrDnTcm0BHandler = 0xffd016d0;
|
||||
XpbrPwrDnTcm1AHandler = 0xffd016f4;
|
||||
XpbrPwrDnTcm1BHandler = 0xffd01718;
|
||||
XpbrPwrDnUsb0Handler = 0xffd017cc;
|
||||
XpbrPwrDnUsb1Handler = 0xffd017f0;
|
||||
XpbrPwrUpACPU0Handler = 0xffd018b0;
|
||||
XpbrPwrUpACPU1Handler = 0xffd018d4;
|
||||
XpbrPwrUpACPU2Handler = 0xffd018f8;
|
||||
XpbrPwrUpACPU3Handler = 0xffd0191c;
|
||||
XpbrPwrUpFpdHandler = 0xffd01b38;
|
||||
XpbrPwrUpL2Bank0Handler = 0xffd01988;
|
||||
XpbrPwrUpOcmBank0Handler = 0xffd01a60;
|
||||
XpbrPwrUpOcmBank1Handler = 0xffd01a84;
|
||||
XpbrPwrUpOcmBank2Handler = 0xffd01aa8;
|
||||
XpbrPwrUpOcmBank3Handler = 0xffd01acc;
|
||||
XpbrPwrUpPldHandler = 0xffd01b54;
|
||||
XpbrPwrUpPp0Handler = 0xffd01940;
|
||||
XpbrPwrUpPp1Handler = 0xffd01964;
|
||||
XpbrPwrUpReqRouter = 0xffd03a14;
|
||||
XpbrPwrUpRpuHandler = 0xffd019ac;
|
||||
XpbrPwrUpTcm0AHandler = 0xffd019d0;
|
||||
XpbrPwrUpTcm0BHandler = 0xffd019f4;
|
||||
XpbrPwrUpTcm1AHandler = 0xffd01a18;
|
||||
XpbrPwrUpTcm1BHandler = 0xffd01a3c;
|
||||
XpbrPwrUpUsb0Handler = 0xffd01af0;
|
||||
XpbrPwrUpUsb1Handler = 0xffd01b14;
|
||||
XpbrR50SleepHandler = 0xffd01028;
|
||||
XpbrR50WakeHandler = 0xffd00ddc;
|
||||
XpbrR51SleepHandler = 0xffd0104c;
|
||||
XpbrR51WakeHandler = 0xffd00e00;
|
||||
XpbrROMExceptionHandler = 0xffd03d14;
|
||||
XpbrRstACPU0Handler = 0xffd01124;
|
||||
XpbrRstACPU1Handler = 0xffd01158;
|
||||
XpbrRstACPU2Handler = 0xffd0118c;
|
||||
XpbrRstACPU3Handler = 0xffd011c0;
|
||||
XpbrRstACPUxHandler = 0xffd01070;
|
||||
XpbrRstApuHandler = 0xffd01d48;
|
||||
XpbrRstDisplayPortHandler = 0xffd0131c;
|
||||
XpbrRstFpdHandler = 0xffd014e8;
|
||||
XpbrRstGem0Handler = 0xffd013b8;
|
||||
XpbrRstGem1Handler = 0xffd013e4;
|
||||
XpbrRstGem2Handler = 0xffd01410;
|
||||
XpbrRstGem3Handler = 0xffd0143c;
|
||||
XpbrRstGpuHandler = 0xffd011f4;
|
||||
XpbrRstLsRpuHandler = 0xffd01dac;
|
||||
XpbrRstPCIeHandler = 0xffd012b4;
|
||||
XpbrRstPp0Handler = 0xffd0123c;
|
||||
XpbrRstPp1Handler = 0xffd01278;
|
||||
XpbrRstPsOnlyHandler = 0xffd014c0;
|
||||
XpbrRstR50Handler = 0xffd01350;
|
||||
XpbrRstR51Handler = 0xffd01384;
|
||||
XpbrRstSataHandler = 0xffd012e8;
|
||||
XpbrRstUsb0Handler = 0xffd01468;
|
||||
XpbrRstUsb1Handler = 0xffd01494;
|
||||
XpbrRtcAlarmHandler = 0xffd00d14;
|
||||
XpbrServiceHandler = 0xffd03dfc;
|
||||
XpbrServiceMode = 0xffd01b70;
|
||||
XpbrSwExceptionHandler = 0xffd03d7c;
|
||||
XpbrSwRstReqRouter = 0xffd03c54;
|
||||
XpbrTMRFaultDetectionHandler = 0xffd00cec;
|
||||
XpbrUsb0WakeHandler = 0xffd00e24;
|
||||
XpbrUsb1WakeHandler = 0xffd00e40;
|
||||
XpbrServHndlrTbl = 0xffd07bc8;
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* PM API calls definitions: api ids, arguments and functions used for
|
||||
|
@ -91,15 +89,6 @@ static const PmApiEntry pmApiTable[] = {
|
|||
}, {
|
||||
.apiId = PM_REGISTER_NOTIFIER,
|
||||
.argTypes = { ARG_NODE, ARG_EVENT_ID, ARG_WAKE, ARG_ENABLE }
|
||||
}, {
|
||||
.apiId = PM_CLOCK_REQUEST,
|
||||
.argTypes = { ARG_UINT32, ARG_UINT32, ARG_UNDEF, ARG_UNDEF }
|
||||
}, {
|
||||
.apiId = PM_CLOCK_RELEASE,
|
||||
.argTypes = { ARG_UINT32, ARG_UNDEF, ARG_UNDEF, ARG_UNDEF }
|
||||
}, {
|
||||
.apiId = PM_CLOCK_GET_RATE,
|
||||
.argTypes = { ARG_UINT32, ARG_UNDEF, ARG_UNDEF, ARG_UNDEF }
|
||||
}, {
|
||||
.apiId = PM_RESET_ASSERT,
|
||||
.argTypes = { ARG_UINT32, ARG_UINT32, ARG_UNDEF, ARG_UNDEF }
|
||||
|
@ -178,7 +167,6 @@ static PmPayloadStatus PmCheckArgument(const u8 argType,
|
|||
case ARG_OP_CH_TYPE:
|
||||
case ARG_STATE:
|
||||
case ARG_EVENT_ID:
|
||||
case ARG_CLOCK:
|
||||
case ARG_RESET:
|
||||
case ARG_LATENCY:
|
||||
case ARG_UINT32:
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Definitions needed to check correctness of PM API call
|
||||
|
@ -67,7 +65,6 @@
|
|||
#define ARG_STATE 7U
|
||||
#define ARG_QOS 8U
|
||||
#define ARG_EVENT_ID 9U
|
||||
#define ARG_CLOCK 10U
|
||||
#define ARG_RESET 11U
|
||||
#define ARG_LATENCY 12U
|
||||
#define ARG_UINT32 13U
|
||||
|
@ -90,7 +87,6 @@ typedef enum {
|
|||
PM_PAYLOAD_ERR_STATE,
|
||||
PM_PAYLOAD_ERR_QOS,
|
||||
PM_PAYLOAD_ERR_EVENT_ID,
|
||||
PM_PAYLOAD_ERR_CLOCK,
|
||||
PM_PAYLOAD_ERR_RESET,
|
||||
PM_PAYLOAD_ERR_LATENCY,
|
||||
PM_PAYLOAD_ERR_WAKE,
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Implementations of the functions to be used for integrating power
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
/*********************************************************************
|
||||
* Function declarations to be used for integrating
|
||||
* power management within PMU firmware.
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* PM callbacks interface.
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* PM callbacks interface.
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Definitions of commonly used functions for debugging PMU Power
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Definitions of commonly used macros and enums in PMU Power
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* This file contains implementation of the PM API functions, which
|
||||
|
@ -550,38 +548,6 @@ static void PmRegisterNotifier(const PmMaster *const master, const u32 node,
|
|||
event, wake, enable);
|
||||
}
|
||||
|
||||
/**
|
||||
* PmClockRequest() - Request the clock at some frequency
|
||||
* @master Initiator of the request
|
||||
* @clock The clock in question
|
||||
* @rate Frequency to be set
|
||||
*/
|
||||
static void PmClockRequest(const PmMaster *const master, const u32 clock,
|
||||
const u32 rate)
|
||||
{
|
||||
PmDbg("%s(%d, %d) not implemented\n", __func__, clock, rate);
|
||||
}
|
||||
|
||||
/**
|
||||
* PmClockRelease() - Release the clock
|
||||
* @master Initiator of the request
|
||||
* @clock The clock in question
|
||||
*/
|
||||
static void PmClockRelease(const PmMaster *const master, const u32 clock)
|
||||
{
|
||||
PmDbg("%s(%d) not implemented\n", __func__, clock);
|
||||
}
|
||||
|
||||
/**
|
||||
* PmGetClockRate() - Get current frequency of the clock
|
||||
* @master Initiator of the request
|
||||
* @clock Clock whose frequency should be returned
|
||||
*/
|
||||
static void PmGetClockRate(const PmMaster *const master, const u32 clock)
|
||||
{
|
||||
PmDbg("%s(%d) not implemented\n", __func__, clock);
|
||||
}
|
||||
|
||||
/**
|
||||
* PmResetAssert() - Request setting of reset (1 - assert, 0 - release)
|
||||
* @master Initiator of the request
|
||||
|
@ -664,15 +630,6 @@ void PmProcessApiCall(const PmMaster *const master,
|
|||
case PM_REGISTER_NOTIFIER:
|
||||
PmRegisterNotifier(master, pload[1], pload[2], pload[3], pload[4]);
|
||||
break;
|
||||
case PM_CLOCK_REQUEST:
|
||||
PmClockRequest(master, pload[1], pload[2]);
|
||||
break;
|
||||
case PM_CLOCK_RELEASE:
|
||||
PmClockRelease(master, pload[1]);
|
||||
break;
|
||||
case PM_CLOCK_GET_RATE:
|
||||
PmGetClockRate(master, pload[1]);
|
||||
break;
|
||||
case PM_RESET_ASSERT:
|
||||
PmResetAssert(master, pload[1], pload[2]);
|
||||
break;
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Contains the function to call for processing a PM API call.
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Definitions of commonly used enums that have to match definitions
|
||||
|
@ -79,11 +77,6 @@
|
|||
#define PM_SET_REQUIREMENT 15U
|
||||
#define PM_SET_MAX_LATENCY 16U
|
||||
|
||||
#define PM_CLOCK_REQUEST 17U
|
||||
#define PM_CLOCK_RELEASE 18U
|
||||
#define PM_CLOCK_SET_RATE 19U
|
||||
#define PM_CLOCK_GET_RATE 20U
|
||||
#define PM_CLOCK_GET_RATE_INFO 21U
|
||||
#define PM_RESET_ASSERT 22U
|
||||
#define PM_RESET_GET_STATUS 23U
|
||||
#define PM_MMIO_WRITE 24U
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* This file contains PM master related data structures and
|
||||
|
@ -107,9 +105,8 @@ typedef struct PmMaster PmMaster;
|
|||
#define PM_MASTER_RPU_0_SLAVE_MAX 12U
|
||||
|
||||
/* Pm Master request info masks */
|
||||
#define PM_MASTER_WAKEUP_REQ_MASK 0x40U
|
||||
#define PM_MASTER_USING_SLAVE_MASK 0x80U
|
||||
#define PM_MASTER_INDEX_MASK 0x3FU
|
||||
#define PM_MASTER_WAKEUP_REQ_MASK 0x1U
|
||||
#define PM_MASTER_USING_SLAVE_MASK 0x2U
|
||||
|
||||
/*********************************************************************
|
||||
* Structure definitions
|
||||
|
@ -131,11 +128,11 @@ typedef struct PmMaster PmMaster;
|
|||
* state (after it goes to sleep or before it gets awake)
|
||||
*/
|
||||
typedef struct PmRequirement {
|
||||
PmSlave* const slave;
|
||||
PmMaster* const requestor;
|
||||
u8 info;
|
||||
u32 currReq;
|
||||
u32 nextReq;
|
||||
PmSlave* const slave;
|
||||
PmMaster* const requestor;
|
||||
u8 info;
|
||||
u32 currReq;
|
||||
u32 nextReq;
|
||||
} PmRequirement;
|
||||
|
||||
/**
|
||||
|
@ -153,14 +150,14 @@ typedef struct PmRequirement {
|
|||
* used slaves)
|
||||
*/
|
||||
typedef struct PmMaster {
|
||||
PmProc* const procs;
|
||||
const u8 procsCnt;
|
||||
const u32 ipiMask;
|
||||
const u32 ipiTrigMask;
|
||||
const u32 pmuBuffer;
|
||||
const u32 buffer;
|
||||
PmRequirement* const reqs;
|
||||
const PmRequirementId reqsCnt;
|
||||
PmProc* const procs;
|
||||
const u8 procsCnt;
|
||||
const u32 ipiMask;
|
||||
const u32 ipiTrigMask;
|
||||
const u32 pmuBuffer;
|
||||
const u32 buffer;
|
||||
PmRequirement* const reqs;
|
||||
const PmRequirementId reqsCnt;
|
||||
} PmMaster;
|
||||
|
||||
/*********************************************************************
|
||||
|
@ -182,17 +179,18 @@ PmProc* PmGetProcByWfiStatus(const u32 mask);
|
|||
PmProc* PmGetProcByWakeStatus(const u32 mask);
|
||||
PmProc* PmGetProcByNodeId(const PmNodeId nodeId);
|
||||
PmProc* PmGetProcOfThisMaster(const PmMaster* const master,
|
||||
const PmNodeId nodeId);
|
||||
const PmNodeId nodeId);
|
||||
PmProc* PmGetProcOfOtherMaster(const PmMaster* const master,
|
||||
const PmNodeId nodeId);
|
||||
const PmNodeId nodeId);
|
||||
PmRequirement* PmGetRequirementForSlave(const PmMaster* const master,
|
||||
const PmNodeId nodeId);
|
||||
const PmNodeId nodeId);
|
||||
u32 PmMasterGetAwakeProcCnt(const PmMaster* const master);
|
||||
|
||||
/* Requirements related functions */
|
||||
u32 PmRequirementSchedule(PmRequirement* const masterReq, const u32 caps);
|
||||
u32 PmRequirementUpdate(PmRequirement* const masterReq, const u32 caps);
|
||||
void PmRequirementUpdateScheduled(const PmMaster* const master, const bool swap);
|
||||
void PmRequirementUpdateScheduled(const PmMaster* const master,
|
||||
const bool swap);
|
||||
void PmRequirementCancelScheduled(const PmMaster* const master);
|
||||
|
||||
void PmEnableAllMasterIpis(void);
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Global array of all nodes, and GetbyId function
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Pm Node related structures and definitions
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
#include "pm_periph.h"
|
||||
#include "pm_common.h"
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
#ifndef PM_PERIPH_H_
|
||||
#define PM_PERIPH_H_
|
||||
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Power nodes (power islands and power domains) related structures,
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Power nodes (power islands and power domains) related structures
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Definitions of processors and finite state machine
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Contains all functions, datas and definitions needed for
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*************************************************************************
|
||||
* PM slave structures definitions and code for handling states of slaves.
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* All functions, data and definitions needed for
|
||||
|
@ -84,10 +82,10 @@ typedef struct PmRequirement PmRequirement;
|
|||
#define FPD_GICP_PMU_IRQ_GROUP4 0x10U
|
||||
|
||||
/* FPD GIC Proxy irq masks */
|
||||
#define FPD_GICP_USB0_WAKE_IRQ_MASK 0x400U
|
||||
#define FPD_GICP_USB1_WAKE_IRQ_MASK 0x800U
|
||||
#define FPD_GICP_TTC0_WAKE_IRQ_MASK 0x10U
|
||||
#define FPD_GICP_SATA_WAKE_IRQ_MASK 0x20U
|
||||
#define FPD_GICP_USB0_WAKE_IRQ_MASK (1 << 11)
|
||||
#define FPD_GICP_USB1_WAKE_IRQ_MASK (1 << 12)
|
||||
#define FPD_GICP_TTC0_WAKE_IRQ_MASK (1 << 4)
|
||||
#define FPD_GICP_SATA_WAKE_IRQ_MASK (1 << 5)
|
||||
|
||||
/*********************************************************************
|
||||
* Structure definitions
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Definitions of PM slave SRAM structures and state transitions.
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* SRAM memories slaves definitions and data structures
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* Definitions of PM slave USB structures and state transitions.
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* USB slaves data structures
|
||||
|
|
|
@ -40,22 +40,17 @@
|
|||
/* Let the MB sleep when it is Idle in Main Loop */
|
||||
#define SLEEP_WHEN_IDLE
|
||||
|
||||
#ifndef ZYNQMP_XPFW_VERSION
|
||||
#define ZYNQMP_XPFW_VERSION "--LOCAL COPY--"
|
||||
#endif
|
||||
/* Directs the PMU FW to configure UART */
|
||||
#define CONFIG_UART
|
||||
|
||||
/* Enable Power Management Module */
|
||||
/* Enable Power Management and Error Management Modules */
|
||||
#define ENABLE_PM
|
||||
|
||||
#define ENABLE_EM
|
||||
/*
|
||||
* Disable all other mods
|
||||
* User can enable Each of the Optional Modules if required
|
||||
*/
|
||||
#undef ENABLE_RTC_TEST
|
||||
#undef ENABLE_EM
|
||||
#undef ENABLE_SCHEDULER
|
||||
|
||||
|
||||
#endif /* XPFW_CONFIG_H_ */
|
||||
|
|
|
@ -93,6 +93,11 @@ XStatus XPfw_CoreConfigure(void)
|
|||
/* FIXME: Enable IPI0 for PM-> Do it elsewhere */
|
||||
XPfw_InterruptEnable(PMU_IOMODULE_IRQ_ENABLE_IPI0_MASK);
|
||||
XPfw_InterruptStart();
|
||||
#ifdef ENABLE_PM /* ENABLE_PM */
|
||||
/* Set the FW_IS_PRESENT bit to enable PMUFW discovery by ATF*/
|
||||
XPfw_RMW32(PMU_GLOBAL_GLOBAL_CNTRL, PMU_GLOBAL_GLOBAL_CNTRL_FW_IS_PRESENT_MASK,
|
||||
PMU_GLOBAL_GLOBAL_CNTRL_FW_IS_PRESENT_MASK);
|
||||
#endif /* ENABLE_PM */
|
||||
Status = XST_SUCCESS;
|
||||
} else {
|
||||
Status = XST_FAILURE;
|
||||
|
|
|
@ -81,9 +81,6 @@ void XPfw_ErrorHandlerOne(void)
|
|||
/* Latch the Error Flags */
|
||||
l_ErrorOneReg = XPfw_Read32(PMU_GLOBAL_ERROR_STATUS_1);
|
||||
|
||||
/* Clear Error Register so that new errors can trigger an Interrupt */
|
||||
XPfw_Write32(PMU_GLOBAL_ERROR_STATUS_1,l_ErrorOneReg);
|
||||
|
||||
if( (l_ErrorOneReg & PMU_GLOBAL_ERROR_STATUS_1_DDR_ECC_MASK) != 0x00000000U) {
|
||||
XPfw_ErrorEccDdr();
|
||||
}
|
||||
|
@ -121,8 +118,7 @@ void XPfw_ErrorHandlerOne(void)
|
|||
XPfw_ErrorXmpu();
|
||||
}
|
||||
|
||||
/* Clear Error Register so that new errors can trigger an Interrupt */
|
||||
|
||||
/* Clear Error Register */
|
||||
XPfw_Write32(PMU_GLOBAL_ERROR_STATUS_1,l_ErrorOneReg);
|
||||
|
||||
}
|
||||
|
@ -135,9 +131,6 @@ void XPfw_ErrorHandlerTwo(void)
|
|||
/* Latch the Error Flags */
|
||||
l_ErrorTwoReg = XPfw_Read32(PMU_GLOBAL_ERROR_STATUS_2);
|
||||
|
||||
/* Clear Error Register so that new errors can trigger an Interrupt */
|
||||
XPfw_Write32(PMU_GLOBAL_ERROR_STATUS_2,l_ErrorTwoReg);
|
||||
|
||||
if( (l_ErrorTwoReg & PMU_GLOBAL_ERROR_STATUS_2_TO_MASK) != 0x00000000U) {
|
||||
XPfw_ErrorTimeOut();
|
||||
}
|
||||
|
@ -166,9 +159,8 @@ void XPfw_ErrorHandlerTwo(void)
|
|||
XPfw_ErrorCsuRom();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Clear Error Register */
|
||||
XPfw_Write32(PMU_GLOBAL_ERROR_STATUS_2,l_ErrorTwoReg);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
@ -27,105 +26,101 @@
|
|||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#include "xpfw_events.h"
|
||||
#include "xpfw_interrupts.h"
|
||||
|
||||
|
||||
static struct XPfw_Event_t EventTable[]={
|
||||
[0U] = {.Type = (u8)0U, .RegMask = MASK32_ALL_LOW, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MB_FAULT] = { .Type = XPFW_EV_TYPE_GPI0, .RegMask = MASK32_ALL_HIGH, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_APB_AIB_ERROR] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_APB_AIB_ERROR_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_AXI_AIB_ERROR] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_AXI_AIB_ERROR_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ERROR_2] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ERROR_2_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ERROR_1] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ERROR_1_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_3_DBG_PWRUP] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_3_DBG_PWRUP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_2_DBG_PWRUP] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_2_DBG_PWRUP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_1_DBG_PWRUP] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_1_DBG_PWRUP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_0_DBG_PWRUP] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_0_DBG_PWRUP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_FPD_WAKE_GIC_PROXY] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_FPD_WAKE_GIC_PROXY_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_5] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_5_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_4] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_4_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_3] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_3_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_2] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_2_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_1] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_1_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_0] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_0_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DAP_RPU_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_DAP_RPU_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DAP_FPD_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_DAP_FPD_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_USB_1_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_USB_1_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_USB_0_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_USB_0_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_R5_1_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_R5_1_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_R5_0_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_R5_0_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_3_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_3_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_2_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_2_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_1_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_1_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_0_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_0_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_VCC_INT_FP_DISCONNECT] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_VCC_INT_FP_DISCONNECT_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_VCC_INT_DISCONNECT] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_VCC_INT_DISCONNECT_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_VCC_AUX_DISCONNECT] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_VCC_AUX_DISCONNECT_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_ACPU3_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_ACPU3_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_ACPU2_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_ACPU2_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_ACPU1_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_ACPU1_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_ACPU0_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_ACPU0_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_CP_ACPU3_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_CP_ACPU3_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_CP_ACPU2_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_CP_ACPU2_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_CP_ACPU1_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_CP_ACPU1_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_CP_ACPU0_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_CP_ACPU0_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_RCPU1_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_RCPU1_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_RCPU0_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_RCPU0_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_R5_1_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_R5_1_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_R5_0_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_R5_0_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_3_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_ACPU_3_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_2_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_ACPU_2_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_1_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_ACPU_1_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_0_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_ACPU_0_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_31] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_31_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_30] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_30_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_29] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_29_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_28] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_28_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_27] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_27_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_26] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_26_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_25] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_25_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_24] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_24_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_23] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_23_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_22] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_22_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_21] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_21_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_20] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_20_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_19] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_19_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_18] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_18_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_17] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_17_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_16] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_16_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_15] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_15_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_14] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_14_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_13] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_13_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_12] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_12_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_11] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_11_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_10] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_10_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_9] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_9_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_8] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_8_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_7] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_7_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_6] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_6_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_5] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_5_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_4] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_4_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_3] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_3_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_2] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_2_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_1] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_1_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_0] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_0_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_RTC_SECONDS] = { .Type = XPFW_EV_TYPE_RTC, .RegMask = PMU_IOMODULE_IRQ_PENDING_RTC_EVERY_SECOND_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_RTC_ALARM] = { .Type = XPFW_EV_TYPE_RTC, .RegMask = PMU_IOMODULE_IRQ_PENDING_RTC_ALARM_MASK, .ModMask = MASK32_ALL_LOW }
|
||||
|
||||
static struct XPfw_Event_t EventTable[] = {
|
||||
[0U] = {.Type = (u8)0U, .RegMask = MASK32_ALL_LOW, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MB_FAULT] = { .Type = XPFW_EV_TYPE_GPI0, .RegMask = MASK32_ALL_HIGH, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_APB_AIB_ERROR] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_APB_AIB_ERROR_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_AXI_AIB_ERROR] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_AXI_AIB_ERROR_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ERROR_2] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ERROR_2_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ERROR_1] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ERROR_1_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_3_DBG_PWRUP] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_3_DBG_PWRUP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_2_DBG_PWRUP] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_2_DBG_PWRUP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_1_DBG_PWRUP] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_1_DBG_PWRUP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_0_DBG_PWRUP] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_0_DBG_PWRUP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_FPD_WAKE_GIC_PROXY] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_FPD_WAKE_GIC_PROXY_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_5] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_5_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_4] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_4_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_3] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_3_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_2] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_2_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_1] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_1_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_MIO_WAKE_0] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_MIO_WAKE_0_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DAP_RPU_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_DAP_RPU_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DAP_FPD_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_DAP_FPD_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_USB_1_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_USB_1_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_USB_0_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_USB_0_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_R5_1_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_R5_1_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_R5_0_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_R5_0_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_3_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_3_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_2_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_2_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_1_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_1_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_0_WAKE] = { .Type = XPFW_EV_TYPE_GPI1, .RegMask = PMU_IOMODULE_GPI1_ACPU_0_WAKE_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_VCC_INT_FP_DISCONNECT] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_VCC_INT_FP_DISCONNECT_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_VCC_INT_DISCONNECT] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_VCC_INT_DISCONNECT_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_VCC_AUX_DISCONNECT] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_VCC_AUX_DISCONNECT_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_ACPU3_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_ACPU3_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_ACPU2_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_ACPU2_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_ACPU1_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_ACPU1_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_ACPU0_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_ACPU0_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_CP_ACPU3_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_CP_ACPU3_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_CP_ACPU2_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_CP_ACPU2_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_CP_ACPU1_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_CP_ACPU1_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_CP_ACPU0_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_CP_ACPU0_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_RCPU1_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_RCPU1_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_DBG_RCPU0_RST_REQ] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_DBG_RCPU0_RST_REQ_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_R5_1_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_R5_1_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_R5_0_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_R5_0_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_3_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_ACPU_3_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_2_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_ACPU_2_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_1_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_ACPU_1_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_ACPU_0_SLEEP] = { .Type = XPFW_EV_TYPE_GPI2, .RegMask = PMU_IOMODULE_GPI2_ACPU_0_SLEEP_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_31] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_31_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_30] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_30_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_29] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_29_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_28] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_28_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_27] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_27_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_26] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_26_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_25] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_25_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_24] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_24_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_23] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_23_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_22] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_22_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_21] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_21_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_20] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_20_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_19] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_19_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_18] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_18_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_17] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_17_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_16] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_16_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_15] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_15_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_14] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_14_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_13] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_13_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_12] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_12_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_11] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_11_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_10] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_10_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_9] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_9_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_8] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_8_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_7] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_7_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_6] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_6_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_5] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_5_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_4] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_4_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_3] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_3_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_2] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_2_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_1] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_1_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_PL_GPI_0] = { .Type = XPFW_EV_TYPE_GPI3, .RegMask = PMU_IOMODULE_GPI3_PL_GPI_0_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_RTC_SECONDS] = { .Type = XPFW_EV_TYPE_RTC, .RegMask = PMU_IOMODULE_IRQ_PENDING_RTC_EVERY_SECOND_MASK, .ModMask = MASK32_ALL_LOW },
|
||||
[XPFW_EV_RTC_ALARM] = { .Type = XPFW_EV_TYPE_RTC, .RegMask = PMU_IOMODULE_IRQ_PENDING_RTC_ALARM_MASK, .ModMask = MASK32_ALL_LOW }
|
||||
};
|
||||
|
||||
|
||||
u32 XPfw_EventGetModMask(u32 EventId)
|
||||
{
|
||||
u32 Mask;
|
||||
if(EventId < XPFW_EV_MAX){
|
||||
|
||||
if (EventId < XPFW_EV_MAX) {
|
||||
Mask = EventTable[EventId].ModMask;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
Mask = 0U;
|
||||
}
|
||||
|
||||
|
@ -135,10 +130,10 @@ u32 XPfw_EventGetModMask(u32 EventId)
|
|||
u32 XPfw_EventGetRegMask(u32 EventId)
|
||||
{
|
||||
u32 Mask;
|
||||
if(EventId < XPFW_EV_MAX){
|
||||
|
||||
if (EventId < XPFW_EV_MAX) {
|
||||
Mask = EventTable[EventId].RegMask;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
Mask = MASK32_ALL_HIGH;
|
||||
}
|
||||
|
||||
|
@ -149,8 +144,7 @@ static XStatus XPfw_EventEnable(u32 EventId)
|
|||
{
|
||||
XStatus Status;
|
||||
|
||||
switch(EventTable[EventId].Type){
|
||||
|
||||
switch (EventTable[EventId].Type) {
|
||||
case XPFW_EV_TYPE_GPI0:
|
||||
/* Nothing to do for GPI0. These are enabled by default */
|
||||
/* Enable GPI0 bit in IRQ_ENABLE */
|
||||
|
@ -190,12 +184,8 @@ static XStatus XPfw_EventEnable(u32 EventId)
|
|||
default:
|
||||
Status = XST_FAILURE;
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -203,8 +193,7 @@ static XStatus XPfw_EventDisable(u32 EventId)
|
|||
{
|
||||
XStatus Status;
|
||||
|
||||
switch(EventTable[EventId].Type){
|
||||
|
||||
switch (EventTable[EventId].Type) {
|
||||
case XPFW_EV_TYPE_GPI0:
|
||||
/* Nothing to do for GPI0. These are enabled by default */
|
||||
/* Disable GPI0 bit in IRQ_ENABLE */
|
||||
|
@ -216,7 +205,7 @@ static XStatus XPfw_EventDisable(u32 EventId)
|
|||
/* Disable the event in GPI1 ENABLE register */
|
||||
XPfw_RMW32(PMU_LOCAL_GPI1_ENABLE, EventTable[EventId].RegMask, 0U);
|
||||
/* Disable the GPI1 bit in IRQ ENABLE */
|
||||
if(0U == XPfw_Read32(PMU_LOCAL_GPI1_ENABLE)) {
|
||||
if (0U == XPfw_Read32(PMU_LOCAL_GPI1_ENABLE)) {
|
||||
XPfw_InterruptDisable(PMU_IOMODULE_IRQ_ENABLE_GPI1_MASK);
|
||||
}
|
||||
Status = XST_SUCCESS;
|
||||
|
@ -236,7 +225,7 @@ static XStatus XPfw_EventDisable(u32 EventId)
|
|||
/* Disable the event in GPI3 ENABLE register */
|
||||
XPfw_RMW32(PMU_LOCAL_GPI3_ENABLE, EventTable[EventId].RegMask, 0U);
|
||||
/* Enable the GPI3 bit in IRQ ENABLE */
|
||||
if(0U == XPfw_Read32(PMU_LOCAL_GPI3_ENABLE)) {
|
||||
if (0U == XPfw_Read32(PMU_LOCAL_GPI3_ENABLE)) {
|
||||
XPfw_InterruptDisable(PMU_IOMODULE_IRQ_ENABLE_GPI3_MASK);
|
||||
}
|
||||
Status = XST_SUCCESS;
|
||||
|
@ -250,25 +239,19 @@ static XStatus XPfw_EventDisable(u32 EventId)
|
|||
default:
|
||||
Status = XST_FAILURE;
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
XStatus XPfw_EventAddOwner(u8 ModId, u32 EventId)
|
||||
{
|
||||
XStatus Status;
|
||||
if((EventId < XPFW_EV_MAX) && (ModId < 32U)){
|
||||
|
||||
if ((EventId < XPFW_EV_MAX) && (ModId < 32U)) {
|
||||
EventTable[EventId].ModMask = EventTable[EventId].ModMask | ((u32)1U<<ModId);
|
||||
Status = XPfw_EventEnable(EventId);
|
||||
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
Status = XST_FAILURE;
|
||||
}
|
||||
|
||||
|
@ -278,21 +261,19 @@ XStatus XPfw_EventAddOwner(u8 ModId, u32 EventId)
|
|||
XStatus XPfw_EventRemoveOwner(u32 ModId, u32 EventId)
|
||||
{
|
||||
XStatus Status;
|
||||
if((EventId < XPFW_EV_MAX) && (ModId < 32U)){
|
||||
|
||||
if ((EventId < XPFW_EV_MAX) && (ModId < 32U)) {
|
||||
/* Update the ModMask for Event */
|
||||
EventTable[EventId].ModMask = EventTable[EventId].ModMask & (~((u32)1U<<ModId));
|
||||
|
||||
/* Check if the Event has been de-registered by All Modules */
|
||||
if(0U == EventTable[EventId].ModMask) {
|
||||
if (0U == EventTable[EventId].ModMask) {
|
||||
/* Disable the corresponding Event from occurring */
|
||||
Status = XPfw_EventDisable(EventId);
|
||||
} else {
|
||||
/* We successfully completed de-registration */
|
||||
Status = XST_SUCCESS;
|
||||
}
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
/* Failed due to Invalid EventId or Mod Id */
|
||||
Status = XST_FAILURE;
|
||||
}
|
||||
|
@ -303,8 +284,10 @@ XStatus XPfw_EventRemoveOwner(u32 ModId, u32 EventId)
|
|||
u32 XPfw_EventGetId(u32 EventType, u32 Mask)
|
||||
{
|
||||
u32 Index;
|
||||
for(Index=0; Index<XPFW_EV_MAX;Index++){
|
||||
if((EventTable[Index].RegMask == Mask) && (EventTable[Index].Type == EventType)){
|
||||
|
||||
for (Index=0; Index<XPFW_EV_MAX;Index++) {
|
||||
if ((EventTable[Index].RegMask == Mask) &&
|
||||
(EventTable[Index].Type == EventType)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -312,14 +295,13 @@ u32 XPfw_EventGetId(u32 EventType, u32 Mask)
|
|||
return Index;
|
||||
}
|
||||
|
||||
|
||||
u32 XPfw_EventGetType(u32 EventId)
|
||||
{
|
||||
u32 EventType;
|
||||
if(EventId < XPFW_EV_MAX) {
|
||||
|
||||
if (EventId < XPFW_EV_MAX) {
|
||||
EventType = EventTable[EventId].Type;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
EventType = XPFW_EV_TYPE_INVALID;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
@ -27,7 +26,6 @@
|
|||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#include "xpfw_interrupts.h"
|
||||
|
@ -42,95 +40,93 @@
|
|||
*/
|
||||
static u32 InterruptRegsiter;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* This list of IDs enables re-ordering of Events for GPI1 as per user's priority
|
||||
*/
|
||||
|
||||
static u32 Gpi1EventIdList[]={
|
||||
XPFW_EV_APB_AIB_ERROR,
|
||||
XPFW_EV_AXI_AIB_ERROR,
|
||||
XPFW_EV_ERROR_2,
|
||||
XPFW_EV_ERROR_1,
|
||||
XPFW_EV_ACPU_3_DBG_PWRUP,
|
||||
XPFW_EV_ACPU_2_DBG_PWRUP,
|
||||
XPFW_EV_ACPU_1_DBG_PWRUP,
|
||||
XPFW_EV_ACPU_0_DBG_PWRUP,
|
||||
XPFW_EV_FPD_WAKE_GIC_PROXY,
|
||||
XPFW_EV_MIO_WAKE_5,
|
||||
XPFW_EV_MIO_WAKE_4,
|
||||
XPFW_EV_MIO_WAKE_3,
|
||||
XPFW_EV_MIO_WAKE_2,
|
||||
XPFW_EV_MIO_WAKE_1,
|
||||
XPFW_EV_MIO_WAKE_0,
|
||||
XPFW_EV_DAP_RPU_WAKE,
|
||||
XPFW_EV_DAP_FPD_WAKE,
|
||||
XPFW_EV_USB_1_WAKE,
|
||||
XPFW_EV_USB_0_WAKE,
|
||||
XPFW_EV_R5_1_WAKE,
|
||||
XPFW_EV_R5_0_WAKE,
|
||||
XPFW_EV_ACPU_3_WAKE,
|
||||
XPFW_EV_ACPU_2_WAKE,
|
||||
XPFW_EV_ACPU_1_WAKE,
|
||||
XPFW_EV_ACPU_0_WAKE
|
||||
static u32 Gpi1EventIdList[] = {
|
||||
XPFW_EV_APB_AIB_ERROR,
|
||||
XPFW_EV_AXI_AIB_ERROR,
|
||||
XPFW_EV_ERROR_2,
|
||||
XPFW_EV_ERROR_1,
|
||||
XPFW_EV_ACPU_3_DBG_PWRUP,
|
||||
XPFW_EV_ACPU_2_DBG_PWRUP,
|
||||
XPFW_EV_ACPU_1_DBG_PWRUP,
|
||||
XPFW_EV_ACPU_0_DBG_PWRUP,
|
||||
XPFW_EV_FPD_WAKE_GIC_PROXY,
|
||||
XPFW_EV_MIO_WAKE_5,
|
||||
XPFW_EV_MIO_WAKE_4,
|
||||
XPFW_EV_MIO_WAKE_3,
|
||||
XPFW_EV_MIO_WAKE_2,
|
||||
XPFW_EV_MIO_WAKE_1,
|
||||
XPFW_EV_MIO_WAKE_0,
|
||||
XPFW_EV_DAP_RPU_WAKE,
|
||||
XPFW_EV_DAP_FPD_WAKE,
|
||||
XPFW_EV_USB_1_WAKE,
|
||||
XPFW_EV_USB_0_WAKE,
|
||||
XPFW_EV_R5_1_WAKE,
|
||||
XPFW_EV_R5_0_WAKE,
|
||||
XPFW_EV_ACPU_3_WAKE,
|
||||
XPFW_EV_ACPU_2_WAKE,
|
||||
XPFW_EV_ACPU_1_WAKE,
|
||||
XPFW_EV_ACPU_0_WAKE
|
||||
};
|
||||
|
||||
static u32 Gpi2EventIdList[]={XPFW_EV_VCC_INT_FP_DISCONNECT,
|
||||
XPFW_EV_VCC_INT_DISCONNECT,
|
||||
XPFW_EV_VCC_AUX_DISCONNECT,
|
||||
XPFW_EV_DBG_ACPU3_RST_REQ,
|
||||
XPFW_EV_DBG_ACPU2_RST_REQ,
|
||||
XPFW_EV_DBG_ACPU1_RST_REQ,
|
||||
XPFW_EV_DBG_ACPU0_RST_REQ,
|
||||
XPFW_EV_CP_ACPU3_RST_REQ,
|
||||
XPFW_EV_CP_ACPU2_RST_REQ,
|
||||
XPFW_EV_CP_ACPU1_RST_REQ,
|
||||
XPFW_EV_CP_ACPU0_RST_REQ,
|
||||
XPFW_EV_DBG_RCPU1_RST_REQ,
|
||||
XPFW_EV_DBG_RCPU0_RST_REQ,
|
||||
XPFW_EV_R5_1_SLEEP,
|
||||
XPFW_EV_R5_0_SLEEP,
|
||||
XPFW_EV_ACPU_3_SLEEP,
|
||||
XPFW_EV_ACPU_2_SLEEP,
|
||||
XPFW_EV_ACPU_1_SLEEP,
|
||||
XPFW_EV_ACPU_0_SLEEP
|
||||
};
|
||||
static u32 Gpi3EventIdList[]={XPFW_EV_PL_GPI_31,
|
||||
XPFW_EV_PL_GPI_30,
|
||||
XPFW_EV_PL_GPI_29,
|
||||
XPFW_EV_PL_GPI_28,
|
||||
XPFW_EV_PL_GPI_27,
|
||||
XPFW_EV_PL_GPI_26,
|
||||
XPFW_EV_PL_GPI_25,
|
||||
XPFW_EV_PL_GPI_24,
|
||||
XPFW_EV_PL_GPI_23,
|
||||
XPFW_EV_PL_GPI_22,
|
||||
XPFW_EV_PL_GPI_21,
|
||||
XPFW_EV_PL_GPI_20,
|
||||
XPFW_EV_PL_GPI_19,
|
||||
XPFW_EV_PL_GPI_18,
|
||||
XPFW_EV_PL_GPI_17,
|
||||
XPFW_EV_PL_GPI_16,
|
||||
XPFW_EV_PL_GPI_15,
|
||||
XPFW_EV_PL_GPI_14,
|
||||
XPFW_EV_PL_GPI_13,
|
||||
XPFW_EV_PL_GPI_12,
|
||||
XPFW_EV_PL_GPI_11,
|
||||
XPFW_EV_PL_GPI_10,
|
||||
XPFW_EV_PL_GPI_9,
|
||||
XPFW_EV_PL_GPI_8,
|
||||
XPFW_EV_PL_GPI_7,
|
||||
XPFW_EV_PL_GPI_6,
|
||||
XPFW_EV_PL_GPI_5,
|
||||
XPFW_EV_PL_GPI_4,
|
||||
XPFW_EV_PL_GPI_3,
|
||||
XPFW_EV_PL_GPI_2,
|
||||
XPFW_EV_PL_GPI_1,
|
||||
XPFW_EV_PL_GPI_0,
|
||||
static u32 Gpi2EventIdList[] = {
|
||||
XPFW_EV_VCC_INT_FP_DISCONNECT,
|
||||
XPFW_EV_VCC_INT_DISCONNECT,
|
||||
XPFW_EV_VCC_AUX_DISCONNECT,
|
||||
XPFW_EV_DBG_ACPU3_RST_REQ,
|
||||
XPFW_EV_DBG_ACPU2_RST_REQ,
|
||||
XPFW_EV_DBG_ACPU1_RST_REQ,
|
||||
XPFW_EV_DBG_ACPU0_RST_REQ,
|
||||
XPFW_EV_CP_ACPU3_RST_REQ,
|
||||
XPFW_EV_CP_ACPU2_RST_REQ,
|
||||
XPFW_EV_CP_ACPU1_RST_REQ,
|
||||
XPFW_EV_CP_ACPU0_RST_REQ,
|
||||
XPFW_EV_DBG_RCPU1_RST_REQ,
|
||||
XPFW_EV_DBG_RCPU0_RST_REQ,
|
||||
XPFW_EV_R5_1_SLEEP,
|
||||
XPFW_EV_R5_0_SLEEP,
|
||||
XPFW_EV_ACPU_3_SLEEP,
|
||||
XPFW_EV_ACPU_2_SLEEP,
|
||||
XPFW_EV_ACPU_1_SLEEP,
|
||||
XPFW_EV_ACPU_0_SLEEP
|
||||
};
|
||||
|
||||
|
||||
static u32 Gpi3EventIdList[] = {
|
||||
XPFW_EV_PL_GPI_31,
|
||||
XPFW_EV_PL_GPI_30,
|
||||
XPFW_EV_PL_GPI_29,
|
||||
XPFW_EV_PL_GPI_28,
|
||||
XPFW_EV_PL_GPI_27,
|
||||
XPFW_EV_PL_GPI_26,
|
||||
XPFW_EV_PL_GPI_25,
|
||||
XPFW_EV_PL_GPI_24,
|
||||
XPFW_EV_PL_GPI_23,
|
||||
XPFW_EV_PL_GPI_22,
|
||||
XPFW_EV_PL_GPI_21,
|
||||
XPFW_EV_PL_GPI_20,
|
||||
XPFW_EV_PL_GPI_19,
|
||||
XPFW_EV_PL_GPI_18,
|
||||
XPFW_EV_PL_GPI_17,
|
||||
XPFW_EV_PL_GPI_16,
|
||||
XPFW_EV_PL_GPI_15,
|
||||
XPFW_EV_PL_GPI_14,
|
||||
XPFW_EV_PL_GPI_13,
|
||||
XPFW_EV_PL_GPI_12,
|
||||
XPFW_EV_PL_GPI_11,
|
||||
XPFW_EV_PL_GPI_10,
|
||||
XPFW_EV_PL_GPI_9,
|
||||
XPFW_EV_PL_GPI_8,
|
||||
XPFW_EV_PL_GPI_7,
|
||||
XPFW_EV_PL_GPI_6,
|
||||
XPFW_EV_PL_GPI_5,
|
||||
XPFW_EV_PL_GPI_4,
|
||||
XPFW_EV_PL_GPI_3,
|
||||
XPFW_EV_PL_GPI_2,
|
||||
XPFW_EV_PL_GPI_1,
|
||||
XPFW_EV_PL_GPI_0,
|
||||
};
|
||||
|
||||
static void XPfw_NullHandler(void)
|
||||
{
|
||||
|
@ -143,28 +139,26 @@ static void XPfw_NullHandler(void)
|
|||
|
||||
static void XPfw_InterruptGpi0Handler(void)
|
||||
{
|
||||
XStatus Status;
|
||||
Status = XPfw_CoreDispatchEvent(XPFW_EV_MB_FAULT);
|
||||
XStatus Status = XPfw_CoreDispatchEvent(XPFW_EV_MB_FAULT);
|
||||
|
||||
if (XST_SUCCESS != Status) {
|
||||
fw_printf("Warning: Failed to dispatch Event ID: %d\r\n",
|
||||
XPFW_EV_MB_FAULT);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void XPfw_InterruptGpi1Handler(void)
|
||||
{
|
||||
u32 Index, GpiRegVal, RegMask;
|
||||
XStatus Status;
|
||||
GpiRegVal = XPfw_Read32(PMU_IOMODULE_GPI1);
|
||||
u32 Index;
|
||||
|
||||
for (Index = 0U; Index < ARRAYSIZE(Gpi1EventIdList); Index++) {
|
||||
u32 RegMask = XPfw_EventGetRegMask(Gpi1EventIdList[Index]);
|
||||
u32 GpiRegVal = XPfw_Read32(PMU_IOMODULE_GPI1);
|
||||
|
||||
RegMask = XPfw_EventGetRegMask(Gpi1EventIdList[Index]);
|
||||
if ((GpiRegVal & RegMask) == RegMask) {
|
||||
/* Dispatch the event to Registered Modules */
|
||||
Status = XPfw_CoreDispatchEvent(Gpi1EventIdList[Index]);
|
||||
XStatus Status = XPfw_CoreDispatchEvent(Gpi1EventIdList[Index]);
|
||||
|
||||
if (XST_SUCCESS != Status) {
|
||||
fw_printf("Warning: Failed to dispatch Event ID: %d\r\n",
|
||||
Gpi1EventIdList[Index]);
|
||||
|
@ -172,19 +166,19 @@ static void XPfw_InterruptGpi1Handler(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void XPfw_InterruptGpi2Handler(void)
|
||||
{
|
||||
u32 Index, GpiRegVal, RegMask;
|
||||
XStatus Status;
|
||||
|
||||
GpiRegVal = XPfw_Read32(PMU_IOMODULE_GPI2);
|
||||
u32 Index;
|
||||
|
||||
for (Index = 0U; Index < ARRAYSIZE(Gpi2EventIdList); Index++) {
|
||||
u32 RegMask = XPfw_EventGetRegMask(Gpi2EventIdList[Index]);
|
||||
u32 GpiRegVal = XPfw_Read32(PMU_IOMODULE_GPI2);
|
||||
|
||||
RegMask = XPfw_EventGetRegMask(Gpi2EventIdList[Index]);
|
||||
if ((GpiRegVal & RegMask) == RegMask) {
|
||||
/* Dispatch the event to Registered Modules */
|
||||
Status = XPfw_CoreDispatchEvent(Gpi2EventIdList[Index]);
|
||||
XStatus Status = XPfw_CoreDispatchEvent(Gpi2EventIdList[Index]);
|
||||
|
||||
if (XST_SUCCESS != Status) {
|
||||
fw_printf("Warning: Failed to dispatch Event ID: %d\r\n",
|
||||
Gpi2EventIdList[Index]);
|
||||
|
@ -195,16 +189,16 @@ static void XPfw_InterruptGpi2Handler(void)
|
|||
|
||||
static void XPfw_InterruptGpi3Handler(void)
|
||||
{
|
||||
u32 Index, GpiRegVal, RegMask;
|
||||
XStatus Status;
|
||||
GpiRegVal = XPfw_Read32(PMU_IOMODULE_GPI3);
|
||||
u32 Index;
|
||||
|
||||
for (Index = 0U; Index < ARRAYSIZE(Gpi3EventIdList); Index++) {
|
||||
u32 RegMask = XPfw_EventGetRegMask(Gpi3EventIdList[Index]);
|
||||
u32 GpiRegVal = XPfw_Read32(PMU_IOMODULE_GPI3);
|
||||
|
||||
RegMask = XPfw_EventGetRegMask(Gpi3EventIdList[Index]);
|
||||
if ((GpiRegVal & RegMask) == RegMask) {
|
||||
/* Dispatch the event to Registered Modules */
|
||||
Status = XPfw_CoreDispatchEvent(Gpi3EventIdList[Index]);
|
||||
XStatus Status = XPfw_CoreDispatchEvent(Gpi3EventIdList[Index]);
|
||||
|
||||
if (XST_SUCCESS != Status) {
|
||||
fw_printf("Warning: Failed to dispatch Event ID: %d\r\n",
|
||||
Gpi3EventIdList[Index]);
|
||||
|
@ -220,7 +214,6 @@ static void XPfw_InterruptRtcAlaramHandler(void)
|
|||
(void)XPfw_CoreDispatchEvent(XPFW_EV_RTC_ALARM);
|
||||
}
|
||||
|
||||
|
||||
static void XPfw_InterruptRtcSecondsmHandler(void)
|
||||
{
|
||||
(void)XPfw_CoreDispatchEvent(XPFW_EV_RTC_SECONDS);
|
||||
|
@ -233,12 +226,11 @@ static void XPfw_Pit1Handler(void)
|
|||
|
||||
static void XPfw_Ipi0Handler(void)
|
||||
{
|
||||
XStatus Status;
|
||||
u32 Mask;
|
||||
Mask = XPfw_Read32(IPI_PMU_0_ISR);
|
||||
Status = XPfw_CoreDispatchIpi(0U);
|
||||
XStatus Status = XPfw_CoreDispatchIpi(0U);
|
||||
|
||||
/* If no Mod has registered for IPI, Ack it to prevent re-triggering */
|
||||
if(XST_SUCCESS != Status){
|
||||
if (XST_SUCCESS != Status) {
|
||||
u32 Mask = XPfw_Read32(IPI_PMU_0_ISR);
|
||||
fw_printf("Error: Unhandled IPI received\r\n");
|
||||
XPfw_Write32(IPI_PMU_0_ISR, Mask);
|
||||
}
|
||||
|
@ -246,12 +238,11 @@ static void XPfw_Ipi0Handler(void)
|
|||
|
||||
static void XPfw_Ipi1Handler(void)
|
||||
{
|
||||
XStatus Status;
|
||||
u32 Mask;
|
||||
Mask = XPfw_Read32(IPI_PMU_1_ISR);
|
||||
Status = XPfw_CoreDispatchIpi(1U);
|
||||
XStatus Status = XPfw_CoreDispatchIpi(1U);
|
||||
|
||||
/* If no Mod has registered for IPI, Ack it to prevent re-triggering */
|
||||
if(XST_SUCCESS != Status){
|
||||
if (XST_SUCCESS != Status) {
|
||||
u32 Mask = XPfw_Read32(IPI_PMU_1_ISR);
|
||||
fw_printf("Error: Unhandled IPI received\r\n");
|
||||
XPfw_Write32(IPI_PMU_1_ISR, Mask);
|
||||
}
|
||||
|
@ -259,12 +250,11 @@ static void XPfw_Ipi1Handler(void)
|
|||
|
||||
static void XPfw_Ipi2Handler(void)
|
||||
{
|
||||
XStatus Status;
|
||||
u32 Mask;
|
||||
Mask = XPfw_Read32(IPI_PMU_2_ISR);
|
||||
Status = XPfw_CoreDispatchIpi(2U);
|
||||
XStatus Status = XPfw_CoreDispatchIpi(2U);
|
||||
|
||||
/* If no Mod has registered for IPI, Ack it to prevent re-triggering */
|
||||
if(XST_SUCCESS != Status){
|
||||
u32 Mask = XPfw_Read32(IPI_PMU_2_ISR);
|
||||
fw_printf("Error: Unhandled IPI received\r\n");
|
||||
XPfw_Write32(IPI_PMU_2_ISR, Mask);
|
||||
}
|
||||
|
@ -272,51 +262,46 @@ static void XPfw_Ipi2Handler(void)
|
|||
|
||||
static void XPfw_Ipi3Handler(void)
|
||||
{
|
||||
XStatus Status;
|
||||
u32 Mask;
|
||||
Mask = XPfw_Read32(IPI_PMU_3_ISR);
|
||||
Status = XPfw_CoreDispatchIpi(3U);
|
||||
XStatus Status = XPfw_CoreDispatchIpi(3U);
|
||||
/* If no Mod has registered for IPI, Ack it to prevent re-triggering */
|
||||
if(XST_SUCCESS != Status){
|
||||
u32 Mask = XPfw_Read32(IPI_PMU_3_ISR);
|
||||
fw_printf("Error: Unhandled IPI received\r\n");
|
||||
XPfw_Write32(IPI_PMU_3_ISR, Mask);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static struct HandlerTable g_TopLevelInterruptTable[] ={
|
||||
{PMU_IOMODULE_IRQ_PENDING_RTC_ALARM_MASK, XPfw_InterruptRtcAlaramHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_RTC_EVERY_SECOND_MASK, XPfw_InterruptRtcSecondsmHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_CORRECTABLE_ECC_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_INV_ADDR_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_IPI3_MASK, XPfw_Ipi3Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_IPI2_MASK, XPfw_Ipi2Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_IPI1_MASK, XPfw_Ipi1Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_IPI0_MASK, XPfw_Ipi0Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PWR_UP_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PWR_DN_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_ISO_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_SW_RST_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_HW_RST_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_GPI3_MASK, XPfw_InterruptGpi3Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_GPI2_MASK, XPfw_InterruptGpi2Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_GPI1_MASK, XPfw_InterruptGpi1Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_GPI0_MASK, XPfw_InterruptGpi0Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PIT3_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PIT2_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PIT1_MASK, XPfw_Pit1Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PIT0_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_CSU_PMU_SEC_LOCK_MASK, XPfw_NullHandler}
|
||||
static struct HandlerTable g_TopLevelInterruptTable[] = {
|
||||
{PMU_IOMODULE_IRQ_PENDING_RTC_ALARM_MASK, XPfw_InterruptRtcAlaramHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_RTC_EVERY_SECOND_MASK, XPfw_InterruptRtcSecondsmHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_CORRECTABLE_ECC_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_INV_ADDR_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_IPI3_MASK, XPfw_Ipi3Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_IPI2_MASK, XPfw_Ipi2Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_IPI1_MASK, XPfw_Ipi1Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_IPI0_MASK, XPfw_Ipi0Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PWR_UP_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PWR_DN_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_ISO_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_SW_RST_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_HW_RST_REQ_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_GPI3_MASK, XPfw_InterruptGpi3Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_GPI2_MASK, XPfw_InterruptGpi2Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_GPI1_MASK, XPfw_InterruptGpi1Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_GPI0_MASK, XPfw_InterruptGpi0Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PIT3_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PIT2_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PIT1_MASK, XPfw_Pit1Handler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_PIT0_MASK, XPfw_NullHandler},
|
||||
{PMU_IOMODULE_IRQ_PENDING_CSU_PMU_SEC_LOCK_MASK, XPfw_NullHandler}
|
||||
};
|
||||
|
||||
void XPfw_InterruptInit(void)
|
||||
{
|
||||
|
||||
XPfw_Write32(PMU_IOMODULE_IRQ_ENABLE, 0U);
|
||||
Xil_ExceptionDisable();
|
||||
XPfw_Write32(PMU_IOMODULE_IRQ_ACK, 0xffffffffU);
|
||||
InterruptRegsiter = 0U;
|
||||
|
||||
}
|
||||
|
||||
void XPfw_InterruptStart(void)
|
||||
|
@ -330,8 +315,7 @@ void XPfw_InterruptHandler(void)
|
|||
u32 l_IrqReg;
|
||||
u32 l_index;
|
||||
|
||||
if ( XST_SUCCESS == XPfw_CoreIsReady()) {
|
||||
|
||||
if (XST_SUCCESS == XPfw_CoreIsReady()) {
|
||||
/* Latch the IRQ_PENDING register into a local variable */
|
||||
l_IrqReg = XPfw_Read32(PMU_IOMODULE_IRQ_PENDING);
|
||||
|
||||
|
@ -353,11 +337,8 @@ void XPfw_InterruptHandler(void)
|
|||
XPfw_Write32(PMU_IOMODULE_IRQ_ENABLE, 0U);
|
||||
XPfw_Write32(PMU_IOMODULE_IRQ_ACK, 0xffffffffU);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void XPfw_InterruptDisable(u32 Mask)
|
||||
{
|
||||
InterruptRegsiter = InterruptRegsiter & (~Mask);
|
||||
|
|
|
@ -35,15 +35,10 @@
|
|||
|
||||
#include "xpfw_default.h"
|
||||
|
||||
|
||||
void XPfw_InterruptHandler(void) __attribute__ ((interrupt_handler));
|
||||
|
||||
void XPfw_InterruptDisable(u32 Mask);
|
||||
|
||||
void XPfw_InterruptEnable(u32 Mask);
|
||||
|
||||
void XPfw_InterruptStart(void);
|
||||
|
||||
void XPfw_InterruptInit(void);
|
||||
|
||||
#endif /* XPFW_INTERRUPTS_H_ */
|
||||
|
|
|
@ -1,113 +1,500 @@
|
|||
u32 XpbrACPU0SleepHandler(void);
|
||||
u32 XpbrACPU0WakeHandler(void);
|
||||
u32 XpbrACPU1SleepHandler(void);
|
||||
u32 XpbrACPU1WakeHandler(void);
|
||||
u32 XpbrACPU2SleepHandler(void);
|
||||
u32 XpbrACPU2WakeHandler(void);
|
||||
u32 XpbrACPU3SleepHandler(void);
|
||||
u32 XpbrACPU3WakeHandler(void);
|
||||
u32 XpbrCsuSecureLockdownHandler(void);
|
||||
u32 XpbrDapFpdWakeHandler(void);
|
||||
u32 XpbrDapRpuWakeHandler(void);
|
||||
u32 XpbrDefaultWakeHandler(void);
|
||||
u32 XpbrFpdGicProxyWakeHandler(void);
|
||||
u32 XpbrFPIsolationReqHandler(void);
|
||||
u32 XpbrFPLockIsoHandler(void);
|
||||
u32 XpbrGpi1Router(void);
|
||||
u32 XpbrGpi2Router(void);
|
||||
u32 XpbrGpi3Handler(void);
|
||||
u32 XpbrHwExceptionHandler(void);
|
||||
u32 XpbrHwRstReqHandler(void);
|
||||
u32 XpbrIpi0Handler(void);
|
||||
u32 XpbrIsoReqRouter(void);
|
||||
u32 XpbrMio0WakeHandler(void);
|
||||
u32 XpbrMio1WakeHandler(void);
|
||||
u32 XpbrMio2WakeHandler(void);
|
||||
u32 XpbrMio3WakeHandler(void);
|
||||
u32 XpbrMio4WakeHandler(void);
|
||||
u32 XpbrMio5WakeHandler(void);
|
||||
u32 XpbrNullInterruptHandler(void);
|
||||
u32 XpbrNullServiceHandler(void);
|
||||
u32 XpbrPLIsolationReqHandler(void);
|
||||
u32 XpbrPLNonPCAPIsoReqHandler(void);
|
||||
u32 XpbrPwrDnACPU0Handler(void);
|
||||
u32 XpbrPwrDnACPU1Handler(void);
|
||||
u32 XpbrPwrDnACPU2Handler(void);
|
||||
u32 XpbrPwrDnACPU3Handler(void);
|
||||
u32 XpbrPwrDnFpdHandler(void);
|
||||
u32 XpbrPwrDnGpuHandler(void);
|
||||
u32 XpbrPwrDnL2Bank0Handler(void);
|
||||
u32 XpbrPwrDnOcmBank0Handler(void);
|
||||
u32 XpbrPwrDnOcmBank1Handler(void);
|
||||
u32 XpbrPwrDnOcmBank2Handler(void);
|
||||
u32 XpbrPwrDnOcmBank3Handler(void);
|
||||
u32 XpbrPwrDnPldHandler(void);
|
||||
u32 XpbrPwrDnPp0Handler(void);
|
||||
u32 XpbrPwrDnPp1Handler(void);
|
||||
u32 XpbrPwrDnR50Handler(void);
|
||||
u32 XpbrPwrDnR51Handler(void);
|
||||
u32 XpbrPwrDnReqRouter(void);
|
||||
u32 XpbrPwrDnRpuHandler(void);
|
||||
u32 XpbrPwrDnTcm0AHandler(void);
|
||||
u32 XpbrPwrDnTcm0BHandler(void);
|
||||
u32 XpbrPwrDnTcm1AHandler(void);
|
||||
u32 XpbrPwrDnTcm1BHandler(void);
|
||||
u32 XpbrPwrDnUsb0Handler(void);
|
||||
u32 XpbrPwrDnUsb1Handler(void);
|
||||
u32 XpbrPwrUpACPU0Handler(void);
|
||||
u32 XpbrPwrUpACPU1Handler(void);
|
||||
u32 XpbrPwrUpACPU2Handler(void);
|
||||
u32 XpbrPwrUpACPU3Handler(void);
|
||||
u32 XpbrPwrUpFpdHandler(void);
|
||||
u32 XpbrPwrUpL2Bank0Handler(void);
|
||||
u32 XpbrPwrUpOcmBank0Handler(void);
|
||||
u32 XpbrPwrUpOcmBank1Handler(void);
|
||||
u32 XpbrPwrUpOcmBank2Handler(void);
|
||||
u32 XpbrPwrUpOcmBank3Handler(void);
|
||||
u32 XpbrPwrUpPldHandler(void);
|
||||
u32 XpbrPwrUpPp0Handler(void);
|
||||
u32 XpbrPwrUpPp1Handler(void);
|
||||
u32 XpbrPwrUpReqRouter(void);
|
||||
u32 XpbrPwrUpRpuHandler(void);
|
||||
u32 XpbrPwrUpTcm0AHandler(void);
|
||||
u32 XpbrPwrUpTcm0BHandler(void);
|
||||
u32 XpbrPwrUpTcm1AHandler(void);
|
||||
u32 XpbrPwrUpTcm1BHandler(void);
|
||||
u32 XpbrPwrUpUsb0Handler(void);
|
||||
u32 XpbrPwrUpUsb1Handler(void);
|
||||
u32 XpbrR50SleepHandler(void);
|
||||
u32 XpbrR50WakeHandler(void);
|
||||
u32 XpbrR51SleepHandler(void);
|
||||
u32 XpbrR51WakeHandler(void);
|
||||
u32 XpbrROMExceptionHandler(void);
|
||||
u32 XpbrRstACPU0Handler(void);
|
||||
u32 XpbrRstACPU1Handler(void);
|
||||
u32 XpbrRstACPU2Handler(void);
|
||||
u32 XpbrRstACPU3Handler(void);
|
||||
u32 XpbrRstACPUxHandler(void);
|
||||
u32 XpbrRstApuHandler(void);
|
||||
u32 XpbrRstDisplayPortHandler(void);
|
||||
u32 XpbrRstFpdHandler(void);
|
||||
u32 XpbrRstGem0Handler(void);
|
||||
u32 XpbrRstGem1Handler(void);
|
||||
u32 XpbrRstGem2Handler(void);
|
||||
u32 XpbrRstGem3Handler(void);
|
||||
u32 XpbrRstGpuHandler(void);
|
||||
u32 XpbrRstLsRpuHandler(void);
|
||||
u32 XpbrRstPCIeHandler(void);
|
||||
u32 XpbrRstPp0Handler(void);
|
||||
u32 XpbrRstPp1Handler(void);
|
||||
u32 XpbrRstPsOnlyHandler(void);
|
||||
u32 XpbrRstR50Handler(void);
|
||||
u32 XpbrRstR51Handler(void);
|
||||
u32 XpbrRstSataHandler(void);
|
||||
u32 XpbrRstUsb0Handler(void);
|
||||
u32 XpbrRstUsb1Handler(void);
|
||||
u32 XpbrRtcAlarmHandler(void);
|
||||
u32 XpbrServiceHandler(void);
|
||||
u32 XpbrServiceMode(void);
|
||||
u32 XpbrSwExceptionHandler(void);
|
||||
u32 XpbrSwRstReqRouter(void);
|
||||
u32 XpbrTMRFaultDetectionHandler(void);
|
||||
u32 XpbrUsb0WakeHandler(void);
|
||||
u32 XpbrUsb1WakeHandler(void);
|
||||
/*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* PMU_ROM SERVICE EXTENSION IDCODES
|
||||
*
|
||||
* All Services implemented in the ROM can be extended or overriden by
|
||||
* firmware loaded into the PMU_RAM. Including the IRQ routing infrastructure.
|
||||
* Aside from the PMU_ROM Service Functions, other extendable/overridable
|
||||
* `hooks` are provided to the firmware. These PMU_ROM Service Hooks are
|
||||
* included in the Extension Table but also have their IDCODES highlighted
|
||||
* below.
|
||||
*
|
||||
* Before calling the default implementation of these services, ROM checks the
|
||||
* index indicated below in the Service Extension Table for a function address.
|
||||
* If a function pointer is found, ROM will call that function /instead/ of the
|
||||
* default ROM function. However, as an argument to the FW function, is a
|
||||
* callback to the default ROM function, thus allowing the overriding FW to
|
||||
* implmentent wrapping logic around existing ROM behavior.
|
||||
*
|
||||
* @note: These Identifiers are also used to identify the service mode
|
||||
* error.
|
||||
*/
|
||||
enum xpbr_serv_ext_id {
|
||||
XPBR_SERV_EXT_TBL_BASE = 0U,
|
||||
/* RESERVED 1U */
|
||||
/* RESERVED 2U */
|
||||
XPBR_SERV_EXT_PIT0 = 3U,
|
||||
XPBR_SERV_EXT_PIT1 = 4U,
|
||||
XPBR_SERV_EXT_PIT2 = 5U,
|
||||
XPBR_SERV_EXT_PIT3 = 6U,
|
||||
/* RESERVED 7U */
|
||||
/* RESERVED 8U */
|
||||
/* RESERVED 9U */
|
||||
/* RESERVED 10U */
|
||||
XPBR_SERV_EXT_TMRFAULT = 11U,
|
||||
XPBR_SERV_EXT_GPI1 = 12U,
|
||||
XPBR_SERV_EXT_GPI2 = 13U,
|
||||
XPBR_SERV_EXT_GPI3 = 14U,
|
||||
/* RESERVED 15U */
|
||||
XPBR_SERV_EXT_COR_ECC_HANDLER = 16U,
|
||||
XPBR_SERV_EXT_RTCEVERYSECOND = 17U,
|
||||
XPBR_SERV_EXT_RTCALARM = 18U,
|
||||
XPBR_SERV_EXT_IPI0 = 19U,
|
||||
XPBR_SERV_EXT_IPI1 = 20U,
|
||||
XPBR_SERV_EXT_IPI2 = 21U,
|
||||
XPBR_SERV_EXT_IPI3 = 22U,
|
||||
XPBR_SERV_EXT_FW_REQS = 23U,
|
||||
XPBR_SERV_EXT_ISO_REQS = 24U,
|
||||
XPBR_SERV_EXT_HWRST = 25U,
|
||||
XPBR_SERV_EXT_SWRST_REQS = 26U,
|
||||
XPBR_SERV_EXT_PWRUP_REQS = 27U,
|
||||
XPBR_SERV_EXT_PWRDN_REQS = 28U,
|
||||
XPBR_SERV_EXT_INVADDR = 29U,
|
||||
/* RESERVED 30U */
|
||||
XPBR_SERV_EXT_CSU_SECLOCK = 31U,
|
||||
XPBR_SERV_EXT_ACPU0WAKE = 32U,
|
||||
XPBR_SERV_EXT_ACPU1WAKE = 33U,
|
||||
XPBR_SERV_EXT_ACPU2WAKE = 34U,
|
||||
XPBR_SERV_EXT_ACPU3WAKE = 35U,
|
||||
XPBR_SERV_EXT_R50WAKE = 36U,
|
||||
XPBR_SERV_EXT_R51WAKE = 37U,
|
||||
XPBR_SERV_EXT_USB0WAKE = 38U,
|
||||
XPBR_SERV_EXT_USB1WAKE = 39U,
|
||||
XPBR_SERV_EXT_DAPFPDWAKE = 40U,
|
||||
XPBR_SERV_EXT_DAPRPUWAKE = 41U,
|
||||
XPBR_SERV_EXT_MIO0WAKE = 42U,
|
||||
XPBR_SERV_EXT_MIO1WAKE = 43U,
|
||||
XPBR_SERV_EXT_MIO2WAKE = 44U,
|
||||
XPBR_SERV_EXT_MIO3WAKE = 45U,
|
||||
XPBR_SERV_EXT_MIO4WAKE = 46U,
|
||||
XPBR_SERV_EXT_MIO5WAKE = 47U,
|
||||
XPBR_SERV_EXT_FPDGICPROXYWAKE = 48U,
|
||||
/* RESERVED 49U */
|
||||
/* RESERVED 50U */
|
||||
/* RESERVED 51U */
|
||||
XPBR_SERV_EXT_ACPU0DBGPWRUP = 52U,
|
||||
XPBR_SERV_EXT_ACPU1DBGPWRUP = 53U,
|
||||
XPBR_SERV_EXT_ACPU2DBGPWRUP = 54U,
|
||||
XPBR_SERV_EXT_ACPU3DBGPWRUP = 55U,
|
||||
/* RESERVED 56U */
|
||||
/* RESERVED 57U */
|
||||
/* RESERVED 58U */
|
||||
/* RESERVED 59U */
|
||||
XPBR_SERV_EXT_ERROR1 = 60U,
|
||||
XPBR_SERV_EXT_ERROR2 = 61U,
|
||||
XPBR_SERV_EXT_AXIAIBERR = 62U,
|
||||
XPBR_SERV_EXT_APBAIBERR = 63U,
|
||||
XPBR_SERV_EXT_ACPU0SLEEP = 64U,
|
||||
XPBR_SERV_EXT_ACPU1SLEEP = 65U,
|
||||
XPBR_SERV_EXT_ACPU2SLEEP = 66U,
|
||||
XPBR_SERV_EXT_ACPU3SLEEP = 67U,
|
||||
XPBR_SERV_EXT_R50SLEEP = 68U,
|
||||
XPBR_SERV_EXT_R51SLEEP = 69U,
|
||||
/* RESERVED 70U */
|
||||
/* RESERVED 71U */
|
||||
XPBR_SERV_EXT_RCPU0_DBG_RST = 72U,
|
||||
XPBR_SERV_EXT_RCPU1_DBG_RST = 73U,
|
||||
/* RESERVED 74U */
|
||||
/* RESERVED 75U */
|
||||
/* RESERVED 76U */
|
||||
/* RESERVED 77U */
|
||||
/* RESERVED 78U */
|
||||
/* RESERVED 79U */
|
||||
XPBR_SERV_EXT_ACPU0_CP_RST = 80U,
|
||||
XPBR_SERV_EXT_ACPU1_CP_RST = 81U,
|
||||
XPBR_SERV_EXT_ACPU2_CP_RST = 82U,
|
||||
XPBR_SERV_EXT_ACPU3_CP_RST = 83U,
|
||||
XPBR_SERV_EXT_ACPU0_DBG_RST = 84U,
|
||||
XPBR_SERV_EXT_ACPU1_DBG_RST = 85U,
|
||||
XPBR_SERV_EXT_ACPU2_DBG_RST = 86U,
|
||||
XPBR_SERV_EXT_ACPU3_DBG_RST = 87U,
|
||||
/* RESERVED 88U */
|
||||
/* RESERVED 89U */
|
||||
/* RESERVED 90U */
|
||||
/* RESERVED 91U */
|
||||
/* RESERVED 92U */
|
||||
XPBR_SERV_EXT_VCCAUX_DISCONNECT = 93U,
|
||||
XPBR_SERV_EXT_VCCINT_DISCONNECT = 94U,
|
||||
XPBR_SERV_EXT_VCCINTFP_DISCONNECT = 95U,
|
||||
XPBR_SERV_EXT_PWRUPACPU0 = 96U,
|
||||
XPBR_SERV_EXT_PWRUPACPU1 = 97U,
|
||||
XPBR_SERV_EXT_PWRUPACPU2 = 98U,
|
||||
XPBR_SERV_EXT_PWRUPACPU3 = 99U,
|
||||
XPBR_SERV_EXT_PWRUPPP0 = 100U,
|
||||
XPBR_SERV_EXT_PWRUPPP1 = 101U,
|
||||
/* RESERVED 102U */
|
||||
XPBR_SERV_EXT_PWRUPL2BANK0 = 103U,
|
||||
/* RESERVED 104U */
|
||||
/* RESERVED 105U */
|
||||
XPBR_SERV_EXT_PWRUPRPU = 106U,
|
||||
/* RESERVED 107U */
|
||||
XPBR_SERV_EXT_PWRUPTCM0A = 108U,
|
||||
XPBR_SERV_EXT_PWRUPTCM0B = 109U,
|
||||
XPBR_SERV_EXT_PWRUPTCM1A = 110U,
|
||||
XPBR_SERV_EXT_PWRUPTCM1B = 111U,
|
||||
XPBR_SERV_EXT_PWRUPOCMBANK0 = 112U,
|
||||
XPBR_SERV_EXT_PWRUPOCMBANK1 = 113U,
|
||||
XPBR_SERV_EXT_PWRUPOCMBANK2 = 114U,
|
||||
XPBR_SERV_EXT_PWRUPOCMBANK3 = 115U,
|
||||
XPBR_SERV_EXT_PWRUPUSB0 = 116U,
|
||||
XPBR_SERV_EXT_PWRUPUSB1 = 117U,
|
||||
XPBR_SERV_EXT_PWRUPFPD = 118U,
|
||||
XPBR_SERV_EXT_PWRUPPLD = 119U,
|
||||
/* RESERVED 120U */
|
||||
/* RESERVED 121U */
|
||||
/* RESERVED 122U */
|
||||
/* RESERVED 123U */
|
||||
/* RESERVED 124U */
|
||||
/* RESERVED 125U */
|
||||
/* RESERVED 126U */
|
||||
/* RESERVED 127U */
|
||||
XPBR_SERV_EXT_PWRDNACPU0 = 128U,
|
||||
XPBR_SERV_EXT_PWRDNACPU1 = 129U,
|
||||
XPBR_SERV_EXT_PWRDNACPU2 = 130U,
|
||||
XPBR_SERV_EXT_PWRDNACPU3 = 131U,
|
||||
XPBR_SERV_EXT_PWRDNPP0 = 132U,
|
||||
XPBR_SERV_EXT_PWRDNPP1 = 133U,
|
||||
/* RESERVED 134U */
|
||||
XPBR_SERV_EXT_PWRDNL2BANK0 = 135U,
|
||||
/* RESERVED 136U */
|
||||
/* RESERVED 137U */
|
||||
XPBR_SERV_EXT_PWRDNRPU = 138U,
|
||||
/* RESERVED 139U */
|
||||
XPBR_SERV_EXT_PWRDNTCM0A = 140U,
|
||||
XPBR_SERV_EXT_PWRDNTCM0B = 141U,
|
||||
XPBR_SERV_EXT_PWRDNTCM1A = 142U,
|
||||
XPBR_SERV_EXT_PWRDNTCM1B = 143U,
|
||||
XPBR_SERV_EXT_PWRDNOCMBANK0 = 144U,
|
||||
XPBR_SERV_EXT_PWRDNOCMBANK1 = 145U,
|
||||
XPBR_SERV_EXT_PWRDNOCMBANK2 = 146U,
|
||||
XPBR_SERV_EXT_PWRDNOCMBANK3 = 147U,
|
||||
XPBR_SERV_EXT_PWRDNUSB0 = 148U,
|
||||
XPBR_SERV_EXT_PWRDNUSB1 = 149U,
|
||||
XPBR_SERV_EXT_PWRDNFPD = 150U,
|
||||
XPBR_SERV_EXT_PWRDNPLD = 151U,
|
||||
/* RESERVED 152U */
|
||||
/* RESERVED 153U */
|
||||
/* RESERVED 154U */
|
||||
/* RESERVED 155U */
|
||||
/* RESERVED 156U */
|
||||
/* RESERVED 157U */
|
||||
/* RESERVED 158U */
|
||||
/* RESERVED 159U */
|
||||
XPBR_SERV_EXT_FPISOLATION = 160U,
|
||||
XPBR_SERV_EXT_PLISOLATION = 161U,
|
||||
XPBR_SERV_EXT_PLNONPCAPISO = 162U,
|
||||
/* RESERVED 163U */
|
||||
XPBR_SERV_EXT_FPLOCKISO = 164U,
|
||||
/* RESERVED 165U */
|
||||
/* RESERVED 166U */
|
||||
/* RESERVED 167U */
|
||||
/* RESERVED 168U */
|
||||
/* RESERVED 169U */
|
||||
/* RESERVED 170U */
|
||||
/* RESERVED 171U */
|
||||
/* RESERVED 172U */
|
||||
/* RESERVED 173U */
|
||||
/* RESERVED 174U */
|
||||
/* RESERVED 175U */
|
||||
/* RESERVED 176U */
|
||||
/* RESERVED 177U */
|
||||
/* RESERVED 178U */
|
||||
/* RESERVED 179U */
|
||||
/* RESERVED 180U */
|
||||
/* RESERVED 181U */
|
||||
/* RESERVED 182U */
|
||||
/* RESERVED 183U */
|
||||
/* RESERVED 184U */
|
||||
/* RESERVED 185U */
|
||||
/* RESERVED 186U */
|
||||
/* RESERVED 187U */
|
||||
/* RESERVED 188U */
|
||||
/* RESERVED 189U */
|
||||
/* RESERVED 190U */
|
||||
/* RESERVED 191U */
|
||||
XPBR_SERV_EXT_RSTACPU0 = 192U,
|
||||
XPBR_SERV_EXT_RSTACPU1 = 193U,
|
||||
XPBR_SERV_EXT_RSTACPU2 = 194U,
|
||||
XPBR_SERV_EXT_RSTACPU3 = 195U,
|
||||
XPBR_SERV_EXT_RSTAPU = 196U,
|
||||
/* RESERVED 197U */
|
||||
XPBR_SERV_EXT_RSTPP0 = 198U,
|
||||
XPBR_SERV_EXT_RSTPP1 = 199U,
|
||||
XPBR_SERV_EXT_RSTGPU = 200U,
|
||||
XPBR_SERV_EXT_RSTPCIE = 201U,
|
||||
XPBR_SERV_EXT_RSTSATA = 202U,
|
||||
/* RESERVED 203U */
|
||||
XPBR_SERV_EXT_RSTDISPLAYPORT = 204U,
|
||||
/* RESERVED 205U */
|
||||
/* RESERVED 206U */
|
||||
/* RESERVED 207U */
|
||||
XPBR_SERV_EXT_RSTR50 = 208U,
|
||||
XPBR_SERV_EXT_RSTR51 = 209U,
|
||||
XPBR_SERV_EXT_RSTLSRPU = 210U,
|
||||
/* RESERVED 211U */
|
||||
XPBR_SERV_EXT_RSTGEM0 = 212U,
|
||||
XPBR_SERV_EXT_RSTGEM1 = 213U,
|
||||
XPBR_SERV_EXT_RSTGEM2 = 214U,
|
||||
XPBR_SERV_EXT_RSTGEM3 = 215U,
|
||||
XPBR_SERV_EXT_RSTUSB0 = 216U,
|
||||
XPBR_SERV_EXT_RSTUSB1 = 217U,
|
||||
/* RESERVED 218U */
|
||||
XPBR_SERV_EXT_RSTIOU = 219U,
|
||||
XPBR_SERV_EXT_RSTPSONLY = 220U,
|
||||
XPBR_SERV_EXT_RSTLPD = 221U,
|
||||
XPBR_SERV_EXT_RSTFPD = 222U,
|
||||
XPBR_SERV_EXT_RSTPLD = 223U,
|
||||
XPBR_SERV_EXT_FW_REQ_0 = 224U,
|
||||
XPBR_SERV_EXT_FW_REQ_1 = 225U,
|
||||
XPBR_SERV_EXT_FW_REQ_2 = 226U,
|
||||
XPBR_SERV_EXT_FW_REQ_3 = 227U,
|
||||
/* RESERVED 228U */
|
||||
/* RESERVED 229U */
|
||||
XPBR_SERV_EXT_FW_REQ_4 = 230U,
|
||||
XPBR_SERV_EXT_FW_REQ_5 = 231U,
|
||||
/* RESERVED 232U */
|
||||
/* RESERVED 233U */
|
||||
XPBR_SERV_EXT_FW_REQ_6 = 234U,
|
||||
/* RESERVED 235U */
|
||||
XPBR_SERV_EXT_FW_REQ_7 = 236U,
|
||||
XPBR_SERV_EXT_FW_REQ_8 = 237U,
|
||||
/* RESERVED 238U */
|
||||
/* RESERVED 239U */
|
||||
XPBR_SERV_EXT_FW_REQ_9 = 240U,
|
||||
XPBR_SERV_EXT_FW_REQ_10 = 241U,
|
||||
/* RESERVED 242U */
|
||||
/* RESERVED 243U */
|
||||
/* RESERVED 244U */
|
||||
/* RESERVED 245U */
|
||||
/* RESERVED 246U */
|
||||
/* RESERVED 247U */
|
||||
/* RESERVED 248U */
|
||||
/* RESERVED 249U */
|
||||
XPBR_SERV_EXT_FPD_SUPPYENABLE = 250U,
|
||||
XPBR_SERV_EXT_FPD_SUPPYDISABLE = 251U,
|
||||
XPBR_SERV_EXT_FPD_SUPPYCHECK = 252U,
|
||||
XPBR_SERV_EXT_PLD_SUPPYENABLE = 253U,
|
||||
XPBR_SERV_EXT_PLD_SUPPYDISABLE = 254U,
|
||||
XPBR_SERV_EXT_PLD_SUPPYCHECK = 255U,
|
||||
XPBR_SERV_EXT_TBL_MAX = 256U
|
||||
};
|
||||
|
||||
typedef u32 (*XpbrServHndlr_t) (void);
|
||||
|
||||
extern const XpbrServHndlr_t XpbrServHndlrTbl[XPBR_SERV_EXT_TBL_MAX];
|
||||
|
||||
static inline u32 XpbrACPU0SleepHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_ACPU0SLEEP]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrACPU0WakeHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_ACPU0WAKE]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrACPU1SleepHandler(void)
|
||||
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_ACPU1SLEEP]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrACPU1WakeHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_ACPU1WAKE]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrACPU2SleepHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_ACPU2SLEEP]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrACPU2WakeHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_ACPU2WAKE]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrACPU3SleepHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_ACPU3SLEEP]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrACPU3WakeHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_ACPU3WAKE]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrRstFpdHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_RSTFPD]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnFpdHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNFPD]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpFpdHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPFPD]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnRpuHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNRPU]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpRpuHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPRPU]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrRstR50Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_RSTR50]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrRstR51Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_RSTR51]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnOcmBank0Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNOCMBANK0]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnOcmBank1Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNOCMBANK1]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnOcmBank2Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNOCMBANK2]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnOcmBank3Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNOCMBANK3]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpOcmBank0Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPOCMBANK0]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpOcmBank1Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPOCMBANK1]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpOcmBank2Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPOCMBANK2]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpOcmBank3Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPOCMBANK3]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnTcm0AHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNTCM0A]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnTcm0BHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNTCM0B]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnTcm1AHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNTCM1A]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnTcm1BHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNTCM1B]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpTcm0AHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPTCM0A]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpTcm0BHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPTCM0B]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpTcm1AHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPTCM1A]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpTcm1BHandler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPTCM1B]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnL2Bank0Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNL2BANK0]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpL2Bank0Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPL2BANK0]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnUsb0Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNUSB0]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrDnUsb1Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRDNUSB1]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpUsb0Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPUSB0]();
|
||||
}
|
||||
|
||||
static inline u32 XpbrPwrUpUsb1Handler(void)
|
||||
{
|
||||
return XpbrServHndlrTbl[XPBR_SERV_EXT_PWRUPUSB1]();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
@ -27,7 +26,6 @@
|
|||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#include "xpfw_scheduler.h"
|
||||
|
@ -44,54 +42,59 @@
|
|||
* Microblaze IOModule PIT Register Offsets
|
||||
* Used internally in this file
|
||||
*/
|
||||
#define PIT_PRELOAD_OFFSET 0U
|
||||
#define PIT_PRELOAD_OFFSET 0U
|
||||
#define PIT_COUNTER_OFFSET 4U
|
||||
#define PIT_CONTROL_OFFSET 8U
|
||||
#define PIT_CONTROL_OFFSET 8U
|
||||
|
||||
XStatus XPfw_SchedulerInit(XPfw_Scheduler_t *SchedPtr, u32 PitBaseAddr)
|
||||
{
|
||||
u32 Idx;
|
||||
XStatus Status;
|
||||
|
||||
if (SchedPtr != NULL) {
|
||||
/* Disable all the tasks */
|
||||
for (Idx = 0U; Idx < XPFW_SCHED_MAX_TASK; Idx++) {
|
||||
SchedPtr->TaskList[Idx].Interval = 0U;
|
||||
SchedPtr->TaskList[Idx].Callback = NULL;
|
||||
}
|
||||
SchedPtr->Enabled = FALSE;
|
||||
SchedPtr->PitBaseAddr = PitBaseAddr;
|
||||
SchedPtr->Tick = 0U;
|
||||
XPfw_Write32(SchedPtr->PitBaseAddr + PIT_CONTROL_OFFSET, 0U);
|
||||
/* Successfully completed init */
|
||||
Status = XST_SUCCESS;
|
||||
} else {
|
||||
/* Failed due to NULL pointer to Scheduler */
|
||||
if (SchedPtr == NULL) {
|
||||
Status = XST_FAILURE;
|
||||
goto done;
|
||||
}
|
||||
return Status;
|
||||
|
||||
/* Disable all the tasks */
|
||||
for (Idx = 0U; Idx < XPFW_SCHED_MAX_TASK; Idx++) {
|
||||
SchedPtr->TaskList[Idx].Interval = 0U;
|
||||
SchedPtr->TaskList[Idx].Callback = NULL;
|
||||
SchedPtr->TaskList[Idx].Status = XPFW_TASK_STATUS_DISABLED;
|
||||
}
|
||||
|
||||
SchedPtr->Enabled = FALSE;
|
||||
SchedPtr->PitBaseAddr = PitBaseAddr;
|
||||
SchedPtr->Tick = 0U;
|
||||
XPfw_Write32(SchedPtr->PitBaseAddr + PIT_CONTROL_OFFSET, 0U);
|
||||
|
||||
/* Successfully completed init */
|
||||
Status = XST_SUCCESS;
|
||||
|
||||
done:
|
||||
return Status;
|
||||
}
|
||||
|
||||
XStatus XPfw_SchedulerStart(XPfw_Scheduler_t *SchedPtr)
|
||||
{
|
||||
|
||||
XStatus Status;
|
||||
|
||||
if (SchedPtr != NULL) {
|
||||
SchedPtr->Enabled = TRUE;
|
||||
|
||||
XPfw_Write32(SchedPtr->PitBaseAddr + PIT_PRELOAD_OFFSET,
|
||||
COUNT_PER_TICK);
|
||||
XPfw_Write32(SchedPtr->PitBaseAddr + PIT_CONTROL_OFFSET, 3U);
|
||||
Status = XST_SUCCESS;
|
||||
} else {
|
||||
if (SchedPtr == NULL) {
|
||||
Status = XST_FAILURE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
SchedPtr->Enabled = TRUE;
|
||||
|
||||
XPfw_Write32(SchedPtr->PitBaseAddr + PIT_PRELOAD_OFFSET,
|
||||
COUNT_PER_TICK);
|
||||
XPfw_Write32(SchedPtr->PitBaseAddr + PIT_CONTROL_OFFSET, 3U);
|
||||
Status = XST_SUCCESS;
|
||||
|
||||
done:
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
XStatus XPfw_SchedulerStop(XPfw_Scheduler_t *SchedPtr)
|
||||
{
|
||||
SchedPtr->Enabled =FALSE;
|
||||
|
@ -104,85 +107,91 @@ XStatus XPfw_SchedulerStop(XPfw_Scheduler_t *SchedPtr)
|
|||
|
||||
void XPfw_SchedulerTickHandler(XPfw_Scheduler_t *SchedPtr)
|
||||
{
|
||||
u32 Idx;
|
||||
/* TODO: Add check to detect task misses */
|
||||
SchedPtr->Tick++;
|
||||
for (Idx = 0U; Idx < XPFW_SCHED_MAX_TASK; Idx++) {
|
||||
/* Check if it this task can be triggered */
|
||||
if ((0U != SchedPtr->TaskList[Idx].Interval) &&
|
||||
(NULL != SchedPtr->TaskList[Idx].Callback) &&
|
||||
(0U == (SchedPtr->Tick % SchedPtr->TaskList[Idx].Interval))) {
|
||||
/* Mark the Task as TRIGGERED */
|
||||
SchedPtr->TaskList[Idx].Status = XPFW_TASK_STATUS_TRIGGERED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
XStatus XPfw_SchedulerProcess(const XPfw_Scheduler_t *SchedPtr)
|
||||
XStatus XPfw_SchedulerProcess(XPfw_Scheduler_t *SchedPtr)
|
||||
{
|
||||
u32 Idx;
|
||||
XStatus Status;
|
||||
u32 CallCount = 0U;
|
||||
|
||||
for (Idx = 0U; Idx < XPFW_SCHED_MAX_TASK; Idx++) {
|
||||
/* Check if it is valid event */
|
||||
if ((0U != SchedPtr->TaskList[Idx].Interval)
|
||||
&& (NULL != SchedPtr->TaskList[Idx].Callback)) {
|
||||
/* Check if it has triggered */
|
||||
if (0U == (SchedPtr->Tick % SchedPtr->TaskList[Idx].Interval)) {
|
||||
/* Execute the Task */
|
||||
SchedPtr->TaskList[Idx].Callback();
|
||||
CallCount++;
|
||||
}
|
||||
/* Check if the task is triggered and has a valid Callback */
|
||||
if ((XPFW_TASK_STATUS_TRIGGERED == SchedPtr->TaskList[Idx].Status) &&
|
||||
(NULL != SchedPtr->TaskList[Idx].Callback)) {
|
||||
/* Execute the Task */
|
||||
SchedPtr->TaskList[Idx].Callback();
|
||||
/* Disable the executed Task */
|
||||
SchedPtr->TaskList[Idx].Status = XPFW_TASK_STATUS_DISABLED;
|
||||
CallCount++;
|
||||
}
|
||||
}
|
||||
|
||||
//fw_printf("%s: %d Tasks were triggered\r\n", __func__, CallCount);
|
||||
|
||||
if (CallCount > 0U) {
|
||||
Status = XST_SUCCESS;
|
||||
} else {
|
||||
/* Failed because non of the tasks were triggered */
|
||||
/* Failed because none of the tasks were triggered */
|
||||
Status = XST_FAILURE;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
|
||||
XStatus XPfw_SchedulerAddTask(XPfw_Scheduler_t *SchedPtr, u32 OwnerId,u32 MilliSeconds, XPfw_Callback_t Callback)
|
||||
{
|
||||
u32 Idx;
|
||||
XStatus Status;
|
||||
|
||||
/* Get the Next Free Task Index */
|
||||
for(Idx=0U;Idx < XPFW_SCHED_MAX_TASK;Idx++){
|
||||
if( 0U == SchedPtr->TaskList[Idx].Interval){
|
||||
for (Idx=0U;Idx < XPFW_SCHED_MAX_TASK;Idx++) {
|
||||
if (0U == SchedPtr->TaskList[Idx].Interval) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check if we have reached Max Task limit */
|
||||
if(XPFW_SCHED_MAX_TASK == Idx){
|
||||
if (XPFW_SCHED_MAX_TASK == Idx) {
|
||||
Status = XST_FAILURE;
|
||||
}
|
||||
else{
|
||||
/* Add Interval as a factor of TICK_MILLISECONDS */
|
||||
SchedPtr->TaskList[Idx].Interval = MilliSeconds/TICK_MILLISECONDS;
|
||||
SchedPtr->TaskList[Idx].OwnerId = OwnerId;
|
||||
SchedPtr->TaskList[Idx].Callback = Callback;
|
||||
Status = XST_SUCCESS;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Add Interval as a factor of TICK_MILLISECONDS */
|
||||
SchedPtr->TaskList[Idx].Interval = MilliSeconds/TICK_MILLISECONDS;
|
||||
SchedPtr->TaskList[Idx].OwnerId = OwnerId;
|
||||
SchedPtr->TaskList[Idx].Callback = Callback;
|
||||
Status = XST_SUCCESS;
|
||||
|
||||
done:
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
XStatus XPfw_SchedulerRemoveTask(XPfw_Scheduler_t *SchedPtr, u32 OwnerId, u32 MilliSeconds, XPfw_Callback_t Callback)
|
||||
{
|
||||
u32 Idx;
|
||||
u32 TaskCount = 0;
|
||||
|
||||
/*Find the Task Index */
|
||||
|
||||
for (Idx = 0U; Idx < XPFW_SCHED_MAX_TASK; Idx++) {
|
||||
|
||||
if ((Callback == SchedPtr->TaskList[Idx].Callback)
|
||||
&& (SchedPtr->TaskList[Idx].OwnerId == OwnerId)) {
|
||||
/* Disable task with given Milliseconds param or ALL if Milliseconds=0 */
|
||||
if ((SchedPtr->TaskList[Idx].Interval == MilliSeconds)
|
||||
|| (0U == MilliSeconds)) {
|
||||
SchedPtr->TaskList[Idx].Interval = 0U;
|
||||
SchedPtr->TaskList[Idx].OwnerId = 0U;
|
||||
SchedPtr->TaskList[Idx].Callback = NULL;
|
||||
TaskCount++;
|
||||
}
|
||||
if ((Callback == SchedPtr->TaskList[Idx].Callback) &&
|
||||
(SchedPtr->TaskList[Idx].OwnerId == OwnerId) &&
|
||||
((SchedPtr->TaskList[Idx].Interval == MilliSeconds) ||
|
||||
(0U == MilliSeconds))) {
|
||||
SchedPtr->TaskList[Idx].Interval = 0U;
|
||||
SchedPtr->TaskList[Idx].OwnerId = 0U;
|
||||
SchedPtr->TaskList[Idx].Callback = NULL;
|
||||
TaskCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
@ -27,23 +26,25 @@
|
|||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef XPFW_SCHEDULER_H_
|
||||
#define XPFW_SCHEDULER_H_
|
||||
|
||||
|
||||
#include "xpfw_default.h"
|
||||
|
||||
#define XPFW_SCHED_MAX_TASK 10U
|
||||
|
||||
/* Values for TaskPtr->Status */
|
||||
#define XPFW_TASK_STATUS_TRIGGERED 0x5AFEC0C0U
|
||||
#define XPFW_TASK_STATUS_DISABLED 0x00000000U
|
||||
|
||||
typedef void (*XPfw_Callback_t) (void);
|
||||
|
||||
struct XPfw_Task_t{
|
||||
u32 Interval;
|
||||
u32 OwnerId;
|
||||
u32 Status;
|
||||
XPfw_Callback_t Callback;
|
||||
};
|
||||
|
||||
|
@ -55,12 +56,11 @@ typedef struct {
|
|||
u32 Enabled;
|
||||
} XPfw_Scheduler_t ;
|
||||
|
||||
|
||||
void XPfw_SchedulerTickHandler(XPfw_Scheduler_t *SchedPtr);
|
||||
XStatus XPfw_SchedulerInit(XPfw_Scheduler_t *SchedPtr, u32 PitBaseAddr);
|
||||
XStatus XPfw_SchedulerStart(XPfw_Scheduler_t *SchedPtr);
|
||||
XStatus XPfw_SchedulerStop(XPfw_Scheduler_t *SchedPtr);
|
||||
XStatus XPfw_SchedulerProcess(const XPfw_Scheduler_t *SchedPtr);
|
||||
XStatus XPfw_SchedulerProcess(XPfw_Scheduler_t *SchedPtr);
|
||||
XStatus XPfw_SchedulerAddTask(XPfw_Scheduler_t *SchedPtr, u32 OwnerId,u32 MilliSeconds, XPfw_Callback_t Callback);
|
||||
XStatus XPfw_SchedulerRemoveTask(XPfw_Scheduler_t *SchedPtr, u32 OwnerId, u32 MilliSeconds, XPfw_Callback_t Callback);
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -27,10 +26,8 @@
|
|||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
#include "xpfw_config.h"
|
||||
|
||||
#include "xpfw_core.h"
|
||||
|
@ -46,29 +43,13 @@
|
|||
#include "ipi_buffer.h"
|
||||
#include "pm_defs.h"
|
||||
|
||||
|
||||
#ifdef ENABLE_SCHEDULER
|
||||
void PrintMsg1(void)
|
||||
{
|
||||
fw_printf("Task#1\r\n");
|
||||
}
|
||||
void PrintMsg2(void)
|
||||
{
|
||||
fw_printf("Task#2\r\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ENABLE_PM
|
||||
static void PmIpiHandler(const XPfw_Module_t *ModPtr, u32 IpiNum, u32 SrcMask)
|
||||
{
|
||||
|
||||
|
||||
u32 isrVal, apiId;
|
||||
XPfw_PmIpiStatus ipiStatus;
|
||||
|
||||
switch(IpiNum) {
|
||||
|
||||
switch (IpiNum) {
|
||||
case 0:
|
||||
isrVal = XPfw_Read32(IPI_PMU_0_ISR);
|
||||
fw_printf("Received IPI Mask:0x%08x\r\n", isrVal);
|
||||
|
@ -76,11 +57,11 @@ static void PmIpiHandler(const XPfw_Module_t *ModPtr, u32 IpiNum, u32 SrcMask)
|
|||
if (XPFW_PM_IPI_IS_PM_CALL == ipiStatus) {
|
||||
/* Power management API processing */
|
||||
XPfw_PmIpiHandler(isrVal, apiId);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
fw_printf("MOD-%d: Non-PM IPI-%d call received\r\n", ModPtr->ModId, IpiNum);
|
||||
}
|
||||
XPfw_Write32(IPI_PMU_0_ISR, isrVal);
|
||||
|
||||
XPfw_Write32(IPI_PMU_0_ISR, isrVal);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
@ -100,34 +81,30 @@ static void PmIpiHandler(const XPfw_Module_t *ModPtr, u32 IpiNum, u32 SrcMask)
|
|||
|
||||
default:
|
||||
fw_printf("ERROR: Invalid IPI Number: %d\r\n", IpiNum);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void PmEventHandler(const XPfw_Module_t *ModPtr, u32 EventId)
|
||||
static void PmEventHandler(const XPfw_Module_t *ModPtr, u32 EventId)
|
||||
{
|
||||
u32 EvType, RegValue;
|
||||
EvType = XPfw_EventGetType(EventId);
|
||||
|
||||
switch (EvType) {
|
||||
case XPFW_EV_TYPE_GPI1:
|
||||
RegValue = XPfw_EventGetRegMask(EventId);
|
||||
XPfw_PmWakeHandler(RegValue);
|
||||
break;
|
||||
case XPFW_EV_TYPE_GPI2:
|
||||
RegValue = XPfw_EventGetRegMask(EventId);
|
||||
XPfw_PmWfiHandler(RegValue);
|
||||
break;
|
||||
default:
|
||||
fw_printf("Unhandled PM Event: %d\r\n", EventId);
|
||||
case XPFW_EV_TYPE_GPI1:
|
||||
RegValue = XPfw_EventGetRegMask(EventId);
|
||||
XPfw_PmWakeHandler(RegValue);
|
||||
break;
|
||||
case XPFW_EV_TYPE_GPI2:
|
||||
RegValue = XPfw_EventGetRegMask(EventId);
|
||||
XPfw_PmWfiHandler(RegValue);
|
||||
break;
|
||||
default:
|
||||
fw_printf("Unhandled PM Event: %d\r\n", EventId);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void PmCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
||||
static void PmCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
||||
{
|
||||
/* Add Event Handlers for PM */
|
||||
XPfw_CoreRegisterEvent(ModPtr, XPFW_EV_ACPU_0_WAKE);
|
||||
|
@ -163,10 +140,20 @@ void PmCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
|||
*/
|
||||
XPfw_PmInit();
|
||||
}
|
||||
#endif
|
||||
static void ModPmInit(void)
|
||||
{
|
||||
const XPfw_Module_t *PmModPtr = XPfw_CoreCreateMod();
|
||||
|
||||
(void)XPfw_CoreSetCfgHandler(PmModPtr, PmCfgInit);
|
||||
(void)XPfw_CoreSetEventHandler(PmModPtr, PmEventHandler);
|
||||
(void)XPfw_CoreSetIpiHandler(PmModPtr, PmIpiHandler, 0U);
|
||||
}
|
||||
#else /* ENABLE_PM */
|
||||
static void ModPmInit(void) { }
|
||||
#endif /* ENABLE_PM */
|
||||
|
||||
#ifdef ENABLE_EM
|
||||
void EmEventHandler(const XPfw_Module_t *ModPtr, u32 EventId)
|
||||
static void EmEventHandler(const XPfw_Module_t *ModPtr, u32 EventId)
|
||||
{
|
||||
switch (EventId) {
|
||||
case XPFW_EV_ERROR_1:
|
||||
|
@ -179,104 +166,91 @@ void EmEventHandler(const XPfw_Module_t *ModPtr, u32 EventId)
|
|||
fw_printf("EM:Unhandled Event(ID:%d)\r\n", EventId);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void EmCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
||||
static void EmCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
||||
{
|
||||
|
||||
(void)XPfw_CoreRegisterEvent(ModPtr,XPFW_EV_ERROR_1);
|
||||
(void)XPfw_CoreRegisterEvent(ModPtr,XPFW_EV_ERROR_2);
|
||||
(void)XPfw_CoreRegisterEvent(ModPtr, XPFW_EV_ERROR_1);
|
||||
(void)XPfw_CoreRegisterEvent(ModPtr, XPFW_EV_ERROR_2);
|
||||
XPfw_ErrorHandlerInit();
|
||||
fw_printf("EM (MOD-%d): Initialized.\r\n", ModPtr->ModId);
|
||||
}
|
||||
|
||||
#endif
|
||||
static void ModEmInit(void)
|
||||
{
|
||||
const XPfw_Module_t *EmModPtr = XPfw_CoreCreateMod();
|
||||
|
||||
(void)XPfw_CoreSetCfgHandler(EmModPtr, EmCfgInit);
|
||||
(void)XPfw_CoreSetEventHandler(EmModPtr, EmEventHandler);
|
||||
}
|
||||
#else /* ENABLE_EM */
|
||||
static void ModEmInit(void) { }
|
||||
#endif /* ENABLE_EM */
|
||||
|
||||
#ifdef ENABLE_RTC_TEST
|
||||
|
||||
void RtcEventHandler(const XPfw_Module_t *ModPtr, u32 EventId)
|
||||
static void RtcEventHandler(const XPfw_Module_t *ModPtr, u32 EventId)
|
||||
{
|
||||
|
||||
fw_printf("MOD%d:EVENTID: %d\r\n", ModPtr->ModId, EventId);
|
||||
//XPfw_CorePrintStats();
|
||||
if(XPFW_EV_RTC_SECONDS == EventId){
|
||||
if (XPFW_EV_RTC_SECONDS == EventId) {
|
||||
/* Ack the Int in RTC Module */
|
||||
Xil_Out32(RTC_RTC_INT_STATUS,1U);
|
||||
Xil_Out32(RTC_RTC_INT_STATUS, 1U);
|
||||
fw_printf("RTC: %d \r\n", Xil_In32(RTC_CURRENT_TIME));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void RtcCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
||||
static void RtcCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
||||
{
|
||||
XPfw_CoreRegisterEvent(ModPtr,XPFW_EV_RTC_SECONDS);
|
||||
XPfw_CoreRegisterEvent(ModPtr, XPFW_EV_RTC_SECONDS);
|
||||
/* Enable Seconds Alarm */
|
||||
Xil_Out32(RTC_RTC_INT_EN,1U);
|
||||
Xil_Out32(RTC_RTC_INT_STATUS,1U);
|
||||
Xil_Out32(RTC_RTC_INT_EN, 1U);
|
||||
Xil_Out32(RTC_RTC_INT_STATUS, 1U);
|
||||
fw_printf("RTC (MOD-%d): Initialized.\r\n", ModPtr->ModId);
|
||||
}
|
||||
static void ModRtcInit(void)
|
||||
{
|
||||
const XPfw_Module_t *RtcModPtr = XPfw_CoreCreateMod();
|
||||
|
||||
#endif
|
||||
(void)XPfw_CoreSetCfgHandler(RtcModPtr, RtcCfgInit);
|
||||
(void)XPfw_CoreSetEventHandler(RtcModPtr, RtcEventHandler);
|
||||
}
|
||||
#else /* ENABLE_RTC_TEST */
|
||||
static void ModRtcInit(void) { }
|
||||
#endif /* ENABLE_RTC_TEST */
|
||||
|
||||
#ifdef ENABLE_SCHEDULER
|
||||
void SchCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
||||
static void PrintMsg1(void)
|
||||
{
|
||||
fw_printf("Task#1\r\n");
|
||||
}
|
||||
static void PrintMsg2(void)
|
||||
{
|
||||
fw_printf("Task#2\r\n");
|
||||
}
|
||||
|
||||
static void SchCfgInit(const XPfw_Module_t *ModPtr, const u32 *CfgData, u32 Len)
|
||||
{
|
||||
/* Task every 5 seconds - For our convenience in manual testing */
|
||||
fw_printf("Adding Task1 - Status: %d\n", XPfw_CoreScheduleTask(ModPtr,5000U, PrintMsg1));
|
||||
fw_printf("Adding Task1 - Status: %d\n", XPfw_CoreScheduleTask(ModPtr, 5000U, PrintMsg1));
|
||||
/* Every 10 seconds */
|
||||
fw_printf("Adding Task2 - Status:%d\n", XPfw_CoreScheduleTask(ModPtr,10000U, PrintMsg2));
|
||||
fw_printf("Adding Task2 - Status:%d\n", XPfw_CoreScheduleTask(ModPtr, 10000U, PrintMsg2));
|
||||
}
|
||||
#endif
|
||||
|
||||
static XStatus ModSchInit(void)
|
||||
{
|
||||
const XPfw_Module_t *SchModPtr = XPfw_CoreCreateMod();
|
||||
|
||||
return XPfw_CoreSetCfgHandler(SchModPtr, SchCfgInit);
|
||||
}
|
||||
#else /* ENABLE_SCHEDULER */
|
||||
static void ModSchInit(void) { }
|
||||
#endif /* ENABLE_SCHEDULER */
|
||||
|
||||
void XPfw_UserStartUp(void)
|
||||
{
|
||||
#ifdef ENABLE_PM
|
||||
const XPfw_Module_t *PmModPtr;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_RTC_TEST
|
||||
const XPfw_Module_t *RtcModPtr;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_EM
|
||||
const XPfw_Module_t *EmModPtr;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_SCHEDULER
|
||||
const XPfw_Module_t *SchModPtr;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_RTC_TEST
|
||||
RtcModPtr = XPfw_CoreCreateMod();
|
||||
(void)XPfw_CoreSetCfgHandler(RtcModPtr,RtcCfgInit);
|
||||
(void)XPfw_CoreSetEventHandler(RtcModPtr,RtcEventHandler);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_EM
|
||||
EmModPtr = XPfw_CoreCreateMod();
|
||||
(void)XPfw_CoreSetCfgHandler(EmModPtr,EmCfgInit);
|
||||
(void)XPfw_CoreSetEventHandler(EmModPtr,EmEventHandler);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_PM
|
||||
PmModPtr = XPfw_CoreCreateMod();
|
||||
(void)XPfw_CoreSetCfgHandler(PmModPtr,PmCfgInit);
|
||||
(void)XPfw_CoreSetEventHandler(PmModPtr,PmEventHandler);
|
||||
(void)XPfw_CoreSetIpiHandler(PmModPtr,PmIpiHandler,0U);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef ENABLE_SCHEDULER
|
||||
SchModPtr = XPfw_CoreCreateMod();
|
||||
(void)XPfw_CoreSetCfgHandler(SchModPtr,SchCfgInit);
|
||||
#endif
|
||||
|
||||
|
||||
ModRtcInit();
|
||||
ModEmInit();
|
||||
ModPmInit();
|
||||
(void)ModSchInit();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -27,10 +26,8 @@
|
|||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
#ifndef XPFW_USER_STARTUP_H_
|
||||
#define XPFW_USER_STARTUP_H_
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef ZYNQMP_XPFW_VERSION__H_
|
||||
#define ZYNQMP_XPFW_VERSION__H_
|
||||
#define ZYNQMP_XPFW_VERSION "51ced25"
|
||||
#endif
|
||||
#define ZYNQMP_XPFW_VERSION__H_
|
||||
#define ZYNQMP_XPFW_VERSION "rc1-00006-gdc6ab46"
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue