This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

some queries regarding MMU & TCM

Note: This was originally posted on 20th May 2009 at http://forums.arm.com

Hi All,

         I want to make use of MMU,TCM & I/D Cache features in ARM.But i got blocked :(  with the following doubts and not able to get clear information from the documents available in net.
 
    -> Is compact OS(like WINCE/Linux) needed to configure MMU in ARM ?
    -> From my application(user mode),can i enter supervisor mode using SWI to configure MMU,       TCM,I/D cache?
    -> In ARM1136J-S,can we use DMA in application, else DMA is used only by the processor to    transfer data from external memory to TCM?
    -> Compared to ARM926EJ-S, in ARM1136J-S is there any improvement in MMU,TCM,I/D Cache  functionalities?

Thanks In Advance :) ,
satish
Parents
  • Note: This was originally posted on 20th May 2009 at http://forums.arm.com

    -> Is compact OS(like WINCE/Linux) needed to configure MMU in ARM ?

    You don't _need_ an OS to configure the MMU, but the processors that have an MMU are generally applications processors and will usually run an OS of some kind.

    -> From my application(user mode),can i enter supervisor mode using SWI to configure MMU, TCM,I/D cache?

    Think about the implications of giving user-mode applications the ability to enter supervisor mode!

    You _can_ execute a SWI instruction to enter supervisor mode, but the call will be handled by the processor's SWI handler. In an environment with an OS, this is typically used for system calls.

    If you are running on an OS, it should configure the MMU and caches for you. If you have specific requirements (such as the ability to execute the contents of some memory or flush the caches), the OS may provide you with a library function to do that, but there is no generic way to do that from user space and the OS may not allow you to do it.

    If you are not running on an OS, you will want to turn on the MMU anyway, even if it has a flat memory map, as the I cache cannot be enabled without it. However, if you are not running on an OS you can have privileged access to whatever part of the processor you want.

    -> In ARM1136J-S,can we use DMA in application, else DMA is used only by the processor to transfer data from external memory to TCM?

    Yes, but the operations will need to be performed by some privileged code. You will need OS support, usually in the form of a driver. If there is no driver available for your system, you will need to write one.

    Thanks,
    Jacob
Reply
  • Note: This was originally posted on 20th May 2009 at http://forums.arm.com

    -> Is compact OS(like WINCE/Linux) needed to configure MMU in ARM ?

    You don't _need_ an OS to configure the MMU, but the processors that have an MMU are generally applications processors and will usually run an OS of some kind.

    -> From my application(user mode),can i enter supervisor mode using SWI to configure MMU, TCM,I/D cache?

    Think about the implications of giving user-mode applications the ability to enter supervisor mode!

    You _can_ execute a SWI instruction to enter supervisor mode, but the call will be handled by the processor's SWI handler. In an environment with an OS, this is typically used for system calls.

    If you are running on an OS, it should configure the MMU and caches for you. If you have specific requirements (such as the ability to execute the contents of some memory or flush the caches), the OS may provide you with a library function to do that, but there is no generic way to do that from user space and the OS may not allow you to do it.

    If you are not running on an OS, you will want to turn on the MMU anyway, even if it has a flat memory map, as the I cache cannot be enabled without it. However, if you are not running on an OS you can have privileged access to whatever part of the processor you want.

    -> In ARM1136J-S,can we use DMA in application, else DMA is used only by the processor to transfer data from external memory to TCM?

    Yes, but the operations will need to be performed by some privileged code. You will need OS support, usually in the form of a driver. If there is no driver available for your system, you will need to write one.

    Thanks,
    Jacob
Children
No data