path: root/rbutil
diff options
authorAmaury Pouly <>2013-11-18 20:07:02 +0000
committerAmaury Pouly <>2013-11-18 21:44:06 +0000
commit977a6c3ce7a2ab960590e9d997388cca2e4c29ee (patch)
tree092ef21d5f2123fee784de7d1ee719270c30c6de /rbutil
parenta8b816ae9cc00fe216e43d9bd9276b5d8cf12b25 (diff)
Initial commit for the Creative ZEN V
Change-Id: I3408cfdf742ea5995d5c87bf76653f436e1ec2b0
Diffstat (limited to 'rbutil')
5 files changed, 21 insertions, 4 deletions
diff --git a/rbutil/mkzenboot/dualboot.c b/rbutil/mkzenboot/dualboot.c
index 42baada495..4c98468b3b 100644
--- a/rbutil/mkzenboot/dualboot.c
+++ b/rbutil/mkzenboot/dualboot.c
@@ -41,3 +41,16 @@ unsigned char dualboot_zen[168] = {
0x00, 0x00, 0x05, 0x80, 0xa4, 0x00, 0x00, 0x41, 0xda, 0x00, 0xeb, 0x1c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+unsigned char dualboot_zenv[168] = {
+ 0x10, 0x40, 0x2d, 0xe9, 0x7c, 0x30, 0x9f, 0xe5, 0x00, 0x30, 0x93, 0xe5, 0x78, 0x20, 0x9f, 0xe5,
+ 0x00, 0x00, 0x92, 0xe5, 0x74, 0x20, 0x9f, 0xe5, 0x02, 0x11, 0xa0, 0xe3, 0x08, 0x10, 0x82, 0xe5,
+ 0x03, 0x11, 0x81, 0xe2, 0x08, 0x10, 0x82, 0xe5, 0xff, 0x14, 0x81, 0xe2, 0x58, 0x10, 0x82, 0xe5,
+ 0xc2, 0x14, 0x81, 0xe2, 0x24, 0x10, 0x82, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x18, 0x10, 0x82, 0xe5,
+ 0x04, 0x10, 0x82, 0xe5, 0x02, 0x10, 0xa0, 0xe1, 0x10, 0x20, 0x91, 0xe5, 0x01, 0x00, 0x12, 0xe3,
+ 0xfc, 0xff, 0xff, 0x0a, 0x34, 0x20, 0x9f, 0xe5, 0x50, 0x20, 0x92, 0xe5, 0xff, 0x24, 0xc2, 0xe3,
+ 0x3f, 0x27, 0xc2, 0xe3, 0xa5, 0x2e, 0x42, 0xe2, 0x0a, 0x20, 0x42, 0xe2, 0x63, 0x00, 0x52, 0xe3,
+ 0x00, 0x30, 0xa0, 0x93, 0x20, 0x00, 0x83, 0x95, 0x14, 0x20, 0x9f, 0xe5, 0x00, 0x00, 0x92, 0xe5,
+ 0x33, 0xff, 0x2f, 0xe1, 0x10, 0x80, 0xbd, 0xe8, 0xa0, 0x00, 0x00, 0x61, 0x9c, 0x00, 0x00, 0x61,
+ 0x00, 0x00, 0x05, 0x80, 0xa4, 0x00, 0x00, 0x61, 0xda, 0x00, 0xeb, 0x1c, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/rbutil/mkzenboot/dualboot.h b/rbutil/mkzenboot/dualboot.h
index c6c2d402d0..2497d2900c 100644
--- a/rbutil/mkzenboot/dualboot.h
+++ b/rbutil/mkzenboot/dualboot.h
@@ -3,3 +3,4 @@
extern unsigned char dualboot_zenmozaic[168];
extern unsigned char dualboot_zenxfi[168];
extern unsigned char dualboot_zen[168];
+extern unsigned char dualboot_zenv[168];
diff --git a/rbutil/mkzenboot/dualboot/Makefile b/rbutil/mkzenboot/dualboot/Makefile
index cc8c604f6e..752cc3ca28 100644
--- a/rbutil/mkzenboot/dualboot/Makefile
+++ b/rbutil/mkzenboot/dualboot/Makefile
@@ -11,10 +11,11 @@ LDFLAGS=
# 1) add x to the list in TARGETS
# 2) create a variable named OPT_x of the form:
# OPT_x=target specific defines
-TARGETS=zenmozaic zenxfi zen
+TARGETS=zenmozaic zenxfi zen zenv
BOOTLDS=$(patsubst %,, $(TARGETS))
BOOTOBJS=$(patsubst %, dualboot_%.o, $(TARGETS))
diff --git a/rbutil/mkzenboot/dualboot/dualboot.c b/rbutil/mkzenboot/dualboot/dualboot.c
index d0587fa65d..0b32772afb 100644
--- a/rbutil/mkzenboot/dualboot/dualboot.c
+++ b/rbutil/mkzenboot/dualboot/dualboot.c
@@ -21,6 +21,7 @@
#include "regs-pinctrl.h"
#include "regs-power.h"
#include "regs-lradc.h"
+#include "regs-digctl.h"
typedef unsigned long uint32_t;
@@ -83,7 +84,8 @@ static inline void __attribute__((noreturn)) power_down()
* Boot decision functions
-#if defined(CREATIVE_ZENMOZAIC) || defined(CREATIVE_ZEN) || defined(CREATIVE_ZENXFI)
+#if defined(CREATIVE_ZENMOZAIC) || defined(CREATIVE_ZEN) || defined(CREATIVE_ZENXFI) \
+ || defined(CREATIVE_ZENV)
static enum boot_t boot_decision()
setup_lradc(0); // setup LRADC channel 0 to read keys
diff --git a/rbutil/mkzenboot/mkzenboot.c b/rbutil/mkzenboot/mkzenboot.c
index 0a597d1a91..2817b7e666 100644
--- a/rbutil/mkzenboot/mkzenboot.c
+++ b/rbutil/mkzenboot/mkzenboot.c
@@ -94,7 +94,7 @@ static struct player_info_t zen_players[] =
{"Zen SleekPhoto", null_key_v1, tl_zsp_key, true, NULL},
{"Zen Touch", null_key_v1, tl_zt_key, true, NULL},
{"Zen Xtra", null_key_v1, tl_zx_key, true, NULL},
- {"Zen V", null_key_v3, tl_zenv_key, false, NULL},
+ {"Zen V", null_key_v3, tl_zenv_key, false, "Creative ZEN V"},
{"Zen V Plus", null_key_v3, tl_zenvp_key, false, NULL},
{"Zen V Video", null_key_v3, tl_zenvv_key, false, NULL},
@@ -130,7 +130,7 @@ static const struct zen_model_desc_t zen_models[] =
- "Zen V", "zenv", 85, 0x60000000, NULL, 0
+ "Zen V", "zenv", 85, 0x61000000, dualboot_zenv, sizeof(dualboot_zenv)