Making the switch operational consists minimally of:
- enable SATA PLL and ethernet clocks
- configure pinmux and GMII_SEL
- configure MACCONTROL for both ports
- write 0xC0000000 to ALE_CONTROL to clear and enable the ALE
- write 0x3 to ALE_PORTCTL1 and ALE_PORTCTL2 to set both ports to forwarding state
I'm currently connected to the internet through a dm8148 whose switch was enabled in this way (and no OS running) so I know this procedure gets the switch operational.
Of course it no doubt violates various standards since a well-behaved switch is supposed to do Spanning Tree and such before setting a port to forwarding state, but in your case where one port is occupied by a single fixed device there is little danger of a bridge loop so I don't think it will cause any issues.
I can't comment on the hardware side of your question since I have no experience with cross-connecting ethernet directly between chips, my board simply has two PHYs connected via RGMII.