isr_tables: adopt _irq_vector_table for using on 64bit architectures
As of today generic _irq_vector_table is used only on 32bit architectures and 64bit architectures have their own implementation. Make vectors size adjustable by using uintptr_t instead of uint32_t for vectors. The ARCv3 64 bit HS6x processors are going to be first users for that. Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
This commit is contained in:
parent
fbb0327d3e
commit
14afc02caa
2 changed files with 4 additions and 4 deletions
|
@ -134,7 +134,7 @@ source_header = """
|
||||||
#include <arch/cpu.h>
|
#include <arch/cpu.h>
|
||||||
|
|
||||||
#if defined(CONFIG_GEN_SW_ISR_TABLE) && defined(CONFIG_GEN_IRQ_VECTOR_TABLE)
|
#if defined(CONFIG_GEN_SW_ISR_TABLE) && defined(CONFIG_GEN_IRQ_VECTOR_TABLE)
|
||||||
#define ISR_WRAPPER ((uint32_t)&_isr_wrapper)
|
#define ISR_WRAPPER ((uintptr_t)&_isr_wrapper)
|
||||||
#else
|
#else
|
||||||
#define ISR_WRAPPER NULL
|
#define ISR_WRAPPER NULL
|
||||||
#endif
|
#endif
|
||||||
|
@ -148,7 +148,7 @@ def write_source_file(fp, vt, swt, intlist, syms):
|
||||||
nv = intlist["num_vectors"]
|
nv = intlist["num_vectors"]
|
||||||
|
|
||||||
if vt:
|
if vt:
|
||||||
fp.write("uint32_t __irq_vector_table _irq_vector_table[%d] = {\n" % nv)
|
fp.write("uintptr_t __irq_vector_table _irq_vector_table[%d] = {\n" % nv)
|
||||||
for i in range(nv):
|
for i in range(nv):
|
||||||
fp.write("\t{},\n".format(vt[i]))
|
fp.write("\t{},\n".format(vt[i]))
|
||||||
fp.write("};\n")
|
fp.write("};\n")
|
||||||
|
|
|
@ -50,8 +50,8 @@ Z_GENERIC_SECTION(.irq_info) struct int_list_header _iheader = {
|
||||||
#define IRQ_VECTOR_TABLE_DEFAULT_ISR z_irq_spurious
|
#define IRQ_VECTOR_TABLE_DEFAULT_ISR z_irq_spurious
|
||||||
#endif /* CONFIG_GEN_SW_ISR_TABLE */
|
#endif /* CONFIG_GEN_SW_ISR_TABLE */
|
||||||
|
|
||||||
uint32_t __irq_vector_table _irq_vector_table[IRQ_TABLE_SIZE] = {
|
uintptr_t __irq_vector_table _irq_vector_table[IRQ_TABLE_SIZE] = {
|
||||||
[0 ...(IRQ_TABLE_SIZE - 1)] = (uint32_t)&IRQ_VECTOR_TABLE_DEFAULT_ISR,
|
[0 ...(IRQ_TABLE_SIZE - 1)] = (uintptr_t)&IRQ_VECTOR_TABLE_DEFAULT_ISR,
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_GEN_IRQ_VECTOR_TABLE */
|
#endif /* CONFIG_GEN_IRQ_VECTOR_TABLE */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue