On Sat, Sep 13, 2014 at 2:01 PM, Miles MH Chen <orca.chen@xxxxxxxxx> wrote: > 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 <mindentropy@xxxxxxxxx> 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 >> Kernelnewbies@xxxxxxxxxxxxxxxxx >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > Miles, I tried printing it. The output is as follows: Kernel physical addr : 0x32d01fe0 Platform phys offset : 0x30000000 Page offset : 0xc0553fb4 The S3C2440 is an ARM9TDMI processor. -Gautam. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies