1*daae2280SManos Pitsidianakis /* 2*daae2280SManos Pitsidianakis * FEAT_XS Test 3*daae2280SManos Pitsidianakis * 4*daae2280SManos Pitsidianakis * Copyright (c) 2024 Linaro Ltd 5*daae2280SManos Pitsidianakis * 6*daae2280SManos Pitsidianakis * SPDX-License-Identifier: GPL-2.0-or-later 7*daae2280SManos Pitsidianakis */ 8*daae2280SManos Pitsidianakis 9*daae2280SManos Pitsidianakis #include <minilib.h> 10*daae2280SManos Pitsidianakis #include <stdint.h> 11*daae2280SManos Pitsidianakis main(void)12*daae2280SManos Pitsidianakisint main(void) 13*daae2280SManos Pitsidianakis { 14*daae2280SManos Pitsidianakis uint64_t isar1; 15*daae2280SManos Pitsidianakis 16*daae2280SManos Pitsidianakis asm volatile ("mrs %0, id_aa64isar1_el1" : "=r"(isar1)); 17*daae2280SManos Pitsidianakis if (((isar1 >> 56) & 0xf) < 1) { 18*daae2280SManos Pitsidianakis ml_printf("FEAT_XS not supported by CPU"); 19*daae2280SManos Pitsidianakis return 1; 20*daae2280SManos Pitsidianakis } 21*daae2280SManos Pitsidianakis /* VMALLE1NXS */ 22*daae2280SManos Pitsidianakis asm volatile (".inst 0xd508971f"); 23*daae2280SManos Pitsidianakis /* VMALLE1OSNXS */ 24*daae2280SManos Pitsidianakis asm volatile (".inst 0xd508911f"); 25*daae2280SManos Pitsidianakis 26*daae2280SManos Pitsidianakis return 0; 27*daae2280SManos Pitsidianakis } 28