Hello Damon,

Thank you for your email. 
I looked at the link you sent me. 
I'm using Beaglebone black board for my demo.
It seems that there is not GPIO driver for this platform. 
I wanted to know is there any documentation of GPIO driver for me to understand the other platforms driver and write the driver code for am335x?

Thank you,

Parvaneh Aghajani.

On Tue, Nov 12, 2019 at 9:10 PM Lee, Damon (Data61, Kensington NSW) <Damon.Lee@data61.csiro.au> wrote:
Hello Parveneh,

> I am trying to implement a simple demo on sel4 using camkes.
> I need to add some external hardware like sensors to my demo. 
> For this purpose I need GPIO programming. 
> Could you please point me to some example GPIO components? 

We do not have a GPIO component, but we are currently developing one.

However, almost all the hardware related components (TimeServer,
SerialServer) in global-components[1] are just an interface over the
particular drivers in libplatsupport[2]. So developing an GPIO
component for your demo should be fairly easy as long as there are GPIO
drivers for your target platform in libplatsupport[3].

> Should I add hardware component? or just use <platsupport.GPIO.h> to
> write signal on pins on source files?

You would need a hardware component if the GPIO device requires some
registers and/or interrupts to be mapped in. For an example on creating
a hardware component you could take a look at the CAmkES timer
tutorials[4]. As I mentioned above, if there are GPIO drivers for your
target platform in libplatsupport, you could use the GPIO interfaces
defined in "platsupport/gpio.h". Otherwise, you would have to develop
your own GPIO drivers for your target platform.

I hope this answers your questions, and if you have any other questions
feel free to ask them on the mailing list.

Sincerely,
Damon Lee

PS: Sorry if you are receiving this again, I sent it out yesterday but
I may have done something wrong as it did not seem to have reached the
mailing list.

[1] 
https://github.com/SEL4PROJ/global-components/tree/master/components
[2] https://github.com/seL4/util_libs/tree/master/libplatsupport
[3] 
https://github.com/seL4/util_libs/tree/master/libplatsupport/src/plat
[4] https://docs.sel4.systems/Tutorials/hello-camkes-timer.html