• Yuriy Kolerov's avatar
    ARCv2: intc: Rework the build time irq count information · f33b8cdd
    Yuriy Kolerov authored
    Currently Kconfig knob ARC_NUMBER_OF_INTERRUPTS is used as indicator of
    hard irq count. But it is flawed that it doesn't affect
     - NR_IRQS     : for number of virtual interrupts
     - NR_CPU_IRQS : for number of hardware interrupts
    
    Moreover the actual hardware irq count might still not be same as
    ARC_NUMBER_OF_INTERRUPTS. So use the information availble in the
    Build Configuration Registers and get rid of the Kconfig option.
    
    We still need "some" build time info about irq count to set up
    sufficient number of vector table entries. This is done with a
    sufficiently large NR_CPU_IRQS which will eventually be used soley for
    that purpose (subsequent patches will remove its usage elsewhere)
    
    So to summarize what this patch does:
    
      * NR_CPU_IRQS defines a maximum number of hardware interrupts.
      * Remove ARC_NUMBER_OF_INTERRUPTS option and create interrupts
        table for all possible hardware interrupts.
      * Increase a maximum number of virtual IRQs to 512. ARCv2 can
        support 240 interrupts in the core interrupts controllers
        and 128 interrupts in IDU. Thus 512 virtual IRQs must be
        enough for most configurations of boards.
    
    This patch leads to NR_CPU_IRQS in 2 places, to reduce the overall
    churn. The next patch will remove the 2nd definition anyways.
    Signed-off-by: default avatarYuriy Kolerov <yuriy.kolerov@synopsys.com>
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    [vgupta: reworked the changelog a bit]
    f33b8cdd
entry-arcv2.S 7.74 KB