|  | /* SPDX-License-Identifier: GPL-2.0+ */ | 
|  | /* | 
|  | * (C) Copyright 2015 Freescale Semiconductor | 
|  | * | 
|  | * Extracted from gic_64.S | 
|  | */ | 
|  |  | 
|  | #include <config.h> | 
|  | #include <linux/linkage.h> | 
|  | #include <asm/macro.h> | 
|  |  | 
|  | /************************************************************************* | 
|  | * | 
|  | * void ccn504_add_masters_to_dvm(CCI_MN_BASE, CCI_MN_RNF_NODEID_LIST, | 
|  | * 				  CCI_MN_DVM_DOMAIN_CTL_SET); | 
|  | * | 
|  | * Add fully-coherent masters to DVM domain | 
|  | * | 
|  | *************************************************************************/ | 
|  | ENTRY(ccn504_add_masters_to_dvm) | 
|  | /* | 
|  | * x0: CCI_MN_BASE | 
|  | * x1: CCI_MN_RNF_NODEID_LIST | 
|  | * x2: CCI_MN_DVM_DOMAIN_CTL_SET | 
|  | */ | 
|  |  | 
|  | /* Add fully-coherent masters to DVM domain */ | 
|  | ldr	x9, [x0, x1] | 
|  | str	x9, [x0, x2] | 
|  | 1:	ldr	x10, [x0, x2] | 
|  | mvn	x11, x10 | 
|  | tst	x11, x10 /* Wait for domain addition to complete */ | 
|  | b.ne	1b | 
|  |  | 
|  | ret | 
|  | ENDPROC(ccn504_add_masters_to_dvm) | 
|  |  | 
|  | /************************************************************************* | 
|  | * | 
|  | * void ccn504_set_qos(CCI_Sx_QOS_CONTROL_BASE, QoS Value); | 
|  | * | 
|  | * Initialize QoS settings for AR/AW override. | 
|  | * Right now, this function sets the same QoS value for all RN-I ports | 
|  | * | 
|  | *************************************************************************/ | 
|  | ENTRY(ccn504_set_qos) | 
|  | /* | 
|  | * x0: CCI_Sx_QOS_CONTROL_BASE | 
|  | * x1: QoS Value | 
|  | */ | 
|  |  | 
|  | /* Set all RN-I ports to QoS value denoted by x1 */ | 
|  | ldr	x9, [x0] | 
|  | mov	x10, x1 | 
|  | orr	x9, x9, x10 | 
|  | str	x9, [x0] | 
|  |  | 
|  | ret | 
|  | ENDPROC(ccn504_set_qos) | 
|  |  | 
|  | /************************************************************************* | 
|  | * | 
|  | * void ccn504_set_aux(CCI_AUX_CONTROL_BASE, Value); | 
|  | * | 
|  | * Initialize AUX control settings | 
|  | * | 
|  | *************************************************************************/ | 
|  | ENTRY(ccn504_set_aux) | 
|  | /* | 
|  | * x0: CCI_AUX_CONTROL_BASE | 
|  | * x1: Value | 
|  | */ | 
|  |  | 
|  | ldr	x9, [x0] | 
|  | mov	x10, x1 | 
|  | orr	x9, x9, x10 | 
|  | str	x9, [x0] | 
|  |  | 
|  | ret | 
|  | ENDPROC(ccn504_set_aux) | 
|  |  |