diff --git a/apps/bitmaps/native/SOURCES b/apps/bitmaps/native/SOURCES index e8cff9f670..ca4bf47bd3 100644 --- a/apps/bitmaps/native/SOURCES +++ b/apps/bitmaps/native/SOURCES @@ -3,6 +3,8 @@ /* Rockbox logo */ #if (LCD_DEPTH == 1) rockboxlogo.112x37x1.bmp +#elif (LCD_WIDTH == 128) && (LCD_DEPTH == 16) +rockboxlogo.128x40x16.bmp #elif (LCD_WIDTH == 138) && (LCD_DEPTH == 2) rockboxlogo.138x46x2.bmp #elif (LCD_WIDTH == 160) && (LCD_DEPTH == 2) diff --git a/apps/bitmaps/native/rockboxlogo.128x40x16.bmp b/apps/bitmaps/native/rockboxlogo.128x40x16.bmp new file mode 100644 index 0000000000..b7a81c5961 Binary files /dev/null and b/apps/bitmaps/native/rockboxlogo.128x40x16.bmp differ diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES index 1ab3361ac7..1874eda18d 100644 --- a/apps/plugins/SOURCES +++ b/apps/plugins/SOURCES @@ -35,7 +35,9 @@ mandelbrot.c plasma.c bounce.c +#ifndef IRIVER_H10_5GB bubbles.c +#endif #if LCD_WIDTH != 128 /* These need adjusting for the iRiver if'p screen */ brickmania.c @@ -44,7 +46,9 @@ calculator.c chip8.c demystify.c flipit.c +#ifndef IRIVER_H10_5GB jewels.c +#endif minesweeper.c oscilloscope.c pong.c @@ -62,7 +66,9 @@ tetrox.c video.c #endif vu_meter.c +#ifndef IRIVER_H10_5GB wormlet.c +#endif #ifdef CONFIG_RTC clock.c diff --git a/apps/plugins/pacbox/SOURCES b/apps/plugins/pacbox/SOURCES index cedcda1363..188fc53c1f 100644 --- a/apps/plugins/pacbox/SOURCES +++ b/apps/plugins/pacbox/SOURCES @@ -1,3 +1,4 @@ +#ifndef IRIVER_H10_5GB arcade.c pacbox.c hardware.c @@ -10,3 +11,4 @@ pacbox_lcd.c #if defined(CPU_COLDFIRE) pacbox_cf.S #endif +#endif diff --git a/apps/plugins/sudoku/SOURCES b/apps/plugins/sudoku/SOURCES index 7cce555c93..20d8121175 100644 --- a/apps/plugins/sudoku/SOURCES +++ b/apps/plugins/sudoku/SOURCES @@ -1,3 +1,5 @@ +#ifndef IRIVER_H10_5GB sudoku.c generator.c templates.c +#endif diff --git a/firmware/SOURCES b/firmware/SOURCES index 23da475304..f313dcd902 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -262,6 +262,17 @@ target/arm/iriver/h10/lcd-h10.c #endif #endif +#ifdef IRIVER_H10_5GB +#ifndef SIMULATOR +target/arm/iriver/h10/backlight-h10.c +target/arm/iriver/h10/button-h10.c +target/arm/ata-pp5020.c +target/arm/iriver/h10/power-h10.c +target/arm/iriver/h10/usb-h10.c +target/arm/iriver/h10/lcd-h10.c +#endif +#endif + #ifdef GIGABEAT_F #ifndef SIMULATOR target/arm/gigabeat/meg-fx/backlight-meg-fx.c diff --git a/firmware/export/config-h10_5gb.h b/firmware/export/config-h10_5gb.h new file mode 100644 index 0000000000..09b9132525 --- /dev/null +++ b/firmware/export/config-h10_5gb.h @@ -0,0 +1,120 @@ +/* + * This config file is for the iriver H10 5/6Gb model + */ + +#define TARGET_TREE /* this target is using the target tree system */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 13 + +/* 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 128 +#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 tree stuff */ + +#define BATTERY_CAPACITY_DEFAULT 700 /* default battery capacity */ + +#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_BP009 +#define BATTERY_CAPACITY_MIN 700 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 900 /* 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 */ +#define CONFIG_LCD LCD_H10_5GB + +/* 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 1579767ade..8f1a5e65cc 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -70,7 +70,8 @@ #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 */ +#define BATT_LPCS355385 1550 /* iriver h10 20Gb - SKC LPCS355385 */ +#define BATT_BP009 820 /* iriver H10 5/6Gb - iriver BP009 */ /* CONFIG_CHARGING */ #define CHARGING_SIMPLE 1 /* Simple, hardware controlled charging */ @@ -93,6 +94,8 @@ #define LCD_IPODMINI 10 /* as used by iPod Mini g1/g2 */ #define LCD_IFP7XX 11 /* as used by iRiver iFP 7xx/8xx */ #define LCD_GIGABEAT 12 +#define LCD_H10 13 /* as used by iriver H10 20Gb */ +#define LCD_H10_5GB 14 /* as used by iriver H10 5Gb */ /* LCD_PIXELFORMAT */ #define HORIZONTAL_PACKING 1 @@ -115,8 +118,9 @@ #define BL_IRIVER_IFP7XX 9 /* IRiver GPIO */ #define BL_IPODMINI 10 /* Apple iPod Mini */ #define BL_GIGABEAT 11 /* Toshiba Gigabeat */ -#define BL_IRIVER_H10 12 /* iriver H10 */ +#define BL_H10 12 /* iriver H10 */ #define BL_X5 13 /* iAudio X5 PCF50606 I2C */ +#define BL_H10_5GB 14 /* iriver H10 5/6GB */ /* CONFIG_I2C */ #define I2C_PLAYREC 0 /* Archos Player/Recorder style */ @@ -192,6 +196,8 @@ #include "config-ipodmini2g.h" #elif defined(IRIVER_H10) #include "config-h10.h" +#elif defined(IRIVER_H10_5GB) +#include "config-h10_5gb.h" #elif defined(SANSA_E200) #include "config-e200.h" #else diff --git a/tools/configure b/tools/configure index e228a2fd39..dad1042b6b 100755 --- a/tools/configure +++ b/tools/configure @@ -460,8 +460,9 @@ toolsdir='\$(ROOTDIR)/tools' echo "19 - iriver iFP-790" echo "20 - Toshiba Gigabeat F" echo "21 - iPod Mini 2G" - echo "22 - iriver H10" + echo "22 - iriver H10 20Gb" echo "23 - SanDisk Sansa e200" + echo "24 - iriver H10 5/6Gb" target_id=`input`; @@ -933,6 +934,29 @@ toolsdir='\$(ROOTDIR)/tools' t_model="sansa-e200" ;; + 24) + archos="h10_5gb" + target="-DIRIVER_H10_5GB" + memory=32 # always + arm7tdmicc + tool="$rootdir/tools/mkmi4.sh h10_5gb" + bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" + bmp2rb_native="$rootdir/tools/bmp2rb -f 5" + output="H10.mi4" + appextra="recorder:gui" + archosrom="" + flash="" + plugins="yes" + codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" + # toolset is the tools within the tools directory that we build for + # this particular target. + toolset=$genericbitmaptools + # architecture, manufacturer and model for the target-tree build + t_cpu="arm" + t_manufacturer="iriver" + t_model="h10" + ;; + *) echo "Please select an actual target platform!" exit @@ -988,7 +1012,7 @@ fi case $option in [Bb]) case $archos in - h100|h120|h300|x5|ipodcolor|ipodnano|ipodvideo|ipod3g|ipod4g|ipodmini|ipodmini2g|gigabeatf|h10|e200) + h100|h120|h300|x5|ipodcolor|ipodnano|ipodvideo|ipod3g|ipod4g|ipodmini|ipodmini2g|gigabeatf|h10|e200|h10_5gb) extradefines="-DBOOTLOADER" # for target makefile symbol EXTRA_DEFINES appsdir='\$(ROOTDIR)/bootloader' apps="bootloader" diff --git a/tools/mkmi4.sh b/tools/mkmi4.sh index ee9c8f1228..00fee9bdfa 100755 --- a/tools/mkmi4.sh +++ b/tools/mkmi4.sh @@ -63,6 +63,9 @@ case $target in h10) tea=20gc_eng ;; + h10_5gb) + tea=default + ;; *) echo "unsupported target" help diff --git a/uisimulator/sdl/UI-h10_5gb.bmp b/uisimulator/sdl/UI-h10_5gb.bmp new file mode 100644 index 0000000000..03542d8f69 Binary files /dev/null and b/uisimulator/sdl/UI-h10_5gb.bmp differ diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h index 51d1aeca76..55d696bc63 100644 --- a/uisimulator/sdl/uisdl.h +++ b/uisimulator/sdl/uisdl.h @@ -200,7 +200,7 @@ #define UI_LCD_HEIGHT 320 #elif defined(IRIVER_H10) -#define UI_TITLE "iriver H10" +#define UI_TITLE "iriver H10 20Gb" #define UI_WIDTH 392 /* width of GUI window */ #define UI_HEIGHT 391 /* height of GUI window */ /* high-colour */ @@ -209,6 +209,16 @@ #define UI_LCD_WIDTH LCD_WIDTH /* * 1.5 */ #define UI_LCD_HEIGHT LCD_HEIGHT /* * 1.5 */ +#elif defined(IRIVER_H10_5GB) +#define UI_TITLE "iriver H10 5/6Gb" +#define UI_WIDTH 353 /* width of GUI window */ +#define UI_HEIGHT 460 /* height of GUI window */ +/* high-colour */ +#define UI_LCD_POSX 112 /* x position of lcd */ +#define UI_LCD_POSY 45 /* y position of lcd (74 for real aspect) */ +#define UI_LCD_WIDTH LCD_WIDTH /* * 1.5 */ +#define UI_LCD_HEIGHT LCD_HEIGHT /* * 1.5 */ + #elif defined(IRIVER_IFP7XX) #define UI_TITLE "iriver iFP7xx" #define UI_WIDTH 425 /* width of GUI window */