[EXTERNAL] Re: BeagleBone Black Networking (wifi and/or wired)

Christian Mauderer list at c-mauderer.de
Sun Jun 9 08:09:08 UTC 2019


On 09/06/2019 08:59, Chris Johns wrote:
> On 9/6/19 4:29 pm, Vijay Kumar Banerjee wrote:
>> On Sun, Jun 9, 2019 at 6:22 AM Chris Johns <chrisj at rtems.org
>> <mailto:chrisj at rtems.org>> wrote:
>>     On 8/6/19 5:58 pm, Christian Mauderer wrote:
>>     > ----- Ursprüngliche Mail -----
>>     >> Von: "Oyake, Amalaye (386M)" <amalaye.oyake at jpl.nasa.gov
>>     <mailto:amalaye.oyake at jpl.nasa.gov>>
>>     >> An: "Chris Johns" <chrisj at rtems.org <mailto:chrisj at rtems.org>>, "Vijay
>>     Kumar Banerjee" <vijaykumar9597 at gmail.com
>>     <mailto:vijaykumar9597 at gmail.com>>, "Christian Mauderer"
>>     >> <christian.mauderer at embedded-brains.de
>>     <mailto:christian.mauderer at embedded-brains.de>>
>>     >> CC: "RTEMS Users" <users at rtems.org <mailto:users at rtems.org>>
>>     >> Gesendet: Samstag, 8. Juni 2019 04:57:02
>>     >> Betreff: Re: [EXTERNAL] Re: BeagleBone Black Networking (wifi and/or wired)
>>     >
>>     >> Device Tree overays are a method used to update the Device Tree. Given a
>>     device
>>     >> tree that describes all the devices, let's say you add a new SPI device, you
>>     >> can update the device tree with a (blob) device tree overlay.
>>     >>
>>     >> I should ask (without Googling), What is the Device Tree Overlay mechanism in
>>     >> RTEMS?
>>     >
>>     >
>>     > Hello Amalaye,
>>     >
>>     > as far as I know, the device tree overlay mechanism in RTEMS is not
>>     implemented. There is the prototype of fdt_overlay_apply() in libfdt.h but
>>     there is no implementation. So there are two methods:
>>     >
>>     > 1. Applying the overlay on a build machine. Vijay did that during his tests.
>>
>>     How do you do this?
>>
>> I used `fdtoverlay` from libfdt on linux host. 
> 
> Could cpukit/dtc/libfd in RTEMS be updated to support this code? I see freebsd's
> kernel has the code.
> 

Theoretically that could be possible. If I understand it correctly, that
would mean that we could apply an overlay after boot. That would mean a
lot of additional stuff. For all changed parts the matching drivers
would have to be load or maybe some other ones have to be unload.
Basically we would need a dynamic device management for that. As long as
there is no concrete use case I don't think it's useful to do that work.

>>
>>     > 2. Use the U-Boot mechanism to apply overlays before booting RTEMS. That
>>     should most likely work too. But I didn't test it yet.
>>
>>     OK
>>
>>     >> On 6/7/19, 6:17 PM, "users on behalf of Chris Johns"
>>     <users-bounces at rtems.org <mailto:users-bounces at rtems.org> on
>>     >> behalf of chrisj at rtems.org <mailto:chrisj at rtems.org>> wrote:
>>     >>
>>     >>    On 8/6/19 1:53 am, Vijay Kumar Banerjee wrote:
>>     >>    >
>>     >>    > I would like to add that in two projects of this year( I2C and
>>     PRU-ICSS drivers)
>>     >>    > we
>>     >>    > are using our own device tree overlays that make our drivers work.
>>     Where to add
>>     >>    > the device
>>     >>    > tree related stuff seems like an important question.
>>     >>   
>>     >>    What are device tree overlays?
>>     >
>>     > Like Oyake already said: They are some small pices of device trees that
>>     are just added to the base tree in it's binary form. Linux (and most likely
>>     FreeBSD too) supports that even after boot. If you add an overlay it
>>     re-parses the device tree, updates GPIO settings and loads new drivers. The
>>     alternative is to let the boot loader apply them during boot.
>>
>>     What is needed to do this? Maybe I can add it to rtems-boot-image as a way to
>>     handle this at the u-boot version.
>>
>> I have also tried to automate it by adding it in uEnv.txt as a script, it worked
>> nicely to apply
>> the overlay on the blob, I haven't tested it with any app though, but the
>> overlay applied
>> successfully. Here's what the test uEnv.txt looks like. 
>> ```
>> setenv bootdelay 5
>> uenvcmd=run overlay_cmd boot
>> overlay_cmd=fatload mmc 0 0x80800000 rtems-app.img; fatload mmc 0 0x88000000
>> am335x-boneblack.dtb; fatload mmc 0 0x88100000 am335x-rtems.dtbo; fdt addr
>> 0x88000000; fdt resize 0x1000; fdt apply 0x88100000;
>> boot=bootm 0x80800000 - 0x88000000;
>> ```
>>
>> You can add something like this to the uEnv.txt in SD card image. In the above
>> script
>> the am335x-boneblack.dtb is the one from linux and am335x-rtems.dtbo is generated
>> with dtc from the overlay written by me.
> 
> Ah I see. I think this could be added to rtems-boot-image. There is something
> attractive about building the fdt at run time on the board from the needed pieces.

If you try to do a more general purpose approach it could be worth
having a look at the boot sequences done on boards like the Beagle or
Raspberry. As far as I know they have sequences that just apply all
overlays from a directory.

Best regards

Christian

> 
> Chris
> _______________________________________________
> users mailing list
> users at rtems.org
> http://lists.rtems.org/mailman/listinfo/users
> 



More information about the users mailing list