The 4GB memory chips work fine in standard 2GB software mode on all prototype CPU boards I have tested so far.
Only trying to make 4GB available in U-Boot (different EMIF config) and use it in kernel (LPAE enabled) raises issues in kernel.
The kernel boots, shows 4GB being available but runs instable.
Which might either be
- pure software (imprecise memory controller config, wrong virtual memory management, wrong cache management) or
- hardware (more noise, more power demand, more whatever, as soon as the second bank inside the 4GB chip becomes active).
Further tests to find out are planned but not yet done.
So turning 4GB off and using 2GB is just using the standard 2GB U-Boot and Kernel. No need for a hw switch.