microblaze: Do not copy reset vectors/manual reset vector setup
Reset vector can be setup by bootloader and kernel doens't need to touch it. If you require to setup reset vector, please use CONFIG_MANUAL_RESET_VECTOR throught menuconfig. It is not possible to setup address 0x0 as reset address because make no sense to set it up at all. Signed-off-by: Michal Simek <monstr@monstr.eu> Signed-off-by: John Williams <john.williams@petalogix.com>
This commit is contained in:
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user