We'd plan to use GPIO4 for data transfer(i.MX8P dual core) . Thus we gave a test of the GPIO speed.
M7 part test.
//skipping the iomux setting and pin setting
while (i<100 000 000)
{
//read
GPIO_PinRead(GPIO4,0);
//pulling high
GPIO_PinWrite(GPIO4,18,1);
//pulling low
GPIO_PinWrite(GPIO4,18,0);
i++;
}
It cost 33 s, totally, the speed is far behind the IPG_clk we set, 133Mhz.

As the image show, every high last 65 ns, every repeat last 330 ns.
If the read cost 2 clock loop, the clock time is 30 ns, which is 33Mhz, far behind the 133 hHz in reference Manual.

