Use of rtems_fdt_* and sp01
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Nov 18 14:55:52 UTC 2022
On 18/11/2022 15:49, Kinsey Moore wrote:
>
> On Fri, Nov 18, 2022 at 12:44 AM Sebastian Huber
> <sebastian.huber at embedded-brains.de
> <mailto:sebastian.huber at embedded-brains.de>> wrote:
>
> On 18/11/2022 06:32, Kinsey Moore wrote:
> > On Thu, Nov 17, 2022 at 4:49 PM Chris Johns <chrisj at rtems.org
> <mailto:chrisj at rtems.org>
> > <mailto:chrisj at rtems.org <mailto:chrisj at rtems.org>>> wrote:
> >
> > On 18/11/2022 2:39 am, Kinsey Moore wrote:
> > > I recently added FDT support to the AArch64 ZynqMP BSPs to
> > support an optional
> > > management console and managing ethernet parameters for
> LibBSD.
> > Use of the
> > > rtems_fdt_* functions implies use of malloc which adds 4
> bytes in
> > the TLS space.
> > > The sp01 test uses rtems_task_construct and specifies a
> maximum
> > TLS size of 0
> > > bytes which causes a failure which the non-zero TLS size is
> > checked against the
> > > maximum TLS size of 0.
> >
> > Does this mean there exists a requirement a BSPs cannot
> internally
> > use the heap?
> >
> >
> > That appears to be the case, at least practically. It works fine,
> but it
> > causes a test failure...
>
> You can use the heap during system initialization. However, you should
> avoid dependencies on errno, so instead of using malloc()/calloc() use
> rtems_malloc()/rtems_calloc(). Independent of this, if the BSP
> initialization can easily avoid the heap, then it should not use the
> heap.
>
> >
> >
> > Maybe the test needs to be adjusted?
> >
> >
> > That's part of why I sent this to the list. I was unsure whether
> it was
> > allowed or whether the test had bad assumptions baked into it.
>
> The tests check specific aspects of the thread-local storage support
> and
> this works only if the BSP does not depend on TLS objects such as errno.
>
> This affects several other tests as well, so I guess my solution here is
> either to alter the rtems_fdt_ wrappers to avoid dependencies on TLS or
> proceed with the existing patch that uses the non-wrapped FDT functions.
Your patch is pretty straight forward and gets rid of a heap usage
during initialization. I would check it in anyway.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the devel
mailing list