summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2006-08-05 20:19:10 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2006-08-05 20:19:10 +0000
commit954b73265404075ec4d379ddea14e626113a8677 (patch)
tree5c6ff0056ebd118aadb896856e7679a41c595cba /firmware/export
parent85ba65d2a3fa3d10799efadbe3a33f026bf354df (diff)
downloadrockbox-954b73265404075ec4d379ddea14e626113a8677.zip
rockbox-954b73265404075ec4d379ddea14e626113a8677.tar.gz
rockbox-954b73265404075ec4d379ddea14e626113a8677.tar.bz2
rockbox-954b73265404075ec4d379ddea14e626113a8677.tar.xz
Initial support and use for EEPROM memory on H120 & H140 players when
Rockbox firmware has been flashed over original firmware (not yet possible to do). Dircache & tagcache serialization for fast bootup without the need to scan disk when Rockbox is in flash. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10464 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/config-h100.h6
-rw-r--r--firmware/export/config-h120.h10
-rw-r--r--firmware/export/eeprom_settings.h48
-rw-r--r--firmware/export/system.h8
4 files changed, 70 insertions, 2 deletions
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index 6d204c3..7310dfa 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -123,7 +123,10 @@
#define BOOTFILE_EXT "iriver"
#define BOOTFILE "rockbox." BOOTFILE_EXT
-#endif
+/* Define this if there is an EEPROM chip */
+#define HAVE_EEPROM
+
+#endif /* !SIMULATOR */
/* Define this for S/PDIF input available */
#define HAVE_SPDIF_IN
@@ -134,3 +137,4 @@
/* Define this if you can control the S/PDIF power */
#define HAVE_SPDIF_POWER
#define SPDIF_POWER_INVERTED
+
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index 5635a92..ca61813 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -118,7 +118,14 @@
#define BOOTFILE_EXT "iriver"
#define BOOTFILE "rockbox." BOOTFILE_EXT
-#endif
+#define BOOTLOADER_ENTRYPOINT 0x001F0000
+#define FLASH_ENTRYPOINT 0x00001000
+#define FLASH_MAGIC 0xfbfbfbf1
+
+/* Define this if there is an EEPROM chip */
+#define HAVE_EEPROM
+
+#endif /* !SIMULATOR */
/* Define this for S/PDIF input available */
#define HAVE_SPDIF_IN
@@ -128,3 +135,4 @@
/* Define this if you can control the S/PDIF power */
#define HAVE_SPDIF_POWER
+
diff --git a/firmware/export/eeprom_settings.h b/firmware/export/eeprom_settings.h
new file mode 100644
index 0000000..a3515bd
--- /dev/null
+++ b/firmware/export/eeprom_settings.h
@@ -0,0 +1,48 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2006 by Miika Pekkarinen
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#ifndef _EEPROM_SETTINGS_H_
+#define _EEPROM_SETTINGS_H_
+
+#include <stdbool.h>
+#include "inttypes.h"
+
+#define EEPROM_SETTINGS_VERSION 0x24c01001
+#define EEPROM_SETTINGS_BL_MINVER 7
+
+struct eeprom_settings
+{
+ long version; /* Settings version number */
+ bool initialized; /* Is eeprom_settings ready to be used */
+ bool disk_clean; /* Is disk intact from last reboot */
+ bool boot_disk; /* Load firmware from disk (default=FLASH) */
+ uint8_t bl_version; /* Installed bootloader version */
+
+ /* This must be the last entry */
+ uint32_t checksum; /* Checksum of this structure */
+};
+
+extern struct eeprom_settings firmware_settings;
+
+bool detect_flashed_rockbox(void);
+bool eeprom_settings_init(void);
+bool eeprom_settings_store(void);
+
+#endif
+
diff --git a/firmware/export/system.h b/firmware/export/system.h
index dae5d95..1b326e1 100644
--- a/firmware/export/system.h
+++ b/firmware/export/system.h
@@ -45,6 +45,14 @@ static inline void udelay(unsigned usecs)
}
#endif
+struct flash_header {
+ unsigned long magic;
+ unsigned long length;
+ char version[32];
+};
+
+bool detect_flashed_rockbox(void);
+
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
#define FREQ cpu_frequency
void set_cpu_frequency(long frequency);