summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJames Buren <braewoods+rb@braewoods.net>2020-10-27 16:00:15 +0000
committerJames Buren <braewoods+rb@braewoods.net>2020-10-27 16:00:15 +0000
commite5b963b8e12fc7edbc00f607131e4a6d603fba7b (patch)
tree3e2461de8c941c1d22ee830bc54ef6f2a1c6c1e3 /apps
parent61f698715dfed3a7e21895430020f029934184cd (diff)
downloadrockbox-e5b963b8e12fc7edbc00f607131e4a6d603fba7b.tar.gz
rockbox-e5b963b8e12fc7edbc00f607131e4a6d603fba7b.tar.bz2
rockbox-e5b963b8e12fc7edbc00f607131e4a6d603fba7b.zip
iriver_flash: remove trailing whitespaces
Change-Id: I5f32ba177a2ca559768e621bbad1d896c9adcafa
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/iriver_flash.c192
1 files changed, 96 insertions, 96 deletions
diff --git a/apps/plugins/iriver_flash.c b/apps/plugins/iriver_flash.c
index ce31429aa8..f5d209268f 100644
--- a/apps/plugins/iriver_flash.c
+++ b/apps/plugins/iriver_flash.c
@@ -8,7 +8,7 @@
* $Id$
*
* !!! DON'T MESS WITH THIS CODE UNLESS YOU'RE ABSOLUTELY SURE WHAT YOU DO !!!
- *
+ *
* Copyright (C) 2006 by Miika Pekkarinen
*
* This program is free software; you can redistribute it and/or
@@ -71,26 +71,26 @@ bool cfi_read_id(volatile uint16_t* pBase, uint8_t* pManufacturerID, uint8_t* pD
{
uint8_t not_manu, not_id; /* read values before switching to ID mode */
uint8_t manu, id; /* read values when in ID mode */
-
+
pBase = (uint16_t*)((uint32_t)pBase & 0xFFF80000); /* down to 512k align */
-
+
/* read the normal content */
not_manu = pBase[0]; /* should be 'A' (0x41) and 'R' (0x52) */
not_id = pBase[1]; /* from the "ARCH" marker */
-
+
pBase[0x5555] = 0xAA; /* enter command mode */
pBase[0x2AAA] = 0x55;
pBase[0x5555] = 0x90; /* ID command */
rb->sleep(HZ/50); /* Atmel wants 20ms pause here */
-
+
manu = pBase[0];
id = pBase[1];
-
+
pBase[0] = 0xF0; /* reset flash (back to normal read mode) */
rb->sleep(HZ/50); /* Atmel wants 20ms pause here */
-
+
/* I assume success if the obtained values are different from
- the normal flash content. This is not perfectly bulletproof, they
+ the normal flash content. This is not perfectly bulletproof, they
could theoretically be the same by chance, causing us to fail. */
if (not_manu != manu || not_id != id) /* a value has changed */
{
@@ -106,7 +106,7 @@ bool cfi_read_id(volatile uint16_t* pBase, uint8_t* pManufacturerID, uint8_t* pD
bool cfi_erase_sector(volatile uint16_t* pAddr)
{
unsigned timeout = 430000; /* the timeout loop should be no less than 25ms */
-
+
FB[0x5555] = 0xAA; /* enter command mode */
FB[0x2AAA] = 0x55;
FB[0x5555] = 0x80; /* erase command */
@@ -126,20 +126,20 @@ bool cfi_erase_sector(volatile uint16_t* pAddr)
static inline bool cfi_program_word(volatile uint16_t* pAddr, uint16_t data)
{
unsigned timeout = 85; /* the timeout loop should be no less than 20us */
-
+
if (~*pAddr & data) /* just a safety feature, not really necessary */
return false; /* can't set any bit from 0 to 1 */
-
+
FB[0x5555] = 0xAA; /* enter command mode */
FB[0x2AAA] = 0x55;
FB[0x5555] = 0xA0; /* byte program command */
-
+
*pAddr = data;
-
+
/* I counted 7 instructions for this loop -> min. 0.58 us per round */
/* Plus memory waitstates it will be much more, gives margin */
while (*pAddr != data && --timeout); /* poll for programmed */
-
+
return (timeout != 0);
}
@@ -148,10 +148,10 @@ static inline bool cfi_program_word(volatile uint16_t* pAddr, uint16_t data)
bool cfi_get_flash_info(struct flash_info* pInfo)
{
rb->memset(pInfo, 0, sizeof(struct flash_info));
-
+
if (!cfi_read_id(FB, &pInfo->manufacturer, &pInfo->id))
return false;
-
+
if (pInfo->manufacturer == 0xBF) /* SST */
{
if (pInfo->id == 0xD6)
@@ -188,12 +188,12 @@ bool cfi_get_flash_info(struct flash_info* pInfo)
int wait_for_button(void)
{
int button;
-
+
do
{
button = rb->button_get(true);
} while (IS_SYSEVENT(button) || (button & BUTTON_REL));
-
+
return button;
}
@@ -209,8 +209,8 @@ void ShowFlashInfo(struct flash_info* pInfo)
{
rb->lcd_putsf(0, 0, "Flash: M=%02x D=%02x",
pInfo->manufacturer, pInfo->id);
-
-
+
+
if (pInfo->size)
{
rb->lcd_puts(0, 1, pInfo->name);
@@ -220,16 +220,16 @@ void ShowFlashInfo(struct flash_info* pInfo)
{
rb->lcd_puts(0, 1, "Unsupported chip");
}
-
+
}
-
+
rb->lcd_update();
}
bool show_info(void)
{
struct flash_info fi;
-
+
rb->lcd_clear_display();
cfi_get_flash_info(&fi);
ShowFlashInfo(&fi);
@@ -238,19 +238,19 @@ bool show_info(void)
rb->splash(HZ*3, "Sorry!");
return false; /* exit */
}
-
+
return true;
}
bool confirm(const char *msg)
{
bool ret;
-
+
rb->splashf(0, "%s ([PLAY] to CONFIRM)", msg);
-
+
ret = (wait_for_button() == BUTTON_ON);
show_info();
-
+
return ret;
}
@@ -260,24 +260,24 @@ int load_firmware_file(const char *filename, uint32_t *checksum)
int len, rc;
int i;
uint32_t sum;
-
+
fd = rb->open(filename, O_RDONLY);
if (fd < 0)
return -1;
-
+
len = rb->filesize(fd);
-
+
if (audiobuf_size < len)
{
rb->splash(HZ*3, "Aborting: Out of memory!");
rb->close(fd);
return -2;
}
-
+
rb->read(fd, checksum, 4);
rb->lseek(fd, FIRMWARE_OFFSET_FILE_DATA, SEEK_SET);
len -= FIRMWARE_OFFSET_FILE_DATA;
-
+
rc = rb->read(fd, audiobuf, len);
rb->close(fd);
if (rc != len)
@@ -285,22 +285,22 @@ int load_firmware_file(const char *filename, uint32_t *checksum)
rb->splash(HZ*3, "Aborting: Read failure");
return -3;
}
-
+
/* Verify the checksum */
sum = MODEL_NUMBER;
for (i = 0; i < len; i++)
sum += audiobuf[i];
-
+
if (sum != *checksum)
{
rb->splash(HZ*3, "Aborting: Checksums mismatch!");
return -4;
}
-
+
return len;
}
-unsigned long valid_bootloaders[][2] = {
+unsigned long valid_bootloaders[][2] = {
/* Size-8 CRC32 */
#ifdef IRIVER_H120 /* Iriver H120/H140 checksums */
{ 63788, 0x08ff01a9 }, /* 7-pre3, improved failsafe functions */
@@ -351,10 +351,10 @@ int flash_rockbox(const char *filename, int section)
unsigned long checksum, sum;
unsigned char *p8;
uint16_t *p16;
-
+
if (get_section_address(section) < 0)
return -1;
-
+
p8 = (char *)BOOTLOADER_ENTRYPOINT;
if (!detect_valid_bootloader(p8, 0))
{
@@ -376,9 +376,9 @@ int flash_rockbox(const char *filename, int section)
len = load_firmware_file(filename, &checksum);
if (len <= 0)
return len * 10;
-
+
pos = get_section_address(section);
-
+
/* Check if image relocation seems to be sane. */
if (section == SECT_ROMIMAGE)
{
@@ -390,39 +390,39 @@ int flash_rockbox(const char *filename, int section)
*p32, pos+sizeof(struct flash_header));
return -1;
}
-
+
}
-
+
/* Erase the program flash. */
for (i = 0; i + pos < BOOTLOADER_ENTRYPOINT && i < len + 32; i += SEC_SIZE)
{
/* Additional safety check. */
if (i + pos < SEC_SIZE)
return -1;
-
+
rb->lcd_putsf(0, 3, "Erasing... %d%%", (i+SEC_SIZE)*100/len);
rb->lcd_update();
-
+
/*rc = */cfi_erase_sector(FB + (i + pos)/2);
}
-
+
/* Write the magic and size. */
rb->memset(&hdr, 0, sizeof(struct flash_header));
hdr.magic = FLASH_MAGIC;
hdr.length = len;
// rb->strncpy(hdr.version, rb->rbversion , sizeof(hdr.version)-1);
p16 = (uint16_t *)&hdr;
-
+
rb->lcd_puts(0, 4, "Programming...");
rb->lcd_update();
-
+
pos = get_section_address(section)/2;
for (i = 0; i < (long)sizeof(struct flash_header)/2; i++)
{
cfi_program_word(FB + pos, p16[i]);
pos++;
}
-
+
p16 = (uint16_t *)audiobuf;
for (i = 0; i < len/2 && pos + i < (BOOTLOADER_ENTRYPOINT/2); i++)
{
@@ -431,20 +431,20 @@ int flash_rockbox(const char *filename, int section)
rb->lcd_putsf(0, 4, "Programming... %d%%", (i+1)*100/(len/2));
rb->lcd_update();
}
-
+
cfi_program_word(FB + pos + i, p16[i]);
}
-
+
/* Verify */
rb->lcd_puts(0, 5, "Verifying");
rb->lcd_update();
-
+
p8 = (char *)get_section_address(section);
p8 += sizeof(struct flash_header);
sum = MODEL_NUMBER;
for (i = 0; i < len; i++)
sum += p8[i];
-
+
if (sum != checksum)
{
rb->splash(HZ*3, "Verify failed!");
@@ -456,9 +456,9 @@ int flash_rockbox(const char *filename, int section)
cfi_erase_sector(FB + FLASH_ROMIMAGE_ENTRY/2);
return -5;
}
-
+
rb->splash(HZ*2, "Success");
-
+
return 0;
}
@@ -481,20 +481,20 @@ int flash_bootloader(const char *filename)
bootsector = audiobuf;
audiobuf += SEC_SIZE;
audiobuf_size -= SEC_SIZE;
-
+
if (!confirm("Update bootloader?"))
return -2;
-
+
len = load_firmware_file(filename, &checksum);
if (len <= 0)
return len * 10;
-
+
if (len > 0xFFFF)
{
rb->splash(HZ*3, "Too big bootloader");
return -1;
}
-
+
/* Verify the crc32 checksum also. */
if (!detect_valid_bootloader(audiobuf, len))
{
@@ -508,40 +508,40 @@ int flash_bootloader(const char *filename)
/* Backup the bootloader sector first. */
p8 = (char *)FB;
rb->memcpy(bootsector, p8, SEC_SIZE);
-
+
/* Erase the boot sector and write a proper reset vector. */
cfi_erase_sector(FB);
p16 = (uint16_t *)audiobuf;
for (i = 0; i < 8/2; i++)
cfi_program_word(FB + i, p16[i]);
-
+
/* And restore original content for original FW to function. */
p16 = (uint16_t *)bootsector;
for (i = 8/2; i < SEC_SIZE/2; i++)
cfi_program_word(FB + i, p16[i]);
-
+
/* Erase the bootloader flash section. */
for (i = BOOTLOADER_ERASEGUARD; i < BOOTLOADER_ERASEGUARD+16; i++)
/*rc =*/ cfi_erase_sector(FB + (SEC_SIZE/2) * i);
-
+
pos = BOOTLOADER_ENTRYPOINT/2;
p16 = (uint16_t *)audiobuf;
for (i = 0; i < len/2; i++)
cfi_program_word(FB + pos + i, p16[i]);
-
+
/* Verify */
p8 = (char *)BOOTLOADER_ENTRYPOINT;
sum = MODEL_NUMBER;
for (i = 0; i < len; i++)
sum += p8[i];
-
+
if (sum != checksum)
{
rb->splash(HZ*3, "Verify failed!");
show_fatal_error();
return -5;
}
-
+
p8 = (char *)FB;
for (i = 0; i < 8; i++)
{
@@ -552,9 +552,9 @@ int flash_bootloader(const char *filename)
return -6;
}
}
-
+
rb->splash(HZ*2, "Success");
-
+
return 0;
}
@@ -564,22 +564,22 @@ int flash_original_fw(int len)
int pos, i, rc;
unsigned char *p8;
uint16_t *p16;
-
+
rb->lcd_puts(0, 3, "Critical section...");
rb->lcd_update();
p8 = (char *)FB;
rb->memcpy(reset_vector, p8, sizeof reset_vector);
-
+
/* Erase the boot sector and write back the reset vector. */
cfi_erase_sector(FB);
p16 = (uint16_t *)reset_vector;
for (i = 0; i < (long)sizeof(reset_vector)/2; i++)
cfi_program_word(FB + i, p16[i]);
-
+
rb->lcd_puts(0, 4, "Flashing orig. FW");
rb->lcd_update();
-
+
/* Erase the program flash. */
for (i = 1; i < BOOTLOADER_ERASEGUARD && (i-1)*4096 < len; i++)
{
@@ -587,18 +587,18 @@ int flash_original_fw(int len)
rb->lcd_putsf(0, 5, "Erase: 0x%03x (%d)", i, rc);
rb->lcd_update();
}
-
+
rb->lcd_puts(0, 6, "Programming");
rb->lcd_update();
-
+
pos = 0x00000008/2;
p16 = (uint16_t *)audiobuf;
for (i = 0; i < len/2 && pos + i < (BOOTLOADER_ENTRYPOINT/2); i++)
cfi_program_word(FB + pos + i, p16[i]);
-
+
rb->lcd_puts(0, 7, "Verifying");
rb->lcd_update();
-
+
/* Verify reset vectors. */
p8 = (char *)FB;
for (i = 0; i < 8; i++)
@@ -610,7 +610,7 @@ int flash_original_fw(int len)
break;
}
}
-
+
/* Verify */
p8 = (char *)0x00000008;
for (i = 0; i < len; i++)
@@ -622,9 +622,9 @@ int flash_original_fw(int len)
return -5;
}
}
-
+
rb->splash(HZ*2, "Success");
-
+
return 0;
}
@@ -633,14 +633,14 @@ int load_original_bin(const char *filename)
unsigned long magic[2];
int len, rc;
int fd;
-
+
if (!confirm("Restore original firmware (bootloader will be kept)?"))
return -2;
-
+
fd = rb->open(filename, O_RDONLY);
if (fd < 0)
return -1;
-
+
len = rb->filesize(fd) - 0x228;
rb->lseek(fd, 0x220, SEEK_SET);
rb->read(fd, magic, 8);
@@ -650,19 +650,19 @@ int load_original_bin(const char *filename)
rb->close(fd);
return -1;
}
-
+
rc = rb->read(fd, audiobuf, len);
rb->close(fd);
-
+
if (rc != len)
{
rb->splash(HZ*2, "Read error");
return -2;
}
-
+
if (len % 2)
len++;
-
+
return flash_original_fw(len);
}
@@ -670,34 +670,34 @@ int load_romdump(const char *filename)
{
int len, rc;
int fd;
-
+
if (!confirm("Restore firmware section (bootloader will be kept)?"))
return -2;
-
+
fd = rb->open(filename, O_RDONLY);
if (fd < 0)
return -1;
-
+
len = rb->filesize(fd) - 8;
if (len <= 0)
return -1;
-
+
rb->lseek(fd, 8, SEEK_SET);
rc = rb->read(fd, audiobuf, len);
rb->close(fd);
-
+
if (rc != len)
{
rb->splash(HZ*2, "Read error");
return -2;
}
-
+
if (len % 2)
len++;
-
+
if (len > BOOTLOADER_ENTRYPOINT - 8)
len = BOOTLOADER_ENTRYPOINT - 8;
-
+
return flash_original_fw(len);
}
@@ -717,7 +717,7 @@ void DoUserDialog(char* filename)
rb->splash(HZ*3, "Battery too low!");
return; /* exit */
}
-
+
rb->lcd_setfont(FONT_SYSFIXED);
if (!show_info())
return ;
@@ -727,9 +727,9 @@ void DoUserDialog(char* filename)
rb->splash(HZ*3, "Please use this plugin with \"Open with...\"");
return ;
}
-
+
audiobuf = rb->plugin_get_audio_buffer((size_t *)&audiobuf_size);
-
+
if (rb->strcasestr(filename, "/rockbox.iriver"))
flash_rockbox(filename, SECT_RAMIMAGE);
else if (rb->strcasestr(filename, "/rombox.iriver"))