1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * SBI verification 4 * 5 * Copyright (C) 2023, Ventana Micro Systems Inc., Andrew Jones <ajones@ventanamicro.com> 6 */ 7 #include <libcflat.h> 8 #include <stdlib.h> 9 #include <asm/sbi.h> 10 11 static void help(void) 12 { 13 puts("Test SBI\n"); 14 puts("An environ must be provided where expected values are given.\n"); 15 } 16 17 int main(int argc, char **argv) 18 { 19 struct sbiret ret; 20 long expected; 21 22 if (argc > 1 && !strcmp(argv[1], "-h")) { 23 help(); 24 exit(0); 25 } 26 27 report_prefix_push("sbi"); 28 29 if (!getenv("MVENDORID")) { 30 report_skip("mvendorid: missing MVENDORID environment variable"); 31 goto done; 32 } 33 expected = strtol(getenv("MVENDORID"), NULL, 0); 34 35 ret = sbi_ecall(SBI_EXT_BASE, SBI_EXT_BASE_GET_MVENDORID, 0, 0, 0, 0, 0, 0); 36 report(!ret.error, "mvendorid: no error"); 37 report(ret.value == expected, "mvendorid"); 38 39 done: 40 return report_summary(); 41 } 42