Skip to content

Instantly share code, notes, and snippets.

@vmlemon
Created August 25, 2019 19:43
Show Gist options
  • Save vmlemon/f9a0b484a8d81fd16a08fd7d462f0aa3 to your computer and use it in GitHub Desktop.
Save vmlemon/f9a0b484a8d81fd16a08fd7d462f0aa3 to your computer and use it in GitHub Desktop.
_start:
/* Zero the BSS */
LD_ADDR(r10, _start_bss)
LD_ADDR(r11, _end_bss)
subi r10, r10, 4
subi r11, r11, 4
LD_CONST(r6, KERNEL_OFFSET)
sub r10, r10, r6
sub r11, r11, r6
li r12, 0
1: cmp 0, r10, r11
beq 2f
stwu r12, 4(r10)
b 1b
2:
LD_LABEL(r10, __real_mode_jump) /* Load address of real-mode init */
LD_CONST(r12, MSR_REAL_MODE) /* Get the real mode MSR setting and jump to 64-bit mode */
sub r10, r10, r6
mtsrr0 r10 /* Setup jump address */
mtsrr1 r12 /* Enable read mode */
rfid /* Context Changing Jump */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment