| { | |
| children: [ | |
| { | |
| name: "device_name_provider", | |
| url: "fuchsia-boot:///#meta/device-name-provider.cm", | |
| }, | |
| { | |
| name: "driver_manager", | |
| url: "fuchsia-boot:///#meta/driver_manager.cm", | |
| environment: "#ddk-env", | |
| }, | |
| { | |
| name: "fshost", | |
| url: "fuchsia-boot:///#meta/fshost.cm", | |
| environment: "#fshost-env", | |
| }, | |
| { | |
| name: "console", | |
| url: "fuchsia-boot:///#meta/console.cm", | |
| }, | |
| { | |
| name: "console-launcher", | |
| url: "fuchsia-boot:///#meta/console-launcher.cm", | |
| startup: "eager", | |
| }, | |
| { | |
| name: "miscsvc", | |
| url: "fuchsia-boot:///#meta/miscsvc.cm", | |
| }, | |
| { | |
| name: "ptysvc", | |
| url: "fuchsia-boot:///#meta/ptysvc.cm", | |
| }, | |
| { | |
| name: "pwrbtn-monitor", | |
| url: "fuchsia-boot:///#meta/pwrbtn-monitor.cm", | |
| // pwrbtn-monitor only consumes capabilities, it doesn't provide | |
| // any, so there's no other way to start it. | |
| startup: "eager", | |
| }, | |
| { | |
| name: "shutdown_shim", | |
| url: "fuchsia-boot:///#meta/shutdown-shim.cm", | |
| }, | |
| { | |
| name: "sysinfo", | |
| url: "fuchsia-boot:///#meta/sysinfo.cm", | |
| }, | |
| { | |
| name: "power_manager", | |
| url: "fuchsia-pkg://fuchsia.com/power_manager#meta/power_manager.cm", | |
| }, | |
| ], | |
| offer: [ | |
| { | |
| protocol: [ "/svc/fuchsia.sys.Loader" ], | |
| from: "parent", | |
| to: [ "#console-launcher" ], | |
| }, | |
| { | |
| directory: "/boot", | |
| from: "parent", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| "#fshost", | |
| "#miscsvc", | |
| ], | |
| rights: [ "rx*" ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.boot.FactoryItems", | |
| "/svc/fuchsia.boot.ReadOnlyLog", | |
| "/svc/fuchsia.kernel.RootJob", | |
| "/svc/fuchsia.kernel.RootJobForInspect", | |
| ], | |
| from: "parent", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.power.manager.DriverManagerRegistration" ], | |
| from: "#power_manager", | |
| to: [ "#driver_manager" ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.kernel.Stats" ], | |
| from: "parent", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| "#power_manager", | |
| ], | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.boot.RootResource", | |
| from: "parent", | |
| to: [ | |
| "#console", | |
| "#console-launcher", | |
| "#driver_manager", | |
| "#sysinfo", | |
| ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.boot.Arguments", | |
| "/svc/fuchsia.boot.Items", | |
| "/svc/fuchsia.process.Launcher", | |
| ], | |
| from: "parent", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| "#fshost", | |
| ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.boot.Arguments", | |
| "/svc/fuchsia.boot.WriteOnlyLog", | |
| "/svc/fuchsia.process.Launcher", | |
| ], | |
| from: "parent", | |
| to: [ "#miscsvc" ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.boot.Arguments", | |
| "/svc/fuchsia.boot.WriteOnlyLog", | |
| ], | |
| from: "parent", | |
| to: [ "#device_name_provider" ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.boot.WriteOnlyLog" ], | |
| from: "parent", | |
| to: [ | |
| "#console", | |
| "#console-launcher", | |
| "#driver_manager", | |
| "#fshost", | |
| "#power_manager", | |
| "#ptysvc", | |
| "#pwrbtn-monitor", | |
| "#shutdown_shim", | |
| "#sysinfo", | |
| ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.cobalt.LoggerFactory", | |
| "/svc/fuchsia.tracing.provider.Registry", | |
| ], | |
| from: "parent", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| "#fshost", | |
| "#power_manager", | |
| ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.security.resource.Vmex" ], | |
| from: "parent", | |
| to: [ "#fshost" ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.scheduler.ProfileProvider" ], | |
| from: "#driver_manager", | |
| to: [ "#fshost" ], | |
| }, | |
| { | |
| // TODO(fxbug.dev/34633): DEPRECATED. Do not add new dependencies on the fshost | |
| // loader service! | |
| protocol: "/svc/fuchsia.fshost.Loader", | |
| from: "#fshost", | |
| to: [ "#driver_manager" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.device.manager.Administrator", | |
| "/svc/fuchsia.device.manager.BindDebugger", | |
| "/svc/fuchsia.device.manager.DebugDumper", | |
| "/svc/fuchsia.kernel.Counter", | |
| "/svc/fuchsia.kernel.DebugBroker", | |
| "/svc/fuchsia.kernel.MexecBroker", | |
| "/svc/fuchsia.paver.Paver", | |
| "/svc/fuchsia.scheduler.ProfileProvider", | |
| "/svc/fuchsia.sysmem.Allocator", | |
| "/svc/fuchsia.virtualconsole.SessionManager", | |
| ], | |
| from: "#driver_manager", | |
| to: [ "#console-launcher" ], | |
| }, | |
| { | |
| directory: "/dev", | |
| from: "#driver_manager", | |
| to: [ | |
| "#console-launcher", | |
| "#device_name_provider", | |
| "#fshost", | |
| "#miscsvc", | |
| "#sysinfo", | |
| ], | |
| }, | |
| { | |
| directory: "/minfs", | |
| from: "#fshost", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/pkgfs", | |
| from: "#fshost", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/system-delayed", | |
| from: "#fshost", | |
| to: [ "#driver_manager" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/system", | |
| from: "#fshost", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/blob", | |
| from: "#fshost", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/install", | |
| from: "#fshost", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/durable", | |
| from: "#fshost", | |
| to: [ "#driver_manager" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/factory", | |
| from: "#fshost", | |
| to: [ "#driver_manager" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/tmp", | |
| from: "#fshost", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/bin", | |
| from: "#fshost", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/volume", | |
| from: "#fshost", | |
| to: [ "#miscsvc" ], | |
| }, | |
| // Offer the log services to the console | |
| { | |
| protocol: [ "/svc/fuchsia.logger.Log" ], | |
| from: "parent", | |
| to: [ "#console" ], | |
| }, | |
| // Offer power_manager's config data to it, so it can read its config | |
| { | |
| directory: "/config/data", | |
| from: "#fshost", | |
| to: [ "#power_manager" ], | |
| subdir: "power_manager", | |
| dependency: "weak_for_migration", | |
| }, | |
| // Offer the kernel serial console to the driver_manager | |
| { | |
| protocol: "/svc/fuchsia.hardware.pty.Device", | |
| from: "#console", | |
| as: "/svc/console", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.device.NameProvider", | |
| from: "#device_name_provider", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| // TODO: Once svchost is spawned by component manager, we can | |
| // remove this. | |
| dependency: "weak_for_migration", | |
| }, | |
| // Offer the misc service to the driver_manager | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.kernel.Counter", | |
| "/svc/fuchsia.paver.Paver", | |
| ], | |
| from: "#miscsvc", | |
| to: [ "#driver_manager" ], | |
| // TODO: Once netsvc is spawned by component manager, we can remove this. | |
| dependency: "weak_for_migration", | |
| }, | |
| // Offer the pty service to the driver_manager | |
| { | |
| protocol: "/svc/fuchsia.hardware.pty.Device", | |
| from: "#ptysvc", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| }, | |
| // driver_manager needs the v1 hub for the serial console | |
| { | |
| directory: "/hub", | |
| from: "parent", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.sysinfo.SysInfo", | |
| from: "#sysinfo", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.hardware.power.statecontrol.Admin", | |
| from: "#shutdown_shim", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| "#pwrbtn-monitor", | |
| ], | |
| }, | |
| // Things shutdown_shim and power_manager need | |
| { | |
| protocol: [ "/svc/fuchsia.sys2.SystemController" ], | |
| from: "parent", | |
| to: [ | |
| "#power_manager", | |
| "#shutdown_shim", | |
| ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.device.manager.SystemStateTransition" ], | |
| from: "#driver_manager", | |
| to: [ "#shutdown_shim" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.hardware.power.statecontrol.Admin" ], | |
| from: "#power_manager", | |
| to: [ "#shutdown_shim" ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.device.manager.Administrator" ], | |
| from: "#driver_manager", | |
| to: [ "#power_manager" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.feedback.CrashReporter" ], | |
| from: "parent", | |
| to: [ "#power_manager" ], | |
| }, | |
| // Non-zircon services for svchost | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.exception.Handler", | |
| "/svc/fuchsia.logger.Log", | |
| "/svc/fuchsia.net.NameLookup", | |
| "/svc/fuchsia.net.stack.Log", | |
| "/svc/fuchsia.net.stack.Stack", | |
| "/svc/fuchsia.netstack.Netstack", | |
| "/svc/fuchsia.pkg.PackageResolver", | |
| "/svc/fuchsia.pkg.RepositoryManager", | |
| "/svc/fuchsia.pkg.rewrite.Engine", | |
| "/svc/fuchsia.posix.socket.Provider", | |
| "/svc/fuchsia.process.Resolver", | |
| "/svc/fuchsia.sys.Environment", | |
| "/svc/fuchsia.sys.Launcher", | |
| "/svc/fuchsia.tracing.controller.Controller", | |
| "/svc/fuchsia.wlan.service.Wlan", | |
| ], | |
| from: "parent", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.logger.LogSink" ], | |
| from: "parent", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| "#fshost", | |
| ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.fshost.BlockWatcher", | |
| "/svc/fuchsia.fshost.Filesystems", | |
| "/svc/fuchsia.fshost.Registry", | |
| ], | |
| from: "#fshost", | |
| to: [ | |
| "#console-launcher", | |
| "#driver_manager", | |
| ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| protocol: [ "/svc/fuchsia.fshost.Admin" ], | |
| from: "#fshost", | |
| to: [ "#driver_manager" ], | |
| dependency: "weak_for_migration", | |
| }, | |
| { | |
| directory: "/dev", | |
| from: "#driver_manager", | |
| as: "/input", | |
| to: [ "#pwrbtn-monitor" ], | |
| subdir: "class/input", | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.fshost.BlockWatcher", | |
| "/svc/fuchsia.fshost.Registry", | |
| ], | |
| from: "#fshost", | |
| to: [ "#miscsvc" ], | |
| }, | |
| ], | |
| expose: [ | |
| // This handle is used by component manager to resolve packages from the | |
| // base package set. | |
| { | |
| directory: "/pkgfs-delayed", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/dev", | |
| from: "#driver_manager", | |
| }, | |
| { | |
| directory: "config-data", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/config/data", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/factory", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/durable", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/minfs", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/pkgfs", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/system", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/blob", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/tmp", | |
| from: "#fshost", | |
| }, | |
| { | |
| directory: "/bin", | |
| from: "#fshost", | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.device.NameProvider", | |
| from: "#device_name_provider", | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.device.manager.Administrator", | |
| "/svc/fuchsia.device.manager.BindDebugger", | |
| "/svc/fuchsia.device.manager.DebugDumper", | |
| "/svc/fuchsia.kernel.DebugBroker", | |
| "/svc/fuchsia.scheduler.ProfileProvider", | |
| "/svc/fuchsia.tracing.kernel.Controller", | |
| "/svc/fuchsia.tracing.kernel.Reader", | |
| "/svc/fuchsia.virtualconsole.SessionManager", | |
| ], | |
| from: "#driver_manager", | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.hardware.power.statecontrol.Admin", | |
| from: "#shutdown_shim", | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.hardware.pty.Device", | |
| from: "#ptysvc", | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.kernel.Counter", | |
| "/svc/fuchsia.paver.Paver", | |
| ], | |
| from: "#miscsvc", | |
| }, | |
| { | |
| protocol: "/svc/fuchsia.sysinfo.SysInfo", | |
| from: "#sysinfo", | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister", | |
| "/svc/fuchsia.thermal.Controller", | |
| ], | |
| from: "#power_manager", | |
| }, | |
| ], | |
| environments: [ | |
| { | |
| name: "fshost-env", | |
| extends: "realm", | |
| // 20 minutes | |
| __stop_timeout_ms: 1200000, | |
| }, | |
| { | |
| name: "ddk-env", | |
| extends: "realm", | |
| // 1 minute | |
| __stop_timeout_ms: 60000, | |
| }, | |
| ], | |
| } |