da6b737b9a
This patch adds minimal support for device tree on x86. The device tree blob is passed to the kernel via setup_data which requires at least boot protocol 2.09. Memory size, restricted memory regions, boot arguments are gathered the traditional way so things like cmd_line are just here to let the code compile. The current plan is use the device tree as an extension and to gather information which can not be enumerated and would have to be hardcoded otherwise. This includes things like - which devices are on this I2C/SPI bus? - how are the interrupts wired to IO APIC? - where could my hpet be? Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Cc: sodaville@linutronix.de Cc: devicetree-discuss@lists.ozlabs.org LKML-Reference: <1298405266-1624-3-git-send-email-bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
45 lines
1016 B
C
45 lines
1016 B
C
#ifndef _ASM_X86_IRQ_H
|
|
#define _ASM_X86_IRQ_H
|
|
/*
|
|
* (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
|
|
*
|
|
* IRQ/IPI changes taken from work by Thomas Radke
|
|
* <tomsoft@informatik.tu-chemnitz.de>
|
|
*/
|
|
|
|
#include <asm/apicdef.h>
|
|
#include <asm/irq_vectors.h>
|
|
|
|
static inline int irq_canonicalize(int irq)
|
|
{
|
|
return ((irq == 2) ? 9 : irq);
|
|
}
|
|
|
|
#ifdef CONFIG_X86_32
|
|
extern void irq_ctx_init(int cpu);
|
|
#else
|
|
# define irq_ctx_init(cpu) do { } while (0)
|
|
#endif
|
|
|
|
#define __ARCH_HAS_DO_SOFTIRQ
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
#include <linux/cpumask.h>
|
|
extern void fixup_irqs(void);
|
|
extern void irq_force_complete_move(int);
|
|
#endif
|
|
|
|
extern void (*x86_platform_ipi_callback)(void);
|
|
extern void native_init_IRQ(void);
|
|
extern bool handle_irq(unsigned irq, struct pt_regs *regs);
|
|
|
|
extern unsigned int do_IRQ(struct pt_regs *regs);
|
|
|
|
/* Interrupt vector management */
|
|
extern DECLARE_BITMAP(used_vectors, NR_VECTORS);
|
|
extern int vector_used_by_percpu_irq(unsigned int vector);
|
|
|
|
extern void init_ISA_irqs(void);
|
|
|
|
#endif /* _ASM_X86_IRQ_H */
|