diff options
author | Michal Simek <monstr@monstr.eu> | 2010-09-28 02:04:14 -0400 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2010-10-21 01:51:59 -0400 |
commit | 02b08045a0306c38131c6d7155c4034a775d40b1 (patch) | |
tree | e146f1811ec3c93ff4877a895e42b71a91932d2b /arch/microblaze/kernel/intc.c | |
parent | e4f29092272ee91a34d3660c31f15ed103057aa0 (diff) |
microblaze: Add support for little-endian Microblaze
Microblaze little-endian toolchain exports __MICROBLAZEEL__
which is used in the kernel to identify little/big endian.
The most of the changes are in loading values from DTB which
is always big endian.
Little endian platforms are based on new AXI bus which has
impact to early uartlite initialization.
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/kernel/intc.c')
-rw-r--r-- | arch/microblaze/kernel/intc.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/microblaze/kernel/intc.c b/arch/microblaze/kernel/intc.c index e85bbea1c62..d61ea33aff7 100644 --- a/arch/microblaze/kernel/intc.c +++ b/arch/microblaze/kernel/intc.c | |||
@@ -138,12 +138,15 @@ void __init init_IRQ(void) | |||
138 | } | 138 | } |
139 | BUG_ON(!intc); | 139 | BUG_ON(!intc); |
140 | 140 | ||
141 | intc_baseaddr = *(int *) of_get_property(intc, "reg", NULL); | 141 | intc_baseaddr = be32_to_cpup(of_get_property(intc, |
142 | "reg", NULL)); | ||
142 | intc_baseaddr = (unsigned long) ioremap(intc_baseaddr, PAGE_SIZE); | 143 | intc_baseaddr = (unsigned long) ioremap(intc_baseaddr, PAGE_SIZE); |
143 | nr_irq = *(int *) of_get_property(intc, "xlnx,num-intr-inputs", NULL); | 144 | nr_irq = be32_to_cpup(of_get_property(intc, |
145 | "xlnx,num-intr-inputs", NULL)); | ||
144 | 146 | ||
145 | intr_type = | 147 | intr_type = |
146 | *(int *) of_get_property(intc, "xlnx,kind-of-intr", NULL); | 148 | be32_to_cpup(of_get_property(intc, |
149 | "xlnx,kind-of-intr", NULL)); | ||
147 | if (intr_type >= (1 << (nr_irq + 1))) | 150 | if (intr_type >= (1 << (nr_irq + 1))) |
148 | printk(KERN_INFO " ERROR: Mismatch in kind-of-intr param\n"); | 151 | printk(KERN_INFO " ERROR: Mismatch in kind-of-intr param\n"); |
149 | 152 | ||