Lines Matching +full:bl +full:- +full:code +full:- +full:offset

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
4 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
7 * Low-level exception handlers and MMU support
13 * This file contains low-level support and setup for PowerPC 8xx
30 #include <asm/asm-offsets.h>
32 #include <asm/code-patching-asm.h>
52 * support an ELF compressed (zImage) boot from EPPC-Bug because the
53 * code there loads up some registers before calling us:
56 * r5: initrd_end - unused if r4 is 0
61 * adding more processor specific branches around code I don't need.
71 * -- Dan
80 bl initial_mmu
119 bl machine_check_exception
129 bl alignment_exception
137 bl program_check_exception
148 /* Single step - not used on 601 */
157 bl emulation_assist_interrupt
176 addi tmp, addr, -PAGE_SIZE; \
193 lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r10) /* Get level 1 entry */
198 rlwimi r11, r10, 32 - 9, _PMD_PAGE_512K
206 rlwinm r10, r10, 0, ~0x0f00 /* Clear bits 20-23 */
208 ori r10, r10, RPN_PATTERN | 0x200 /* Set 22 and 24-27 */
219 0: lwz r10, (itlb_miss_counter - PAGE_OFFSET)@l(0)
221 stw r10, (itlb_miss_counter - PAGE_OFFSET)@l(0)
236 lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r10) /* Get level 1 entry */
244 * I got that right :-). It will be better when we can put
249 rlwimi r11, r10, 32 - 9, _PMD_PAGE_512K
258 rlwimi r10, r11, 0, 24, 27 /* Set 24-27 */
271 0: lwz r10, (dtlb_miss_counter - PAGE_OFFSET)@l(0)
273 stw r10, (dtlb_miss_counter - PAGE_OFFSET)@l(0)
294 bl do_page_fault
305 beq- cr1, FixupDAR /* must be a buggy dcbX, icbi insn. */
315 bge- cr1, FixupPGD
321 bl do_page_fault
335 cmplwi cr1, r11, (.Ldtlbie - PAGE_OFFSET)@l
336 cmplwi cr7, r11, (.Litlbie - PAGE_OFFSET)@l
349 bl do_break
356 lwz r10, (instruction_counter - PAGE_OFFSET)@l(0)
357 addi r10, r10, -1
358 stw r10, (instruction_counter - PAGE_OFFSET)@l(0)
378 lwz r10, (swapper_pg_dir - PAGE_OFFSET)@l(r11) /* Get the level 1 entry */
383 oris r10, r10, (swapper_pg_dir - PAGE_OFFSET)@ha
384 lwz r10, (swapper_pg_dir - PAGE_OFFSET)@l(r10) /* Get the level 1 entry */
387 stw r10, (swapper_pg_dir - PAGE_OFFSET)@l(r11) /* Set the level 1 entry */
415 oris r11, r11, (swapper_pg_dir - PAGE_OFFSET)@ha
417 lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11) /* Get the level 1 entry */
422 /* concat physical page address(r11) and page offset(r10) */
423 rlwimi r11, r10, 0, 32 - PAGE_SHIFT, 31
428 xoris r10, r11, 0x7c00 /* check if major OP code is 31 */
449 rlwinm r10, r11, 24, 24, 28 /* offset into jump table for reg RB */
488 rlwinm r11,r11,19,24,28 /* offset into jump table for reg RA */
517 * This is where the main kernel code starts.
536 stwu r0,THREAD_SIZE-STACK_FRAME_MIN_SIZE(r1)
542 bl early_init /* We have to do this with MMU on */
548 bl kasan_early_init
552 bl machine_init
553 bl MMU_init
562 * init's THREAD like the context switch code does, but this is
693 lis r9, (1f - PAGE_OFFSET)@h
694 ori r9, r9, (1f - PAGE_OFFSET)@l