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

Павел Жданов paul.alex.zhdanov at gmail.com
Tue Sep 27 06:25:59 UTC 2016


Hi Chris, Angelo and Joel. I did some tests with oscilloscope to be sure
that it works and it indeed works just as you said. Thanks a lot for the
help.

С уважением, Жданов Павел.

On Sun, Sep 25, 2016 at 7:28 PM, Joel Sherrill <joel at rtems.org> wrote:

> 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
>
> _______________________________________________
> 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/20160927/21451c1e/attachment-0002.html>


More information about the users mailing list