diff options
author | Daniel Stenberg <daniel@haxx.se> | 2006-08-01 22:28:14 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2006-08-01 22:28:14 +0000 |
commit | 0fc30d117412f2cbd8e00a043e0c901345125d31 (patch) | |
tree | 1cba88b9ed482cef7ca2bba3a2fc059a40221d43 /firmware | |
parent | 97cf946e4df08852b7ce17ecb7fe8425df67dc3f (diff) |
added mostly dummy changes to allow building of a Sansa e200 bootloader
without functionality
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10399 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/FILES | 1 | ||||
-rw-r--r-- | firmware/SOURCES | 11 | ||||
-rw-r--r-- | firmware/drivers/serial.c | 3 | ||||
-rw-r--r-- | firmware/export/config-e200.h | 121 | ||||
-rw-r--r-- | firmware/export/config-h10.h | 120 | ||||
-rw-r--r-- | firmware/export/config.h | 9 | ||||
-rw-r--r-- | firmware/export/cpu.h | 3 | ||||
-rw-r--r-- | firmware/export/pp5024.h | 26 | ||||
-rw-r--r-- | firmware/kernel.c | 2 | ||||
-rw-r--r-- | firmware/pcm_playback.c | 3 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/sansa-e200/ata-target.h | 1 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/sansa-e200/ata.c | 198 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/sansa-e200/backlight-target.h | 1 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/sansa-e200/button-target.h | 7 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/sansa-e200/lcd.c | 15 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/sansa-e200/usb-target.h | 1 |
16 files changed, 517 insertions, 5 deletions
diff --git a/firmware/FILES b/firmware/FILES index d12ba2dace..a99deba0b4 100644 --- a/firmware/FILES +++ b/firmware/FILES @@ -16,3 +16,4 @@ target/arm/*.[chS] target/sh/*.[chS] target/coldfire/*.[chS] target/coldfire/iaudio/x5/*.[chS] +target/arm/sandisk/sansa-e200/*.[chS] diff --git a/firmware/SOURCES b/firmware/SOURCES index 601fcab3a2..a4f35a2d6f 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -96,12 +96,12 @@ drivers/lcd-ipodvideo.c #if CONFIG_LCD==LCD_H300 drivers/lcd-h300.c #endif -#ifndef IAUDIO_X5 +#ifndef TARGET_TREE drivers/power.c #endif drivers/led.c #ifndef SIMULATOR -#ifndef IAUDIO_X5 +#ifndef TARGET_TREE drivers/adc.c #endif #ifdef HAVE_MMC @@ -110,9 +110,11 @@ drivers/ata_mmc.c #ifdef HAVE_FLASH_DISK drivers/ata_flash.c #else +#ifndef SANSA_E200 drivers/ata.c #endif #endif +#endif drivers/button.c drivers/dac.c drivers/fat.c @@ -217,6 +219,11 @@ drivers/isp1362.c drivers/m5636.c #endif +#ifdef SANSA_E200 +target/arm/sandisk/sansa-e200/ata.c +target/arm/sandisk/sansa-e200/lcd.c +#endif + #ifdef IAUDIO_X5 target/coldfire/iaudio/x5/power-x5.c #ifndef SIMULATOR diff --git a/firmware/drivers/serial.c b/firmware/drivers/serial.c index 8479da52f8..f1cee96d51 100644 --- a/firmware/drivers/serial.c +++ b/firmware/drivers/serial.c @@ -30,7 +30,8 @@ #if (CONFIG_CPU != MCF5249) && (CONFIG_CPU != TCC730) && \ (CONFIG_CPU != PP5020) && (CONFIG_CPU != PNX0101) && \ - (CONFIG_CPU != PP5002) && (CONFIG_CPU != MCF5250) + (CONFIG_CPU != PP5002) && (CONFIG_CPU != MCF5250) && \ + (CONFIG_CPU != PP5024) /* FIX: this doesn't work on iRiver or Gmini or iPod yet */ /* iFP7xx has no remote */ diff --git a/firmware/export/config-e200.h b/firmware/export/config-e200.h new file mode 100644 index 0000000000..3793a716ec --- /dev/null +++ b/firmware/export/config-e200.h @@ -0,0 +1,121 @@ +/* + * This config file is for the Sandisk Sansa e200 + */ +#define TARGET_TREE /* this target is using the target tree system */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 12 + +/* define this if you have recording possibility */ +/*#define HAVE_RECORDING 1*/ /* TODO: add support for this */ + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP 1 + +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR 1 + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* LCD dimensions */ +#define LCD_WIDTH 176 +#define LCD_HEIGHT 220 +#define LCD_DEPTH 16 /* 65536 colours */ +#define LCD_PIXELFORMAT RGB565SWAPPED /* rgb565 byte-swapped */ + +/* #define IRAM_LCDFRAMEBUFFER IDATA_ATTR *//* put the lcd frame buffer in IRAM */ + +#define CONFIG_KEYPAD SANSA_E200_PAD + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +/* define this if you have a real-time clock */ +#ifndef BOOTLOADER +#define CONFIG_RTC RTC_E8564 /* TODO: figure this out */ +#endif + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x80000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +/* Define this if you have the WM8975 audio codec */ +#define HAVE_WM8731 + +#define AB_REPEAT_ENABLE 1 + +/* FM Tuner */ +/*#define CONFIG_TUNER TEA5767 +#define CONFIG_TUNER_XTAL 32768 *//* TODO: what is this? */ + +/* Define this for LCD backlight available */ +#define CONFIG_BACKLIGHT BL_H10 /* TODO: figure this out, probably not necessary + because of 'target' stuff */ + +#define BATTERY_CAPACITY_DEFAULT 700 /* default battery capacity + TODO: check this, probably different + for different models too */ + +#ifndef SIMULATOR + +/* Define this if you have a PortalPlayer PP5024 */ +#define CONFIG_CPU PP5024 + +/* Define this if you want to use the PP5020 i2c interface */ +#define CONFIG_I2C I2C_PP5020 + +/* Type of mobile power */ +#define CONFIG_BATTERY BATT_LPCS355385 +#define BATTERY_CAPACITY_MIN 1500 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 1600 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 10 /* capacity increment */ +#define BATTERY_TYPES_COUNT 1 /* only one type */ +#define BATTERY_SCALE_FACTOR 5865 + +/* Hardware controlled charging? FIXME */ +//#define CONFIG_CHARGING CHARGING_SIMPLE + +/* define this if the hardware can be powered off while charging */ +/* TODO: should this be set for the H10? */ +//#define HAVE_POWEROFF_WHILE_CHARGING + +/* The start address index for ROM builds */ +#define ROM_START 0x00000000 + +/* Define this to the CPU frequency */ +/* TODO: this is probably wrong */ +#define CPU_FREQ 11289600 + +/* Type of LCD TODO: hopefully the same as the x5 but check this*/ +#define CONFIG_LCD LCD_X5 + +/* Offset ( in the firmware file's header ) to the file length */ +#define FIRMWARE_OFFSET_FILE_LENGTH 0 + +/* Offset ( in the firmware file's header ) to the file CRC */ +#define FIRMWARE_OFFSET_FILE_CRC 0 + +/* Offset ( in the firmware file's header ) to the real data */ +#define FIRMWARE_OFFSET_FILE_DATA 8 + +/* #define USB_IPODSTYLE */ + +/* define this if the unit can be powered or charged via USB */ +#define HAVE_USB_POWER + +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +/* Define this if you have adjustable CPU frequency */ +/*#define HAVE_ADJUSTABLE_CPU_FREQ Let's say we don't for now*/ + +#define BOOTFILE_EXT "e200" +#define BOOTFILE "rockbox." BOOTFILE_EXT + +#endif diff --git a/firmware/export/config-h10.h b/firmware/export/config-h10.h new file mode 100644 index 0000000000..470ff6b4fa --- /dev/null +++ b/firmware/export/config-h10.h @@ -0,0 +1,120 @@ +/* + * This config file is for the iriver H10 + */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 11 + +/* define this if you have recording possibility */ +/*#define HAVE_RECORDING 1*/ /* TODO: add support for this */ + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP 1 + +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR 1 + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* LCD dimensions */ +#define LCD_WIDTH 160 +#define LCD_HEIGHT 128 +#define LCD_DEPTH 16 /* 65536 colours */ +#define LCD_PIXELFORMAT RGB565SWAPPED /* rgb565 byte-swapped */ + +/* #define IRAM_LCDFRAMEBUFFER IDATA_ATTR *//* put the lcd frame buffer in IRAM */ + +#define CONFIG_KEYPAD IRIVER_H10_PAD + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +/* define this if you have a real-time clock */ +#ifndef BOOTLOADER +#define CONFIG_RTC RTC_E8564 /* TODO: figure this out */ +#endif + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x80000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +/* Define this if you have the WM8975 audio codec */ +#define HAVE_WM8731 + +#define AB_REPEAT_ENABLE 1 + +/* FM Tuner */ +/*#define CONFIG_TUNER TEA5767 +#define CONFIG_TUNER_XTAL 32768 *//* TODO: what is this? */ + +/* Define this for LCD backlight available */ +#define CONFIG_BACKLIGHT BL_H10 /* TODO: figure this out, probably not necessary + because of 'target' stuff */ + +#define BATTERY_CAPACITY_DEFAULT 700 /* default battery capacity + TODO: check this, probably different + for different models too */ + +#ifndef SIMULATOR + +/* Define this if you have a PortalPlayer PP5020 */ +#define CONFIG_CPU PP5020 + +/* Define this if you want to use the PP5020 i2c interface */ +#define CONFIG_I2C I2C_PP5020 + +/* Type of mobile power */ +#define CONFIG_BATTERY BATT_LPCS355385 +#define BATTERY_CAPACITY_MIN 1500 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 1600 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 10 /* capacity increment */ +#define BATTERY_TYPES_COUNT 1 /* only one type */ +#define BATTERY_SCALE_FACTOR 5865 + +/* Hardware controlled charging? FIXME */ +//#define CONFIG_CHARGING CHARGING_SIMPLE + +/* define this if the hardware can be powered off while charging */ +/* TODO: should this be set for the H10? */ +//#define HAVE_POWEROFF_WHILE_CHARGING + +/* The start address index for ROM builds */ +#define ROM_START 0x00000000 + +/* Define this to the CPU frequency */ +/* TODO: this is probably wrong */ +#define CPU_FREQ 11289600 + +/* Type of LCD TODO: hopefully the same as the x5 but check this*/ +#define CONFIG_LCD LCD_X5 + +/* Offset ( in the firmware file's header ) to the file length */ +#define FIRMWARE_OFFSET_FILE_LENGTH 0 + +/* Offset ( in the firmware file's header ) to the file CRC */ +#define FIRMWARE_OFFSET_FILE_CRC 0 + +/* Offset ( in the firmware file's header ) to the real data */ +#define FIRMWARE_OFFSET_FILE_DATA 8 + +/* #define USB_IPODSTYLE */ + +/* define this if the unit can be powered or charged via USB */ +#define HAVE_USB_POWER + +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +/* Define this if you have adjustable CPU frequency */ +#define HAVE_ADJUSTABLE_CPU_FREQ + +#define BOOTFILE_EXT "h10" +#define BOOTFILE "rockbox." BOOTFILE_EXT + +#endif diff --git a/firmware/export/config.h b/firmware/export/config.h index 684353e499..9b3945640e 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -56,6 +56,8 @@ #define IPOD_3G_PAD 8 #define IRIVER_IFP7XX_PAD 9 #define GIGABEAT_PAD 10 +#define IRIVER_H10_PAD 11 +#define SANSA_E200_PAD 12 /* CONFIG_REMOTE_KEYPAD */ #define H100_REMOTE 1 @@ -67,6 +69,7 @@ #define BATT_4AA_NIMH 1500 #define BATT_3AAA 1000 /* Ondio */ #define BATT_LIPOL1300 1300 /* the type used in iRiver h1x0 models */ +#define BATT_LPCS355385 1550 /* iriver h10 - SKC LPCS355385 */ /* CONFIG_CHARGING */ #define CHARGING_SIMPLE 1 /* Simple, hardware controlled charging */ @@ -182,6 +185,10 @@ #include "config-ipodmini.h" #elif defined(IPOD_MINI2G) #include "config-ipodmini2g.h" +#elif defined(IRIVER_H10) +#include "config-h10.h" +#elif defined(SANSA_E200) +#include "config-e200.h" #else /* no known platform */ #endif @@ -203,7 +210,7 @@ #endif /* define for all cpus from ARM family */ -#if (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020) || (CONFIG_CPU == PNX0101) || (CONFIG_CPU == S3C2440) +#if (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020) || (CONFIG_CPU == PNX0101) || (CONFIG_CPU == S3C2440) || (CONFIG_CPU == PP5024) #define CPU_ARM #endif diff --git a/firmware/export/cpu.h b/firmware/export/cpu.h index 4c33ac96f4..93b66aac52 100644 --- a/firmware/export/cpu.h +++ b/firmware/export/cpu.h @@ -36,6 +36,9 @@ #if CONFIG_CPU == PP5002 #include "pp5002.h" #endif +#if CONFIG_CPU == PP5024 +#include "pp5024.h" +#endif #if CONFIG_CPU == PNX0101 #include "pnx0101.h" #endif diff --git a/firmware/export/pp5024.h b/firmware/export/pp5024.h new file mode 100644 index 0000000000..3ed3d5dade --- /dev/null +++ b/firmware/export/pp5024.h @@ -0,0 +1,26 @@ +#ifndef __PP5024_H__ +#define __PP5024_H__ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 by Daniel Stenberg + * + * 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. + * + ****************************************************************************/ + +/* We believe is this quite similar to the 5020 and for how we just use that + completely */ +#include "pp5020.h" + +#endif diff --git a/firmware/kernel.c b/firmware/kernel.c index c5edacabec..c931a1db72 100644 --- a/firmware/kernel.c +++ b/firmware/kernel.c @@ -344,7 +344,7 @@ void tick_start(unsigned int interval_in_ms) IMR0 |= (1<<2); } -#elif (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020) +#elif (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020) || (CONFIG_CPU==PP5024) #ifndef BOOTLOADER void TIMER1(void) diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c index 67e8b933ef..f7a2de52c2 100644 --- a/firmware/pcm_playback.c +++ b/firmware/pcm_playback.c @@ -248,6 +248,8 @@ void pcm_init(void) #define FIFO_FREE_COUNT ((IISFIFO_CFG & 0x3f0000) >> 16) #elif CONFIG_CPU == PP5002 #define FIFO_FREE_COUNT ((IISFIFO_CFG & 0x7800000) >> 23) +#elif CONFIG_CPU == PP5024 +#define FIFO_FREE_COUNT 4 /* TODO: make this sensible */ #endif static int pcm_freq = 44100; /* 44.1 is default */ @@ -268,6 +270,7 @@ static void dma_start(const void *addr, size_t size) /* setup I2S interrupt for FIQ */ outl(inl(0x6000402c) | I2S_MASK, 0x6000402c); outl(I2S_MASK, 0x60004024); +#elif CONFIG_CPU == PP5024 #else /* setup I2S interrupt for FIQ */ outl(inl(0xcf00102c) | DMA_OUT_MASK, 0xcf00102c); diff --git a/firmware/target/arm/sandisk/sansa-e200/ata-target.h b/firmware/target/arm/sandisk/sansa-e200/ata-target.h new file mode 100644 index 0000000000..67a01ed518 --- /dev/null +++ b/firmware/target/arm/sandisk/sansa-e200/ata-target.h @@ -0,0 +1 @@ +/* nothing here yet */ diff --git a/firmware/target/arm/sandisk/sansa-e200/ata.c b/firmware/target/arm/sandisk/sansa-e200/ata.c new file mode 100644 index 0000000000..0c37753c53 --- /dev/null +++ b/firmware/target/arm/sandisk/sansa-e200/ata.c @@ -0,0 +1,198 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 Daniel Stenberg + * + * 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 "ata.h" +#include <stdbool.h> +#include <string.h> + +#define SECTOR_SIZE (512) + +static unsigned short identify_info[SECTOR_SIZE]; +int ata_spinup_time = 0; +long last_disk_activity = -1; + +void flash_select_chip(int no, int sel) +{ + +} + +unsigned char flash_read_data(void) +{ + +} + +void flash_write_data(unsigned char data) +{ + +} + +void flash_write_cmd(unsigned char cmd) +{ + +} + +void flash_write_addr(unsigned char addr) +{ + +} + +void flash_wait_ready(void) +{ + +} + +int flash_map_sector(int sector, int* chip, int* chip_sector) +{ + +} + +int flash_read_id(int no) +{ + +} + +int flash_read_sector(int sector, unsigned char* buf, + unsigned char* oob) +{ + +} + +int flash_read_sector_oob(int sector, unsigned char* oob) +{ + +} + +static int flash_get_n_segments(void) +{ + +} + +static int flash_get_n_phblocks(void) +{ + +} + +static int flash_get_n_sectors_in_block(void) +{ + +} + +static int flash_phblock_to_sector(int segment, int block) +{ + +} + +static int flash_is_bad_block(unsigned char* oob) +{ + +} + +int flash_disk_scan(void) +{ + +} + +int flash_disk_find_block(int block) +{ + +} + +int flash_disk_read_sectors(unsigned long start, + int count, + void* buf) +{ + +} + +int ata_read_sectors(IF_MV2(int drive,) + unsigned long start, + int incount, + void* inbuf) +{ + +} + +int ata_write_sectors(IF_MV2(int drive,) + unsigned long start, + int count, + const void* buf) +{ + (void)start; + (void)count; + (void)buf; + return -1; +} + +/* schedule a single sector write, executed with the the next spinup + (volume 0 only, used for config sector) */ +extern void ata_delayed_write(unsigned long sector, const void* buf) +{ + (void)sector; + (void)buf; +} + +/* write the delayed sector to volume 0 */ +extern void ata_flush(void) +{ + +} + +void ata_spindown(int seconds) +{ + (void)seconds; +} + +bool ata_disk_is_active(void) +{ + return 0; +} + +void ata_sleep(void) +{ +} + +void ata_spin(void) +{ +} + +/* Hardware reset protocol as specified in chapter 9.1, ATA spec draft v5 */ +int ata_hard_reset(void) +{ + return 0; +} + +int ata_soft_reset(void) +{ + return 0; +} + +void ata_enable(bool on) +{ + (void)on; +} + +unsigned short* ata_get_identify(void) +{ + +} + +int ata_init(void) +{ + return 0; +} diff --git a/firmware/target/arm/sandisk/sansa-e200/backlight-target.h b/firmware/target/arm/sandisk/sansa-e200/backlight-target.h new file mode 100644 index 0000000000..67a01ed518 --- /dev/null +++ b/firmware/target/arm/sandisk/sansa-e200/backlight-target.h @@ -0,0 +1 @@ +/* nothing here yet */ diff --git a/firmware/target/arm/sandisk/sansa-e200/button-target.h b/firmware/target/arm/sandisk/sansa-e200/button-target.h new file mode 100644 index 0000000000..e78f91a154 --- /dev/null +++ b/firmware/target/arm/sandisk/sansa-e200/button-target.h @@ -0,0 +1,7 @@ + +#define BUTTON_POWER 0x00000001 +#define BUTTON_LEFT 0x00000002 +#define BUTTON_RIGHT 0x00000004 + +#define POWEROFF_BUTTON BUTTON_POWER +#define POWEROFF_COUNT 40 diff --git a/firmware/target/arm/sandisk/sansa-e200/lcd.c b/firmware/target/arm/sandisk/sansa-e200/lcd.c new file mode 100644 index 0000000000..dedb196c70 --- /dev/null +++ b/firmware/target/arm/sandisk/sansa-e200/lcd.c @@ -0,0 +1,15 @@ + +void lcd_update(void) +{ + +} + +void lcd_update_rect(int x, int y, int width, int height) +{ + +} + +void lcd_init_device(void) +{ + +} diff --git a/firmware/target/arm/sandisk/sansa-e200/usb-target.h b/firmware/target/arm/sandisk/sansa-e200/usb-target.h new file mode 100644 index 0000000000..67a01ed518 --- /dev/null +++ b/firmware/target/arm/sandisk/sansa-e200/usb-target.h @@ -0,0 +1 @@ +/* nothing here yet */ |