mb/starlabs/{lite_adl,byte_adl}: Don't select MAINBOARD_HAS_TPM2
[coreboot2.git] / src / arch / ppc64 / boot.c
blobbbd0d39e985bcafee6906b42c871f93a6b42763f
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <program_loading.h>
5 #if ENV_PAYLOAD_LOADER
7 /*
8 * Payload's entry point is an offset to the real entry point, not to OPD
9 * (Official Procedure Descriptor) for entry point.
11 void arch_prog_run(struct prog *prog)
13 asm volatile(
14 "mtctr %1\n"
15 "mr 3, %0\n"
16 "bctr\n"
17 :: "r"(prog_entry_arg(prog)), "r"(prog_entry(prog)) : "memory");
20 #else
22 void arch_prog_run(struct prog *prog)
24 void (*doit)(void *) = prog_entry(prog);
26 doit(prog_entry_arg(prog));
29 #endif