None of the parameters of secondary_start are actually used. So turn
secondary_start to a function with no parameters.
Also modify the assembly code to avoid setting-up the registers before
calling start_secondary.
Signed-off-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Andrii Anisov <andrii.anisov@epam.com>
ldr sp, [r0]
add sp, #STACK_SIZE /* (which grows down from the top). */
sub sp, #CPUINFO_sizeof /* Make room for CPU save record */
- mov r0, r10 /* Marshal args: - phys_offset */
- mov r1, r8 /* - DTB address */
teq r12, #0
+ moveq r0, r10 /* Marshal args: - phys_offset */
+ moveq r1, r8 /* - DTB address */
beq start_xen /* and disappear into the land of C */
b start_secondary /* (to the appropriate entry point) */
sub x0, x0, #CPUINFO_sizeof /* Make room for CPU save record */
mov sp, x0
+ cbnz x22, 1f
+
mov x0, x20 /* Marshal args: - phys_offset */
mov x1, x21 /* - FDT */
- cbnz x22, 1f
b start_xen /* and disappear into the land of C */
1:
b start_secondary /* (to the appropriate entry point) */
}
/* Boot the current CPU */
-void start_secondary(unsigned long boot_phys_offset,
- unsigned long fdt_paddr,
- unsigned long hwid)
+void start_secondary(void)
{
unsigned int cpuid = init_data.cpuid;