diff options
-rw-r--r-- | firmware/export/config.h | 3 | ||||
-rw-r--r-- | firmware/target/mips/ingenic_x1000/boot-x1000.c | 13 |
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 |