zephyr/drivers/interrupt_controller
Peter Marheine d4549ed808 it8xxx2: generalize ILM support
Executing code out of RAM on IT8xxx2 requires that the relevant
addresses be mapped onto the CPU's instruction memory bus, referred to
by ITE documentation as Instruction Local Memory (ILM). ILM mappings
configure blocks of RAM to be used for accesses to chosen addresses when
performing instruction fetch, instead of the memory that would normally
be accessed at that address.

ILM must be used for some chip features (particularly Flash
self-programming, to execute from RAM while writing to Flash), and has
historically been configured in the Flash driver. The RAM for that was
hard-coded as a single 4k block in the linker script.  Configuring ILM
in the flash driver is confusing because it is used by other SoC code as
well, currently in code that cannot depend on the Flash being functional
or in hand-selected functions that seem performance-critical.

This change moves ILM configuration to a new driver and dynamically
allocates RAM to ILM in the linker script, allowing software use of the
entire 64k RAM depending on configuration.  This makes ILM configuration
more discoverable and makes it much easier to correctly support the
CODE_DATA_RELOCATION feature on this SoC.

Signed-off-by: Peter Marheine <pmarheine@chromium.org>
2022-10-21 20:31:47 +02:00
..
CMakeLists.txt drivers: intc_dw_ace: use CONFIG_DW_ICTL_ACE 2022-10-11 12:50:05 -04:00
Kconfig drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.cavs drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.clic drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.dw drivers: intc_dw_ace: use CONFIG_DW_ICTL_ACE 2022-10-11 12:50:05 -04:00
Kconfig.esp32
Kconfig.esp32c3
Kconfig.gd32_exti drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.gic drivers: gicv3: Introduce aff0 matching config for rdist 2022-09-21 15:21:29 +02:00
Kconfig.intel_vtd drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.it8xxx2 drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.loapic drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.multilevel
Kconfig.multilevel.aggregator_template
Kconfig.npcx drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.plic drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.rv32m1 drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.sam0 drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.shared_irq drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.stm32 drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.xec drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
intc_arcv2_irq_unit.c
intc_cavs.c smp: Convert #if to use CONFIG_MP_MAX_NUM_CPUS 2022-10-20 22:04:10 +09:00
intc_cavs.h
intc_dw.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_dw.h drivers: intc_dw: fixed misnumbered value of reserved slots in structure 2022-10-17 13:37:09 -04:00
intc_dw_ace.c smp: Move for loops to use arch_num_cpus instead of CONFIG_MP_NUM_CPUS 2022-10-21 13:14:58 +02:00
intc_esp32.c smp: Move for loops to use arch_num_cpus instead of CONFIG_MP_NUM_CPUS 2022-10-21 13:14:58 +02:00
intc_esp32c3.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
intc_exti_stm32.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_gd32_exti.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
intc_gic.c smp: Move for loops to use arch_num_cpus instead of CONFIG_MP_NUM_CPUS 2022-10-21 13:14:58 +02:00
intc_gic_common_priv.h
intc_gicv3.c smp: Move arrays to use CONFIG_MP_MAX_NUM_CPUS 2022-10-17 14:40:12 +09:00
intc_gicv3_its.c smp: Move arrays to use CONFIG_MP_MAX_NUM_CPUS 2022-10-17 14:40:12 +09:00
intc_gicv3_priv.h drivers: intc_gicv3: fix gic_rdists[cpu] points to a wrong address 2022-09-09 16:36:37 +00:00
intc_intel_vtd.c
intc_intel_vtd.h
intc_ioapic.c drivers: ioapic: fix the cast for the offset 2022-09-21 12:28:30 +02:00
intc_ioapic_priv.h
intc_irqmp.c
intc_ite_it8xxx2.c it8xxx2: intc: make sure IER disabling to take effect. 2022-09-27 10:05:09 +00:00
intc_ite_it8xxx2.h it8xxx2: generalize ILM support 2022-10-21 20:31:47 +02:00
intc_loapic.c
intc_loapic_spurious.S
intc_mchp_ecia_xec.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_miwu.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_nuclei_eclic.c
intc_plic.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_rv32m1_intmux.c
intc_sam0_eic.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
intc_sam0_eic_priv.h include: add missing errno.h include 2022-10-11 18:05:17 +02:00
intc_shared_irq.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_swerv_pic.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_system_apic.c
intc_vexriscv_litex.c
wuc_ite_it8xxx2.c