From b4994a08ca8d8c86c1254a0b4f3de75564fdad1d Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Sun, 4 Mar 2007 14:09:21 +0000 Subject: Added new iAudio M5 target, including some adjustments to make the bootloader compile (with a small change against the committed tools/tonfigure, and it won't actually work yet). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12588 a1c6a512-1295-4272-9138-f99709370657 --- bootloader/SOURCES | 2 +- firmware/SOURCES | 27 ++++- firmware/app.lds | 2 +- firmware/boot.lds | 10 +- firmware/export/config-iaudiom5.h | 160 +++++++++++++++++++++++++++ firmware/export/config.h | 2 + firmware/target/coldfire/pcf50606-coldfire.c | 2 +- tools/configure | 29 ++++- 8 files changed, 224 insertions(+), 10 deletions(-) create mode 100644 firmware/export/config-iaudiom5.h diff --git a/bootloader/SOURCES b/bootloader/SOURCES index 26356ff5ef..94196d387a 100644 --- a/bootloader/SOURCES +++ b/bootloader/SOURCES @@ -8,7 +8,7 @@ gigabeat.c main-pp.c #elif defined(ELIO_TPJ1022) tpj1022.c -#elif defined(IAUDIO_X5) +#elif defined(IAUDIO_X5) || defined(IAUDIO_M5) iaudio_x5.c #elif defined(IRIVER_H300_SERIES) iriver_h300.c diff --git a/firmware/SOURCES b/firmware/SOURCES index c1a21171d0..ec47fff3d1 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -244,9 +244,10 @@ target/coldfire/crt0.S target/coldfire/memcpy-coldfire.S target/coldfire/memmove-coldfire.S target/coldfire/memset-coldfire.S -#ifdef HAVE_LCD_COLOR +#if defined(HAVE_LCD_COLOR) \ + || defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_PIXELFORMAT == VERTICAL_INTERLEAVED) target/coldfire/memset16-coldfire.S -#endif /* HAVE_LCD_COLOR */ +#endif target/coldfire/system-coldfire.c #ifndef BOOTLOADER target/coldfire/pcm-coldfire.c @@ -370,6 +371,28 @@ target/coldfire/iaudio/x5/audio-x5.c #endif /* SIMULATOR */ #endif /* IAUDIO_X5 */ +#ifdef IAUDIO_M5 +target/coldfire/iaudio/x5/power-x5.c +#ifndef SIMULATOR +target/coldfire/ata-as-coldfire.S +target/coldfire/pcf50606-coldfire.c +target/coldfire/iaudio/x5/adc-x5.c +target/coldfire/iaudio/x5/ata-x5.c +target/coldfire/iaudio/x5/backlight-x5.c +target/coldfire/iaudio/x5/button-x5.c +target/coldfire/iaudio/x5/lcd-as-x5.S +target/coldfire/iaudio/x5/lcd-remote-x5.c +target/coldfire/iaudio/x5/lcd-x5.c +target/coldfire/iaudio/x5/m5636-x5.c +target/coldfire/iaudio/x5/pcf50606-x5.c +target/coldfire/iaudio/x5/system-x5.c +target/coldfire/iaudio/x5/usb-x5.c +#ifndef BOOTLOADER +target/coldfire/iaudio/x5/audio-x5.c +#endif +#endif /* SIMULATOR */ +#endif /* IAUDIO_M5 */ + #ifdef IRIVER_IFP7XX_SERIES #ifdef STUB usb_serial.c diff --git a/firmware/app.lds b/firmware/app.lds index 02c204a2a8..eb63fd8195 100644 --- a/firmware/app.lds +++ b/firmware/app.lds @@ -33,7 +33,7 @@ INPUT(target/sh/crt0.o) #define DRAMORIG 0x31000000 + STUBOFFSET #define IRAMORIG 0x10000000 #define IRAMSIZE 0xc000 -#elif defined(IAUDIO_X5) +#elif defined(IAUDIO_X5) || defined(IAUDIO_M5) #define DRAMORIG 0x31000000 + STUBOFFSET #define IRAMORIG 0x10000000 #define IRAMSIZE 0x10000 diff --git a/firmware/boot.lds b/firmware/boot.lds index c9e39be554..b032f8e64a 100644 --- a/firmware/boot.lds +++ b/firmware/boot.lds @@ -31,7 +31,7 @@ INPUT(target/sh/crt0.o) #define IRAMSIZE 0x18000 #define FLASHORIG 0x003f0000 #define FLASHSIZE 4M -#elif defined(IAUDIO_X5) +#elif defined(IAUDIO_X5) || defined(IAUDIO_M5) #define DRAMORIG 0x31000000 #define IRAMORIG 0x10000000 #define IRAMSIZE 0x20000 @@ -151,7 +151,7 @@ SECTIONS { .vectors : { -#ifdef IAUDIO_X5 +#if defined(IAUDIO_X5) || defined(IAUDIO_M5) *(.init.text) #endif _datacopy = .; @@ -201,7 +201,8 @@ SECTIONS stackend = .; } > IRAM -#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) || defined(IAUDIO_X5) +#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \ + || defined(IAUDIO_X5) || defined(IAUDIO_M5) .bss DRAMORIG+0x800000: #else .bss : @@ -212,7 +213,8 @@ SECTIONS *(.bss*) *(COMMON) _end = .; -#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) || defined(IAUDIO_X5) +#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \ + || defined(IAUDIO_X5) || defined(IAUDIO_M5) } > DRAM #else } > IRAM diff --git a/firmware/export/config-iaudiom5.h b/firmware/export/config-iaudiom5.h new file mode 100644 index 0000000000..2c52bc0730 --- /dev/null +++ b/firmware/export/config-iaudiom5.h @@ -0,0 +1,160 @@ +/* + * This config file is for iAudio M5 + */ +#define TARGET_TREE /* this target is using the target tree system */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 17 + +/* define this if you have recording possibility */ +#define HAVE_RECORDING + +/* define the bitmask of hardware sample rates */ +#define HW_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | SAMPR_CAP_11) + +/* define the bitmask of recording sample rates */ +#define REC_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | SAMPR_CAP_11) + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP + +/* define this if you can flip your LCD */ +#define HAVE_LCD_FLIP + +/* define this if you can invert the colours on your LCD */ +#define HAVE_LCD_INVERT + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* define this if you have access to the pitchscreen */ +#define HAVE_PITCHSCREEN + +/* define this if you would like tagcache to build on this target */ +#define HAVE_TAGCACHE + +/* LCD dimensions */ +#define LCD_WIDTH 160 +#define LCD_HEIGHT 128 +#define LCD_DEPTH 2 + +#define LCD_PIXELFORMAT VERTICAL_PACKING + +/* remote LCD */ +#define LCD_REMOTE_WIDTH 128 +#define LCD_REMOTE_HEIGHT 96 +#define LCD_REMOTE_DEPTH 2 + +#define LCD_REMOTE_PIXELFORMAT VERTICAL_INTERLEAVED + +#define CONFIG_KEYPAD IAUDIO_X5_PAD + +#define AB_REPEAT_ENABLE 1 +#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +/* define this if you have a real-time clock */ +#define CONFIG_RTC RTC_PCF50606 + +/* Define this if you have an remote lcd */ +#define HAVE_REMOTE_LCD + +#define CONFIG_LCD LCD_S1D15E06 + +/* Define this for LCD backlight available */ +#define CONFIG_BACKLIGHT BL_X5 /* PCF50606 I2C */ +/* #define HAVE_BACKLIGHT_BRIGHTNESS TODO: not yet known */ + +/* 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 BATTERY_CAPACITY_DEFAULT 950 /* default battery capacity */ + +#define HAVE_TLV320 + +/* TLV320 has no tone controls, so we use the software ones */ +#define HAVE_SW_TONE_CONTROLS + +#ifndef SIMULATOR + +/* Define this if your LCD can set contrast */ +#define HAVE_LCD_CONTRAST + +/* Define this if you have a Motorola SCF5250 */ +#define CONFIG_CPU MCF5250 + +/* Define this if you want to use coldfire's i2c interface */ +#define CONFIG_I2C I2C_COLDFIRE + +/* Hardware controlled charging? FIXME */ +#define CONFIG_CHARGING CHARGING_SIMPLE + +/* define this if the hardware can be powered off while charging */ +#define HAVE_POWEROFF_WHILE_CHARGING + +/* The size of the flash ROM */ +#define FLASH_SIZE 0x400000 + +/* Define this to the CPU frequency */ +#define CPU_FREQ 11289600 + +/* Type of mobile power */ +#define X5_BATT_CONFIG 2 +#define CONFIG_BATTERY BATT_IAUDIO_X5 +#define BATTERY_CAPACITY_MIN 950 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 2250 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 50 /* capacity increment */ +#define BATTERY_TYPES_COUNT 1 /* only one type */ +#define BATTERY_SCALE_FACTOR 5859 /* (420703125 + 35900) / 71800 */ + +/* Define this if you have ATA power-off control */ +#define HAVE_ATA_POWER_OFF + +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +/* 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_X5STYLE + +/* Define this if you have adjustable CPU frequency */ +#define HAVE_ADJUSTABLE_CPU_FREQ + +#define BOOTFILE_EXT "iaudio" +#define BOOTFILE "rockbox." BOOTFILE_EXT + +#define BOOTLOADER_ENTRYPOINT 0x001F0000 +#define FLASH_ENTRYPOINT 0x00001000 +#define FLASH_MAGIC 0xfbfbfbf1 + +#endif /* SIMULATOR */ + +/** Port-specific settings **/ + +/* Main LCD contrast range and defaults */ +#define MIN_CONTRAST_SETTING 1 +#define MAX_CONTRAST_SETTING 30 +#define DEFAULT_CONTRAST_SETTING 19 /* Match boot contrast */ + +/* Main LCD backlight brightness range and defaults */ +/* PCF50506 can output 0%-100% duty cycle but D305A expects %15-100%. */ +#define MIN_BRIGHTNESS_SETTING 1 /* 15/16 (93.75%) */ +#define MAX_BRIGHTNESS_SETTING 13 /* 3/16 (18.75%) */ +#define DEFAULT_BRIGHTNESS_SETTING 8 /* 8/16 (50.00%) = x5 boot default */ + +/* Remote LCD contrast range and defaults */ +#define MIN_REMOTE_CONTRAST_SETTING 10 +#define MAX_REMOTE_CONTRAST_SETTING 35 +#define DEFAULT_REMOTE_CONTRAST_SETTING 24 /* Match boot contrast */ diff --git a/firmware/export/config.h b/firmware/export/config.h index 085f86af53..d848d16155 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -187,6 +187,8 @@ #include "config-h300.h" #elif defined(IAUDIO_X5) #include "config-iaudiox5.h" +#elif defined(IAUDIO_M5) +#include "config-iaudiom5.h" #elif defined(IPOD_COLOR) #include "config-ipodcolor.h" #elif defined(IPOD_NANO) diff --git a/firmware/target/coldfire/pcf50606-coldfire.c b/firmware/target/coldfire/pcf50606-coldfire.c index ecc9e0ee72..d777b41cb1 100644 --- a/firmware/target/coldfire/pcf50606-coldfire.c +++ b/firmware/target/coldfire/pcf50606-coldfire.c @@ -29,7 +29,7 @@ #if defined(IRIVER_H300_SERIES) #define SDA_BITNUM 13 /* LRCK3/GPIO45 */ #define SCL_BITNUM 12 /* SWE/GPIO12 */ -#elif defined(IAUDIO_X5) +#elif defined(IAUDIO_X5) || defined(IAUDIO_M5) #define SDA_BITNUM 12 /* SDA1/RXD1/GPIO44 */ #define SCL_BITNUM 10 /* SCL1/TXD1/GPIO10 */ #endif diff --git a/tools/configure b/tools/configure index 22261888a5..ee5dbaa62a 100755 --- a/tools/configure +++ b/tools/configure @@ -589,7 +589,8 @@ cat <