util/sconfig: Add LPC and ESPI buses

Picasso has an LPC and eSPI bridge on the same PCI DEVFN. They can both
be active at the same time. This adds a way to specify which devices
belong on which bus.

i.e.,
device pci 14.3 on  # - D14F3 bridge
	device espi 0 on
		chip ec/google/chromeec
			device pnp 0c09.0 on end
		end
	end
	device lpc 0 on
	end
end

BUG=b:154445472
TEST=Built trembyle and saw static.c contained the espi bus.

Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: I0c2f40813c05680f72e5f30cbb13617e8f994841
Reviewed-on: https://review.coreboot.org/c/coreboot/+/41099
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Raul E Rangel 2020-05-06 11:47:04 -06:00 committed by Patrick Georgi
commit 3f3f53cd5e
9 changed files with 207 additions and 154 deletions

View file

@ -19,6 +19,8 @@ enum device_path_type {
DEVICE_PATH_SPI,
DEVICE_PATH_USB,
DEVICE_PATH_MMIO,
DEVICE_PATH_ESPI,
DEVICE_PATH_LPC,
/*
* When adding path types to this table, please also update the
@ -42,6 +44,8 @@ enum device_path_type {
"DEVICE_PATH_SPI", \
"DEVICE_PATH_USB", \
"DEVICE_PATH_MMIO", \
"DEVICE_PATH_ESPI", \
"DEVICE_PATH_LPC", \
}
struct domain_path {
@ -104,6 +108,14 @@ struct mmio_path {
uintptr_t addr;
};
struct espi_path {
uintptr_t addr;
};
struct lpc_path {
uintptr_t addr;
};
struct device_path {
enum device_path_type type;
union {
@ -120,6 +132,8 @@ struct device_path {
struct spi_path spi;
struct usb_path usb;
struct mmio_path mmio;
struct espi_path espi;
struct lpc_path lpc;
};
};