Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Add a new config for Fuze V2

  • Loading branch information...
commit 3c3e32fa0ca15152f1993de45508a35937fc2d9a 1 parent 8a9030b
Steven Price authored
View
2  bootloader/sansa_as3525.c
@@ -61,7 +61,7 @@ void main(void)
_backlight_on();
button_init_device();
-#ifndef SANSA_CLIPV2
+#if !(defined(SANSA_CLIPV2) || defined(SANSA_FUZEV2))
int btn = button_read_device();
#if !defined(SANSA_FUZE) && !defined(SANSA_CLIP)
View
4 firmware/SOURCES
@@ -366,7 +366,7 @@ target/arm/pnx0101/system-pnx0101.c
#if CONFIG_CPU == AS3525
target/arm/as3525/system-as3525.c
target/arm/as3525/kernel-as3525.c
-#ifndef SANSA_CLIPV2
+#if !(defined(SANSA_CLIPV2) || defined(SANSA_FUZEV2))
target/arm/as3525/ata_sd_as3525.c
#endif
target/arm/as3525/power-as3525.c
@@ -1165,7 +1165,7 @@ target/arm/as3525/sansa-m200v4/powermgmt-m200v4.c
#endif /* !SIMULATOR */
#endif /* SANSA_M200V4 */
-#ifdef SANSA_FUZE
+#if defined(SANSA_FUZE) || defined(SANSA_FUZEV2)
#ifndef SIMULATOR
target/arm/as3525/sansa-fuze/button-fuze.c
target/arm/as3525/sansa-fuze/lcd-fuze.c
View
210 firmware/export/config-fuzev2.h
@@ -0,0 +1,210 @@
+/*
+ * This config file is for the Sandisk Sansa Fuze
+ */
+#define TARGET_TREE /* this target is using the target tree system */
+
+/* For Rolo and boot loader */
+#define MODEL_NUMBER 67
+#define MODEL_NAME "Sandisk Sansa Fuze V2"
+
+#define HW_SAMPR_CAPS (SAMPR_CAP_44)
+
+#if 0
+/* define this if you have recording possibility */
+#define HAVE_RECORDING
+
+#define REC_SAMPR_CAPS (SAMPR_CAP_22)
+#define REC_FREQ_DEFAULT REC_FREQ_22 /* Default is not 44.1kHz */
+#define REC_SAMPR_DEFAULT SAMPR_22
+
+/* Default recording levels */
+#define DEFAULT_REC_MIC_GAIN 23
+#define DEFAULT_REC_LEFT_GAIN 23
+#define DEFAULT_REC_RIGHT_GAIN 23
+
+/* Define bitmask of input sources - recordable bitmask can be defined
+ explicitly if different */
+#endif
+#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_FMRADIO)
+
+/* define this if you have a bitmap LCD display */
+#define HAVE_LCD_BITMAP
+/* define this if you have a colour LCD */
+#define HAVE_LCD_COLOR
+
+#ifndef BOOTLOADER/* define this if you want album art for this target */
+#define HAVE_ALBUMART
+
+/* define this to enable bitmap scaling */
+#define HAVE_BMP_SCALING
+
+/* define this to enable JPEG decoding */
+#define HAVE_JPEG
+
+/* define this if you have a light associated with the buttons */
+#define HAVE_BUTTON_LIGHT
+
+/* 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
+
+/* define this if you have LCD enable function */
+#define HAVE_LCD_ENABLE
+
+/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE
+ should be defined as well.
+#define HAVE_LCD_SLEEP
+#define HAVE_LCD_SLEEP_SETTING
+*/
+
+/* 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 a real-time clock */
+#define CONFIG_RTC RTC_AS3514
+
+/* There is no hardware tone control */
+#define HAVE_SW_TONE_CONTROLS
+
+#endif /* !BOOTLOADER */
+
+/* put the lcd frame buffer in IRAM */
+#define IRAM_LCDFRAMEBUFFER IBSS_ATTR
+
+#define CONFIG_KEYPAD SANSA_FUZE_PAD
+
+/* Define this if you do software codec */
+#define CONFIG_CODEC SWCODEC
+
+
+/* LCD dimensions */
+#define LCD_WIDTH 220
+#define LCD_HEIGHT 176
+#define LCD_DEPTH 16 /* 65536 colours */
+#define LCD_PIXELFORMAT RGB565 /* rgb565 */
+
+
+/* We're working on the assumption that the AS3525 has something
+ similar to the AS3514 for audio codec etc */
+#define HAVE_AS3514
+
+/* Define this if you have a software controlled poweroff */
+#define HAVE_SW_POWEROFF
+
+/* Some Sansa Fuzes seem to be FAT16 formatted */
+#define HAVE_FAT16SUPPORT
+
+/* The number of bytes reserved for loadable codecs */
+#define CODEC_SIZE 0x100000
+
+/* The number of bytes reserved for loadable plugins */
+#define PLUGIN_BUFFER_SIZE 0x80000
+
+#define AB_REPEAT_ENABLE 1
+
+/* FM Tuner - suspected to be the SI4702 */
+#define CONFIG_TUNER SI4700
+/* #define HAVE_TUNER_PWR_CTRL */
+
+/* Define this for LCD backlight available */
+#define HAVE_BACKLIGHT
+#define HAVE_BACKLIGHT_BRIGHTNESS
+
+/* Main LCD backlight brightness range and defaults */
+#define MIN_BRIGHTNESS_SETTING 1
+#define MAX_BRIGHTNESS_SETTING 12
+#define DEFAULT_BRIGHTNESS_SETTING 6
+
+/* Which backlight fading type? */
+#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
+
+/* define this if the unit uses a scrollwheel for navigation */
+#define HAVE_SCROLLWHEEL
+/* define to activate advanced wheel acceleration code */
+#define HAVE_WHEEL_ACCELERATION
+/* define from which rotation speed [degree/sec] on the acceleration starts */
+#define WHEEL_ACCEL_START 540
+/* define type of acceleration (1 = ^2, 2 = ^3, 3 = ^4) */
+#define WHEEL_ACCELERATION 1
+
+/* define this if you have a flash memory storage */
+#define HAVE_FLASH_STORAGE
+
+/* define this if the flash memory uses the SecureDigital Memory Card protocol */
+#define CONFIG_STORAGE STORAGE_SD
+
+#define BATTERY_CAPACITY_DEFAULT 550 /* default battery capacity */
+#define BATTERY_CAPACITY_MIN 550 /* min. capacity selectable */
+#define BATTERY_CAPACITY_MAX 550 /* max. capacity selectable */
+#define BATTERY_CAPACITY_INC 0 /* capacity increment */
+#define BATTERY_TYPES_COUNT 1 /* only one type */
+
+/* Hardware controlled charging? FIXME */
+#define CONFIG_CHARGING CHARGING_SIMPLE
+
+/* define this if the unit can be powered or charged via USB */
+#define HAVE_USB_POWER
+
+/** Non-simulator section **/
+#ifndef SIMULATOR
+
+/* Define this if you have an AMS AS3525*/
+#define CONFIG_CPU AS3525
+
+/* Define how much SD sectors are reserved for OF */
+#define AMS_OF_SIZE 0xF000
+
+/* Define this if you want to use the AS2525 i2c interface */
+#define CONFIG_I2C I2C_AS3525
+
+/* Define this to the CPU frequency */
+#define CPU_FREQ 250000000
+
+/* Type of LCD */
+#define CONFIG_LCD LCD_FUZE
+
+/* Offset ( in the firmware file's header ) to the file CRC and data. These are
+ only used when loading the old format rockbox.e200 file */
+#define FIRMWARE_OFFSET_FILE_CRC 0x0
+#define FIRMWARE_OFFSET_FILE_DATA 0x8
+
+#ifndef BOOTLOADER
+#define HAVE_MULTIVOLUME
+#define HAVE_HOTSWAP
+#endif
+
+#define USB_HANDLED_BY_OF
+
+/* USB On-the-go */
+#define CONFIG_USBOTG USBOTG_AS3525
+
+/* enable these for the experimental usb stack */
+//#define HAVE_USBSTACK
+#define USB_VENDOR_ID 0x0781
+#define USB_PRODUCT_ID 0x7423
+
+/* Virtual LED (icon) */
+#define CONFIG_LED LED_VIRTUAL
+
+/* Define this if you have adjustable CPU frequency */
+#define HAVE_ADJUSTABLE_CPU_FREQ
+
+#define BOOTFILE_EXT "sansa"
+#define BOOTFILE "rockbox." BOOTFILE_EXT
+#define BOOTDIR "/.rockbox"
+
+#define ICODE_ATTR_TREMOR_NOT_MDCT
+
+#define INCLUDE_TIMEOUT_API
+
+#endif /* SIMULATOR */
+
View
2  firmware/export/config.h
@@ -364,6 +364,8 @@ Lyre prototype 1*/
#include "config-m200v4.h"
#elif defined(SANSA_FUZE)
#include "config-fuze.h"
+#elif defined(SANSA_FUZEV2)
+#include "config-fuzev2.h"
#elif defined(SANSA_C200V2)
#include "config-c200v2.h"
#elif defined(LYRE_PROTO1)
View
2  firmware/target/arm/as3525/boot.lds
@@ -11,7 +11,7 @@ No need for DRAM in our bootloader
#define DRAMSIZE (MEMORYSIZE * 0x100000) - TTB_SIZE
#define DRAMORIG 0x30000000
*/
-#ifdef SANSA_CLIPV2
+#if defined(SANSA_CLIPV2) || defined(SANSA_FUZE)
#define IRAMORIG 0 /* in fact DRAM, but we don't care */
#define IRAMSIZE (MEM*0x100000)
#else
View
4 firmware/target/arm/as3525/clock-target.h
@@ -53,7 +53,7 @@
/* PLL frequencies and settings*/
-#ifdef SANSA_CLIPV2
+#if defined(SANSA_CLIPV2) || defined(SANSA_FUZEV2)
#define AS3525_PLLA_FREQ 240000000 /*124,82.7,62,49.6,41.3,35.4 */
#else
#define AS3525_PLLA_FREQ 248000000 /*124,82.7,62,49.6,41.3,35.4 */
@@ -115,7 +115,7 @@
#define AS3525_IDE_SEL AS3525_CLK_PLLA /* Input Source */
#define AS3525_IDE_DIV (CLK_DIV(AS3525_PLLA_FREQ, AS3525_IDE_FREQ) - 1)/*div=1/(n+1)*/
-#ifdef SANSA_CLIPV2
+#if defined(SANSA_CLIPV2) || defined(SANSA_FUZEV2)
#define AS3525_MS_FREQ 120000000
#define AS3525_IDE_FREQ 80000000
#else
View
2  firmware/target/arm/as3525/fmradio-i2c-as3525.c
@@ -49,7 +49,7 @@
#define I2C_SCL_PIN 7
#define I2C_SDA_PIN 6
-#elif defined(SANSA_FUZE) || defined(SANSA_E200V2)
+#elif defined(SANSA_FUZE) || defined(SANSA_E200V2) || defined(SANSA_FUZEV2)
#define I2C_GPIO(x) GPIOA_PIN(x)
#define I2C_GPIO_DIR GPIOA_DIR
#define I2C_SCL_PIN 6
View
6 firmware/target/arm/as3525/system-as3525.c
@@ -189,7 +189,7 @@ static void sdram_init(void)
/* 16 bits external bus, low power SDRAM, 16 Mbits = 2 Mbytes */
#define MEMORY_MODEL 0x21
-#elif defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_CLIPV2)
+#elif defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_CLIPV2) || defined(SANSA_FUZEV2)
/* 16 bits external bus, high performance SDRAM, 64 Mbits = 8 Mbytes */
#define MEMORY_MODEL 0x5
@@ -218,7 +218,7 @@ static void sdram_init(void)
void system_init(void)
{
-#ifndef SANSA_CLIPV2
+#if !(defined(SANSA_CLIPV2) || defined(SANSA_FUZEV2))
unsigned int reset_loops = 640;
CCU_SRC = 0x1fffff0
@@ -266,7 +266,7 @@ void system_init(void)
CGU_PERI &= ~0x7f; /* pclk 24 MHz */
CGU_PERI |= ((CLK_DIV(AS3525_PLLA_FREQ, AS3525_PCLK_FREQ) - 1) << 2)
| 1; /* clk_in = PLLA */
-#endif /* SANSA_CLIPV2 */
+#endif /* SANSA_CLIPV2 || SANSA_FUZEV2 */
#if 0 /* the GPIO clock is already enabled by the dualboot function */
CGU_PERI |= CGU_GPIO_CLOCK_ENABLE;
View
2  firmware/target/arm/as3525/usb-as3525.c
@@ -29,7 +29,7 @@
#if defined(SANSA_CLIP)
#define USB_DETECT_PIN 6
-#elif defined(SANSA_FUZE) || defined(SANSA_E200V2)
+#elif defined(SANSA_FUZE) || defined(SANSA_E200V2) || defined(SANSA_FUZEV2)
#define USB_DETECT_PIN 3
#elif defined(SANSA_C200V2)
View
2  firmware/target/arm/crt0.S
@@ -59,7 +59,7 @@ newstart:
#if CONFIG_CPU==AS3525 && !defined(BOOTLOADER)
-#ifndef SANSA_CLIPV2
+#if !(defined(SANSA_CLIPV2) || defined(SANSA_FUZEV2))
/* relocate vectors */
mov r1, #0 @ destination
ldr r2, =_vectorscopy @ source
View
18 rbutil/mkamsboot/dualboot.S
@@ -136,23 +136,7 @@ uclcopy:
cmp r1, #0
beq boot_of
-#elif defined(SANSA_FUZEV2)
- ldr r0, =GPIOC
-
- mov r1, #0
- str r1, [r0, #0x400]
-
- ldr r0, [r0, #0x20]
- cmp r0, #0
- beq boot_of @ if the pin is unset, boot immediately
- @ else, boot after a noticeable delay
-
-delay: mov r0, #0x3000000
-1: subs r0, r0, #1
- bne 1b
-
- b boot_of
-#elif defined(SANSA_E200V2) || defined(SANSA_FUZE)
+#elif defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_FUZEV2)
/* LEFT button */
ldr r0, =GPIOC
mov r1, #0
View
7 rbutil/mkamsboot/mkamsboot.c
@@ -175,8 +175,7 @@ static const int rb_model_num[] =
41,
42,
44,
- 67,
- 0 // Unknown
+ 67
};
struct md5sums {
@@ -393,7 +392,7 @@ static unsigned char* load_rockbox_file(char* filename, int model, off_t* bufsiz
if (memcmp(rb_model_names[model],header + 4,4)!=0) {
fprintf(stderr,"[ERR] Model name \"%s\" not found in %s\n",
rb_model_names[model],filename);
- //return NULL;
+ return NULL;
}
*bufsize = filesize(fd) - sizeof(header);
@@ -421,7 +420,7 @@ static unsigned char* load_rockbox_file(char* filename, int model, off_t* bufsiz
if (sum != get_uint32be(header)) {
fprintf(stderr,"[ERR] Checksum mismatch in %s\n",filename);
fprintf(stderr, "%x %x\n", sum, get_uint32be(header));
- //return NULL;
+ return NULL;
}
return buf;
}
View
20 tools/configure
@@ -760,6 +760,7 @@ cat <<EOF
==Sansa AMS v2==
150) Clipv2
+ 151) Fuzev2
EOF
buildfor=`input`;
@@ -1822,6 +1823,25 @@ fi
t_model="sansa-fuze"
;;
+ 151|fuzev2)
+ target_id=67
+ modelname="fuzev2"
+ target="-DSANSA_FUZEV2"
+ memory=8
+ arm926ejscc
+ bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
+ bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
+ tool="$rootdir/tools/scramble -add=fuz2"
+ output="rockbox.sansa"
+ bootoutput="bootloader-fuzev2.sansa"
+ appextra="recorder:gui"
+ plugins="yes"
+ swcodec="yes"
+ toolset=$scramblebitmaptools
+ t_cpu="arm"
+ t_manufacturer="as3525"
+ t_model="sansa-fuzev2"
+ ;;
59|c200v2)
target_id=55
View
4 tools/scramble.c
@@ -123,7 +123,7 @@ void usage(void)
"\t ip3g, ip4g, mini, iax5, iam5, iam3, h10, h10_5gb,\n"
"\t tpj2, c200, e200, giga, gigs, m100, m500, d2,\n");
printf("\t 9200, 1630, ldax, m200, clip, e2v2, m2v4, fuze,\n"
- "\t y820, y920, y925, clv2)\n");
+ "\t y820, y920, y925, clv2, fuz2)\n");
printf("\nNo option results in Archos standard player/recorder format.\n");
exit(1);
@@ -306,6 +306,8 @@ int main (int argc, char** argv)
modelnum = 59;
else if (!strcmp(&argv[1][5], "clv2")) /* Sansa Clip v2 */
modelnum = 66;
+ else if (!strcmp(&argv[1][5], "fuz2")) /* Sansa Fuze v2 */
+ modelnum = 67;
else {
fprintf(stderr, "unsupported model: %s\n", &argv[1][5]);
return 2;
View
2  uisimulator/sdl/uisdl.h
@@ -263,7 +263,7 @@
#define UI_LCD_POSX 39 /* x position of lcd */
#define UI_LCD_POSY 38 /* y position of lcd */
-#elif defined(SANSA_FUZE)
+#elif defined(SANSA_FUZE) || defined(SANSA_FUZEV2)
#define UI_TITLE "Sansa Fuze"
#define UI_WIDTH 279 /* width of GUI window */
#define UI_HEIGHT 449 /* height of GUI window */
Please sign in to comment.
Something went wrong with that request. Please try again.