x1000: bootloader: add LCD dualboot cleanup for the M3K

Disable LCD interrupts before booting the OF - the OF kernel
hangs at boot if they are enabled.

Change-Id: I4f119818d0243953cdd620e17d9509b4fb16cc28
This commit is contained in:
Aidan MacDonald 2022-03-16 15:35:39 +00:00
parent 90cb0b0ae5
commit 44fbb1a593

View file

@ -145,13 +145,11 @@ void rolo_restart(const unsigned char* source, unsigned char* dest, int length)
void x1000_dualboot_cleanup(void)
{
#ifdef SHANLING_Q1
/* hack for the Q1 since OF kernels don't reset this bit,
* leading to garbled graphics. */
if(!jz_readf(CPM_CLKGR, LCD)) {
jz_writef(LCD_CTRL, BEDN(0));
}
#endif
/* - disable all LCD interrupts since the M3K can't cope with them
* - disable BEDN bit since it creates garbled graphics on the Q1 */
jz_writef(CPM_CLKGR, LCD(0));
jz_writef(LCD_CTRL, BEDN(0), EOFM(0), SOFM(0), IFUM(0), QDM(0));
jz_writef(CPM_CLKGR, LCD(1));
/* clear USB PHY voodoo bits, not all kernels use them */
jz_writef(CPM_OPCR, GATE_USBPHY_CLK(0));