summaryrefslogtreecommitdiffstats
path: root/arch/microblaze/kernel/setup.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-03-16 10:48:16 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-03-16 10:48:16 -0700
commit51e8703bdf12e2481b205096c973a3ab6a8ca18b (patch)
treeed6b4131b8a613e9492488fb2b31d16bc9991ce1 /arch/microblaze/kernel/setup.c
parent1fd06bb1571e2618ae392e2484925bf0dadd7857 (diff)
parent0b9b0200b0922c29dc251b99700f96dade92214a (diff)
downloadtalos-op-linux-51e8703bdf12e2481b205096c973a3ab6a8ca18b.tar.gz
talos-op-linux-51e8703bdf12e2481b205096c973a3ab6a8ca18b.zip
Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze
* 'next' of git://git.monstr.eu/linux-2.6-microblaze: (33 commits) microblaze: Do not copy reset vectors/manual reset vector setup microblaze: Fix _reset function microblaze: Fix microblaze init vectors microblaze: Fix circular headers dependency when ftrace is enabled. microblaze: Fix typo in Kconfig microblaze: Add missing export symbols for lib functions microblaze: Fix /dev/zero corruption from __clear_user() microblaze: Convert irq_chip to new functions microblaze: Select GENERIC_HARDIRQS_NO_DEPRECATED microblaze: Remove stale irq_chip.end microblaze: Fix sparse warnings - signal.c microblaze: Fix sparse warning - fault.c microblaze: Fix missing microblaze specific syscalls declaration microblaze: Fix sparse warnings - cache.c microblaze: Fix sparse warning - cpuinfo.h microblaze: Fix sparse warning - unwind.c microblaze: Fix sparse warning - consistent_alloc function microblaze: Fix sparse warnings - ptrace microblaze: Fix sparse warning - sw_exceptions microblaze: Fix sparse warning - timer.c ...
Diffstat (limited to 'arch/microblaze/kernel/setup.c')
-rw-r--r--arch/microblaze/kernel/setup.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c
index 9312fbb37efd..8e2c09b7ff26 100644
--- a/arch/microblaze/kernel/setup.c
+++ b/arch/microblaze/kernel/setup.c
@@ -95,7 +95,8 @@ inline unsigned get_romfs_len(unsigned *addr)
void __init machine_early_init(const char *cmdline, unsigned int ram,
unsigned int fdt, unsigned int msr)
{
- unsigned long *src, *dst = (unsigned long *)0x0;
+ unsigned long *src, *dst;
+ unsigned int offset = 0;
/* If CONFIG_MTD_UCLINUX is defined, assume ROMFS is at the
* end of kernel. There are two position which we want to check.
@@ -168,7 +169,14 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
"CPU have it %x\n", msr);
#endif
- for (src = __ivt_start; src < __ivt_end; src++, dst++)
+ /* Do not copy reset vectors. offset = 0x2 means skip the first
+ * two instructions. dst is pointer to MB vectors which are placed
+ * in block ram. If you want to copy reset vector setup offset to 0x0 */
+#if !CONFIG_MANUAL_RESET_VECTOR
+ offset = 0x2;
+#endif
+ dst = (unsigned long *) (offset * sizeof(u32));
+ for (src = __ivt_start + offset; src < __ivt_end; src++, dst++)
*dst = *src;
/* Initialize global data */
OpenPOWER on IntegriCloud