[flash_ctrl] Switch phy arbitration mechanism to prim_arbiter_tree
[flash_ctrl] Switch phy arbitration mechanism to prim_arbiter_tree

This is done a minor refactor PR to harden the arbitration function.

The usage of prim_arbiter_tree is a little awkward here.
The flash is able to support rd/program/erase from the controller, but
only read from the host.

So when arbitrating between the host and the controller, the "ready" signal
is different because for reads, it only cares if the first stage of the
read pipeline is ready, while for other operations we care about whether
the entire flash is idle.

To get around this, we use 'rd_stage_rdy' as the ready signal, since an
idle flash also implies that rd_stage is ready.

Further, since controller operations take longer, there is already an upstream
entity that holds the attribute lines (address, partition, etc) steady, so
there is no additional capturing of this information in the program/erase
handlnig.  This is however not true for read, as that works more in the
traditional valid/ready handshake. Because of this, the arbiter data port is
also not used since after the handshake there is no reason for the attribute
lines to still be held.

Signed-off-by: Timothy Chen <d7b2ae30d8c0f215facd721941273067fd1d14a2@google.com>

lowRISC/opentitan,lowRISC/opentitan,lowRISC/opentitan,lowRISC/opentitan,lowRISC/opentitan,lowRISC/opentitan