Guru Prasad <gurupras <at> buffalo.edu> writes:

> 
> I had some general questions regarding implementation of DVFS on Gem5. I
noticed that the cpufreq driver achieves Frequency Scaling by writing values
into a memory-mapped register(?). I also noticed that Gem5 supports this
register for the ARM RealView platform. 
> However, writes to this register don't seem to reflect. Perhaps only certain
values are permitted (cpufreq has a pre determined table of values that it
uses)..or perhaps I'm not following the correct write procedure for this
register (I did unlock REALVIEW_SYS_LOCK).Upon running my syscall on m5.opt, I
noticed that the simulation seems to throw up a warning that says warn: CP14
unimplemented crn[14], opc1[7], crm[15], opc2[7]The syscall is implemented as
follows#define REALVIEW_SYS_LOCK_VAL                0xA05F#define
REALVIEW_SYS_OSC0_OFFSET         0x0C#define REALVIEW_SYS_LOCK_OFFSET        
0x20#define REALVIEW_SYS_BASE                       0x10000000
> #define REALVIEW_SYS_OSC0                       (REALVIEW_SYS_BASE +
REALVIEW_SYS_OSC0_OFFSET)#define REALVIEW_SYS_LOCK                      
(REALVIEW_SYS_BASE + REALVIEW_SYS_LOCK_OFFSET) asmlinkage long
sys_cpufreq_set(unsigned int freq, char *msg) {
>         void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK);       
unsigned int lock_val   = (*((unsigned int *) lock_ctrl));        char
*val               = kmalloc(sizeof(char) * 16, GFP_KERNEL);       
__raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl);...}Please correct me if I'm
wrong...As for data-flow within Gem5, I believe that everything begins with
creation of Packets. For the ARM architecture, this seems to happen in
table_walker.cc. 
> Is there any documentation as to how the instructions are stripped from the
packet and what the Gem5 does while decoding the instructions?Although my system
call implements a lot of code that is copied from the kernel sources, is there
any way for me to verify that I am in fact reading the register and not some
random portion of physical memory?Could someone point me to where to start
implementing DVFS on Gem5?RegardsGuru Prasad
> 
> _______________________________________________
> gem5-users mailing list
> gem5-users <at> gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

- A small update

rv_ctrl.cc shows that a fixed value is returned upon receiving a packet having
the address of the SYS_OSC0 register..

Would it be possible to change the simulation cpu clock from here?


_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to