Re: [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ Controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Miller wrote:

From: Daniel Hellstrom <daniel@xxxxxxxxxxx>
Date: Wed, 30 Mar 2011 12:00:53 +0200

Yes, I agree with you that this is the best solution. However, the
hardware simply does not support that. That would require the
bootloader to have one driver per core and that the bootloader must be
modified each time a user of LEON or gaisler adds a new core.

I have made another patch that creates all 0..15 IRQs on startup
instead in leon_kernel.c. It will ensure linearity within that range,
and patching of irq_32.c is not needed. Perhaps that is more
acceptable?

I am not asking you to modify the boot loader or whatever creates
the firmware device tree on LEON.

I'm telling you to modify the kernel to create device node objects
which have an array of multiple IRQ entries when such devices are
found during the import of the device tree.
I see, however that is almost as bad because that would also require one driver per core but in the LEON IRQ layer of Linux.

If I always create an array of say 8 IRQs starting from the first IRQ, for example for IRQ5: {5,6,7,8,9,10,11,12}, that would be a solution for the drivers as well. 8 IRQs should be enough per core. That would however require that I change the scan_one_device() (of_device_32.c) and add an extra call to sparc_irq_config structure, fixup_device_irqs() or prepare_device_irqs() or something like that. This will result in devices with an archdata.irqs[] containing unused IRQs that are not really available. Do you think this is an acceptable solution?

Daniel
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux