[PATCH] Modify raspberrypi mm_config_table to map GPIO and registers.

Hesham Moustafa heshamelmatary at gmail.com
Mon Oct 14 16:16:25 UTC 2013


On Mon, Oct 14, 2013 at 6:03 PM, Gedare Bloom <gedare at rtems.org> wrote:

> On Mon, Oct 14, 2013 at 11:54 AM, Hesham Moustafa
> <heshamelmatary at gmail.com> wrote:
> >
> >
> >
> > On Mon, Oct 14, 2013 at 4:02 PM, Sebastian Huber
> > <sebastian.huber at embedded-brains.de> wrote:
> >>
> >> On 2013-10-14 15:34, Hesham AL-Matary wrote:
> >>>
> >>> diff --git a/c/src/lib/libbsp/arm/raspberrypi/startup/mm_config_table.c
> >>> b/c/src/lib/libbsp/arm/raspberrypi/startup/mm_config_table.c
> >>> index 5436a76..2b748b2 100644
> >>> --- a/c/src/lib/libbsp/arm/raspberrypi/startup/mm_config_table.c
> >>> +++ b/c/src/lib/libbsp/arm/raspberrypi/startup/mm_config_table.c
> >>> @@ -42,7 +42,7 @@ bsp_mm_config_table[] = {
> >>>     }, {
> >>>       .begin = (uint32_t) bsp_section_text_begin,
> >>>       .end = (uint32_t) bsp_section_text_end,
> >>> -    .flags = ARMV7_MMU_CODE_CACHED
> >>> +    .flags = ARMV7_MMU_READ_WRITE
> >>
> >>
> >> What is the problem with the cache?  Did the cache previously work?
> >
> > There is a problem with applying a Read-Only permissions in general to
> this
> > area for RaspberryPi BSP.
> Any idea why? Letting the text region be read-write is overly
> permissive, as RTEMS does not generally use self-modifying code.
>
>
Not sure about the reason, I had to test (i.e., change attributes) every
entry in
 the table and finally found that this section causes the problem. I could
not use
other debugging methods because the BSP is new and lacks a driver to
remotely
debug, and I could not also use printf as it's a startup code. Maybe this
section
overlaps other section (as its minimum size is 1 MB and it's aligned)
which is written later (e.g., vector table area). ticker.exe only works
with this
modification.

> >>
> >>
> >>
> >>>     }, {
> >>>       .begin = (uint32_t) bsp_section_rodata_begin,
> >>>       .end = (uint32_t) bsp_section_rodata_end,
> >>> @@ -63,8 +63,12 @@ bsp_mm_config_table[] = {
> >>>       .begin = (uint32_t) bsp_section_stack_begin,
> >>>       .end = (uint32_t) bsp_section_stack_end,
> >>>       .flags = MMU_DATA_READ_WRITE
> >>> +  }, {
> >>> +    .begin = 0x20000000,
> >>> +    .end = 0x20FFFFFF,
> >>> +    .flags = ARMV7_MMU_DATA_READ_WRITE
> >>
> >>
> >> What is this for an area?
> >
> > It's for Raspberry GPIO pins and other registers (defined at
> > raspbberrypi.h).
> >>
> >>
> >>>     }
> >>>   };
> >>
> >>
> >>
> >> --
> >> Sebastian Huber, embedded brains GmbH
> >>
> >> Address : Dornierstr. 4, D-82178 Puchheim, Germany
> >> Phone   : +49 89 189 47 41-16
> >> Fax     : +49 89 189 47 41-09
> >> E-Mail  : sebastian.huber at embedded-brains.de
> >> PGP     : Public key available on request.
> >>
> >> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
> >> _______________________________________________
> >> rtems-devel mailing list
> >> rtems-devel at rtems.org
> >> http://www.rtems.org/mailman/listinfo/rtems-devel
> >
> >
> >
> > _______________________________________________
> > rtems-devel mailing list
> > rtems-devel at rtems.org
> > http://www.rtems.org/mailman/listinfo/rtems-devel
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20131014/15a78815/attachment.html>


More information about the devel mailing list