Hi, I would like to request the addition of the Integrated Circuit Systems 9LPRS355BKL, datasheet at link
This is for an HP Compaq 2710P, for which there is some interest at notebookreview.com (forum.notebookreview.com) though there are no solutions for linux, and hardware modding or bios flashing are the only currently working techniques. (The bios solutions are dated and not maintained, whilst the hardware mod descriptions are confused and provide no photographs).
I have looked at some of the other PLL data files available for lfsb, with a view to attempting to write on myself, but other than a list of basic clock multipliers I can't tell what data is required from the datasheet or how to assemble it.
Thanks for any work or advice you can provide.
Contact me per email. I'll need i2cdump data to start.
What's with the TME lock? That's the big problem.
Apologies, I thought the 2510p group had disabled TME lock for this chip in software but it turns out a hardware mod is needed for both. Will email if I have any luck with the TME lock.
There is a workaround for TME with swaping clock source PLL1 to PLL3.
It's worth to try before doing hw mod.
I don't seem to have an email address to contact you on. Thanks for spotting the non-hardware mod. I am now having problems enabling the SMBus. I2C is enabled, but SMBus does not show as a device.
i2cdetect -l gives:
i2c-0 unknown i915 gmbus disabled N/A
i2c-1 unknown i915 gmbus ssc N/A
i2c-2 unknown i915 GPIOB N/A
i2c-3 unknown i915 gmbus vga N/A
i2c-4 unknown i915 GPIOA N/A
i2c-5 unknown i915 gmbus panel N/A
i2c-6 unknown i915 GPIOC N/A
i2c-7 unknown i915 gmbus dpc N/A
i2c-8 unknown i915 GPIOD N/A
i2c-9 unknown i915 gmbus dpb N/A
i2c-10 unknown i915 GPIOE N/A
i2c-11 unknown i915 gmbus reserved N/A
i2c-12 unknown i915 gmbus dpd N/A
i2c-13 unknown i915 GPIOF N/A
I have tried the boot options:
clocksource=acpi_pm
acpi_enforce_resources=lax
clocksource=hpet (separately from acpi_pm)
but with no effect. I have read that SMBus should appear as i2c-14. I assume it is disabled in the Function Disable register, as described in post #4
Unfortunately, I need to work out its address relative to the Root Complex Base Address, and when I query this by "setpci -s 0:1f.0 f0.l" (used for the 2510p with the same chip) the result is 'ffffffff'. Do you have any ideas on retrieving the true value?
On a side note, post #10 and others mention modifications to lsfb for ICS9LPRS355 not found on either of the project's pages which may be interesting if you haven't already seen them.
Email is in the sources.
I'll investigate how to unhide smbus.
I found some ICS9LPRS355 code with static register values. I'll write N/M calculation. But that is not that important if static code works.
Can't help to unhide smbus without the hardware to hack with.
Tried the unhide_ICH_SMBus script from lm-sensors?
I had tried the lm-sensors script but it only works with ICH 4 and older.
I was successful unhiding the SMBus, it had to be enabled in the function-disable register. Not sure why the setpci command was wrong but I was able to use BAR-edit to find the actual RCBA, 0xfed90001. Also needed to modprobe i2c-i801. Presently, a grub commandline "write_dword 0xfed93418 033c0005" is needed, but I may try to get a kernel patch submitted.
I'm now trying to use the modified code (post #10 linked above) but it always tries to access i2c-0 rather than i2c-14, and I get the error
"Can't change frequency, SetFSB error: Cannot allocate memory"
I just can't figure out where this is specified.
i2cdump (if still wanted) is:
Last edit: Sasyn 2013-02-26
Ok.
Will write the pll code with the TME workaround.
And add option to lfsb executable to force i2c-dev index.
I can't guess the formula for the frequency.
Should be like this: Frequency = 24 x Ndiv(9:0)/Mdiv(5:0)
Can you try the static code? I'll try to calculate formula using its table data.
i2c device forcing code is in git repo.
lfsb.c:(.text+0x48): undefined reference to `clock_gettime'
-lrt needs to be added to line 18 of /src/makefile after the project files.
Seems to be a problem with devname, i2c.c, line 35
Last edit: Sasyn 2013-02-27
Please try code in git repo. I have added TME workaround and fsb set functions.
First try to get FSB only: lfsb -d 14 ics9lprs355
If it's calculated right, then try to change it. The N/M formula is just a guess.
Still the same as my last reply, same crash, still needs -lrt in makefile.
Last edit: Sasyn 2013-02-27
Send executable to my email.
Try make it with make debug maybe there will be more information.
sudo lfsb -d 14 ics9lprs355
CPU governor 'performance' set.
debug output:
will send executable.
I'm stupid. Midnight coding kills brain.
Wrong buff size.
Checkout repo.
EDIT: it no longer crashes, but reports the TME is locked and doesn't manage to change the FSB.
Terminal out (CPU governor messages omitted)
Last edit: Sasyn 2013-02-27
That's strange. :)
Does makefile has this line 'LIBS=-lm -lrt' ?
yes, but I believe it doesn't work because it is stated before the project files.
http://stackoverflow.com/questions/2418157/ubuntu-linux-c-error-undefined-reference-to-clock-gettime-and-clock-settim
Ok. Moved to end of line.
Looking at the debug info it seems all bytes are written when tme-fix is run, but bytes 17 and 18 revert to old data before the FSB is set. This seems to cause bytes 13 and 14 to revert too.
The order seems to match this article on the same procedure, so I'm not sure what is wrong. The i2c dump on that page before starting only seems to have trivial differences in bytes 3, 6 and 12.
I tried setting bytes 17 and 18 at the same time as 13 and 14 but with no effect.
Last edit: Sasyn 2013-02-28
It seems that TME workaround does not work.