Deleted Added
full compact
locore.S (224617) locore.S (235932)
1/*-
2 * Copyright (C) 2007-2009 Semihalf, Rafal Jaworowski <raj@semihalf.com>
3 * Copyright (C) 2006 Semihalf, Marian Balakowicz <m8@semihalf.com>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 9 unchanged lines hidden (view full) ---

18 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
20 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
22 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
23 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
1/*-
2 * Copyright (C) 2007-2009 Semihalf, Rafal Jaworowski <raj@semihalf.com>
3 * Copyright (C) 2006 Semihalf, Marian Balakowicz <m8@semihalf.com>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 9 unchanged lines hidden (view full) ---

18 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
20 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
22 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
23 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * $FreeBSD: head/sys/powerpc/booke/locore.S 224617 2011-08-02 23:33:44Z marcel $
26 * $FreeBSD: head/sys/powerpc/booke/locore.S 235932 2012-05-24 20:58:40Z marcel $
27 */
28
29#include "assym.s"
30
31#include <machine/asm.h>
32#include <machine/hid.h>
33#include <machine/param.h>
34#include <machine/spr.h>

--- 202 unchanged lines hidden (view full) ---

237/* AP Boot page */
238/************************************************************************/
239 .text
240 .globl __boot_page
241 .align 12
242__boot_page:
243 bl 1f
244
27 */
28
29#include "assym.s"
30
31#include <machine/asm.h>
32#include <machine/hid.h>
33#include <machine/param.h>
34#include <machine/spr.h>

--- 202 unchanged lines hidden (view full) ---

237/* AP Boot page */
238/************************************************************************/
239 .text
240 .globl __boot_page
241 .align 12
242__boot_page:
243 bl 1f
244
245 .globl kernload_ap
246kernload_ap:
245 .globl bp_trace
246bp_trace:
247 .long 0
248
247 .long 0
248
249 .globl bp_kernload
250bp_kernload:
251 .long 0
252
249/*
250 * Initial configuration
251 */
2521:
253/*
254 * Initial configuration
255 */
2561:
257 mflr %r31 /* r31 hold the address of bp_trace */
258
253 /* Set HIDs */
254 lis %r3, HID0_E500_DEFAULT_SET@h
255 ori %r3, %r3, HID0_E500_DEFAULT_SET@l
256 mtspr SPR_HID0, %r3
257 isync
258 lis %r3, HID1_E500_DEFAULT_SET@h
259 ori %r3, %r3, HID1_E500_DEFAULT_SET@l
260 mtspr SPR_HID1, %r3

--- 52 unchanged lines hidden (view full) ---

313 isync
314
315 lis %r3, KERNBASE@h
316 ori %r3, %r3, KERNBASE@l /* EPN = KERNBASE */
317 ori %r3, %r3, MAS2_M@l /* WIMGE = 0b00100 */
318 mtspr SPR_MAS2, %r3
319 isync
320
259 /* Set HIDs */
260 lis %r3, HID0_E500_DEFAULT_SET@h
261 ori %r3, %r3, HID0_E500_DEFAULT_SET@l
262 mtspr SPR_HID0, %r3
263 isync
264 lis %r3, HID1_E500_DEFAULT_SET@h
265 ori %r3, %r3, HID1_E500_DEFAULT_SET@l
266 mtspr SPR_HID1, %r3

--- 52 unchanged lines hidden (view full) ---

319 isync
320
321 lis %r3, KERNBASE@h
322 ori %r3, %r3, KERNBASE@l /* EPN = KERNBASE */
323 ori %r3, %r3, MAS2_M@l /* WIMGE = 0b00100 */
324 mtspr SPR_MAS2, %r3
325 isync
326
321 /* Retrieve kernel load [physical] address from kernload_ap */
327 /* Retrieve kernel load [physical] address from bp_kernload */
322 bl 4f
3234: mflr %r3
324 rlwinm %r3, %r3, 0, 0, 19
328 bl 4f
3294: mflr %r3
330 rlwinm %r3, %r3, 0, 0, 19
325 lis %r4, kernload_ap@h
326 ori %r4, %r4, kernload_ap@l
331 lis %r4, bp_kernload@h
332 ori %r4, %r4, bp_kernload@l
327 lis %r5, __boot_page@h
328 ori %r5, %r5, __boot_page@l
333 lis %r5, __boot_page@h
334 ori %r5, %r5, __boot_page@l
329 sub %r4, %r4, %r5 /* offset of kernload_ap within __boot_page */
335 sub %r4, %r4, %r5 /* offset of bp_kernload within __boot_page */
330 lwzx %r3, %r4, %r3
331
332 /* Set RPN and protection */
333 ori %r3, %r3, (MAS3_SX | MAS3_SW | MAS3_SR)@l
334 mtspr SPR_MAS3, %r3
335 isync
336 tlbwe
337 isync

--- 448 unchanged lines hidden ---
336 lwzx %r3, %r4, %r3
337
338 /* Set RPN and protection */
339 ori %r3, %r3, (MAS3_SX | MAS3_SW | MAS3_SR)@l
340 mtspr SPR_MAS3, %r3
341 isync
342 tlbwe
343 isync

--- 448 unchanged lines hidden ---