fusee: restore DRAM to 204MHz before starting main cpu on Mariko (closes #1600).
Nintendo's Mariko tables result in trained frequency of 1599999 instead of 1600000.

PCV checks for rate == 1600000 exactly, when doing EMC init.

Thus EMC init does not succeed if we are trained to 1600000.

PCV has a fudge factor of 1000 used in SetEmcDvfsFreq, but this is not used in InitEmcDvfs.

This failure means that PCV cannot change rate back to 204MHz before sleep, and then after
wake extremely degraded performance is observed.

Restoring DRAM to 204MHz before boot causes EMC init to succeed/fixes performance degradation.
1 parent 1f065e3 commit c5edb031fa833012b4d3fa7934564d39aec27bd0
@Michael Scire Michael Scire authored on 30 Aug 2021
Showing 37 changed files
View
Makefile
View
fusee/Makefile
View
fusee/fusee-mtc/Makefile 100644 → 0
View
fusee/fusee-mtc/linker.ld 100644 → 0
View
fusee/fusee-mtc/linker.specs 100644 → 0
View
fusee/fusee-mtc/src/car.c 100644 → 0
View
fusee/fusee-mtc/src/car.h 100644 → 0
View
fusee/fusee-mtc/src/emc.h 100644 → 0
Too large (Show diff)
View
fusee/fusee-mtc/src/fuse.c 100644 → 0
View
fusee/fusee-mtc/src/fuse.h 100644 → 0
View
fusee/fusee-mtc/src/init.c 100644 → 0
View
fusee/fusee-mtc/src/main.c 100644 → 0
View
fusee/fusee-mtc/src/mc.c 100644 → 0
View
fusee/fusee-mtc/src/mc.h 100644 → 0
View
fusee/fusee-mtc/src/mtc.c 100644 → 0
Too large (Show diff)
View
fusee/fusee-mtc/src/mtc.h 100644 → 0
View
fusee/fusee-mtc/src/mtc_b01.c 100644 → 0
Too large (Show diff)
View
fusee/fusee-mtc/src/mtc_b01.h 100644 → 0
View
fusee/fusee-mtc/src/mtc_tables.h 100644 → 0
Too large (Show diff)
View
fusee/fusee-mtc/src/mtc_tables_b01.h 100644 → 0
Too large (Show diff)
View
fusee/fusee-mtc/src/pmc.h 100644 → 0
View
fusee/fusee-mtc/src/stage2.h 100644 → 0
View
fusee/fusee-mtc/src/start.s 100644 → 0
View
fusee/fusee-mtc/src/timers.h 100644 → 0
View
fusee/fusee-mtc/src/utils.c 100644 → 0
View
fusee/fusee-mtc/src/utils.h 100644 → 0
View
fusee/fusee-primary/fusee-primary-main/src/stage2.c
View
fusee/fusee-secondary/Makefile
View
fusee/fusee-secondary/src/car.h
View
fusee/fusee-secondary/src/emc.h
View
fusee/fusee-secondary/src/main.c
View
fusee/fusee-secondary/src/mtc/mtc.c 0 → 100644
Too large (Show diff)
View
fusee/fusee-secondary/src/mtc/mtc.h 0 → 100644
View
fusee/fusee-secondary/src/mtc/mtc_b01.c 0 → 100644
Too large (Show diff)
View
fusee/fusee-secondary/src/mtc/mtc_b01.h 0 → 100644
View
fusee/fusee-secondary/src/mtc/mtc_tables.h 0 → 100644
Too large (Show diff)
View
fusee/fusee-secondary/src/mtc/mtc_tables_b01.h 0 → 100644
Too large (Show diff)