Hi, Do you know the value of PHYS_OFFSET of your platform? PHYS_OFFSET defines the starting physical address of your DRAM.
physical address = kmalloc'ed address - PAGE_OFFSET + PHYS_OFFSET MH On Sat, Sep 13, 2014 at 4:02 PM, mind entropy <[email protected]> wrote: > Hi, > > I want to know the physical address [just for debugging and info.Not > for DMA etc] of a particular virtual address allocated via kmalloc. > > I am running the below code on S3C2440 with 64MB of RAM. The > /proc/meminfo returns > > MemTotal: 59164 kB > MemFree: 35884 kB > MemAvailable: 47148 kB > > > I run the following module for printing the addresses. [This module > is only for test. So excuse if I have cut corners]. > > ------------------------------------------------ > > #include <linux/init.h> > #include <linux/kernel.h> > #include <linux/printk.h> > #include <linux/module.h> > #include <linux/gfp.h> > #include <linux/types.h> > #include <linux/mm.h> > #include <linux/mm_types.h> > #include <linux/slab.h> > > static int vm_mem_test_init(void) > { > > void *km; > > printk(KERN_ALERT "vm mem test init\n"); > > km = kmalloc(1,GFP_KERNEL); > > if(km == NULL) { > printk(KERN_ALERT "Could not kmalloc\n"); > return -1; > } else { > printk(KERN_ALERT "Allocated\n"); > printk(KERN_ALERT "Virtual addr : %x\n",(unsigned int)km); > printk(KERN_ALERT "Kernel physical addr : > 0x%x\n",virt_to_phys(km)); > kfree(km); > } > > return 0; > > } > > > The output for the following is: > > Virtual addr : c2c080e0 > Kernel physical addr : 0x32c080e0 > > ----------------------------------------------------------- > > The kernel physical address is wrong as I only have 64MB. Should I be > doing a kernel page table walk to get the associated physical address? > > Thanks > Gautam. > > _______________________________________________ > Kernelnewbies mailing list > [email protected] > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
