diff options
| author | Miika Pekkarinen <miipekk@ihme.org> | 2006-08-05 20:19:10 +0000 |
|---|---|---|
| committer | Miika Pekkarinen <miipekk@ihme.org> | 2006-08-05 20:19:10 +0000 |
| commit | 954b73265404075ec4d379ddea14e626113a8677 (patch) | |
| tree | 5c6ff0056ebd118aadb896856e7679a41c595cba /firmware/export | |
| parent | 85ba65d2a3fa3d10799efadbe3a33f026bf354df (diff) | |
| download | rockbox-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.h | 6 | ||||
| -rw-r--r-- | firmware/export/config-h120.h | 10 | ||||
| -rw-r--r-- | firmware/export/eeprom_settings.h | 48 | ||||
| -rw-r--r-- | firmware/export/system.h | 8 |
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); |