Thanks Kent,

I can confirm that the CONFIG_TK1_INSECURE image builds, tftpboots, and
creates 6000d000.gpio under /sys/devices/soc0.

If I understand the "gpio-keys" device correctly the user is unable to
toggle GPIO pins directly but can detect signal interrupts on the pins.
I'll have to read up a bit before testing if they actually work.

Thanks again,
Steven




On 05/24/2017 08:58 PM, [email protected] wrote:
> Hi Steven,
> 
> Some changes were pushed out last night to Github which may have fixed your 
> issue of not being able to tftpboot.  When I use the CONFIG_TK1_INSECURE 
> config setting, once the device successfully boots I can see 6000d000.gpio 
> under /sys/devices/soc0 however I haven't tested that they actually work.  
> 
> If you aren't using the CONFIG_TK1_INSECURE config, then in addition to 
> configuring the mmios and interrupts in the cmakes file you also need to add 
> them to the linux_pt_irqs struct in 
> projects/vm/components/VM/src/tk1_vmlinux.c.  
> 
> Kind regards,
> Kent.
> 
> ________________________________________
> From: Steven Johnston <[email protected]>
> Sent: Wednesday, May 24, 2017 6:12 AM
> To: Mcleod, Kent (Data61, Kensington NSW); [email protected]
> Subject: Re: [seL4] camkes-arm-vm not registering GPIO?
> 
> Hi Kent,
> 
> Thank you for the direction.  I set CONFIG_TK1_INSECURE in the kernel
> config and rebuilt the TK1 image however I was unable to successfully
> tftpboot.
> 
> Rather than pull in all insecure TK1 devices I specifically added only
> the GPIO MMIO and Interrupts in projects/vm/components/VM/vm_common.camkes:
> 
> .
> .
> .
> #ifdef CONFIG_PLAT_TK1
> 
>     vm.untyped_mmios = [
>             "0x50046000:12", // Interrupt Controller Virtual CPU
> interface (Virtual Machine view)
>             "0x60004000:12", // Interrupt controller registers (ICTLR)
>             "0x6000d000:12", // GPIOS 1-8
>             "0x700b0000:12", // SDMMC-1, SDMMC-2, SDMMC-3, SDMMC-4,
> .
> .
> .
>     vm.irqs =  [27, // INTERRUPT_VGPT (INTERRUPT_PPI_11)
>             53, // INTERRUPT_USB2
>             63, // INTERRUPT_SDMMC4
>             64, // INTERRUPT_GPIO1
>             65, // INTERRUPT_GPIO2
>             66, // INTERRUPT_GPIO3
>             67, // INTERRUPT_GPIO4
>             87, // INTERRUPT_GPIO5
>             119, // INTERRUPT_GPIO6
>             121, // INTERRUPT_GPIO7
>             122, // INTERRUPT_UARTD
>             129, // INTERRUPT_USB3
>             157, // INTERRUPT_GPIO8
> .
> .
> .
> 
> 
> 
> Doing this allows me to tftpboot but still see GPIO devices failing to
> register (and no GPIO devices in /sys).
> 
> 
> Right now my questions are:
> 
> (1) Are you able to successfully enable CONFIG_TK1_INSECURE and boot on
> the TK1?
> 
> (2) Are there more devices/interrupts other than GPIO specific ones that
> need to be pulled into the config for GPIO to function?
> 
> 
> Steven
> 
> 
> 
> 
> On 05/10/17 00:26, [email protected] wrote:
>> Hi Steven,
>>
>> Your problem could be that the GPIO MMIO frame is not being given to the VM. 
>>  The config setting CONFIG_TK1_INSECURE increases the amount of hardware 
>> devices that are
>> passed through to the VM.  Once the GPIO device is accessible in the VM, 
>> Linux should be able to attach its own GPIO driver which will then make it 
>> accessible through sysfs.
>>
>> Currently on TK1 there isn't support for virtualisation of the GPIO hardware 
>> so you can either give Linux access to the hardware frames to manage GPIO 
>> hardware itself, or use a limited seL4 gpio driver in a separate CAmkES 
>> component but this wouldn't be accessible from on top of Linux unless you 
>> created your own virtual device.
>> Hope this helps.
>>
>> Kind regards,
>> Kent
>> ________________________________________
>> From: Devel <[email protected]> on behalf of Steven Johnston 
>> <[email protected]>
>> Sent: Tuesday, May 9, 2017 9:45 AM
>> To: [email protected]
>> Subject: [seL4] camkes-arm-vm not registering GPIO?
>>
>> Hi All,
>>
>> I am playing around with the capabilities of the camkes-arm-vm project
>> pn the Tegra TK1 and and wondering if someone else has come across this
>> issue.  It looks like GPIO functionality is not available in the buildroot.
>>
>> I can confirm the GPIO source is present and is being built:
>>
>> camkes-arm-vm/libs/libplatsupport/rc/plat/tk1/gpio.c
>> camkes-arm-vm/libs/libplatsupport/plat_include/tk1/platsupport/plat/gpio.h
>>
>> [CC] src/plat/tk1/gpio.o
>>
>>
>> The expected sysfs support is not present and looking and the relevant
>> dmesg:
>>
>> # dmesg | grep gpio
>>
>> [    0.057543] gpiochip_add: GPIOs 0..255 (tegra-gpio) failed to register
>> [    1.485061] input: gpio-keys as /devices/soc0/gpio-keys/input/input0
>>
>>
>> Any thoughts on what could be causing GPIO to the failing to register?
>>
>>
>> Steven
>>
>>
>>
>>
>> _______________________________________________
>> Devel mailing list
>> [email protected]
>> https://sel4.systems/lists/listinfo/devel
>>
> 


_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to