103 lines
3.8 KiB
C
103 lines
3.8 KiB
C
/*******************************************************************************
|
|
* DISCLAIMER
|
|
* This software is supplied by Renesas Electronics Corporation and is only
|
|
* intended for use with Renesas products. No other uses are authorized. This
|
|
* software is owned by Renesas Electronics Corporation and is protected under
|
|
* all applicable laws, including copyright laws.
|
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
|
|
* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
|
|
* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
|
|
* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
|
|
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
|
* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
|
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
|
|
* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
|
|
* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
* Renesas reserves the right, without notice, to make changes to this software
|
|
* and to discontinue the availability of this software. By using this software,
|
|
* you agree to the additional terms and conditions found by accessing the
|
|
* following link:
|
|
* http://www.renesas.com/disclaimer
|
|
* Copyright 2018-2023 Renesas Electronics Corporation All rights reserved.
|
|
*******************************************************************************/
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
* DESCRIPTION : INTC handler function
|
|
******************************************************************************/
|
|
/******************************************************************************
|
|
* @file interrupt.c
|
|
* - Version : 0.05
|
|
* @brief
|
|
* .
|
|
*****************************************************************************/
|
|
/******************************************************************************
|
|
* History : DD.MM.YYYY Version Description
|
|
* : 02.08.2022 0.01 First Release
|
|
* : 31.10.2022 0.02 License notation change.
|
|
* : 15.12.2022 0.03 V4H interrupt support.
|
|
* : 27.12.2022 0.04 Change argument of pabort_error.
|
|
* : 21.08.2023 0.05 Add support for V4M.
|
|
*****************************************************************************/
|
|
#include "ip_control.h"
|
|
#include "log.h"
|
|
#include "gic.h"
|
|
#include "swdt.h"
|
|
#include "interrupt.h"
|
|
|
|
#if (RCAR_LSI == RCAR_S4)
|
|
void handler_fiq(void)
|
|
{
|
|
uint32_t intid = GIC_AcknowledgePending();
|
|
if (intid == INTC_SPI_SWDT)
|
|
{
|
|
swdt_exec();
|
|
}
|
|
else
|
|
{
|
|
ERROR("Invalid interrupt occurred.(%d)\n",intid);
|
|
panic;
|
|
}
|
|
}
|
|
/* End of function handler_fiq(void) */
|
|
#elif ((RCAR_LSI == RCAR_V4H) || (RCAR_LSI == RCAR_V4M))
|
|
void dabort_error(uint32_t occ_add, uint32_t dfsr, uint32_t dfar)
|
|
{
|
|
|
|
ERROR("Data abort.\n");
|
|
ERROR(" Data abort occurrred address : 0x%x\n", occ_add);
|
|
ERROR(" DFSR:0x%x DFAR:0x%x\n", dfsr, dfar);
|
|
panic;
|
|
|
|
}
|
|
/* End of function dabort_error(uint32_t occ_add, uint32_t dfsr, uint32_t dfare) */
|
|
|
|
void pabort_error(uint32_t ifsr, uint32_t ifar)
|
|
{
|
|
|
|
ERROR("Prefetch abort.\n");
|
|
ERROR(" IFSR:0x%x IFAR:0x%x\n", ifsr, ifar);
|
|
panic;
|
|
}
|
|
/* End of function pabort_error(uint32_t ifsr, uint32_t ifar) */
|
|
|
|
void Undefined_error(uint32_t occ_add)
|
|
{
|
|
|
|
ERROR("Undefined Instruction.\n");
|
|
ERROR(" Undefined Instruction occurrred address : 0x%x\n", occ_add);
|
|
panic;
|
|
}
|
|
/* End of function Undefined_error(uint32_t occ_add) */
|
|
#endif /* RCAR_LSI == RCAR_S4 */
|
|
|
|
void handler_error(uint32_t ex_type)
|
|
{
|
|
|
|
ERROR("Unhandled exception occurred.\n");
|
|
ERROR(" Exception type = 0x%x.\n", ex_type);
|
|
panic;
|
|
}
|
|
/* End of function handler_error(uint32_t ex_type) */
|