Petalinux on Z1 with I2C, SPI, UART, XADC, GPIO

Hello all, I’m building a project with a Pynq Z1.This is more of a design question
rather than problem solving, but I can’t find this information anywhere else.
I need to have access to GPIO, I2C, UART, SPI, XADC and the micro SD card all from the Ubuntu shell. So I need these to be in /dev. I’m not using Jupyter notebooks. This will be running on Pynq v2.6. The development environment is Xilinx Vivado 2020.1 and Vitis 2020.1 in Windows 10. Petalinux 2020.1 is running in Ubuntu 18.04.4.

From what I understand I will have to modify the base overlay to instantiate the ports. There are some issues though.

  1. From the Petalinux documentation, a non-volatile storage medium is required, either QSPI Flash, JTAG, or an SD Card Host controller. However, there does not appear to be a free available QSPI Flash or SD Card Host controller in Vivado. Also, this is going to be a standalone project for flight, so JTAG is not an option. I notice in the base overlay that there does not appear to be an SD card host controller as well. The QSPI Flash, if available, will probably be too small to boot from.

  2. I’d like to have these ports available from the Arduino ports on the Z1, however those ports are reserved in the base overly by the Arduino IOP. Would those Arduino ports be available in the PS? Would I be able to see them in /dev? Based on what I have read, they will only be visible to Microblaze and I would only be able to access them in a Jupyter notebook.

  3. Assuming that I can’t access the Arduino ports in PS, would I have to remove the Arduino IOP to access those ports? I’m not sure if there is a Microblaze IP in the base overlay as well, but I’m assuming that it should be removed since it won’t be used.

Thanks in advance.