Interinterruptor entre procesadores en ARM cortex A9 (¿Cómo escribir un manejador para Interrupciones generadas por software (ARM) en Linux?)

Leí que las interrupciones generadas por el software en ARM se utilizan como interrupciones entre procesadores. También puedo ver que 5 de esas interrupciones ya están en uso. También sé que ARM proporciona 16 interrupciones generadas por software.

En mi aplicación estoy ejecutando una aplicación completa en los núcleos ARM-cortex y Linux en el otro. Quiero comunicar algunos datos desde el núcleo que ejecuta la aplicación completa al núcleo que ejecuta Linux. Planeo copiar los datos en la memoria del chip (que se comparte) y activaré un SGI en el Core (Linux) para indicar que algunos datos están disponibles para su procesamiento. Ahora puedo generar el SGI desde el núcleo (ejecutando una aplicación completa). Pero para manejar la interrupción en el lado de Linux, no estoy seguro de los números de IRQ de SGI que son gratuitos y tampoco estoy seguro de si puedo usar el número de IRQ directamente (en general, el SGI es de 0-15). ¿Alguien tiene una idea de cómo escribir un controlador para SGI en Linux?

Editar: Esta es una nueva redacción del texto anterior, porque la pregunta se cerró porRazones SSCE. Las CPUs Cortex-A se utilizan en sistemas con varias CPU. Un brazocontrolador genérico de interrupción (GIC) supervisa todas las interrupciones globales y las envía a una CPU en particular. Para que las CPU individuales se señalen entre sí, uninterrupción generada por software (SGI) se envía de un núcleo a otro; esto usainterrupciones privadas periféricas (PPI). Esta pregunta es,

¿Cómo implementar un controlador de kernel de Linux que pueda recibir un SGI como PPI?

Respuestas a la pregunta(2)

Su respuesta a la pregunta