[GH-ISSUE #1034] All the values in ec-probe are hexdumps are 00 and there is no output for the ec-probe monitor command #890

Closed
opened 2026-02-26 00:33:51 +03:00 by kerem · 32 comments
Owner

Originally created by @skinatro on GitHub (Dec 15, 2020).
Original GitHub issue: https://github.com/hirschmann/nbfc/issues/1034

I am unsure if this is a bug or not so sorry in advance. I am trying to create a config for the laptop asus tuf fx505dy but I am facing this issue and I am not sure how do I solve it.

Bug Description
All the values in the ec-probe.exe dump ouput are as 00 and when I am trying to monitor the ec , I am not getting any output, the only output is the output in the image below
Screenshot 2020-12-16 000148

To Reproduce
Use the ec-probe.exe dump and ec-probe.exe monitor command

Expected behavior
Give proper output like it is shown in the wiki page chapter - EC probing tool

System information

  • Windows 10 2004
  • latest release 1.6.3
  • log files

NbfcServiceLog.2020-12-06.txt

Additional Information
dump.txt

this is the dump file

Originally created by @skinatro on GitHub (Dec 15, 2020). Original GitHub issue: https://github.com/hirschmann/nbfc/issues/1034 I am unsure if this is a bug or not so sorry in advance. I am trying to create a config for the laptop _asus tuf fx505dy_ but I am facing this issue and I am not sure how do I solve it. **Bug Description** All the values in the `ec-probe.exe dump ` ouput are as 00 and when I am trying to monitor the ec , I am not getting any output, the only output is the output in the image below ![Screenshot 2020-12-16 000148](https://user-images.githubusercontent.com/60423203/102256982-1fd68800-3f32-11eb-8185-76890c2ca759.png) **To Reproduce** Use the `ec-probe.exe dump` and `ec-probe.exe monitor` command **Expected behavior** Give proper output like it is shown in the wiki page chapter - _EC probing tool_ **System information** - Windows 10 2004 - latest release 1.6.3 - log files [NbfcServiceLog.2020-12-06.txt](https://github.com/hirschmann/nbfc/files/5697836/NbfcServiceLog.2020-12-06.txt) **Additional Information** [dump.txt](https://github.com/hirschmann/nbfc/files/5697864/dump.txt) this is the dump file
kerem 2026-02-26 00:33:51 +03:00
  • closed this issue
  • added the
    Stale
    label
Author
Owner

@Andrei-k0v commented on GitHub (Dec 15, 2020):

I have the same problem. Asus F509FB. Windows 10 20H2.

<!-- gh-comment-id:745604854 --> @Andrei-k0v commented on GitHub (Dec 15, 2020): I have the same problem. Asus F509FB. Windows 10 20H2.
Author
Owner

@tomprost commented on GitHub (Dec 15, 2020):

Am Dienstag, den 15.12.2020, 10:40 -0800 schrieb skinatro:

I am unsure if this is a bug or not so sorry in advance. I am trying to create a config for the laptop asus tuf fx505dy but I am facing this issue and I am not sure how do I solve it.
Bug Description

All the values in the ec-probe.exe dump ouput are as 00 and when I am trying to monitor the ec , I am not getting any output, the only output is the output in the image below

To Reproduce

Use the ec-probe.exe dump and ec-probe.exe monitor command
Expected behavior

Give proper output like it is shown in the wiki page chapter - EC probing tool
System information

Windows 10 2004
latest release 1.6.3
log files

NbfcServiceLog.2020-12-06.txt


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

For me the following from dump:

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00 0A 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30 00 00 00 00 00 F7 F7 F7 F7 F7 F7 F7 F7 00 69 22
40 00 00 00 00 69 69 00 00 00 00 00 00 00 00 00 00
50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60 00 80 16 21 4E 53 32 50 33 53 5A 4F 52 4C 57 52
70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80 00 00 00 00 0C 00 00 00 01 01 03 00 80 00 00 00
90 00 00 28 1B 01 10 00 00 00 0A 02 00 27 00 61 68
A0 04 00 01 07 64 00 09 00 34 04 34 04 A0 0F 5C 2B
B0 00 00 00 00 00 00 02 00 00 B1 08 00 00 00 00 FF
C0 30 5A 62 00 00 00 00 80 FF 03 00 31 00 00 00 00
D0 00 00 00 00 00 00 01 00 00 08 00 20 00 00 00 04
E0 00 00 44 01 44 00 00 00 00 00 80 40 00 00 00 E7
F0 E4 E4 00 00 00 02 0E 02 00 00 00 C8 00 00 10 EC

But I have no idea what to do with it. What more information do you
need to give me a little push in the right direction?

Best,
Thomas

<!-- gh-comment-id:745616074 --> @tomprost commented on GitHub (Dec 15, 2020): Am Dienstag, den 15.12.2020, 10:40 -0800 schrieb skinatro: > > I am unsure if this is a bug or not so sorry in advance. I am trying to create a config for the laptop asus tuf fx505dy but I am facing this issue and I am not sure how do I solve it. > Bug Description > > All the values in the ec-probe.exe dump ouput are as 00 and when I am trying to monitor the ec , I am not getting any output, the only output is the output in the image below > > > To Reproduce > > Use the ec-probe.exe dump and ec-probe.exe monitor command > Expected behavior > > Give proper output like it is shown in the wiki page chapter - EC probing tool > System information > > Windows 10 2004 > latest release 1.6.3 > log files > > NbfcServiceLog.2020-12-06.txt > > — > You are receiving this because you are subscribed to this thread. > Reply to this email directly, view it on GitHub, or unsubscribe. > For me the following from dump: | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ---|------------------------------------------------ 00 | 0A 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 10 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 | 00 00 00 00 00 F7 F7 F7 F7 F7 F7 F7 F7 00 69 22 40 | 00 00 00 00 69 69 00 00 00 00 00 00 00 00 00 00 50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 | 00 80 16 21 4E 53 32 50 33 53 5A 4F 52 4C 57 52 70 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 | 00 00 00 00 0C 00 00 00 01 01 03 00 80 00 00 00 90 | 00 00 28 1B 01 10 00 00 00 0A 02 00 27 00 61 68 A0 | 04 00 01 07 64 00 09 00 34 04 34 04 A0 0F 5C 2B B0 | 00 00 00 00 00 00 02 00 00 B1 08 00 00 00 00 FF C0 | 30 5A 62 00 00 00 00 80 FF 03 00 31 00 00 00 00 D0 | 00 00 00 00 00 00 01 00 00 08 00 20 00 00 00 04 E0 | 00 00 44 01 44 00 00 00 00 00 80 40 00 00 00 E7 F0 | E4 E4 00 00 00 02 0E 02 00 00 00 C8 00 00 10 EC But I have no idea what to do with it. What more information do you need to give me a little push in the right direction? Best, Thomas
Author
Owner

@skinatro commented on GitHub (Dec 16, 2020):

@tomprost do you have a fx505dy, ?

With that dump you can monitor the values under load and then you can probe the values which you think are the values for the fan, if your successfully probe the correct addresses then the fans will start running.
check this page out
[(https://github.com/hirschmann/nbfc/wiki/Probe-the-EC%27s-registers)]

<!-- gh-comment-id:746509040 --> @skinatro commented on GitHub (Dec 16, 2020): @tomprost do you have a fx505dy, ? With that dump you can monitor the values under load and then you can probe the values which you think are the values for the fan, if your successfully probe the correct addresses then the fans will start running. check this page out [(https://github.com/hirschmann/nbfc/wiki/Probe-the-EC%27s-registers)]
Author
Owner

@tomprost commented on GitHub (Dec 16, 2020):

Am Mittwoch, den 16.12.2020, 07:47 -0800 schrieb skinatro:

@tomprost do you have a fx505dy, ?
unfortunately not, mine is a Toshiba ... but ..
With that dump you can monitor the values under load and then you can
I don't have any idea of probe ;-(
probe the values which you think are the values for the fan, if your successfully probe the correct addresses then the fans will start running.

check this page out


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

<!-- gh-comment-id:746999724 --> @tomprost commented on GitHub (Dec 16, 2020): Am Mittwoch, den 16.12.2020, 07:47 -0800 schrieb skinatro: > @tomprost do you have a fx505dy, ? unfortunately not, mine is a Toshiba ... but .. > With that dump you can monitor the values under load and then you can I don't have any idea of probe ;-( > probe the values which you think are the values for the fan, if your successfully probe the correct addresses then the fans will start running. > > check this page out > > > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub, or unsubscribe.
Author
Owner

@tomprost commented on GitHub (Dec 17, 2020):

Am Mittwoch, den 16.12.2020, 07:47 -0800 schrieb skinatro:

@tomprost do you have a fx505dy, ?
With that dump you can monitor the values under load and then you can probe the values which you think are the values for the fan, if your successfully probe the correct addresses then the fans will start running.

check this page out


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
I thought of some registers - but they change to values that cannot be temperature values ???
What page, please ?

<!-- gh-comment-id:747728424 --> @tomprost commented on GitHub (Dec 17, 2020): Am Mittwoch, den 16.12.2020, 07:47 -0800 schrieb skinatro: > @tomprost do you have a fx505dy, ? > With that dump you can monitor the values under load and then you can probe the values which you think are the values for the fan, if your successfully probe the correct addresses then the fans will start running. > > check this page out > > > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub, or unsubscribe. I thought of some registers - but they change to values that cannot be temperature values ??? What page, please ?
Author
Owner

@skinatro commented on GitHub (Dec 17, 2020):

@tomprost this page i guess
https://github.com/hirschmann/nbfc/wiki/Probe-the-EC%27s-registers

sorry I cant help you more regarding which registers and how to do stuff because it wont work on mine machine

<!-- gh-comment-id:747733422 --> @skinatro commented on GitHub (Dec 17, 2020): @tomprost this page i guess https://github.com/hirschmann/nbfc/wiki/Probe-the-EC%27s-registers sorry I cant help you more regarding which registers and how to do stuff because it wont work on mine machine
Author
Owner

@tomprost commented on GitHub (Dec 17, 2020):

Am Donnerstag, den 17.12.2020, 14:12 -0800 schrieb skinatro:

@tomprost this page i guess

https://github.com/hirschmann/nbfc/wiki/Probe-the-EC%27s-registers
sorry I cant help you more regarding which registers and how to do stuff because it wont work on mine machine


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hope, some others are reading this post, too.
Maybee, someone has an idea ... :-)

<!-- gh-comment-id:747734463 --> @tomprost commented on GitHub (Dec 17, 2020): Am Donnerstag, den 17.12.2020, 14:12 -0800 schrieb skinatro: > > @tomprost this page i guess > > https://github.com/hirschmann/nbfc/wiki/Probe-the-EC%27s-registers > sorry I cant help you more regarding which registers and how to do stuff because it wont work on mine machine > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub, or unsubscribe. > Hope, some others are reading this post, too. Maybee, someone has an idea ... :-)
Author
Owner

@skinatro commented on GitHub (Dec 18, 2020):

@agastyashr No I dont, I created this issue because I came across the issue , while trying to create the config the laptop. I think the ec-probe tool wont work on this laptop, so I think I will need to physically try to open the laptop and try to search for EC chip

<!-- gh-comment-id:748228412 --> @skinatro commented on GitHub (Dec 18, 2020): @agastyashr No I dont, I created this issue because I came across the issue , while trying to create the config the laptop. I think the ec-probe tool wont work on this laptop, so I think I will need to physically try to open the laptop and try to search for EC chip
Author
Owner

@skinatro commented on GitHub (Dec 19, 2020):

@agastyashr I looked at what you sent, also I also , I was checking some other repos and one of the repo states that - It turns out that AMD has there own embedded controller which controls the thermal and fan thing call System Management Unit (SMU). Because of this, the ACPI based solution won't work on AMD machine.

this is one I am referring to ---> https://github.com/dominiksalvet/asus-fan-control/issues/56

So I dont think I can create the config, and its a dead end for our model.

If you use linux, you can try this
https://github.com/leonmaxx/asus_fanmode
https://github.com/hackbnw/faustus

<!-- gh-comment-id:748498978 --> @skinatro commented on GitHub (Dec 19, 2020): @agastyashr I looked at what you sent, also I also , I was checking some other repos and one of the repo states that - _It turns out that AMD has there own embedded controller which controls the thermal and fan thing call System Management Unit (SMU). Because of this, the ACPI based solution won't work on AMD machine._ this is one I am referring to ---> https://github.com/dominiksalvet/asus-fan-control/issues/56 So I dont think I can create the config, and its a dead end for our model. If you use linux, you can try this https://github.com/leonmaxx/asus_fanmode https://github.com/hackbnw/faustus
Author
Owner

@Falcosc commented on GitHub (Mar 25, 2021):

It turns out that AMD has there own embedded controller which controls the thermal and fan thing call System Management > Unit (SMU). Because of this, the ACPI based solution won't work on AMD machine.

Originally posted by @ThomasThongCE in https://github.com/dominiksalvet/asus-fan-control/issues/56#issuecomment-677057414

I am not sure about this, because latest Lenovo AMD devices work fine, even with Rainor and its new STTv2

I have full access to the EC, and fan controll is as usual for current Lenovo devices at register 47

At first I thought asus-fan-control controll does not use the same way to talk to EC like nbfc does and just need to adapt the nbfc solution. Then I found this issue here where Asus TUF don't have EC access at all.
I only want to tell you that this is not an AMD related issue. Lenovo devices do have EC access even on AMD plattform.

<!-- gh-comment-id:806438645 --> @Falcosc commented on GitHub (Mar 25, 2021): > It turns out that AMD has there own embedded controller which controls the thermal and fan thing call System Management > Unit (SMU). Because of this, the ACPI based solution won't work on AMD machine. _Originally posted by @ThomasThongCE in https://github.com/dominiksalvet/asus-fan-control/issues/56#issuecomment-677057414_ I am not sure about this, because latest Lenovo AMD devices work fine, even with Rainor and its new STTv2 I have full access to the EC, and fan controll is as usual for current Lenovo devices at register 47 At first I thought asus-fan-control controll does not use the same way to talk to EC like nbfc does and just need to adapt the nbfc solution. Then I found this issue here where Asus TUF don't have EC access at all. I only want to tell you that this is not an AMD related issue. Lenovo devices do have EC access even on AMD plattform.
Author
Owner

@stnufc commented on GitHub (Apr 5, 2021):

Asus TUF don't have EC access at all

. So no solution and its Asus problem, not AMD? Damn..

Its not even possible to change turboboost fans speed? It's for some reason 5500-5600 rpm, but I want full - 6300 or more...

<!-- gh-comment-id:813686605 --> @stnufc commented on GitHub (Apr 5, 2021): > Asus TUF don't have EC access at all . So no solution and its Asus problem, not AMD? Damn.. Its not even possible to change turboboost fans speed? It's for some reason 5500-5600 rpm, but I want full - 6300 or more...
Author
Owner

@skinatro commented on GitHub (Apr 30, 2021):

It turns out that AMD has there own embedded controller which controls the thermal and fan thing call System Management > Unit (SMU). Because of this, the ACPI based solution won't work on AMD machine.

Originally posted by @ThomasThongCE in https://github.com/dominiksalvet/asus-fan-control/issues/56#issuecomment-677057414

I am not sure about this, because latest Lenovo AMD devices work fine, even with Rainor and its new STTv2

I have full access to the EC, and fan controll is as usual for current Lenovo devices at register 47

At first I thought asus-fan-control controll does not use the same way to talk to EC like nbfc does and just need to adapt the nbfc solution. Then I found this issue here where Asus TUF don't have EC access at all.
I only want to tell you that this is not an AMD related issue. Lenovo devices do have EC access even on AMD platform.

Oh thanks for clearing the confusion but if it doesnt has EC access then how the asus proprietary app and bios display the fan speed and control fan modes?

<!-- gh-comment-id:830130967 --> @skinatro commented on GitHub (Apr 30, 2021): > > It turns out that AMD has there own embedded controller which controls the thermal and fan thing call System Management > Unit (SMU). Because of this, the ACPI based solution won't work on AMD machine. > > _Originally posted by @ThomasThongCE in https://github.com/dominiksalvet/asus-fan-control/issues/56#issuecomment-677057414_ > > I am not sure about this, because latest Lenovo AMD devices work fine, even with Rainor and its new STTv2 > > I have full access to the EC, and fan controll is as usual for current Lenovo devices at register 47 > > At first I thought asus-fan-control controll does not use the same way to talk to EC like nbfc does and just need to adapt the nbfc solution. Then I found this issue here where Asus TUF don't have EC access at all. > I only want to tell you that this is not an AMD related issue. Lenovo devices do have EC access even on AMD platform. Oh thanks for clearing the confusion but if it doesnt has EC access then how the asus proprietary app and bios display the fan speed and control fan modes?
Author
Owner

@Falcosc commented on GitHub (Apr 30, 2021):

AMD provides fan control over SMU. I don't know if you can skip integrating EC access with this new feature.

<!-- gh-comment-id:830133150 --> @Falcosc commented on GitHub (Apr 30, 2021): AMD provides fan control over SMU. I don't know if you can skip integrating EC access with this new feature.
Author
Owner

@skinatro commented on GitHub (Apr 30, 2021):

AMD provides fan control over SMU. I don't know if you can skip integrating EC access with this new feature.

Oh thanks a lot

<!-- gh-comment-id:830160917 --> @skinatro commented on GitHub (Apr 30, 2021): > AMD provides fan control over SMU. I don't know if you can skip integrating EC access with this new feature. Oh thanks a lot
Author
Owner

@Mis012 commented on GitHub (Jul 28, 2021):

well... since I came across this, I can chime in: while this APU's FCH does seem to support fan control, the ACPI tables suggest that the functionality is not used on FX505DY, while there are plenty of fan references around the EC stuff...

As for the vinafix post, I wouldn't rule out that the user was asking for (some?) it8225e fw, rather than stating that it8225e is the IC used. The capsule file mentions it8226e instead, so at this point the best course of action would be to just read what is printed on the chip. Sadly the chip is on the less convenient side of the motherboard, I've found some photos but they are all too low res / blurry.

<!-- gh-comment-id:888490162 --> @Mis012 commented on GitHub (Jul 28, 2021): well... since I came across this, I can chime in: while this APU's FCH does seem to support fan control, the ACPI tables suggest that the functionality is not used on FX505DY, while there are plenty of fan references around the EC stuff... As for the vinafix post, I wouldn't rule out that the user was *asking* for (some?) it8225e fw, rather than stating that it8225e is the IC used. The capsule file mentions it8226e instead, so at this point the best course of action would be to just read what is printed on the chip. Sadly the chip is on the less convenient side of the motherboard, I've found some photos but they are all too low res / blurry.
Author
Owner

@Mis012 commented on GitHub (Jul 28, 2021):

8225 would definitely be preferable since at least you can get the datasheet if you pay for it, compared to 8226

on the other hand, something entirely different that has a datasheet available for free would be even nicer :P

btw, schematics would also have the IC name if someone has those...

<!-- gh-comment-id:888494108 --> @Mis012 commented on GitHub (Jul 28, 2021): 8225 would definitely be preferable since at least you can get the datasheet if you *pay* for it, compared to 8226 on the other hand, something entirely different that has a datasheet available for free would be even nicer :P btw, schematics would also have the IC name if someone has those...
Author
Owner

@skinatro commented on GitHub (Aug 5, 2021):

@Mis012 but even if you pay for the datasheet, i think the laptop skips the functionality entirely , then how can it be used?

<!-- gh-comment-id:893765383 --> @skinatro commented on GitHub (Aug 5, 2021): @Mis012 but even if you pay for the datasheet, i think the laptop skips the functionality entirely , then how can it be used?
Author
Owner

@Mis012 commented on GitHub (Aug 9, 2021):

ok, I opened the laptop, and it's it8225e indeed

the ACPI tables make it clear that the EC is involved in fan control, while the FCH doesn't seem to be (even though amd's docs do say that it's possible to use the FCH)

I've just found that https://www.skclappy.in/threads/it8225e.94/ has popped up, looks to be the same file size as vinafix, so maybe can be gotten for free?

<!-- gh-comment-id:895100933 --> @Mis012 commented on GitHub (Aug 9, 2021): ok, I opened the laptop, and it's it8225e indeed the ACPI tables make it clear that the EC is involved in fan control, while the FCH doesn't seem to be (even though amd's docs do say that it's possible to use the FCH) I've just found that https://www.skclappy.in/threads/it8225e.94/ has popped up, looks to be the same file size as vinafix, so maybe can be gotten for free?
Author
Owner

@Mis012 commented on GitHub (Aug 9, 2021):

also coreboot's ectool on Linux seems to give more than just zeroes fwiw, but the datasheet would probably be a better bet (if it's indeed a datasheet, and not something like this... IT8225E.pdf )

<!-- gh-comment-id:895103808 --> @Mis012 commented on GitHub (Aug 9, 2021): also coreboot's ectool on Linux seems to give more than just zeroes fwiw, but the datasheet would probably be a better bet (if it's indeed a datasheet, and not something like this... [IT8225E.pdf](https://github.com/hirschmann/nbfc/files/6953594/IT8225E.pdf) )
Author
Owner

@Mis012 commented on GitHub (Aug 9, 2021):

http://www.lannafix.com/forum.php?mod=viewthread&tid=5769 looks a bit more like it with the <1MB file size being for an archive

<!-- gh-comment-id:895124906 --> @Mis012 commented on GitHub (Aug 9, 2021): http://www.lannafix.com/forum.php?mod=viewthread&tid=5769 looks a bit more like it with the <1MB file size being for an archive
Author
Owner

@Mis012 commented on GitHub (Sep 13, 2021):

aaand it was not, another useless cutout from some schematics

<!-- gh-comment-id:918506702 --> @Mis012 commented on GitHub (Sep 13, 2021): aaand it was not, another useless cutout from some schematics
Author
Owner

@Mis012 commented on GitHub (Sep 13, 2021):

on the plus side, I've figured out how to talk to the EC-internal bus, on which the actual hw that controls the speed lies.
it's a bit cumbersome, so I have a script for it :P

superio_read() { # reg
	sudo ./io_write8 0x25e $1
	sudo ./io_read8 0x25f
}

superio_write() { # reg value
	sudo ./io_write8 0x25e $1 && sudo ./io_write8 0x25f $2
}

d2_read() { # reg
	superio_write 0x2E $1
	superio_read 0x2F
}

d2_write() { # reg val
	superio_write 0x2E $1
	superio_write 0x2F $2
}

i2ec_read() { # hi lo 
    d2_write 0x11 $1;
    d2_write 0x10 $2;
    d2_read 0x12
}

i2ec_write() { # hi lo val
    d2_write 0x11 $1;
    d2_write 0x10 $2;
    d2_write 0x12 $3
}

the register layout seems to be the same as (or similar enough to) this: http://archive.hack.lu/2015/radare2-workshop/demos/Firmware/demo5_it8502e/ITE_IT8502E_F_G_V0_7_7_09042008_1COM.pdf

of interest is the block diagram (to see why you need to access the EC-internal bus, unless your EC firmware has an interface that allows you to do what you want, which would not be documented anywhere anyway)

of particular interest to you would be 7.11 PWM, specifically this part:

These registers are mapped in the address space of EC. The registers are listed below and the base address is
1800h.

PWM Duty Cycle (DCR0-7) 02h-09h

which means that all you need to do to control the fan speed is:

  • figure out which one of the 8 PWM outputs is used for the fan
  • source a .sh file containing the functions that I posted
  • execute i2ec_write 0x18 [0x02-0x09] [speed from 0 to 0xff], for example i2ec_write 0x18 0x08 0xff changes my keyboard backlight to full brightness (not a fan, but it works similarly enough I guess)
  • scream when the EC firmware reapplies whatever it thinks the value is supposed to be

you're welcome, now if anyone could please find the actual datasheet for IT8225E... :/

<!-- gh-comment-id:918515788 --> @Mis012 commented on GitHub (Sep 13, 2021): on the plus side, I've figured out how to talk to the EC-internal bus, on which the actual hw that controls the speed lies. it's a bit cumbersome, so I have a script for it :P ``` superio_read() { # reg sudo ./io_write8 0x25e $1 sudo ./io_read8 0x25f } superio_write() { # reg value sudo ./io_write8 0x25e $1 && sudo ./io_write8 0x25f $2 } d2_read() { # reg superio_write 0x2E $1 superio_read 0x2F } d2_write() { # reg val superio_write 0x2E $1 superio_write 0x2F $2 } i2ec_read() { # hi lo d2_write 0x11 $1; d2_write 0x10 $2; d2_read 0x12 } i2ec_write() { # hi lo val d2_write 0x11 $1; d2_write 0x10 $2; d2_write 0x12 $3 } ``` the register layout seems to be the same as (or similar enough to) this: http://archive.hack.lu/2015/radare2-workshop/demos/Firmware/demo5_it8502e/ITE_IT8502E_F_G_V0_7_7_09042008_1COM.pdf of interest is the block diagram (to see why you need to access the EC-internal bus, unless your EC firmware has an interface that allows you to do what you want, which would not be documented anywhere anyway) of particular interest to you would be `7.11 PWM`, specifically this part: >These registers are mapped in the address space of EC. The registers are listed below and the base address is 1800h. >PWM Duty Cycle (DCR0-7) 02h-09h which means that all you need to do to control the fan speed is: - figure out which one of the 8 PWM outputs is used for the fan - source a .sh file containing the functions that I posted - execute `i2ec_write 0x18 [0x02-0x09] [speed from 0 to 0xff]`, for example `i2ec_write 0x18 0x08 0xff` changes my keyboard backlight to full brightness (not a fan, but it works similarly enough I guess) - scream when the EC firmware reapplies whatever it thinks the value is supposed to be you're welcome, now if anyone could please find the actual datasheet for IT8225E... :/
Author
Owner

@skinatro commented on GitHub (Sep 18, 2021):

@Mis012

you're welcome, now if anyone could please find the actual datasheet for IT8225E... :/

I will try to find some , also you mentioned coreboot
you planning to port libreboot/coreboot to the laptop?

<!-- gh-comment-id:922173276 --> @skinatro commented on GitHub (Sep 18, 2021): @Mis012 > you're welcome, now if anyone could please find the actual datasheet for IT8225E... :/ I will try to find some , also you mentioned coreboot you planning to port libreboot/coreboot to the laptop?
Author
Owner

@Mis012 commented on GitHub (Sep 18, 2021):

well... the thing is, I would need more stuff to do that, like schematics and some more docs for the APU... and possibly some AGESA blob, unless the docs are detailed enough that I could actually reimplement the stuff that thing does...

Also I would almost be more interested in u-boot + a device tree + porting the chomebook EC codebase to the IT8225E... :P
I really don't like ACPI, and I feel like this laptop could work fine with a device tree instead (I have some WIP stuff on https://gitlab.com/Mis012/booting-linux-with-fdt-on-x86, right now it's really just figuring out why the GPU acts up, maybe writing a driver for the AOAC reset controller, and of course a fw for the EC that could hook up with the existing chromebook drivers (which would probably need some device tree support added))

<!-- gh-comment-id:922272819 --> @Mis012 commented on GitHub (Sep 18, 2021): well... the thing is, I would need more stuff to do that, like schematics and some more docs for the APU... and possibly some AGESA blob, unless the docs are detailed enough that I could actually reimplement the stuff that thing does... Also I would almost be more interested in u-boot + a device tree + porting the chomebook EC codebase to the IT8225E... :P I really don't like ACPI, and I feel like this laptop could work fine with a device tree instead (I have some WIP stuff on https://gitlab.com/Mis012/booting-linux-with-fdt-on-x86, right now it's really just figuring out why the GPU acts up, maybe writing a driver for the AOAC reset controller, and of course a fw for the EC that could hook up with the existing chromebook drivers (which would probably need some device tree support added))
Author
Owner

@skinatro commented on GitHub (Sep 18, 2021):

sorry I am a total novice in this kind of stuff

<!-- gh-comment-id:922281998 --> @skinatro commented on GitHub (Sep 18, 2021): sorry I am a total novice in this kind of stuff
Author
Owner

@github-actions[bot] commented on GitHub (Mar 19, 2022):

This issue is stale because it has been open more than 180 days with no activity. If nobody comments within 7 days, this issue will be closed

<!-- gh-comment-id:1072895254 --> @github-actions[bot] commented on GitHub (Mar 19, 2022): This issue is stale because it has been open more than 180 days with no activity. If nobody comments within 7 days, this issue will be closed
Author
Owner

@stnufc commented on GitHub (Mar 24, 2022):

So there really isnt anything that can be possible done to control the fans on asus fx505? Such a shame...

<!-- gh-comment-id:1077015701 --> @stnufc commented on GitHub (Mar 24, 2022): So there really isnt anything that can be possible done to control the fans on asus fx505? Such a shame...
Author
Owner

@Mis012 commented on GitHub (Mar 24, 2022):

well... you can overwrite the pwm value just fine, the issue is that the EC firmware will change it right back

though you can crash the EC fw and then you don't need to worry about that :P

and fwiw, if the EC is an 8051 core (it's not all that easy to tell, it would seem), then cros-ec is most definitely out of the question... :/

<!-- gh-comment-id:1077529916 --> @Mis012 commented on GitHub (Mar 24, 2022): well... you can overwrite the pwm value just fine, the issue is that the EC firmware will change it right back though you can crash the EC fw and then you don't need to worry about that :P and fwiw, if the EC is an 8051 core (it's not all that easy to tell, it would seem), then cros-ec is most definitely out of the question... :/
Author
Owner

@Mis012 commented on GitHub (Sep 13, 2023):

seems the EC has an andes risc-v core, so porting cros-ec would be a possibility... of course having no register map for this particular model is unfortunate

<!-- gh-comment-id:1717539672 --> @Mis012 commented on GitHub (Sep 13, 2023): seems the EC has an andes risc-v core, so porting cros-ec would be a possibility... of course having no register map for this particular model is unfortunate
Author
Owner

@Mis012 commented on GitHub (Sep 13, 2023):

Another "solution" that I don't find very practical is to just write the PWM value on a loop, since the EC clearly can't compete with a multiple GHz CPU in writing the register. One would probably want to use these single-level read/write primitives instead of the multi-level ones I posted previously:

i2ec_read() { # hi lo
    sudo /usr/local/sbin/io_write8 0x381 $1
    sudo /usr/local/sbin/io_write8 0x382 $2
    sudo /usr/local/sbin/io_read8 0x383
}

i2ec_write() { # hi lo val
    sudo /usr/local/sbin/io_write8 0x381 $1
    sudo /usr/local/sbin/io_write8 0x382 $2
    sudo /usr/local/sbin/io_write8 0x383 $3
}

<!-- gh-comment-id:1717722370 --> @Mis012 commented on GitHub (Sep 13, 2023): Another "solution" that I don't find very practical is to just write the PWM value on a loop, since the EC clearly can't compete with a multiple GHz CPU in writing the register. One would probably want to use these single-level read/write primitives instead of the multi-level ones I posted previously: ``` i2ec_read() { # hi lo sudo /usr/local/sbin/io_write8 0x381 $1 sudo /usr/local/sbin/io_write8 0x382 $2 sudo /usr/local/sbin/io_read8 0x383 } i2ec_write() { # hi lo val sudo /usr/local/sbin/io_write8 0x381 $1 sudo /usr/local/sbin/io_write8 0x382 $2 sudo /usr/local/sbin/io_write8 0x383 $3 } ```
Author
Owner

@memfissoftware commented on GitHub (Mar 31, 2025):

@Mis012 what is exactly io_write8 and io_read8?
is it part of nbfc or a linux package?

<!-- gh-comment-id:2765113991 --> @memfissoftware commented on GitHub (Mar 31, 2025): @Mis012 what is exactly io_write8 and io_read8? is it part of nbfc or a linux package?
Author
Owner

@Mis012 commented on GitHub (Mar 31, 2025):

https://github.com/adurbin/iotools

<!-- gh-comment-id:2765879754 --> @Mis012 commented on GitHub (Mar 31, 2025): https://github.com/adurbin/iotools
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nbfc-hirschmann#890
No description provided.