Merge git://git.denx.de/u-boot-arc
Alexey:
1. Significantly rework cache-related functionality.
In particular that fixes coherency problems in some corner-cases,
allows us to enable and disable caches in run-time and still
have properly running system, finally support execution from
real flash (before we used to run from DDR from the very beginning).
2. Remove string routines implemented in assembly.
That allows us to build and run U-Boot on wide range of ARC cores
with different configurations. I.e. whatever tuning is used on GCC's
command-line we'll get code for desired flavor of ARC.
Otherwise for each and every corner-case we would need to add ifdefs
in assembly code to accommodate missing instructions etc.
3. Get use of GCC's garbage collector which helps to slim-down resulting image
quite a bit.
4. Also now we may disable U-Boot self-relocation for ARC if needed either
by platform or for debugging purposes.
This commit is contained in:
@@ -47,6 +47,18 @@ int board_early_init_f(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ISA_ARCV2
|
||||
|
||||
void board_jump_and_run(ulong entry, int zero, int arch, uint params)
|
||||
{
|
||||
void (*kernel_entry)(int zero, int arch, uint params);
|
||||
|
||||
kernel_entry = (void (*)(int, int, uint))entry;
|
||||
|
||||
smp_set_core_boot_addr(entry, -1);
|
||||
smp_kick_all_cpus();
|
||||
kernel_entry(zero, arch, params);
|
||||
}
|
||||
|
||||
#define RESET_VECTOR_ADDR 0x0
|
||||
|
||||
void smp_set_core_boot_addr(unsigned long addr, int corenr)
|
||||
|
||||
@@ -58,6 +58,17 @@ int board_mmc_init(bd_t *bis)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void board_jump_and_run(ulong entry, int zero, int arch, uint params)
|
||||
{
|
||||
void (*kernel_entry)(int zero, int arch, uint params);
|
||||
|
||||
kernel_entry = (void (*)(int, int, uint))entry;
|
||||
|
||||
smp_set_core_boot_addr(entry, -1);
|
||||
smp_kick_all_cpus();
|
||||
kernel_entry(zero, arch, params);
|
||||
}
|
||||
|
||||
#define RESET_VECTOR_ADDR 0x0
|
||||
|
||||
void smp_set_core_boot_addr(unsigned long addr, int corenr)
|
||||
|
||||
Reference in New Issue
Block a user