forked from Minki/linux
873e65bc09
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 83 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Richard Fontana <rfontana@redhat.com> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.021731668@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
73 lines
1.4 KiB
ArmAsm
73 lines
1.4 KiB
ArmAsm
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* PS3 bootwrapper entry.
|
|
*
|
|
* Copyright (C) 2007 Sony Computer Entertainment Inc.
|
|
* Copyright 2007 Sony Corp.
|
|
*/
|
|
|
|
#include "ppc_asm.h"
|
|
|
|
.machine "ppc64"
|
|
|
|
.text
|
|
|
|
/*
|
|
* __system_reset_overlay - The PS3 first stage entry.
|
|
*
|
|
* The bootwraper build script copies the 512 bytes at symbol
|
|
* __system_reset_overlay to offset 0x100 of the rom image. This symbol
|
|
* must occupy 512 or less bytes.
|
|
*
|
|
* The PS3 has a single processor with two threads.
|
|
*/
|
|
|
|
.globl __system_reset_overlay
|
|
__system_reset_overlay:
|
|
|
|
/* Switch to 32-bit mode. */
|
|
|
|
mfmsr r9
|
|
clrldi r9,r9,1
|
|
mtmsrd r9
|
|
nop
|
|
|
|
/* Get thread number in r3 and branch. */
|
|
|
|
mfspr r3, 0x88
|
|
cntlzw. r3, r3
|
|
beq 1f
|
|
|
|
/* Secondary goes to __secondary_hold in kernel. */
|
|
|
|
li r4, 0x60
|
|
mtctr r4
|
|
bctr
|
|
|
|
1:
|
|
/* Primary delays then goes to _zimage_start in wrapper. */
|
|
|
|
or 31, 31, 31 /* db16cyc */
|
|
or 31, 31, 31 /* db16cyc */
|
|
|
|
lis r4, _zimage_start@ha
|
|
addi r4, r4, _zimage_start@l
|
|
mtctr r4
|
|
bctr
|
|
|
|
. = __system_reset_overlay + 512
|
|
|
|
/*
|
|
* __system_reset_kernel - Place holder for the kernel reset vector.
|
|
*
|
|
* The bootwrapper build script copies 512 bytes from offset 0x100
|
|
* of the rom image to the symbol __system_reset_kernel. At runtime
|
|
* the bootwrapper program copies the 512 bytes at __system_reset_kernel
|
|
* to ram address 0x100. This symbol must occupy 512 bytes.
|
|
*/
|
|
|
|
.globl __system_reset_kernel
|
|
__system_reset_kernel:
|
|
|
|
. = __system_reset_kernel + 512
|