Re: How can I test if a physical address is already mapped or not.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




>>  Yes you are right when you are in user space. However in a kernel
>>  module this would be physical address.
> 
> Nope. Unless you are using some really strange processor that I am not familiar 
> with, a memory read is a memory read. *pReg is going to read what's at 
> virtual address 0xc0000000 regardless of whether you are executing in user or 
> kernel context. I know it's going to work this way on a PC with an Intel x86 
> processor.
> 


OK, but how do you explain I can read 0xC0000000 and I get kicked out if
I try 0x00100000.


>>  The 0xC0000000 falls under PCI address range. I guess on a PC Linux
>>  just doesn't map this address range or it maps it one2one (phys==virt)
>>  I can dereference this address and I get something plausible.
> 
> On most 32 bit Intel processors running "standard" Linux 0xC0000000 is 
> the first address of kernel VM. This is a function of kernel configuration, but 
> it's this way by default. It's still a virtual address. So yes, on your 
> PC virtual address 0xC0000000 is mapped to physical RAM.
> 


Would this mean by reading the 0xC0000000 I am reading the Linux code not
PCI registers?

Thanks,
Stephan.


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux