summaryrefslogtreecommitdiffstats
path: root/src/include/device/path.h
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2016-05-07 20:01:34 -0700
committerDuncan Laurie <dlaurie@google.com>2016-05-16 19:49:59 +0200
commit4650f5baff017efce3d9873268efddc05bc267c3 (patch)
tree1e9b2c103f6fc8e7ae63dbb4404ab380098c7f5d /src/include/device/path.h
parentb7ce5fe31120d6fb7866f2e3e6c66b93bf185127 (diff)
downloadcoreboot-4650f5baff017efce3d9873268efddc05bc267c3.tar.gz
coreboot-4650f5baff017efce3d9873268efddc05bc267c3.tar.bz2
coreboot-4650f5baff017efce3d9873268efddc05bc267c3.zip
sconfig: Add a new generic device type
Add support for a basic generic device in the devicetree to bind to a device that does not have a specific bus, but may need to be described in tables for the operating system. For instance some chips may have various GPIO connections that need described but do not fall under any other device. In order to support this export the basic 'scan_static_bus()' that can be used in a device_operations->scan_bus() method to scan for the generic devices. It has been possible to get a semi-generic device by using a fake PNP device, but that isn't really appropriate for many devices. Also Re-generate the shipped files for sconfig. Use flex 2.6.0 to avoid everything being rewritten. Clean up the local paths that leak into the generated configs. Change-Id: If45a5b18825bdb2cf1e4ba4297ee426cbd1678e3 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://review.coreboot.org/14789 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Leroy P Leahy <leroy.p.leahy@intel.com>
Diffstat (limited to 'src/include/device/path.h')
-rw-r--r--src/include/device/path.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/include/device/path.h b/src/include/device/path.h
index 8421a3847351..9d7fb38d42b2 100644
--- a/src/include/device/path.h
+++ b/src/include/device/path.h
@@ -13,6 +13,7 @@ enum device_path_type {
DEVICE_PATH_CPU,
DEVICE_PATH_CPU_BUS,
DEVICE_PATH_IOAPIC,
+ DEVICE_PATH_GENERIC,
/*
* When adding path types to this table, please also update the
@@ -31,7 +32,8 @@ enum device_path_type {
"DEVICE_PATH_CPU_CLUSTER", \
"DEVICE_PATH_CPU", \
"DEVICE_PATH_CPU_BUS", \
- "DEVICE_PATH_IOAPIC" \
+ "DEVICE_PATH_IOAPIC", \
+ "DEVICE_PATH_GENERIC" \
}
struct domain_path
@@ -85,6 +87,12 @@ struct cpu_bus_path
unsigned id;
};
+struct generic_path
+{
+ unsigned id;
+ unsigned subid;
+};
+
struct device_path {
enum device_path_type type;
@@ -98,6 +106,7 @@ struct device_path {
struct cpu_cluster_path cpu_cluster;
struct cpu_path cpu;
struct cpu_bus_path cpu_bus;
+ struct generic_path generic;
};
};