summaryrefslogtreecommitdiffstats
path: root/bootloader/tpj1022.c
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2006-08-31 19:19:35 +0000
committerDave Chapman <dave@dchapman.com>2006-08-31 19:19:35 +0000
commit657dcb5165e80b3363b89ca3108356878d4c048e (patch)
tree1f7af6e22ee866dcce37f9d1fa310c26a8bb44b4 /bootloader/tpj1022.c
parent20332bce1d49d7285109564d2e29ee18b0acd54e (diff)
downloadrockbox-657dcb5165e80b3363b89ca3108356878d4c048e.tar.gz
rockbox-657dcb5165e80b3363b89ca3108356878d4c048e.tar.bz2
rockbox-657dcb5165e80b3363b89ca3108356878d4c048e.zip
Initial commit of work for port to the Tatung Elio TPJ-1022 - yet another PortalPlayer PP5020 target.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10828 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'bootloader/tpj1022.c')
-rw-r--r--bootloader/tpj1022.c135
1 files changed, 135 insertions, 0 deletions
diff --git a/bootloader/tpj1022.c b/bootloader/tpj1022.c
new file mode 100644
index 0000000000..0088f73690
--- /dev/null
+++ b/bootloader/tpj1022.c
@@ -0,0 +1,135 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2006 by Dave Chapman
+ *
+ * Based on Rockbox iriver bootloader by Linus Nielsen Feltzing
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "cpu.h"
+#include "system.h"
+#include "lcd.h"
+#include "kernel.h"
+#include "thread.h"
+#include "ata.h"
+#include "fat.h"
+#include "disk.h"
+#include "font.h"
+#include "adc.h"
+#include "backlight.h"
+#include "panic.h"
+#include "power.h"
+#include "file.h"
+
+char version[] = APPSVERSION;
+
+int line=0;
+
+void* main(void)
+{
+ int i;
+ int rc;
+ int fd;
+ char buffer[80];
+ unsigned char* framebuffer = (unsigned char*)0x11e00000;
+
+#if 0
+ lcd_init();
+ font_init();
+
+ lcd_puts(0, line++ ,"Hello World!");
+ lcd_update();
+#endif
+
+ i=ata_init();
+
+ disk_init();
+ rc = disk_mount_all();
+
+#if 0
+ /* Dump the flash */
+ fd=open("/flash.bin",O_CREAT|O_RDWR);
+ write(fd,(char*)0,1024*1024);
+ close(fd);
+#endif
+
+#if 1
+ /* Dump what may be the framebuffer */
+ fd=open("/framebuffer.bin",O_CREAT|O_RDWR|O_TRUNC);
+ write(fd,framebuffer,220*176*4);
+ close(fd);
+#endif
+
+
+ fd=open("/gpio.txt",O_CREAT|O_RDWR|O_TRUNC);
+ unsigned int gpio_a = GPIOA_INPUT_VAL;
+ unsigned int gpio_b = GPIOB_INPUT_VAL;
+ unsigned int gpio_c = GPIOC_INPUT_VAL;
+ unsigned int gpio_d = GPIOD_INPUT_VAL;
+ unsigned int gpio_e = GPIOE_INPUT_VAL;
+ unsigned int gpio_f = GPIOF_INPUT_VAL;
+ unsigned int gpio_g = GPIOG_INPUT_VAL;
+ unsigned int gpio_h = GPIOH_INPUT_VAL;
+ unsigned int gpio_i = GPIOI_INPUT_VAL;
+ unsigned int gpio_j = GPIOJ_INPUT_VAL;
+ unsigned int gpio_k = GPIOK_INPUT_VAL;
+ unsigned int gpio_l = GPIOL_INPUT_VAL;
+
+ snprintf(buffer, sizeof(buffer), "%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",gpio_a,gpio_b,gpio_c,gpio_d,gpio_e,gpio_f,gpio_g,gpio_h,gpio_i,gpio_j,gpio_k,gpio_l);
+ write(fd,buffer,strlen(buffer)+1);
+ close(fd);
+
+ /* Wait for FFWD button to be pressed */
+ while((GPIOA_INPUT_VAL & 0x04) != 0);
+
+
+ /* Now reboot */
+ DEV_RS |= 0x4;
+
+ return 0;
+}
+
+/* These functions are present in the firmware library, but we reimplement
+ them here because the originals do a lot more than we want */
+
+void reset_poweroff_timer(void)
+{
+}
+
+int dbg_ports(void)
+{
+ return 0;
+}
+
+void mpeg_stop(void)
+{
+}
+
+void usb_acknowledge(void)
+{
+}
+
+void usb_wait_for_disconnect(void)
+{
+}
+
+void sys_poweroff(void)
+{
+}