18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
38c2ecf20Sopenharmony_ci * License.  See the file "COPYING" in the main directory of this archive
48c2ecf20Sopenharmony_ci * for more details.
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * Copyright (C) 2014, Imagination Technologies Ltd.
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * EVA functions for generic code
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#ifndef _ASM_EVA_H
128c2ecf20Sopenharmony_ci#define _ASM_EVA_H
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci#include <kernel-entry-init.h>
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci#ifdef __ASSEMBLY__
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci#ifdef CONFIG_EVA
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci/*
218c2ecf20Sopenharmony_ci * EVA early init code
228c2ecf20Sopenharmony_ci *
238c2ecf20Sopenharmony_ci * Platforms must define their own 'platform_eva_init' macro in
248c2ecf20Sopenharmony_ci * their kernel-entry-init.h header. This macro usually does the
258c2ecf20Sopenharmony_ci * platform specific configuration of the segmentation registers,
268c2ecf20Sopenharmony_ci * and it is normally called from assembly code.
278c2ecf20Sopenharmony_ci *
288c2ecf20Sopenharmony_ci */
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci.macro eva_init
318c2ecf20Sopenharmony_ciplatform_eva_init
328c2ecf20Sopenharmony_ci.endm
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci#else
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci.macro eva_init
378c2ecf20Sopenharmony_ci.endm
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci#endif /* CONFIG_EVA */
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#endif /* __ASSEMBLY__ */
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#endif
44