1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 3 #include <console/console.h> 4 #include <device/device.h> 5 #include <option.h> 6 #include <types.h> 7 8 /* 9 * Hiding the AST2400 might be desirable to reduce attack surface. 10 * 11 * The PCIe root port that the AST2400 is on is disabled, but the 12 * AST2400 itself likely remains in an enabled state. 13 * 14 * The AST2400 is also attached to the LPC. That interface does not get 15 * disabled. 16 */ hide_ast2400(void)17static void hide_ast2400(void) 18 { 19 struct device *dev = pcidev_on_root(0x1c, 0); 20 if (!dev) 21 return; 22 23 /* 24 * Marking this device as disabled means that the southbridge code 25 * will properly disable the root port when it configures it later. 26 */ 27 dev->enabled = 0; 28 printk(BIOS_INFO, "The AST2400 is now set to be hidden.\n"); 29 } 30 mainboard_enable(struct device * dev)31static void mainboard_enable(struct device *dev) 32 { 33 if (get_uint_option("hide_ast2400", false)) 34 hide_ast2400(); 35 } 36 37 struct chip_operations mainboard_ops = { 38 .name = "X10SLM+-F", 39 .enable_dev = mainboard_enable, 40 }; 41