.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * pSeries firmware setup code. |
---|
3 | 4 | * |
---|
.. | .. |
---|
14 | 15 | * Copyright (C) 2005 Stephen Rothwell, IBM Corporation |
---|
15 | 16 | * |
---|
16 | 17 | * Copyright 2006 IBM Corporation. |
---|
17 | | - * |
---|
18 | | - * This program is free software; you can redistribute it and/or |
---|
19 | | - * modify it under the terms of the GNU General Public License |
---|
20 | | - * as published by the Free Software Foundation; either version |
---|
21 | | - * 2 of the License, or (at your option) any later version. |
---|
22 | 18 | */ |
---|
23 | 19 | |
---|
24 | 20 | |
---|
.. | .. |
---|
26 | 22 | #include <asm/firmware.h> |
---|
27 | 23 | #include <asm/prom.h> |
---|
28 | 24 | #include <asm/udbg.h> |
---|
| 25 | +#include <asm/svm.h> |
---|
29 | 26 | |
---|
30 | 27 | #include "pseries.h" |
---|
31 | 28 | |
---|
.. | .. |
---|
59 | 56 | {FW_FEATURE_LLAN, "hcall-lLAN"}, |
---|
60 | 57 | {FW_FEATURE_BULK_REMOVE, "hcall-bulk"}, |
---|
61 | 58 | {FW_FEATURE_XDABR, "hcall-xdabr"}, |
---|
62 | | - {FW_FEATURE_MULTITCE, "hcall-multi-tce"}, |
---|
| 59 | + {FW_FEATURE_PUT_TCE_IND | FW_FEATURE_STUFF_TCE, |
---|
| 60 | + "hcall-multi-tce"}, |
---|
63 | 61 | {FW_FEATURE_SPLPAR, "hcall-splpar"}, |
---|
64 | 62 | {FW_FEATURE_VPHN, "hcall-vphn"}, |
---|
65 | 63 | {FW_FEATURE_SET_MODE, "hcall-set-mode"}, |
---|
66 | 64 | {FW_FEATURE_BEST_ENERGY, "hcall-best-energy-1*"}, |
---|
67 | 65 | {FW_FEATURE_HPT_RESIZE, "hcall-hpt-resize"}, |
---|
| 66 | + {FW_FEATURE_BLOCK_REMOVE, "hcall-block-remove"}, |
---|
| 67 | + {FW_FEATURE_PAPR_SCM, "hcall-scm"}, |
---|
| 68 | + {FW_FEATURE_RPT_INVALIDATE, "hcall-rpt-invalidate"}, |
---|
68 | 69 | }; |
---|
69 | 70 | |
---|
70 | 71 | /* Build up the firmware features bitmask using the contents of |
---|
.. | .. |
---|
102 | 103 | } |
---|
103 | 104 | } |
---|
104 | 105 | |
---|
| 106 | + if (is_secure_guest() && |
---|
| 107 | + (powerpc_firmware_features & FW_FEATURE_PUT_TCE_IND)) { |
---|
| 108 | + powerpc_firmware_features &= ~FW_FEATURE_PUT_TCE_IND; |
---|
| 109 | + pr_debug("SVM: disabling PUT_TCE_IND firmware feature\n"); |
---|
| 110 | + } |
---|
| 111 | + |
---|
105 | 112 | pr_debug(" <- fw_hypertas_feature_init()\n"); |
---|
106 | 113 | } |
---|
107 | 114 | |
---|
.. | .. |
---|
112 | 119 | |
---|
113 | 120 | static __initdata struct vec5_fw_feature |
---|
114 | 121 | vec5_fw_features_table[] = { |
---|
115 | | - {FW_FEATURE_TYPE1_AFFINITY, OV5_TYPE1_AFFINITY}, |
---|
| 122 | + {FW_FEATURE_FORM1_AFFINITY, OV5_FORM1_AFFINITY}, |
---|
116 | 123 | {FW_FEATURE_PRRN, OV5_PRRN}, |
---|
117 | 124 | {FW_FEATURE_DRMEM_V2, OV5_DRMEM_V2}, |
---|
118 | 125 | {FW_FEATURE_DRC_INFO, OV5_DRC_INFO}, |
---|
| 126 | + {FW_FEATURE_FORM2_AFFINITY, OV5_FORM2_AFFINITY}, |
---|
119 | 127 | }; |
---|
120 | 128 | |
---|
121 | 129 | static void __init fw_vec5_feature_init(const char *vec5, unsigned long len) |
---|