bios: parse freq ranges and timing id into ramcfg struct

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
bios: parse another large chunk of random memory config data

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
nv50/display: Set VBLANK time in modeset script

Solves blinking on reclocking memory. The value set is an underestimate, but with non-reduced vblanking this should give us plenty of time

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
fb/gddr3: Generate MR values
fb/ramnv50: Store the number of partitions in the designated fields
fb/ramfuc: Support strided regs
fb/ramnva3: Per-partition regs
pwr/memx: preserve command order when disabling/enabling FB
fb/ramnva3: Use ram->base structs instead of local structs

This will ease the use of generic timing and MR generation bits later
clock/nva3: Allow user reclocking
fb/ramnva3: WIP link training unit

XXX: Multiple partitions
fb/ramnva3: Ressurect timing calculation code
fb/ramnva3: WIP Reclocking script for DDR3
WIP train external hook
fb/ramnva3: WIP Reclocking script for DDR2
fb/ramnva3: Initialise PART_PM_SEL
pwr/fuc: WIP mimic blob by adding read before waiting status

This could be a workaround for stale values... see if it helps stability
clock/nva3: Stop CTXPROG
fb/ramnva3: WIP Reclocking script for GDDR3
DROP: regenerate microcode