summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2018-12-29 10:37:47 -0500
committerSolomon Peachy <pizza@shaftnet.org>2019-01-02 05:01:50 +0100
commit7e7ca0c85847e0b7eff094710cc5167df4e852da (patch)
tree74d8535926085b87e627f48cd9bae1309abffe51 /firmware/target
parent35930ddb8d0c704abeb7619d9b6fc59b9dd6b909 (diff)
Fix Xduoo X3 bootloader build, and silence all warnings.
Also enable USB bootloader mode Change-Id: I73224c2e694b9941993c89a114b48d2a907e0dfb
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/mips/ingenic_jz47xx/debug-jz4760.c103
-rw-r--r--firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c4
2 files changed, 106 insertions, 1 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/debug-jz4760.c b/firmware/target/mips/ingenic_jz47xx/debug-jz4760.c
index 848fa5343e..ffd9faaf60 100644
--- a/firmware/target/mips/ingenic_jz47xx/debug-jz4760.c
+++ b/firmware/target/mips/ingenic_jz47xx/debug-jz4760.c
@@ -169,3 +169,106 @@ bool dbg_hw_info(void)
}
return true;
}
+
+#define CFG_UART_BASE UART1_BASE /* Base of the UART channel */
+
+void serial_putc (const char c)
+{
+ volatile u8 *uart_lsr = (volatile u8 *)(CFG_UART_BASE + OFF_LSR);
+ volatile u8 *uart_tdr = (volatile u8 *)(CFG_UART_BASE + OFF_TDR);
+
+ if (c == '\n') serial_putc ('\r');
+
+ /* Wait for fifo to shift out some bytes */
+ while ( !((*uart_lsr & (UARTLSR_TDRQ | UARTLSR_TEMT)) == 0x60) );
+
+ *uart_tdr = (u8)c;
+}
+
+void serial_puts (const char *s)
+{
+ while (*s) {
+ serial_putc (*s++);
+ }
+}
+
+void serial_putsf(const char *format, ...)
+{
+ static char printfbuf[256];
+ int len;
+ unsigned char *ptr;
+ va_list ap;
+ va_start(ap, format);
+
+ ptr = printfbuf;
+ len = vsnprintf(ptr, sizeof(printfbuf), format, ap);
+ va_end(ap);
+ (void)len;
+
+ serial_puts(ptr);
+ serial_putc('\n');
+}
+
+void serial_put_hex(unsigned int d)
+{
+ char c[12];
+ int i;
+ for(i = 0; i < 8;i++)
+ {
+ c[i] = (d >> ((7 - i) * 4)) & 0xf;
+ if(c[i] < 10)
+ c[i] += 0x30;
+ else
+ c[i] += (0x41 - 10);
+ }
+ c[8] = '\n';
+ c[9] = 0;
+ serial_puts(c);
+
+}
+void serial_put_dec(unsigned int d)
+{
+ char c[16];
+ int i;
+ int j = 0;
+ int x = d;
+
+ while (x /= 10)
+ j++;
+
+ for (i = j; i >= 0; i--) {
+ c[i] = d % 10;
+ c[i] += 0x30;
+ d /= 10;
+ }
+ c[j + 1] = '\n';
+ c[j + 2] = 0;
+ serial_puts(c);
+}
+
+void serial_dump_data(unsigned char* data, int len)
+{
+ int i;
+ for(i=0; i<len; i++)
+ {
+ unsigned char a = ((*data)>>4) & 0xf;
+ if(a < 10)
+ a += 0x30;
+ else
+ a += (0x41 - 10);
+ serial_putc( a );
+
+ a = (*data) & 0xf;
+ if(a < 10)
+ a += 0x30;
+ else
+ a += (0x41 - 10);
+ serial_putc( a );
+
+ serial_putc( ' ' );
+
+ data++;
+ }
+
+ serial_putc( '\n' );
+}
diff --git a/firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c b/firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c
index 16d5aab782..be02167a5d 100644
--- a/firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c
+++ b/firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c
@@ -18,7 +18,7 @@
* KIND, either express or implied.
*
****************************************************************************/
-
+
#include "config.h"
#include "system.h"
#include "cpu.h"
@@ -86,11 +86,13 @@ bool button_hold(void)
int button_read_device(void)
{
+#ifndef BOOTLOADER
static bool hold_button = false;
bool hold_button_old;
hold_button_old = hold_button;
hold_button = (__gpio_get_pin(PIN_BTN_HOLD) ? true : false);
+#endif
int btn = BUTTON_NONE;
bool gpio_btn = (__gpio_get_pin(PIN_BTN_POWER) ? false : true);