| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(devmon): 支持devmon自发现从升级分区加载部件驱动 | 1 个月前 | |
feat(zephyr): 新增 Zephyr 模块适配层,devmon 服务以 SYS_INIT 常驻并静态挂载产品 SR 将 devmon 作为 Zephyr module 引入构建体系(libs/common + libs/devmon 单服务架构,DEVMON_ENABLE_UNIDEV=0)。对 Linux 侧严格零打扰:meson 构建不引用 zephyr/ 目录,全部新增源/构建胶水都放在 zephyr/ 下;存量 源文件改动全部在 __ZEPHYR__ 条件编译内——以“__ZEPHYR__ 未定义”视角 对 6 个被改文件做条件编译求值,与 origin/main 逐字节一致: - zephyr/module.yml、CMakeLists.txt、Kconfig:Zephyr 模块胶水,编译 libs/common + libs/devmon 全部 TU;不编 src/main.cpp(应用侧已有 main)、topology_discovery.cpp(udev/Linux-only)、hwdiscovery/ hwproxy(三层架构 Linux-only) - zephyr/devmon_sys_init.cpp(新增,Zephyr 专属 TU):产品化 SYS_INIT(devmon_init, APPLICATION, 60) 常驻入口——静态注册 DevmonBase/I2c/Chip/Scanner/AdcChip/Continue/Average 驱动表,创建并 启动 devmon_service(mc::app::service 无 context 时 D-Bus 通路自动 短路),产品 schema 按上游 app_paths 目录约定(/opt/bmc/sr/apps/ devmon/mds/schema.json)由 on_configure 内建的 app_schema::init 自动 加载,最小 SR 读取后经 AddDeviceWithData 数据入口挂载设备(文件 IO 含 Zephyr fs 兜底读,root_interface 无需感知);bring-up 在 pthread 上跑(newlib C++ EH 依赖 pthread 上下文),pthread_attr_destroy 在 join 之后(Zephyr 上先 destroy 会释放运行中线程栈,EBUSY + 每次泄漏 128KB) - libs/devmon/src/devmon.cpp:仅 topology_discovery 三处引用叠加 !defined(__ZEPHYR__)(Zephyr 常驻形态无 udev 拓扑发现) - libs/common/src/device_driver.cpp:dlfcn 动态加载路径(load_file/ unload/register_driver)在 __ZEPHYR__ 下改为显式报错/短路——Zephyr 镜像静态链接、无动态加载器,驱动一律 SYS_INIT 期静态注册 - libs/common/{include/devmon-common/csr_types.h,src/csr_types.cpp, src/device/csr.cpp}:__ZEPHYR__ 下 unit 增加 Alias 字段,Compatible 全部未命中时按 Unit.Type / Alias(或 Unit.Name 前缀)回退解析驱动, 适配静态驱动表按类名注册的形态 - libs/common/src/csr_parser.cpp:group_id 表静态 std::mutex 在 __ZEPHYR__ 下省略(bring-up 单线程,节约 pthread mutex 静态池) | 2 个月前 | |
fix: 支持自动上树前判断是否通过defer_registration接口取消注册 Co-Authored-By: deepseek-v4-flash | 1 个月前 | |
feat(zephyr): 新增 Zephyr 模块适配层,devmon 服务以 SYS_INIT 常驻并静态挂载产品 SR 将 devmon 作为 Zephyr module 引入构建体系(libs/common + libs/devmon 单服务架构,DEVMON_ENABLE_UNIDEV=0)。对 Linux 侧严格零打扰:meson 构建不引用 zephyr/ 目录,全部新增源/构建胶水都放在 zephyr/ 下;存量 源文件改动全部在 __ZEPHYR__ 条件编译内——以“__ZEPHYR__ 未定义”视角 对 6 个被改文件做条件编译求值,与 origin/main 逐字节一致: - zephyr/module.yml、CMakeLists.txt、Kconfig:Zephyr 模块胶水,编译 libs/common + libs/devmon 全部 TU;不编 src/main.cpp(应用侧已有 main)、topology_discovery.cpp(udev/Linux-only)、hwdiscovery/ hwproxy(三层架构 Linux-only) - zephyr/devmon_sys_init.cpp(新增,Zephyr 专属 TU):产品化 SYS_INIT(devmon_init, APPLICATION, 60) 常驻入口——静态注册 DevmonBase/I2c/Chip/Scanner/AdcChip/Continue/Average 驱动表,创建并 启动 devmon_service(mc::app::service 无 context 时 D-Bus 通路自动 短路),产品 schema 按上游 app_paths 目录约定(/opt/bmc/sr/apps/ devmon/mds/schema.json)由 on_configure 内建的 app_schema::init 自动 加载,最小 SR 读取后经 AddDeviceWithData 数据入口挂载设备(文件 IO 含 Zephyr fs 兜底读,root_interface 无需感知);bring-up 在 pthread 上跑(newlib C++ EH 依赖 pthread 上下文),pthread_attr_destroy 在 join 之后(Zephyr 上先 destroy 会释放运行中线程栈,EBUSY + 每次泄漏 128KB) - libs/devmon/src/devmon.cpp:仅 topology_discovery 三处引用叠加 !defined(__ZEPHYR__)(Zephyr 常驻形态无 udev 拓扑发现) - libs/common/src/device_driver.cpp:dlfcn 动态加载路径(load_file/ unload/register_driver)在 __ZEPHYR__ 下改为显式报错/短路——Zephyr 镜像静态链接、无动态加载器,驱动一律 SYS_INIT 期静态注册 - libs/common/{include/devmon-common/csr_types.h,src/csr_types.cpp, src/device/csr.cpp}:__ZEPHYR__ 下 unit 增加 Alias 字段,Compatible 全部未命中时按 Unit.Type / Alias(或 Unit.Name 前缀)回退解析驱动, 适配静态驱动表按类名注册的形态 - libs/common/src/csr_parser.cpp:group_id 表静态 std::mutex 在 __ZEPHYR__ 下省略(bring-up 单线程,节约 pthread mutex 静态池) | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 |