Currently for R5, compiler flag for, floating-point ABI is mentioned
as "softfp". This causes abort on encountering floating point arithmetic
operation. Hence changing this flag to "soft".
Signed-off-by: Sarat Chand Savitala <saratcha@xilinx.com>
Acked-by: Krishna Chaitanya Patakamuri <kpataka@xilinx.com>
Add support for A53:
- Add __aarch64__ in conditional compilation
- Disable data cache as lwip is not working on A53 with caches enabled
Signed-off-by: Harini Katakam <harinik@xilinx.com>
Acked-by: Anirudha Sarangi <anirudh@xilinx.com>
This fix enables the compiler flags specified in HSI command line
to be appended to those specified in FSBL tcl file.
Signed-off-by: Sarat Chand Savitala <saratcha@xilinx.com>
Acked-by: Krishna Chaitanya Patakamuri <kpataka@xilinx.com>
DONT_SLEEP bit in PMU GLobal control register, if set, wakes up the
microblaze from sleep state. This makes the "sleep" instruction
ineffective by making the MB to toggle between sleep and wake states
in the core loop. So this bit is cleared to prevent such a situation
and ensure that MB wakes up only in case of an interrupt event.
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
Acked-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Some registers in PMU Local register set are not intended to be
published out. So removing all register definitions which are not
used by PMU FW currently.
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
Tested-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Exception handler is modified to log the ESR and EAR registers
into persistent global storage registers(0,1) and set FW error bit-0.
If bit-0 of FWError group in ERROR_2 register set is configured to do
a SRST,then post reset, SW can read the reason for exception from
these persistent registers.
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
Basic APIs are provided for modules to send/receive IPI messages.
These are wrappers around IPI driver functions and are intended to
support a common message structure. Currently only a module's IPI ID
is considered.This can be extended to include checksum and other fields in
IPI message and dispatching IPIs based on module id.
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
A framework to enable handling of HW errors reported via ERROR_1 and ERROR_2
registers in PMU GLOBAL space is provided. User can choose to register an
action for an error by using the provided API. An API is provided to enable
Error reporting via PSERR pin.
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
Register for secure lock-down request from CSU and
call the corresponding ROM handler when this event occurs
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
CSU ROM and FSBL send power up/down requests to PMU via the
PWR_UP/PWR_DN request register in PMU_GLOBAL. This module
handles these requests and routes them to respective ROM handlers
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
Add new events and supporting functions to handle legacy
ROM power up and power down requests that are initiated
using PMU GLOBAL registers.
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
Add DAP event handler to PMU Firmware as a new user module and pass on
the handling to respective ROM Handlers.When a DAP wake arrives,
PMU should ACK the DAP Wake using its local registers.
PMU ROM has handlers for these and we will re-use these handlers here.
This module is enabled only if ENABLE_PM is not defined to avoid conflict
with the PM module
Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
This patch removes the gap in serial numbering of PM API ids
between PM_SET_MAX_LATENCY and PM_RESET_ASSERT defined in
pm_defs.h
Signed-off-by: Rohit Fule <rohitf@xilinx.com>
Tested-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
Execution state of A53 (64-bit/32-bit) is now determined based on __aarch64__ value
Signed-off-by: Sarat Chand Savitala <saratcha@xilinx.com>
Acked-by: Krishna Chaitanya Patakamuri <kpataka@xilinx.com>
This patch adds support for FSBL running in A53 32-bit mode and
also supports handing off to A53 32-bit applications from FSBL.
Signed-off-by: Sarat Chand Savitala <saratcha@xilinx.com>
Acked-by: Krishna Chaitanya Patakamuri <kpataka@xilinx.com>
As in JTAG bootmode, watchdog is not initialized, avoided stopping of
watchdog in JTAG bootmode.
Signed-off-by: Sarat Chand Savitala <saratcha@xilinx.com>
Acked-by: Krishna Chaitanya Patakamuri <kpataka@xilinx.com>
This patch modifies the buswidth in dummy phase as
in data phase.
Signed-off-by: RamyaSree <rdarapun@xilinx.com>
Reviewed-by: Harini Katakam <harinik@xilinx.com>
This patch added Tx/Rx flags in qspi message format
according to qspipsu driver changes.
Signed-off-by: RamyaSree <rdarapun@xilinx.com>
Reviewed-by: Harini Katakam <harinik@xilinx.com>
This patch modifies openamp rpc_demo application to
remove the hardcoded shared memory region and support for the
memory region configuration as per requirement of the code
in MPU region settings
Signed-off-by: Kinjal Pravinbhai Patel <patelki@xilinx.com>
Acked-by: Anirudha Sarangi <anirudh@xilinx.com>
This patch modifies openamp echo_test application to
remove the hardcoded shared memory region and support for the
memory region configuration as per requirement of the code
in MPU region settings
Signed-off-by: Kinjal Pravinbhai Patel <patelki@xilinx.com>
Acked-by: Anirudha Sarangi <anirudh@xilinx.com>
This patch modifies openamp matrix_multiply application to
remove the hardcoded shared memory region and support for the
memory region configuration as per requirement of the code
in MPU region settings
Signed-off-by: Kinjal Pravinbhai Patel <patelki@xilinx.com>
Acked-by: Anirudha Sarangi <anirudh@xilinx.com>
-GpuPP now has its own PmSlave derived structure and the FSM
(new structure is added because there is no peripheral with
exactly the same behavior - Usbs have also their own power island,
but compared to them GpuPPs do not have wake-up capabilities
through GIC Proxy, and GpuPPs depend on FPD while LPD is
considered always-on)
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Tested-by: Rohit Fule <rohitf@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
The ROM handlers and hooks have a different signature.
Fixes: aea3444396c3 'ROM interface: Add ROM hook table'
Cc: Kristopher Bechamp <kristop@xilinx.com>
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
XpbrPwrUpFpdHandler used to not always return XST_SUCCESS, this
problem no longer exists hence the workaround can be dropped.
Signed-off-by: Davorin Mista <davorin.mista@aggios.com>
Acked-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Added PLL nodes (PLLs are PM slaves)
-Implemented PLL's FSM in pm_pll.h/c
-Added PmRequirement structures for APU and RPU_0, both can request
any PLL for usage
-Implemented saving of FPD PLLs' context and powering down FPD PLLs
before FPD gets powered down (this is PLL suspend)
-Implemented restoring of PLL states when PLL is needed for usage
if FPD has been powered down (this is PLL resume)
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Added array of CRF_APB module's register address/value pairs used
for saving/restoring CRF_APB register contents (excluding PLL
registers - PLLs have their own logic for save/restore)
-Added saving context of CRF_APB registers before FPD is powered
down and restoring saved context after FPD is powered up
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Added PM_CAP_POWER as generic capability (defined in pm_defs).
-Slaves' FSMs should define PM_CAP_POWER capability in states which
require power parent to be ON before the state is entered. This
capability has no effect if slave node does not have power parent
-Powering up parent of a slave is done automatically by the
framework before the FSM of a slave is triggered to change the
state (slave's FSM should assume all prerequisites regarding power
are configured before FSM is triggered)
-Added PM_CAP_POWER capability in ON state of standard fsm (used for
SATA)
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-There was a bug in pmu-fw/pm binding through IPIs, because of
which in case of multiple IPI interrupts generated simultaneously
only first interrupt was handled, other interrupts were lost
-The bug existed because PM handles one request in each
XPfw_PmIpiHandler invocation, and pmu-fw clears all bitfields
in ISR register after PM handles request. Therefore, if multiple
bits were set in ISR register (simultaneous IPI interrupts), only
first one was handled and other bits were just cleared
-XPfw_PmIpiHandler now returns status and through an argument
pointer an IPI mask of master whose request has been handled
-In xpfw_user_startup.c/PmIpiHandler, return of XPfw_PmIpiHandler
is checked. If PM successfully handled IPI, only the bitfield of
master whose request is handled is set (only that IPI interrupt
is cleared). If something went wrong in PmIpiHandler/IPI0 case,
we clear all bits set in ISR register, to avoid system hanging on
this interrupt handler
-In pm_master, a check whether the master owns given mask was
performed by using '==' instead '&'. Therefore, when 2 masters
generated interrupt at the same time, PM function that checks
whether the IPI is PM related returned that the ISR value does
not match any master. This bug is fixed
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Replaced PM defined macro definitions with macros defined in
lpd_slcr.h
-Other macros that are defined in pm_slave.h do not exist as is,
therefore are still used
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Acked-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>
-Added macros in pm_defs.h for system shutdown argument 'restart'
-Exposed array of all masters needed to initiate their suspend upon
receiving of system shutdown call
-Added checking for restart argument of system shutdown call in pm_api.c
-Implemented PmSystemShutdown for argument restart=0 (shutdown)
-Further improvement in PmSystemShutdown depend on timeout implementation
Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Jyotheeswar Reddy Mutthareddyvari <jyothee@xilinx.com>