@ThierryEscande @bleader @olivierlambert Hope this helps if XenServer don't come to the party.
Given the new information about the I2C-DesignWare driver - I've disabled it on one of my SR635V3 systems, and I can read the DIMM temps now 
Lenovo ThinkSystem SR635 V3, BIOS KAE118M-4.11
USE AT YOUR OWN RISK - I have not tested this in production, or found out what else it might effect
However given the "workaround" provided by Lenovo for XenServer - it should be OK.
The driver is built into the kernel instead of a module, so had to be blacklisted slightly differently.
Found which driver to blacklist from kernel init.
fgrep i2c /boot/System.map-4.19.0+1 | grep init
ffffffff815172f0 T drm_i2c_encoder_init
ffffffff815574c0 T __regmap_init_i2c
ffffffff81557510 T __devm_regmap_init_i2c
ffffffff815d0700 t i2c_dw_init_master
ffffffff815d14f0 t i2c_dw_init_slave
ffffffff81ea9b40 r __ksymtab_drm_i2c_encoder_init
ffffffff81eb0570 r __ksymtab___devm_regmap_init_i2c
ffffffff81eb0838 r __ksymtab___regmap_init_i2c
ffffffff81edc1a9 r __kstrtab_drm_i2c_encoder_init
ffffffff81edffcd r __kstrtab___devm_regmap_init_i2c
ffffffff81edffe4 r __kstrtab___regmap_init_i2c
ffffffff8248156d t i2c_init
ffffffff82481b65 t dw_i2c_init_driver
ffffffff8255fe48 t __initcall_i2c_init2
ffffffff8255ffa8 t __initcall_dw_i2c_init_driver4
Guessed dw_i2c_init_driver as the most likely candidate
In /etc/grub-efi.cfg I added initcall_blacklist=dw_i2c_init_driver and ran grub-mkconfig then rebooted.
menuentry 'XCP-ng' {
search --label --set root root-ltcoyb
multiboot2 /boot/xen.gz watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=256M,below=4G console=vga vga=mode-0x0311 dom0_mem=16384M,max:16384M
module2 /boot/vmlinuz-4.19-xen root=LABEL=root-ltcoyb ro nolvm hpet=disable console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles initcall_blacklist=dw_i2c_init_driver
module2 /boot/initrd-4.19-xen.img
}
Restarted the BMC to be sure, and checked. Previously these reported 0 degrees C for populated DIMM slots.
ipmitool sdr | grep -i temp
Ambient Temp | 18 degrees C | ok
Exhaust Temp | 35 degrees C | ok
CPU 1 Temp | 31 degrees C | ok
DIMM 1 Temp | no reading | ns
DIMM 2 Temp | 27 degrees C | ok
DIMM 3 Temp | no reading | ns
DIMM 4 Temp | 29 degrees C | ok
DIMM 5 Temp | 30 degrees C | ok
DIMM 6 Temp | 29 degrees C | ok
DIMM 7 Temp | 29 degrees C | ok
DIMM 8 Temp | 29 degrees C | ok
DIMM 9 Temp | 29 degrees C | ok
DIMM 10 Temp | no reading | ns
DIMM 11 Temp | 27 degrees C | ok
DIMM 12 Temp | no reading | ns
Then check the fans rpm (previously 18000 front & 15000 rear)
ipmitool sdr | grep -i fan
Fan Mismatch | 0x00 | ok
Fan 1 Front Tach | 7168 RPM | ok
Fan 2 Front Tach | 7168 RPM | ok
Fan 3 Front Tach | 7168 RPM | ok
Fan 4 Front Tach | 7168 RPM | ok
Fan 5 Front Tach | 7168 RPM | ok
Fan 6 Front Tach | 7168 RPM | ok
Fan 7 Front Tach | 0 RPM | ok
Fan 1 Rear Tach | 6048 RPM | ok
Fan 2 Rear Tach | 5940 RPM | ok
Fan 3 Rear Tach | 6048 RPM | ok
Fan 4 Rear Tach | 5940 RPM | ok
Fan 5 Rear Tach | 5940 RPM | ok
Fan 6 Rear Tach | 5940 RPM | ok
Fan 7 Rear Tach | 0 RPM | ok
Sys Fan Pwr | 6 Watts | ok
