Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zephyr-rose

The guest half of the RoSE HW/SW co-simulation bridge, packaged as a standalone Zephyr module.

It provides the on-SoC (guest) side of the RoSE lockstep bridge:

  • drivers/rose/rose_adapter, the MMIO bridge transport to the RoSE synchronizer.
  • drivers/sensor/ — virtual Zephyr sensor_driver_api shims backed by the bridge (rose_imu, rose_tof, rose_tof_zone, rose_flow) — co-sim sensor models, not real hardware drivers.
  • subsys/rose/ — the rose_proto packet layer.
  • include/rose/ — the guest API (rose.h, rose_proto.h, rose_sensor.h).
  • dts/bindings/ — the ucbbar,rose-* devicetree bindings the samples bind against.
  • samples/ — low-level bridge validators (rxvalidate, protovalidate, dmavalidate).

The host half of the protocol (the Spike bridge in soc/src/main/cc/rose_spike, the synchronizer, and the generated rose_packet.h) lives in the RoSE repo. Host and guest are versioned against the same generated packet header, so keep them in sync when the wire protocol changes.

Using it in a west workspace

Add zephyr-rose as a project in your application's west manifest and Zephyr discovers it automatically (no ZEPHYR_EXTRA_MODULES):

manifest:
  remotes:
    - name: ucb-bar
      url-base: https://github.com/ucb-bar
  projects:
    - name: zephyr-rose
      remote: ucb-bar
      revision: main
      path: modules/lib/zephyr-rose

Then west update, and west build -b spike_riscv64 <app> picks up the ucbbar,rose-* bindings, drivers, and subsystems. Applications that consume it (rose_flight_controller, rose_nav_controller, rose_multisensor_probe, …) live alongside it in the consuming workspace.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages