⬢ DragonFlyBSD Kernel Audit
DF-4965 / run.2.log
← back to finding ↓ download raw
== DF-4965: dce110 offset_to_id DDC-family branches ==
T[DDC1    ] offset_to_id(0x4869, 0x100) = true en=0 id=-1591942955(?) <== id UNWRITTEN
T[DDC2    ] offset_to_id(0x486d, 0x100) = true en=1 id=-1591942955(?) <== id UNWRITTEN
T[DDC3    ] offset_to_id(0x4871, 0x100) = true en=2 id=-1591942955(?) <== id UNWRITTEN
T[DDC4    ] offset_to_id(0x4875, 0x100) = true en=3 id=-1591942955(?) <== id UNWRITTEN
T[DDC5    ] offset_to_id(0x4879, 0x100) = true en=4 id=-1591942955(?) <== id UNWRITTEN
T[DDC6    ] offset_to_id(0x487d, 0x100) = true en=5 id=-1591942955(?) <== id UNWRITTEN
T[DDCVGA  ] offset_to_id(0x4881, 0x100) = true en=6 id=-1591942955(?) <== id UNWRITTEN
T[I2CPAD  ] offset_to_id(0x4899, 0x1) = true en=7 id=-1591942955(?) <== id UNWRITTEN

== controls (id IS written / rejected) ==
T[GENERIC ] offset_to_id(0x4861, 0x1) = true en=0 id=2(GENERIC(2)) 
T[HPD     ] offset_to_id(0x488d, 0x1) = true en=0 id=3(HPD(3)) 
T[SYNCA   ] offset_to_id(0x4885, 0x1) = true en=0 id=6(SYNC(6)) 
T[PWRSEQ  ] offset_to_id(0x4891, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN
T[DEBUG   ] offset_to_id(0x4804, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN
T[PADSTR1 ] offset_to_id(0x4894, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN
T[BOGUS   ] offset_to_id(0x4fff, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN
T[GPIOPAD ] offset_to_id(0x0183, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN

== consumer chain (dal_gpio_service_create_irq, gpio_service.c:148) ==
   id uninitialized; if garbage == GPIO_ID_HPD(3):
   dal_gpio_create_irq(HPD, en) -> dal_gpio_service_open(HPD, en)
   -> define_hpd_registers(pin, en) -> &hpd_regs[en]
   hpd_regs[] has 6 entries (hw_factory_dce110.c:57-64); en=6
   (DDC_VGA) and en=7 (I2C_PAD) index 1 and 2 entries OOB ->
   garbage int_status/toggle_filt_cntl descriptors drive MMIO
   (hw_hpd.c REG_GET/REG_UPDATE).

== DF-4966: I2C pad SDA wrong-bit ==
id_to_offset(DDC_DATA, I2C_PAD)   = true offset=0x4899 mask=0x100
  real DC_GPIO_I2CPAD_A fields: SCL=0x1 SDA=0x2  -> mask 0x100 WRONG: bit 8 does not exist in DC_GPIO_I2CPAD_A (SDA is bit 1)
id_to_offset(DDC_CLOCK, I2C_PAD)  = true offset=0x4899 mask=0x1 (==SCL, correct by coincidence)
id_to_offset(DDC_DATA, DDC1)      = true offset=0x4869 mask=0x100 (==DDC1DATA, shared mask correct for real DDC lines)
id_to_offset(GPIO_PAD, 5)         = false (no GPIO_PAD branch: no DF-4944 twin)
EXIT=0