Changes between Initial Version and Version 1 of kernel_paddr


Ignore:
Timestamp:
Oct 9, 2014, 12:45:11 PM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • kernel_paddr

    v1 v1  
     1= GIET-VM / Physical addressing functions =
     2
     3[[PageOutline]]
     4
     5The [source:soft/giet_vm/giet_common/utils.c utils.c] and [source:soft/giet_vm/giet_common/utils.h util.h] files define the functions supporting physical addressing, using the CP2_PADDR_EXT register.
     6Physical addresses can have up to 64 bits.
     7
     8They are prefixed by "_" to remind that they can only be executed by a processor in kernel mode.
     9
     10 === unsigned int _physical_read( unsigned long long paddr ) ===
     11Returns the 32 bits word stored at physical address ''paddr'', after a temporary DTLB deactivation.
     12It uses the CP2_PADDR_EXT register.
     13
     14 === void _physical_write( unsigned long long paddr, unsigned int value )
     15Writes the 32 bits word ''value'' at physical address ''paddr'', after a temporary DTLB deactivation.
     16It uses the CP2_PADDR_EXT register.
     17
     18 === unsigned long long _physical_read_ull( unsigned long long paddr ) ===
     19Returns the 64 bits word stored at physical address ''paddr'', after a temporary DTLB deactivation.
     20It uses the CP2_PADDR_EXT register.
     21
     22 === void _physical_write_ull( unsigned long long paddr, unsigned long long value ) ===
     23Writes the 64 bits word ''value'' at physical address ''paddr'', after a temporary DTLB deactivation.
     24It uses the CP2_PADDR_EXT register.
     25
     26 === void _physical_memcpy( unsigned long long dst_paddr, unsigned long long src paddr, unsigned int size ) ===
     27This function makes a memcpy from a source buffer to a destination buffer, using physical addresses, after a temporary DTLB de-activation. The ''src_paddr'', ''dst_paddr'' and ''size'' arguments must be multiple of 4 bytes.
     28
     29 === unsigned int _io_extended_read( unsigned int* vaddr ) ===
     30This function is used by the GIET-VM drivers to read a 32 bits word in a peripheral register.
     31If the MMU is not activated, the virtual address is extended using X_IO and Y_IO (defined in the hard-config.h file) to reach the cluster_io.
     32
     33 === void _io_extended_write( unsigned int* vaddr, unsigned int value ) ===
     34This function is used by the GIET-VM drivers to write a 32 bits word in a peripheral register.
     35If the MMU is not activated, the virtual address is extended using X_IO and Y_IO (defined in the hard-config.h file) to reach the cluster_io.