quark se arc: irq static initialization support.

Adds static irq support for the Quark SE platform for the ARC core.

New linker sections and sw isr table initialization is needed to support
static IRQ.

Change-Id: I82af98a189f5a156e7f1018f3ecdbfa73ad3e6ef
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
This commit is contained in:
Juan Manuel Cruz 2015-11-24 17:17:43 -06:00 committed by Anas Nashif
commit b51b3da133
3 changed files with 77 additions and 46 deletions

View file

@ -123,6 +123,19 @@ SECTIONS {
__data_ram_start = .;
*(.data)
*(".data.*")
KEEP(*(.isr_irq*))
/*The following sections maps the location of the different rows for
the _sw_isr_table. Each row maps to an IRQ entry (handler, argument).*/
/*In ARC architecture, IRQ 0-15 are reserved for the system and are not
assignable by the user, for that reason the linker sections start
on IRQ 16*/
/* sections for IRQ16-19 */
KEEP(*(SORT(.gnu.linkonce.isr_irq[1][6-9])))
/* sections for IRQ20-99 */
KEEP(*(SORT(.gnu.linkonce.isr_irq[2-9][0-9])))
/* sections for IRQ100-999 */
KEEP(*(SORT(.gnu.linkonce.isr_irq[1-9][0-9][0-9])))
} GROUP_LINK_IN(RAMABLE_REGION)
SECTION_PROLOGUE(initlevel, (OPTIONAL),)