How to set the gpio on the boot for VF61?

Hello,

I want to set the following PIN on the boot of board VF61:

  • sodimm pin 23 Output 0
  • sodimm pin 25 Output 0
  • sodimm pin 30 Output 1
  • sodimm pin 19 Output 1
  • sodimm pin 37 Output 0

I used the following commads (copied from the following link: GPIO config block settings ):

>set gpio.bootconf = "[colibri_pin_23] dir=out lvl=0   [colibri_pin_25] dir=out lvl=0  [colibri_pin_30] dir=out lvl=1 [colibri_pin_19] dir=out lvl=1  [colibri_pin_37] dir=out lvl=0"
>save gpio

In the set gpio I seems the correct gpio see the image 1,

[upload|pfV8N/MPZVedgvpsOoKm8udG/2k=]

but when I restart the board my settings are not stored (see image2)

[upload|8iqrr+a/Q/kqH95+xcra2DIGXnU=]

Is it right?
What Should I do to save them?

Best regards
Matteo

Dear @Matte

I assume you are seeing issue #33213: “Bootloader Configuration gpio.bootconf is Truncated”.
This issue is fixed in Image release V1.6b2 and later.

Unfortunately your screenshots don’t show the full bootlog, so I cannot see what bootloader version you are using.
I recommend you update OS and bootloader to V1.6b2, then the issue should be solved.

Regards, Andy

Dear @andy.tx,
I update the OS and bootloader to V.1.62.
I want to set
sodimm pin 19 GPIO Output 1
because I use the following command:

> set gpio.bootconf = "[colibripin_19] dir=out lvl=1"
 >save gpio

but when I checked the value using the oscilloscope it doesn’t changed.
Best regards
Matteo

Dear @Matte
I verified your setting here, it works perfectly fine, pin 19 is configured as output, 3.3V.

One point you might have missed: Pin 19 is used by the UARTC driver, which configures it as an input (UARTC_RX) during boot.
To avoid this, you need to disable the UARTC driver in the registry:

[HKLM\Drivers\BuiltIn\UARTC]
Dll="_vybrid_serial.dll"

Don’t forget to save the registry.

Regards, Andy

Dear @andy.tx,
thank you for your support, now the pin 19 is working right.
I have an other questions :slight_smile:

I need to set during the boot also these pin:

  • SODIMM PIN 25 as GPIO output 0
  • SODIMM PIN 30 as GPIO Output 1

I used the same commands:

> set gpio.bootconf = "[colibripin_25] dir=out lvl=0   [colibripin_30] dir=out lvl=1 [colibripin_19] dir=out lvl=1"
> save gpio

but they are not stored how I’d like.
I suppose that I need to set some other registers in order to get my settings.

Could you help me?

Best regards
Matteo

Dear @Matte

There’s two more things you need to take into account:

  • Not all CPU I/Os are GPIOs by default, therefore you also need to define the alternate function
  • SODIMM 25 is used as CTS signal of UARTA by default. You need to tell the UARTA driver to not use the pin.

Conclusion

You need the following registry settings:

[HKLM\Drivers\BuiltIn\UARTA]
CTSPIN=0xffffffff
CTSAF=0xffffffff
[HKLM\Drivers\BuiltIn\UARTC]
Dll="_vybrid_serial.dll"

Your bootloader config string should be set as follows:

>set gpio.bootconf "[colibripin_19] altfn=-1 dir=out lvl=1 [colibripin_25] altfn=-1 dir=out lvl=0 [colibripin_30] altfn=-1 dir=out lvl=1"
>save gpio

This should be sufficient to configure the 3 pins you need.

Regards, Andy

Dear andy.tx,
thank you for your support and your explanation.
Now my board is working correctly.
Best regards
Matteo