Hey everyone,
I’m working on a project using a Tofino-based switch (UfiSpace S9180-32X) and the Intel P4 SDE (version 9.13.1). I’m building a simple IDS (Intrusion Detection System) as part of a summer Project, and so far, I’ve made decent progress but I could use some advice.
Setup Details:
- Switch: UfiSpace S9180-32X
- SDE: bf-sde-9.13.1 (with full pkgsrc + BSP)
- Kernel: Ubuntu 20.04 running
5.4.0-216-generic
- Controller: Custom Python-based controller using
p4runtime
and gRPC - Pipeline Format:
basic.p4
compiled to.p4info.bin
andtofino.bin
- Development environment: WSL2 (Ubuntu) on the host, controller runs locally
What I’ve Done So Far:
- Compiled and pushed P4 pipeline using
p4c-barefoot
- Wrote and tested a custom Python controller (based on the P4Runtime API)
- Recompiled
bf_kdrv.ko
manually for my current kernel (since the default was built for 5.4.0-192) - Got
/dev/bf0
created andbf_switchd
starting bfshell
runs and gRPC server starts on0.0.0.0:50052
- Fixed SSH + networking between the PC and the switch
- Installed the BSP and loaded
eeprom_mb
andoptoe
modules - Ran the provided
i2c_utils_std.sh i2c_init
— I2C appears active - Tried binding
24c64
manually to devices oni2c-50
, but still no/sys/bus/i2c/.../eeprom
What’s Blocking Me:
Even though the switch starts up and the pipeline compiles fine, bf_switchd
exits unless I skip platform detection. The i2c_cpu_eeprom_get
script shows “EEPROM not detected”, and I don’t see any valid eeprom devices under /sys/bus/i2c/devices/
.
I know I can just disable the platform check with platform-check-disable=1
, and I plan to — since the IDS doesn’t really need fan/LED/BMC access — but I’m still curious:
- Has anyone successfully enabled platform detection on this board?
- Is there a more reliable way to scan/detect the EEPROM (e.g. alternate bus/channel)?
- Am I overthinking this and should just move on with platform check disabled?
Appreciate any advice or just hearing from others who’ve worked on similar setups!
Thanks in advance