diff options
Diffstat (limited to 'bootloader/tpj1022.c')
-rw-r--r-- | bootloader/tpj1022.c | 135 |
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) +{ +} |