#!/bin/sh
# RUN-B: iicbus.ko + DF-5559 fix (read/write_ivar, no allocation) --
# the DF-5634 "silent write drop" baseline + the DF-5633 duplicate
# /dev/iicN demonstration (iic.ko can only attach with DF-5559's fix).
set -e
cd /root/df5632

echo "=== load df5559-fixed chain + real iic.ko ==="
kldload /usr/obj/root/df5632/mod_5559/s/iicbus/iicbus.ko
kldload /boot/kernel/iicbb.ko
kldload /usr/obj/root/df5632/build_reg/iicbb_reg.ko
kldload /usr/obj/root/df5632/build_rig/df5632_rig.ko
kldload /boot/kernel/iic.ko
sleep 1
echo "=== /dev/iic* before cycle ==="
ls -l /dev/iic*
echo "=== ivar round trip (write returns 0 but value DROPPED) ==="
./dfctl ivar
echo "=== cycle 1 (detach + re-attach of iicbus0) ==="
./dfctl cycle 1
echo "=== /dev/iic* after cycle: DUPLICATE nodes on one bus ==="
ls -l /dev/iic*
echo "=== cycle 2 more ==="
./dfctl cycle 2
ls -l /dev/iic*
./dfctl stat
echo "=== teardown ==="
kldunload iic
kldunload df5632_rig
kldunload iicbb_reg
kldunload iicbb
kldunload iicbus
sleep 1
echo RUN-B-DONE
