arc: early init should invalidate d-cache and set vector table
Some ARC targets can have a data-cache. Although there is no special instruction to clear exceptions during early init, it is necessary to invalidate the d-cache BEFORE any data is fetched. The ARC on arduino 101 doesn't have d-cache, and will thus skip this d-cache invalidate. Also, it is important to set the vector table base register to point to the interrupt vector table EARLY, so that if an exception is encountered, the correct vector table is found. Set this base only if it is found to be different from the one compiled in to the code. These initialization steps assure that proper exception handling is in place during early init. Change-Id: Ie8b5928e5813e104680a6d6510c85d32dc8ed8f3 Signed-off-by: Chuck Jordan <cjordan@synopsys.com>
This commit is contained in:
parent
bd012c92b3
commit
4ad41d8d7f
2 changed files with 55 additions and 1 deletions
|
@ -53,7 +53,6 @@ void _arc_v2_irq_unit_init(void)
|
|||
_arc_v2_aux_reg_write(_ARC_V2_IRQ_ENABLE, _ARC_V2_INT_DISABLE);
|
||||
_arc_v2_aux_reg_write(_ARC_V2_IRQ_TRIGGER, _ARC_V2_INT_LEVEL);
|
||||
}
|
||||
_arc_v2_aux_reg_write(_ARC_V2_IRQ_VECT_BASE, &_VectorTable);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue