W dniu 31 stycznia 2010 00:38 użytkownik Rafał Miłecki <zajec5@gmail.com> napisał:
W dniu 31 stycznia 2010 00:14 użytkownik Rafał Miłecki <zajec5@gmail.com> napisał:
I have one more question about AtomBIOS commands. Could you explain paramspace, please?
I dumped SetEngineClock operation from my AtomBIOS and it uses: param[00] param[01] param[02]
AFAIU each param is 4 dwords, so 32bit. But it seems we pass only one ULONG as argument (param):
/****************************************************************************/ // Structures used by SetEngineClockTable /****************************************************************************/ typedef struct _SET_ENGINE_CLOCK_PARAMETERS { ULONG ulTargetEngineClock; //In 10Khz unit }SET_ENGINE_CLOCK_PARAMETERS;
typedef struct _SET_ENGINE_CLOCK_PS_ALLOCATION { ULONG ulTargetEngineClock; //In 10Khz unit COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_PS_ALLOCATION sReserved; }SET_ENGINE_CLOCK_PS_ALLOCATION;
does it mean param[01] and param[02] are there just like workspace variables?
Ahh, it reads only param[00] from but computes other params that are used in subcalls like: 000e: 523c CALL_TABLE 3c (ComputeMemoryEnginePLL) :)
Hopefully final (real) question: SetEngineClock takes only one param which is param[00] I believe. Following are 3 first lines of SetEngineClock: 0006: 02010100 MOVE param[01] [XXXX] <- param[00] [XXXX] 000a: 02250202 MOVE param[02] [...X] <- 02 000e: 523c CALL_TABLE 3c (ComputeMemoryEnginePLL) ComputeMemoryEnginePLL takes 2 params. In this case, how ComputeMemoryEnginePLL is called from SetEngineClock? Is that: ComputeMemoryEnginePLL(param[00], param[01]) ? or maybe: ComputeMemoryEnginePLL(param[01], param[02]) ? -- Rafał -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org