diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 10:48:16 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 10:48:16 -0700 |
commit | 51e8703bdf12e2481b205096c973a3ab6a8ca18b (patch) | |
tree | ed6b4131b8a613e9492488fb2b31d16bc9991ce1 /arch/microblaze/kernel/setup.c | |
parent | 1fd06bb1571e2618ae392e2484925bf0dadd7857 (diff) | |
parent | 0b9b0200b0922c29dc251b99700f96dade92214a (diff) |
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.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c index 9312fbb37ef..8e2c09b7ff2 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 */ |