Fwd: RTEMS on x86, PC/104 board. Access to ISA bus through memory mapped I/O.

Joel Sherrill joel at rtems.org
Sun Sep 25 16:28:14 UTC 2016


On Sep 25, 2016 4:10 AM, "Angelo Fraietta" <
newsgroups at smartcontroller.com.au> wrote:
>
> I used PC104 mapping on the pc386 BSP (so it would be identical). I
accessed inputs through an interrupt to read from ISA bus.The memory
address in RTEMS maps directly to the memory address on the ISA bus and the
memory data also just mapped across. It was extremely easy.

Agreed. Should just be regular memory accesses if memory mapped and IO
instructions if in IO space. There are macros to access the IO instructions.

Be careful that all accesses to memory on the ISA bus are through volatile
variables.

No special set up needed to access them at all.

> On Fri, Sep 23, 2016 at 8:08 AM, Chris Johns <chrisj at rtems.org> wrote:
>>
>> On 22/09/2016 21:15, Павел Жданов wrote:
>>>
>>> Hello!
>>>
>>> I'm working on the educational project based on CPU-1421 processor board
>>> (http://www.eurotech.com/en/products/CPU-1421
>>> <http://www.eurotech.com/en/products/CPU-1421>).
>>> I have a simple self-made "PC/104 device" which is connected to CPU-1421
>>> through the ISA bus. CPU-1421 runs under RTEMS.
>>
>>
>> Awesome, and welcome.
>>
>>> My goal is to control my PC/104 device
>>> through the memory mapped I/O. In Linux I can use ioremap() function for
>>> this purpose and it works. How can I get an access to my device in
>>> RTEMS? I use RTEMS 4.11 with bsp=pc486.
>>
>>
>> RTEMS is a single address space, consider it a single process. The MMU
is normally configured to map 1:1 physical addresses to virtual addresses.
All you need to do is make sure the address range you want to access is
mapped by the MMU. Once mapped you can access the address space via a
normal pointer.
>>
>> You need to first determine the 32bit pointer to the address of your
device. For example the video driver for the PC BSP sets the video memory
address here:
>>
>>
https://git.rtems.org/rtems/tree/c/src/lib/libbsp/i386/pc386/console/outch.c#n292
>>
>> and the address is defined here:
>>
>>
https://git.rtems.org/rtems/tree/c/src/lib/libbsp/i386/pc386/include/crt.h#n26
>>
>> I am not sure how the address space for your PC/104 device maps so I
hope this example provides some hints. I also do not know if the MMU is set
up to cover the whole ISA bus address space. I think it is best to try and
see.
>>
>> Chris
>> _______________________________________________
>> users mailing list
>> users at rtems.org
>> http://lists.rtems.org/mailman/listinfo/users
>
>
>
> _______________________________________________
> users mailing list
> users at rtems.org
> http://lists.rtems.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20160925/0d825c9a/attachment.html>


More information about the users mailing list