• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)17 static 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)31 static 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