forked from len0rd/rockbox
Sansa clip zip: update mkamsboot and fix various drivers to make it boot to the main firmware
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30853 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
a8cde851fb
commit
e90f961593
11 changed files with 53 additions and 47 deletions
|
@ -45,7 +45,7 @@
|
||||||
#define LCD_WIDTH 96
|
#define LCD_WIDTH 96
|
||||||
#define LCD_HEIGHT 96
|
#define LCD_HEIGHT 96
|
||||||
#define LCD_DEPTH 16 /* 65536 colours */
|
#define LCD_DEPTH 16 /* 65536 colours */
|
||||||
#define LCD_PIXELFORMAT RGB565SWAPPED /* rgb565 swapped */
|
#define LCD_PIXELFORMAT RGB565
|
||||||
|
|
||||||
/* define this if you have LCD enable function */
|
/* define this if you have LCD enable function */
|
||||||
#define HAVE_LCD_ENABLE
|
#define HAVE_LCD_ENABLE
|
||||||
|
@ -114,6 +114,8 @@
|
||||||
/* Define this for LCD backlight available */
|
/* Define this for LCD backlight available */
|
||||||
#define HAVE_BACKLIGHT
|
#define HAVE_BACKLIGHT
|
||||||
|
|
||||||
|
#define HAVE_BACKLIGHT_BRIGHTNESS
|
||||||
|
|
||||||
/* define this if you have a flash memory storage */
|
/* define this if you have a flash memory storage */
|
||||||
#define HAVE_FLASH_STORAGE
|
#define HAVE_FLASH_STORAGE
|
||||||
|
|
||||||
|
@ -189,9 +191,9 @@
|
||||||
/** Port-specific settings **/
|
/** Port-specific settings **/
|
||||||
|
|
||||||
/* Main LCD backlight brightness range and defaults */
|
/* Main LCD backlight brightness range and defaults */
|
||||||
#define MIN_BRIGHTNESS_SETTING 1 /* TODO */
|
#define MIN_BRIGHTNESS_SETTING 0
|
||||||
#define MAX_BRIGHTNESS_SETTING 12 /* TODO */
|
#define MAX_BRIGHTNESS_SETTING 9
|
||||||
#define DEFAULT_BRIGHTNESS_SETTING 6 /* TODO */
|
#define DEFAULT_BRIGHTNESS_SETTING 6
|
||||||
|
|
||||||
/* Default recording levels */
|
/* Default recording levels */
|
||||||
#define DEFAULT_REC_MIC_GAIN 23
|
#define DEFAULT_REC_MIC_GAIN 23
|
||||||
|
|
|
@ -25,11 +25,14 @@
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
#include "as3525v2.h"
|
#include "as3525v2.h"
|
||||||
#include "ascodec-target.h"
|
#include "ascodec-target.h"
|
||||||
|
#include "lcd-target.h"
|
||||||
|
|
||||||
bool _backlight_init()
|
bool _backlight_init()
|
||||||
{
|
{
|
||||||
/* GPIO B1 controls backlight */
|
/* GPIO B1 controls backlight */
|
||||||
GPIOB_DIR |= (1 << 1);
|
GPIOB_DIR |= (1 << 1);
|
||||||
|
ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
|
||||||
|
GPIOB_PIN(1) = (1 << 1);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -37,13 +40,6 @@ bool _backlight_init()
|
||||||
void _backlight_on(void)
|
void _backlight_on(void)
|
||||||
{
|
{
|
||||||
GPIOB_PIN(1) = (1 << 1);
|
GPIOB_PIN(1) = (1 << 1);
|
||||||
|
|
||||||
ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
|
|
||||||
sleep(1);
|
|
||||||
ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
|
|
||||||
sleep(1);
|
|
||||||
ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
|
|
||||||
|
|
||||||
#ifdef HAVE_LCD_ENABLE
|
#ifdef HAVE_LCD_ENABLE
|
||||||
lcd_enable(true);
|
lcd_enable(true);
|
||||||
#endif
|
#endif
|
||||||
|
@ -54,9 +50,11 @@ void _backlight_off(void)
|
||||||
#ifdef HAVE_LCD_ENABLE
|
#ifdef HAVE_LCD_ENABLE
|
||||||
lcd_enable(false);
|
lcd_enable(false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GPIOB_PIN(1) = 0;
|
GPIOB_PIN(1) = 0;
|
||||||
|
}
|
||||||
ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
|
|
||||||
|
void _backlight_set_brightness(int brightness)
|
||||||
|
{
|
||||||
|
oled_brightness(brightness);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,13 +71,13 @@ int button_read_device(void)
|
||||||
udelay(500);
|
udelay(500);
|
||||||
|
|
||||||
if (GPIOC_PIN(3)) {
|
if (GPIOC_PIN(3)) {
|
||||||
buttons |= BUTTON_LEFT;
|
buttons |= BUTTON_RIGHT;
|
||||||
}
|
}
|
||||||
if (GPIOC_PIN(4)) {
|
if (GPIOC_PIN(4)) {
|
||||||
buttons |= BUTTON_SELECT;
|
buttons |= BUTTON_SELECT;
|
||||||
}
|
}
|
||||||
if (GPIOC_PIN(5)) {
|
if (GPIOC_PIN(5)) {
|
||||||
buttons |= BUTTON_RIGHT;
|
buttons |= BUTTON_UP;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* key matrix buttons, second row */
|
/* key matrix buttons, second row */
|
||||||
|
@ -86,14 +86,14 @@ int button_read_device(void)
|
||||||
udelay(500);
|
udelay(500);
|
||||||
|
|
||||||
if (GPIOC_PIN(3)) {
|
if (GPIOC_PIN(3)) {
|
||||||
buttons |= BUTTON_UP;
|
|
||||||
}
|
|
||||||
if (GPIOC_PIN(4)) {
|
|
||||||
buttons |= BUTTON_HOME;
|
buttons |= BUTTON_HOME;
|
||||||
}
|
}
|
||||||
if (GPIOC_PIN(5)) {
|
if (GPIOC_PIN(4)) {
|
||||||
buttons |= BUTTON_DOWN;
|
buttons |= BUTTON_DOWN;
|
||||||
}
|
}
|
||||||
|
if (GPIOC_PIN(5)) {
|
||||||
|
buttons |= BUTTON_LEFT;
|
||||||
|
}
|
||||||
|
|
||||||
/* deselect scan rows */
|
/* deselect scan rows */
|
||||||
GPIOC_PIN(2) = 0;
|
GPIOC_PIN(2) = 0;
|
||||||
|
|
|
@ -51,12 +51,16 @@ static int lcd_hw_init(void)
|
||||||
SSP_IMSC &= ~0xF; /* disable interrupts */
|
SSP_IMSC &= ~0xF; /* disable interrupts */
|
||||||
SSP_DMACR &= ~0x3; /* disable DMA */
|
SSP_DMACR &= ~0x3; /* disable DMA */
|
||||||
|
|
||||||
|
/* GPIO A3 is ??? but needs to be set */
|
||||||
|
GPIOA_DIR |= (1 << 3);
|
||||||
|
GPIOA_PIN(3) = (1 << 3);
|
||||||
|
|
||||||
/* configure GPIO B2 (lcd D/C#) as output */
|
/* configure GPIO B2 (lcd D/C#) as output */
|
||||||
GPIOB_DIR |= (1<<2);
|
GPIOB_DIR |= (1<<2);
|
||||||
|
|
||||||
/* configure GPIO B3 (lcd type detect) as input */
|
/* configure GPIO B3 (lcd type detect) as input */
|
||||||
GPIOB_DIR &= ~(1<<3);
|
GPIOB_DIR &= ~(1<<3);
|
||||||
|
|
||||||
/* configure GPIO A5 (lcd reset#) as output and perform lcd reset */
|
/* configure GPIO A5 (lcd reset#) as output and perform lcd reset */
|
||||||
GPIOA_DIR |= (1 << 5);
|
GPIOA_DIR |= (1 << 5);
|
||||||
GPIOA_PIN(5) = 0;
|
GPIOA_PIN(5) = 0;
|
||||||
|
@ -154,7 +158,7 @@ static void lcd_write_nibbles(uint8_t val)
|
||||||
/* initialises lcd type 1 */
|
/* initialises lcd type 1 */
|
||||||
static void lcd_init_type1(void)
|
static void lcd_init_type1(void)
|
||||||
{
|
{
|
||||||
static const uint8_t curve[256] = {
|
static const uint8_t curve[128] = {
|
||||||
/* 5-bit curve */
|
/* 5-bit curve */
|
||||||
0, 5, 10, 15, 20, 25, 30, 35, 39, 43, 47, 51, 55, 59, 63, 67,
|
0, 5, 10, 15, 20, 25, 30, 35, 39, 43, 47, 51, 55, 59, 63, 67,
|
||||||
71, 75, 79, 83, 87, 91, 95, 99, 103, 105, 109, 113, 117, 121, 123, 127,
|
71, 75, 79, 83, 87, 91, 95, 99, 103, 105, 109, 113, 117, 121, 123, 127,
|
||||||
|
@ -242,7 +246,7 @@ static void lcd_init_type1(void)
|
||||||
lcd_write_dat(0x10);
|
lcd_write_dat(0x10);
|
||||||
|
|
||||||
lcd_write_cmd(0x3A);
|
lcd_write_cmd(0x3A);
|
||||||
for (i = 0; i < 256; i++) {
|
for (i = 0; i < 128; i++) {
|
||||||
lcd_write_nibbles(curve[i]);
|
lcd_write_nibbles(curve[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -376,11 +376,8 @@ static inline bool card_detect_target(void)
|
||||||
#if defined(HAVE_MULTIDRIVE)
|
#if defined(HAVE_MULTIDRIVE)
|
||||||
#if defined(SANSA_FUZEV2)
|
#if defined(SANSA_FUZEV2)
|
||||||
return GPIOA_PIN(2);
|
return GPIOA_PIN(2);
|
||||||
#elif defined(SANSA_CLIPPLUS)
|
#elif defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
return !(GPIOA_PIN(2));
|
return !(GPIOA_PIN(2));
|
||||||
#elif defined(SANSA_CLIPZIP)
|
|
||||||
/* TODO for ClipZip: determine polarity of uSD detect */
|
|
||||||
return false;
|
|
||||||
#else
|
#else
|
||||||
#error "microSD pin not defined for your target"
|
#error "microSD pin not defined for your target"
|
||||||
#endif
|
#endif
|
||||||
|
@ -398,14 +395,14 @@ static bool send_cmd(const int drive, const int cmd, const int arg, const int fl
|
||||||
!send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_RESP, response))
|
!send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_RESP, response))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
|
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
if (amsv2_variant == 1)
|
if (amsv2_variant == 1)
|
||||||
GPIOB_PIN(5) = (drive == INTERNAL_AS3525) ? 1 << 5 : 0;
|
GPIOB_PIN(5) = (drive == INTERNAL_AS3525) ? 1 << 5 : 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MCI_ARGUMENT = arg;
|
MCI_ARGUMENT = arg;
|
||||||
|
|
||||||
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
|
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
if (amsv2_variant == 1)
|
if (amsv2_variant == 1)
|
||||||
card_no = 1 << 16;
|
card_no = 1 << 16;
|
||||||
else
|
else
|
||||||
|
@ -565,7 +562,7 @@ static int sd_init_card(const int drive)
|
||||||
return -17;
|
return -17;
|
||||||
|
|
||||||
/* Now that card is widebus make controller aware */
|
/* Now that card is widebus make controller aware */
|
||||||
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
|
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
if (amsv2_variant == 1)
|
if (amsv2_variant == 1)
|
||||||
MCI_CTYPE |= 1<<1;
|
MCI_CTYPE |= 1<<1;
|
||||||
else
|
else
|
||||||
|
@ -575,7 +572,7 @@ static int sd_init_card(const int drive)
|
||||||
#endif /* ! BOOTLOADER */
|
#endif /* ! BOOTLOADER */
|
||||||
|
|
||||||
/* Set low power mode */
|
/* Set low power mode */
|
||||||
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
|
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
if (amsv2_variant == 1)
|
if (amsv2_variant == 1)
|
||||||
MCI_CLKENA |= 1<<(1 + 16);
|
MCI_CLKENA |= 1<<(1 + 16);
|
||||||
else
|
else
|
||||||
|
@ -673,7 +670,7 @@ static void init_controller(void)
|
||||||
int card_mask = (1 << hcon_numcards) - 1;
|
int card_mask = (1 << hcon_numcards) - 1;
|
||||||
int pwr_mask;
|
int pwr_mask;
|
||||||
|
|
||||||
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
|
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
if (amsv2_variant == 1)
|
if (amsv2_variant == 1)
|
||||||
pwr_mask = 1 << 1;
|
pwr_mask = 1 << 1;
|
||||||
else
|
else
|
||||||
|
@ -738,7 +735,7 @@ int sd_init(void)
|
||||||
semaphore_init(&transfer_completion_signal, 1, 0);
|
semaphore_init(&transfer_completion_signal, 1, 0);
|
||||||
semaphore_init(&command_completion_signal, 1, 0);
|
semaphore_init(&command_completion_signal, 1, 0);
|
||||||
|
|
||||||
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
|
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
if (amsv2_variant == 1)
|
if (amsv2_variant == 1)
|
||||||
GPIOB_DIR |= 1 << 5;
|
GPIOB_DIR |= 1 << 5;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -184,7 +184,7 @@ static void check_model_variant(void)
|
||||||
c200v2_variant = !GPIOA_PIN(7);
|
c200v2_variant = !GPIOA_PIN(7);
|
||||||
GPIOA_DIR = saved_dir;
|
GPIOA_DIR = saved_dir;
|
||||||
}
|
}
|
||||||
#elif defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
|
#elif defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
int amsv2_variant;
|
int amsv2_variant;
|
||||||
|
|
||||||
static void check_model_variant(void)
|
static void check_model_variant(void)
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
? (((uintptr_t)(a)) - IRAM_ORIG) \
|
? (((uintptr_t)(a)) - IRAM_ORIG) \
|
||||||
: ((uintptr_t)(a))))
|
: ((uintptr_t)(a))))
|
||||||
|
|
||||||
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
|
#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
|
||||||
extern int amsv2_variant;
|
extern int amsv2_variant;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -154,15 +154,16 @@ unsigned char dualboot_fuzev2[332] = {
|
||||||
0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8,
|
0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8,
|
||||||
0x00, 0x00, 0x0d, 0xc8, 0x10, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x07, 0xc8
|
0x00, 0x00, 0x0d, 0xc8, 0x10, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x07, 0xc8
|
||||||
};
|
};
|
||||||
unsigned char dualboot_clipzip[152] = {
|
unsigned char dualboot_clipzip[168] = {
|
||||||
0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
|
0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
|
||||||
0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
|
0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
|
||||||
0x2c, 0x30, 0x0f, 0xe5, 0x48, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
|
0x2c, 0x30, 0x0f, 0xe5, 0x54, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
|
||||||
0x00, 0x10, 0x80, 0xe5, 0x02, 0x00, 0x00, 0xea, 0x4c, 0x00, 0x1f, 0xe5, 0x4c, 0x10, 0x1f, 0xe5,
|
0x00, 0x10, 0x80, 0xe5, 0x48, 0x00, 0x9f, 0xe5, 0x00, 0x11, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3,
|
||||||
0x01, 0x00, 0x00, 0xea, 0x60, 0x00, 0x1f, 0xe5, 0x60, 0x10, 0x1f, 0xe5, 0x58, 0x30, 0x1f, 0xe5,
|
0x02, 0x00, 0x00, 0x1a, 0x58, 0x00, 0x1f, 0xe5, 0x58, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea,
|
||||||
0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4,
|
0x6c, 0x00, 0x1f, 0xe5, 0x6c, 0x10, 0x1f, 0xe5, 0x64, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2,
|
||||||
0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3,
|
0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1,
|
||||||
0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8
|
0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1,
|
||||||
|
0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,4 +9,4 @@ extern unsigned char dualboot_fuze[176];
|
||||||
extern unsigned char dualboot_clipv2[248];
|
extern unsigned char dualboot_clipv2[248];
|
||||||
extern unsigned char dualboot_clipplus[340];
|
extern unsigned char dualboot_clipplus[340];
|
||||||
extern unsigned char dualboot_fuzev2[332];
|
extern unsigned char dualboot_fuzev2[332];
|
||||||
extern unsigned char dualboot_clipzip[152];
|
extern unsigned char dualboot_clipzip[168];
|
||||||
|
|
|
@ -175,8 +175,12 @@ uclcopy:
|
||||||
bne boot_of @ branch directly to OF if either pin high
|
bne boot_of @ branch directly to OF if either pin high
|
||||||
|
|
||||||
#elif defined(SANSA_CLIPZIP)
|
#elif defined(SANSA_CLIPZIP)
|
||||||
@ just boot the OF
|
@ read pins
|
||||||
b boot_of
|
ldr r0, =GPIOA
|
||||||
|
ldr r1, [r0, #4*(1<<6)] @ read GPIO A6 "vol-"
|
||||||
|
|
||||||
|
cmp r1, #0 @ test input from pins
|
||||||
|
bne boot_of @ branch directly to OF if either pin high
|
||||||
|
|
||||||
#elif defined(SANSA_C200V2)
|
#elif defined(SANSA_C200V2)
|
||||||
.set BUTTON_LEFT, (1<< 2)
|
.set BUTTON_LEFT, (1<< 2)
|
||||||
|
|
|
@ -171,11 +171,11 @@ static struct md5sums sansasums[] = {
|
||||||
{ MODEL_FUZEV2, "2.02.26", "d4f6f85c3e4a8ea8f2e5acc421641801" },
|
{ MODEL_FUZEV2, "2.02.26", "d4f6f85c3e4a8ea8f2e5acc421641801" },
|
||||||
{ MODEL_FUZEV2, "2.03.31", "74fb197ccd51707388f3b233402186a6" },
|
{ MODEL_FUZEV2, "2.03.31", "74fb197ccd51707388f3b233402186a6" },
|
||||||
{ MODEL_FUZEV2, "2.03.33", "1599cc73d02ea7fe53fe2d4379c24b66" },
|
{ MODEL_FUZEV2, "2.03.33", "1599cc73d02ea7fe53fe2d4379c24b66" },
|
||||||
#if 0 /* disabled for now because it's not been proven they can be patched */
|
#if 1 /* disabled for now because it's not been proven they can be patched */
|
||||||
{ MODEL_CLIPZIP, "1.01.12", "45adea0873326b5af34f096e5c402f78" },
|
{ MODEL_CLIPZIP, "1.01.12", "45adea0873326b5af34f096e5c402f78" },
|
||||||
{ MODEL_CLIPZIP, "1.01.15", "f62af954334cd9ba1a87a7fa58ec6074" },
|
{ MODEL_CLIPZIP, "1.01.15", "f62af954334cd9ba1a87a7fa58ec6074" },
|
||||||
{ MODEL_CLIPZIP, "1.01.17", "27bcb343d6950f35dc261629e22ba60c" },
|
|
||||||
#endif
|
#endif
|
||||||
|
{ MODEL_CLIPZIP, "1.01.17", "27bcb343d6950f35dc261629e22ba60c" },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_MD5S (sizeof(sansasums)/sizeof(sansasums[0]))
|
#define NUM_MD5S (sizeof(sansasums)/sizeof(sansasums[0]))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue