11a8916eeSNayna Jain // SPDX-License-Identifier: GPL-2.0 21a8916eeSNayna Jain /* 31a8916eeSNayna Jain * Copyright (C) 2019 IBM Corporation 41a8916eeSNayna Jain * Author: Nayna Jain 51a8916eeSNayna Jain */ 61a8916eeSNayna Jain #include <linux/types.h> 71a8916eeSNayna Jain #include <linux/of.h> 81a8916eeSNayna Jain #include <asm/secure_boot.h> 91a8916eeSNayna Jain 101a8916eeSNayna Jain static struct device_node *get_ppc_fw_sb_node(void) 111a8916eeSNayna Jain { 121a8916eeSNayna Jain static const struct of_device_id ids[] = { 131a8916eeSNayna Jain { .compatible = "ibm,secureboot", }, 141a8916eeSNayna Jain { .compatible = "ibm,secureboot-v1", }, 151a8916eeSNayna Jain { .compatible = "ibm,secureboot-v2", }, 161a8916eeSNayna Jain {}, 171a8916eeSNayna Jain }; 181a8916eeSNayna Jain 191a8916eeSNayna Jain return of_find_matching_node(NULL, ids); 201a8916eeSNayna Jain } 211a8916eeSNayna Jain 221a8916eeSNayna Jain bool is_ppc_secureboot_enabled(void) 231a8916eeSNayna Jain { 241a8916eeSNayna Jain struct device_node *node; 251a8916eeSNayna Jain bool enabled = false; 261a8916eeSNayna Jain 271a8916eeSNayna Jain node = get_ppc_fw_sb_node(); 281a8916eeSNayna Jain enabled = of_property_read_bool(node, "os-secureboot-enforcing"); 291a8916eeSNayna Jain 301a8916eeSNayna Jain of_node_put(node); 311a8916eeSNayna Jain 321a8916eeSNayna Jain pr_info("Secure boot mode %s\n", enabled ? "enabled" : "disabled"); 331a8916eeSNayna Jain 341a8916eeSNayna Jain return enabled; 351a8916eeSNayna Jain } 36*2702809aSNayna Jain 37*2702809aSNayna Jain bool is_ppc_trustedboot_enabled(void) 38*2702809aSNayna Jain { 39*2702809aSNayna Jain struct device_node *node; 40*2702809aSNayna Jain bool enabled = false; 41*2702809aSNayna Jain 42*2702809aSNayna Jain node = get_ppc_fw_sb_node(); 43*2702809aSNayna Jain enabled = of_property_read_bool(node, "trusted-enabled"); 44*2702809aSNayna Jain 45*2702809aSNayna Jain of_node_put(node); 46*2702809aSNayna Jain 47*2702809aSNayna Jain pr_info("Trusted boot mode %s\n", enabled ? "enabled" : "disabled"); 48*2702809aSNayna Jain 49*2702809aSNayna Jain return enabled; 50*2702809aSNayna Jain } 51