Skip to content

(add --unsafe-hold-vio) Preserve VIO rails across applet load? #1157

@i-infra

Description

@i-infra

I have a workflow where I need to preserve the state of the voltage rails while switching applets, in my particular case, to configure a part, and then use the configuration with another applet. There's not enough FPGA gate space to build a combination applet.

Digging into the source, it looks like the current behavior (disable Vio on applet load) is intentional for safety reasons, as referenced in #552 and #96, where outputs all go HIGH at the specified bus output, through a 33o resistor, for the duration of the ~1-2ms FPGA configuration process. With some sensitive parts, this could be an issue, but I have not yet found any hardware that dies fighting ie) 3.3v through 33o (or larger, depending upon external/attached hardware) for a millisecond or two.

Wondering if there's any willingness to entertain an "--unsafe-hold-Vio" flag which would functionally make the paths added in f050f51 conditional (duplicating the path & costing extra space? adding a parameter to fpga_reset?) and route the hold-vio path through a new req->bRequest == USB_REQ_FPGA_CFG_UNSAFE_HOLD_VIO

More docs @ https://gist.github.com/i-infra/ca4ae0ad7f9a0886412f32a06e0a0cba and modded .ihex @ https://gist.github.com/i-infra/44f7266bc714a92900299f067123ce48.

As always, thanks so much @whitequark @marcan etc!! <3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions