Meaning of 'no-map' in reserved-memory, and accessing a memory region from two OSes using physical adderss

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

 



Hello all,

In the device tree, I have declared a reserved-memory node and a child node
inside it.
And I have put 'no-map' property to that reserved memory and a device node
uses that reserved memory.
But in the driver for the device, when I use the memremap'ed virtual
address, the read/write runs ok.
But using physical memory, it crashes.

I thought with 'no-map' property, I could just use the physical address but
it turned out I can't.

The document on reserved-memory says this about the 'no-map' property. 
(in Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt)

no-map (optional) - empty property
    - Indicates the operating system must not create a virtual mapping
      of the region as part of its standard mapping of system memory,
      nor permit speculative access to it under any circumstances other
      than under the control of the device driver using the region.

I can't understand what 'the OS must not create a virtual mapping of the
region as part of its standard mapping of system memory'.
Any reserved-memory is excluded from the usage of OS, then, what does this
'no-map' mean?
The memremap function just ran without error and I could use the region with
returned virtual address.

The thing I want to do is accessing the memory region with physical address,
and I hope another OS which connects to our board using PCIe link (our side
is endpoint) can also access the region with the PCIe mapped physical
address (by itself declaring the region as reserved-memory). Is this kind
things impossible?

Thank you for reading

Best regards,
Chan Kim





_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://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