ASRock Rack BMC Fan Control?

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

thigobr

Member
Apr 29, 2020
36
6
8
I have a server running with the Asrock X470D4U... What's the minimum duty cycler for these fan headers? It looks like the minimum possible duty cycle is 30%. I wish I could set lower in idle...
 

RolloZ170

Well-Known Member
Apr 24, 2016
5,336
1,611
113
It looks like the minimum possible duty cycle is 30%. I wish I could set lower in idle...
value 0 is lowest and sets to 30%
Code:
0x245A6     Form: Smart Fan Control, Form ID: 0x28EC {01 86 EC 28 9E 08}
0x245AC         Subtitle: Smart Fan Duty Control {02 87 9F 08 00 00 00}
0x245B3         End {29 02}
0x245B5         Grayout If: {19 82}
0x245B7             Variable 0x22D equals 0x1 {12 06 2D 02 01 00}
0x245BD             Setting: Smart Fan Duty 1, Variable: 0x1A4 {05 91 A1 08 AC 08 AE 28 01 00 A4 01 14 10 00 0A 00}
0x245CE                 Default: 8 Bit, Value: 0x0 {5B 06 00 00 00 00}
0x245D4                 Option: 30 %, Value: 0x0 {09 07 AD 08 00 00 00}
0x245DB                 Option: 55 %, Value: 0x1 {09 07 AE 08 00 00 01}
0x245E2                 Option: 60 %, Value: 0x2 {09 07 AF 08 00 00 02}
0x245E9                 Option: 65 %, Value: 0x3 {09 07 B0 08 00 00 03}
0x245F0                 Option: 70 %, Value: 0x4 {09 07 B1 08 00 00 04}
0x245F7                 Option: 75 %, Value: 0x5 {09 07 B2 08 00 00 05}
0x245FE                 Option: 80 %, Value: 0x6 {09 07 B3 08 00 00 06}
0x24605                 Option: 85 %, Value: 0x7 {09 07 B4 08 00 00 07}
0x2460C                 Option: 90 %, Value: 0x8 {09 07 B5 08 00 00 08}
0x24613                 Option: 95 %, Value: 0x9 {09 07 B6 08 00 00 09}
0x2461A                 Option: 100 %, Value: 0xA {09 07 B7 08 00 00 0A}
0x24621             End of Options {29 02}
 

tinfoil3d

QSFP28
May 11, 2020
878
403
63
Japan
If you REALLY want to NOT use ipmitool and set it via bios config instead i have 2.70 beta from William at asrockrack support with those options. It's for 32MB flash and personally i still use 2.60, and set speeds from the OS via ipmi raw commands.
 
  • Like
Reactions: eduncan911

homemade

New Member
Aug 5, 2022
2
1
3
Thanks for any information.
I am just collecting my chips and preparing for potential catastrophes and just suring up. I have the EPYCD8-2T (R32 which means 32MB for the BMC or BIOS (I don't know (probably both))). I need to buy the (soic) BMC chip and the (soic) BIOS. I bought a BIOS chip off ebay from netherlands (probably asrock), but where can I get the empty chips so that I can flash them myself. I've been waiting for about 3 weeks now. I need to test some CPUs (and I want to save the settings for each chip on a different IC).
  1. What are the chip types|brand|[serial number] (like do they have a Serial or Brand number on the chip or soic-8 or soic-14 or whatever)?
  2. Where do I get them from (if you suggest)?
Any information is appreciated. I am scared to open the doors and pull the chips without having backups. But I guess I could just risk a possible static electricity exchange.
Thanks.
 
Last edited:

tinfoil3d

QSFP28
May 11, 2020
878
403
63
Japan
I don't think the "brand" matters, as long as it's 32 MB.
For the reference the P/N for the BIOS chip that i got directly from asrock rack support for EPYCD8-2T is mx25L25673G,
8-pin sop package.
The great thing about these motherboards is they designed them so that you can quickly replace the bios and bmc using the sockets, without any soldering.
You can get these from the big names like digikey or mouser or look for cheaper places, but those two are usually the fastest and safest way to buy microcomponents.
 
Last edited:

RolloZ170

Well-Known Member
Apr 24, 2016
5,336
1,611
113
I have the EPYCD8-2T (R32 which means 32MB for the BMC or BIOS (I don't know (probably both))). I need to buy the (soic) BMC chip and the (soic) BIOS. I bought a BIOS chip off ebay from netherlands (probably asrock), but where can I get the empty chips so that I can flash them myself. I've been waiting for about 3 weeks now. I need to test some CPUs (and I want to save the settings for each chip on a different IC).
  1. What are the chip types|brand|[serial number] (like do they have a Serial or Brand number on the chip or soic-8 or soic-14 or whatever)?
  2. Where do I get them from (if you suggest)?
soic16
winbond w25q256jv
macronix MX25L25645GMI
(open the soic sockets and check the type )
digikey.com
 
  • Like
Reactions: homemade

homemade

New Member
Aug 5, 2022
2
1
3
I got a package in the mail for the epycd8-32 BIOS chip. The BIOS is macronix MX25L25645GMI. The BMC is probably winbond w25q256jv. Thanks to RolloZ170, I'll probably buy a hand full of these from digikey.
 
Last edited:
  • Like
Reactions: RolloZ170

autoturk

Active Member
Sep 1, 2022
165
113
43
I have a server in my office that I can keep quiet with a windows task that is run every time I login or unlock the computer. I have a Supermicro 846 with SM fans except for the CPU fan, so when I login I sending the ssh command that keeps my CPU fan at max (1400 RPM) and the chassis fans as low as it can go (1300-1600RPM):

ipmitool raw 0x3a 0x01 0x64 0x01 0x01 0x01 0x01 0x01 0x01 0x01

When I log out it sends this command to return the chassis fans to auto:

ipmitool raw 0x3a 0x01 0x64 0x00 0x00 0x00 0x00 0x00 0x00 0x00

Yesterday I saw there was a new BMC firmware (03.02.00), so I ignored the warning to not upgrade if I don't have a reason to and spent a few hours getting the new BMC to upgrade and be accessible over the web. It was a pain in the ass, and others have experienced the same problems.

I noticed that the new fan control commands were different, significantly that it seems that the lowest I can manually set the fans is 20%, any lower and I get an error. @Borromini above has a comment in his script that there's an error if it's below 20, which I confirmed in my own testing.
Well, 20% is a lot louder than 1%. Here are the commands I used to set the chassis fans to manual and as low as I could go:

ipmitool raw 0x3a 0xd8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
ipmitool raw 0x3a 0xd6 0x64 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14

To reset them to auto, I used

ipmitool raw 0x3a 0xdc

After a few hours of loud fans I flashed the 2.20 BMC back, I don't know if I'm missing something or they really did limit how low you could set the fans to 20%. Posting this here for posterity.
Hey! sorry to necro an old comment, but I have the Asrock w680 board and am also noticing that the BMC is setting a lower threshold of 20% on the fans. Have you figured out a way around this?
 

RE0

New Member
Apr 23, 2023
6
0
1
Put the "Fan control" option to "Manual" in the bios setup.Then you should have some extra options. Enter "Smart Fan Control" and set duty cycle manually.
 

DaveInTexas

Member
Oct 28, 2021
79
86
18
Code:
ipmitool raw 0x3a 0x01 CPU1_FAN1 0x00 REAR_FAN1 REAR_FAN2 FRNT_FAN1 FRNT_FAN2 FRNT_FAN3 FRNT_FAN4
However, I do not know what that last 0x00 corresponds too. I think it's unused?
Necro'ing this thead because this IPMI fan control information is very obscure, so I'm adding a comment FBO.

The 0x00 between CPU1_FAN1 and REAR_FAN1 may be a "CPU override" byte. It's either that or a dummy value.

ASRock used this method on the old EP2C602 series boards (circa 2014) which have ASPEED AST2300 BMC chips. The EPYCD8 series boards (circa 2019) are the only ASPEED AST2500 boards where I've seen a reference to this "dummy" byte in this position of the raw fan control IPMI string. There is no corollary with any other AST2500 generation board, with a dummy byte in that position. Some post-AST2300 ASRock boards do have a pattern of dummy or filler bytes, but not this type of ordering. I have not found a reference to the "CPU override" bytes on any boards other than the AST2300's, so I find it very strange that ASRock would bring that throwback to the AST2500.

Another possibility is it's a placeholder for a 2nd CPU fan, but since the EPYCD8 series boards only use a single CPU and single CPU fan, this 2nd byte in the IPMI string may indeed be just a dummy byte placeholder, meaning its value is irrelevant and ignored. This seems like a more likely scenario from a logical perspective. That said, ASRock has very inconsistent applications of IPMI fan control command data payload structure across all of their motherboards which support BMC fan control.

The older ASRock boards where the "override" switch is present use it to allow or disallow manually setting the CPU fan speed. If override is enabled (non-zero), then the specified fan speed is used ("override the auto mode for CPU fan"). If override byte = 0x00, then the specified CPU fan speed is ignored ("do not override auto mode for CPU fan") and the fan is placed in automatic mode. If someone has one of these EPYCD8 series boards (I don't), they could test whether or not it's an override byte by choosing different CPU fan speeds (e.g. 50% and 100%), and alternating the mystery byte between 0x00 and 0x01, and then reading the fan sensors to get the current RPM. That's the only way to know for sure if it's an override byte or a dummy byte in the IPMI string.

Note, if 0x00 for the declared fan speed (the CPU1_FAN value), the CPU fan will be placed into auto mode regardless of what value you enter for the mystery byte.
 
Last edited: