forked from xuos/xiuos
Merge remote-tracking branch 'tuyuyang/rk3568_dev' into rk3568_dev
This commit is contained in:
commit
8ff99f7d4d
|
@ -1,6 +1,6 @@
|
||||||
SRC_FILES := boot.S \
|
SRC_FILES := boot.S \
|
||||||
|
xizi_smp.S \
|
||||||
smp.c \
|
smp.c \
|
||||||
smccc-call.S \
|
|
||||||
cortexA55.S
|
cortexA55.S
|
||||||
|
|
||||||
include $(KERNEL_ROOT)/compiler.mk
|
include $(KERNEL_ROOT)/compiler.mk
|
|
@ -1,33 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2015, Linaro Limited
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-2.0
|
|
||||||
*/
|
|
||||||
.global __arm_smccc_smc
|
|
||||||
.macro SMCCC instr
|
|
||||||
.cfi_startproc
|
|
||||||
\instr #0
|
|
||||||
ldr x4, [sp]
|
|
||||||
stp x0, x1, [x4, #0]
|
|
||||||
stp x2, x3, [x4, #16]
|
|
||||||
ldr x4, [sp, #8]
|
|
||||||
cbz x4, 1f /* no quirk structure */
|
|
||||||
ldr x9, [x4, #0]
|
|
||||||
cmp x9, #1
|
|
||||||
b.ne 1f
|
|
||||||
str x6, [x4, 8]
|
|
||||||
1: ret
|
|
||||||
.cfi_endproc
|
|
||||||
.endm
|
|
||||||
|
|
||||||
/*
|
|
||||||
* void arm_smccc_smc(unsigned long a0, unsigned long a1, unsigned long a2,
|
|
||||||
* unsigned long a3, unsigned long a4, unsigned long a5,
|
|
||||||
* unsigned long a6, unsigned long a7, struct arm_smccc_res *res,
|
|
||||||
* struct arm_smccc_quirk *quirk)
|
|
||||||
*/
|
|
||||||
.func __arm_smccc_smc
|
|
||||||
__arm_smccc_smc:
|
|
||||||
SMCCC smc
|
|
||||||
.endfunc
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ Modification:
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define PSCI_CPUON 0xc4000003
|
#define PSCI_CPUON 0xc4000003
|
||||||
struct arm_smccc_res {
|
struct xizi_smccc_res {
|
||||||
unsigned long a0;
|
unsigned long a0;
|
||||||
unsigned long a1;
|
unsigned long a1;
|
||||||
unsigned long a2;
|
unsigned long a2;
|
||||||
|
@ -57,18 +57,19 @@ struct arm_smccc_res {
|
||||||
|
|
||||||
extern void _boot_start();
|
extern void _boot_start();
|
||||||
extern void __print();
|
extern void __print();
|
||||||
extern void __arm_smccc_smc(unsigned long a0, unsigned long a1, unsigned long a2,
|
|
||||||
unsigned long a3, unsigned long a4, unsigned long a5,
|
|
||||||
unsigned long a6, unsigned long a7, struct arm_smccc_res* res);
|
|
||||||
|
|
||||||
static struct arm_smccc_res __invoke_sip_fn_smc(unsigned long function_id,
|
extern void __xizi_smccc_smc(unsigned long a0, unsigned long a1, unsigned long a2,
|
||||||
|
unsigned long a3, unsigned long a4, unsigned long a5,
|
||||||
|
unsigned long a6, unsigned long a7, struct xizi_smccc_res* res);
|
||||||
|
|
||||||
|
static struct xizi_smccc_res __invoke_sip_fn_smc(unsigned long function_id,
|
||||||
unsigned long arg0,
|
unsigned long arg0,
|
||||||
unsigned long arg1,
|
unsigned long arg1,
|
||||||
unsigned long arg2)
|
unsigned long arg2)
|
||||||
{
|
{
|
||||||
struct arm_smccc_res res;
|
struct xizi_smccc_res res;
|
||||||
|
|
||||||
__arm_smccc_smc(function_id, arg0, arg1, arg2, 0, 0, 0, 0, &res);
|
__xizi_smccc_smc(function_id, arg0, arg1, arg2, 0, 0, 0, 0, &res);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 AIIT XUOS Lab
|
||||||
|
* XiUOS is licensed under Mulan PSL v2.
|
||||||
|
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
* You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
* http://license.coscl.org.cn/MulanPSL2
|
||||||
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the Mulan PSL v2 for more details.
|
||||||
|
*/
|
||||||
|
.global __xizi_smccc_smc
|
||||||
|
|
||||||
|
.func __xizi_smccc_smc
|
||||||
|
__xizi_smccc_smc:
|
||||||
|
smc #0
|
||||||
|
ldr x4, [sp]
|
||||||
|
stp x0, x1, [x4, #0]
|
||||||
|
stp x2, x3, [x4, #16]
|
||||||
|
ldr x4, [sp, #8]
|
||||||
|
cbz x4, 1f /* no quirk structure */
|
||||||
|
ldr x9, [x4, #0]
|
||||||
|
cmp x9, #1
|
||||||
|
b.ne 1f
|
||||||
|
str x6, [x4, 8]
|
||||||
|
1: ret
|
||||||
|
.endfunc
|
Loading…
Reference in New Issue