Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/aim/locore64.S
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | |||||
* Entry point for bootloaders that do not fully implement ELF and start | * Entry point for bootloaders that do not fully implement ELF and start | ||||
* at the beginning of the image (kexec, notably). In its own section so | * at the beginning of the image (kexec, notably). In its own section so | ||||
* that it ends up before any linker-generated call stubs and actually at | * that it ends up before any linker-generated call stubs and actually at | ||||
* the beginning of the image. kexec on some systems also enters at | * the beginning of the image. kexec on some systems also enters at | ||||
* (start of image) + 0x60, so put a spin loop there. | * (start of image) + 0x60, so put a spin loop there. | ||||
*/ | */ | ||||
.section ".text.kboot", "x", @progbits | .section ".text.kboot", "x", @progbits | ||||
kbootentry: | kbootentry: | ||||
#ifdef __LITTLE_ENDIAN__ | |||||
RETURN_TO_NATIVE_ENDIAN | |||||
#endif | |||||
b __start | b __start | ||||
. = kbootentry + 0x40 /* Magic address used in platform layer */ | . = kbootentry + 0x40 /* Magic address used in platform layer */ | ||||
.global smp_spin_sem | .global smp_spin_sem | ||||
ap_kexec_spin_sem: | ap_kexec_spin_sem: | ||||
.long -1 | .long -1 | ||||
. = kbootentry + 0x60 /* Entry point for kexec APs */ | . = kbootentry + 0x60 /* Entry point for kexec APs */ | ||||
ap_kexec_start: /* At 0x60 past start, copied to 0x60 by kexec */ | ap_kexec_start: /* At 0x60 past start, copied to 0x60 by kexec */ | ||||
/* r3 set to CPU ID by kexec */ | /* r3 set to CPU ID by kexec */ | ||||
▲ Show 20 Lines • Show All 195 Lines • Show Last 20 Lines |