summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/export/config.h3
-rw-r--r--firmware/target/mips/ingenic_x1000/boot-x1000.c13
2 files changed, 12 insertions, 4 deletions
diff --git a/firmware/export/config.h b/firmware/export/config.h
index 6465bdcb0e..a640a47b9c 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -926,6 +926,9 @@ Lyre prototype 1 */
926#define INCLUDE_TIMEOUT_API 926#define INCLUDE_TIMEOUT_API
927#define USB_DRIVER_CLOSE 927#define USB_DRIVER_CLOSE
928#endif 928#endif
929#if CONFIG_CPU == X1000
930#define USB_DRIVER_CLOSE
931#endif
929#endif 932#endif
930 933
931#else /* !BOOTLOADER */ 934#else /* !BOOTLOADER */
diff --git a/firmware/target/mips/ingenic_x1000/boot-x1000.c b/firmware/target/mips/ingenic_x1000/boot-x1000.c
index c8e97b4d6a..f59ec5c4ea 100644
--- a/firmware/target/mips/ingenic_x1000/boot-x1000.c
+++ b/firmware/target/mips/ingenic_x1000/boot-x1000.c
@@ -20,6 +20,7 @@
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22#include "system.h" 22#include "system.h"
23#include "usb.h"
23#include "boot-x1000.h" 24#include "boot-x1000.h"
24#include "nand-x1000.h" 25#include "nand-x1000.h"
25#include "gpio-x1000.h" 26#include "gpio-x1000.h"
@@ -113,6 +114,14 @@ void x1000_boot_linux(const void* source, size_t length,
113{ 114{
114 size_t args_len = strlen(args); 115 size_t args_len = strlen(args);
115 116
117 /* Shut off USB to avoid "irq 21 nobody cared" error */
118 usb_close();
119 usb_enable(false);
120
121 /* clear USB PHY voodoo bits, not all kernels use them */
122 jz_writef(CPM_OPCR, GATE_USBPHY_CLK(0));
123 jz_writef(CPM_USBCDR, PHY_GATE(0));
124
116 disable_irq(); 125 disable_irq();
117 126
118 /* --- Beyond this point, do not call into DRAM --- */ 127 /* --- Beyond this point, do not call into DRAM --- */
@@ -151,10 +160,6 @@ void x1000_dualboot_cleanup(void)
151 jz_writef(LCD_CTRL, BEDN(0), EOFM(0), SOFM(0), IFUM(0), QDM(0)); 160 jz_writef(LCD_CTRL, BEDN(0), EOFM(0), SOFM(0), IFUM(0), QDM(0));
152 jz_writef(CPM_CLKGR, LCD(1)); 161 jz_writef(CPM_CLKGR, LCD(1));
153 162
154 /* clear USB PHY voodoo bits, not all kernels use them */
155 jz_writef(CPM_OPCR, GATE_USBPHY_CLK(0));
156 jz_writef(CPM_USBCDR, PHY_GATE(0));
157
158#if defined(FIIO_M3K) || defined(EROS_QN) 163#if defined(FIIO_M3K) || defined(EROS_QN)
159 /* 164 /*
160 * Need to bring up MPLL before booting Linux 165 * Need to bring up MPLL before booting Linux