summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorTomasz Moń <desowin@gmail.com>2011-12-19 06:39:07 +0000
committerTomasz Moń <desowin@gmail.com>2011-12-19 06:39:07 +0000
commitb98d03f4c389dd021ebd6f21ef2e7e993dec0714 (patch)
treee5516874e4a8bd769c1fc9311d1ea249bbef0ba7 /firmware
parent2d8fd040d804503b3168eceb5ad03a11160969e5 (diff)
TMS320DM320: Turn on Image Buffer clock on demand (FS #12462)
This improves battery runtime on Sansa Connect by approximately 40 minutes. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31358 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/tms320dm320/dsp/arm.c16
-rw-r--r--firmware/target/arm/tms320dm320/dsp/arm.h4
-rw-r--r--firmware/target/arm/tms320dm320/dsp/dsp-image.h266
-rw-r--r--firmware/target/arm/tms320dm320/dsp/registers.h2
-rw-r--r--firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c12
-rw-r--r--firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c3
6 files changed, 163 insertions, 140 deletions
diff --git a/firmware/target/arm/tms320dm320/dsp/arm.c b/firmware/target/arm/tms320dm320/dsp/arm.c
index 08fbaa9c12..2469a44eb1 100644
--- a/firmware/target/arm/tms320dm320/dsp/arm.c
+++ b/firmware/target/arm/tms320dm320/dsp/arm.c
@@ -95,3 +95,19 @@ void debugf(const char *fmt, ...) {
acked = 2;
}
#endif
+
+void int_arm(void)
+{
+ /*
+ * ImageBuffer clock enable in ARM's MOD1 is ORed with clock enable
+ * bit in CP_CLKC
+ */
+
+ /* Enable Image Buffer clock */
+ CP_CLKC |= 1 << 0;
+ /* Send interrupt to ARM */
+ CP_INTC = 1 << 3;
+ /* Disable Image Buffer clock */
+ CP_CLKC &= ~(1 << 0);
+}
+
diff --git a/firmware/target/arm/tms320dm320/dsp/arm.h b/firmware/target/arm/tms320dm320/dsp/arm.h
index ff4a9a1c51..e9217f3499 100644
--- a/firmware/target/arm/tms320dm320/dsp/arm.h
+++ b/firmware/target/arm/tms320dm320/dsp/arm.h
@@ -28,8 +28,6 @@ extern volatile struct ipc_message status;
void debugf(const char *fmt, ...);
-inline void int_arm(void) {
- CP_INTC = 1 << 3;
-}
+void int_arm(void);
#endif
diff --git a/firmware/target/arm/tms320dm320/dsp/dsp-image.h b/firmware/target/arm/tms320dm320/dsp/dsp-image.h
index 3d72e73858..f49704bd7b 100644
--- a/firmware/target/arm/tms320dm320/dsp/dsp-image.h
+++ b/firmware/target/arm/tms320dm320/dsp/dsp-image.h
@@ -20,105 +20,110 @@
*
*/
static const unsigned short _section_text[] = {
- 0xe808, 0x75f8, 0x0008, 0x0280, 0xfc00, 0x4a11, 0x60f8, 0x05a4,
- 0x0001, 0xfa30, 0x0092, 0xf495, 0xeefe, 0x60f8, 0x05a4, 0x0002,
- 0xf820, 0x00a7, 0x7711, 0x0054, 0x6881, 0xfffe, 0xf074, 0x02e2,
- 0xe800, 0x75f8, 0x0008, 0x8006, 0x76f8, 0x05a1, 0x0000, 0x76f8,
- 0x05a0, 0x0000, 0x76f8, 0x05a2, 0x0000, 0xf073, 0x0114, 0x10f8,
- 0x05a1, 0x08f8, 0x059f, 0xf844, 0x00b8, 0x76f8, 0x05a1, 0x0000,
- 0x76f8, 0x054b, 0x0002, 0x76f8, 0x05a5, 0x0001, 0xf074, 0x0080,
- 0x10f8, 0x05a5, 0xf844, 0x0114, 0x10f8, 0x059f, 0x00f8, 0x05a0,
- 0x08f8, 0x05a1, 0x8811, 0xf495, 0x7710, 0x1000, 0xf6a9, 0xf820,
- 0x00cf, 0xf020, 0x1000, 0xf273, 0x00d3, 0x08f8, 0x05a0, 0x10f8,
- 0x059f, 0x08f8, 0x05a1, 0x80f8, 0x05a2, 0xf6b8, 0x10f8, 0x05a3,
- 0xf000, 0x8000, 0x6ff8, 0x05a0, 0x0c1f, 0x75f8, 0x0008, 0x8002,
- 0xe800, 0x75f8, 0x0008, 0x8003, 0x10f8, 0x059d, 0xf1ef, 0xf3e1,
- 0x10f8, 0x059e, 0xf2a0, 0x00f8, 0x05a1, 0x4e00, 0xf020, 0xffff,
- 0x5700, 0xf280, 0x75f8, 0x0008, 0x8000, 0x5600, 0xf0f0, 0x75f8,
- 0x0008, 0x8001, 0xe800, 0x75f8, 0x05a2, 0x8004, 0x75f8, 0x0008,
- 0x8005, 0xe801, 0x74f8, 0x054d, 0x8006, 0x74f8, 0x054e, 0x8001,
- 0x74f8, 0x054f, 0x8000, 0x74f8, 0x0550, 0x8003, 0x74f8, 0x0551,
- 0x8002, 0x75f8, 0x0008, 0x8006, 0xee02, 0x8a11, 0xfc00, 0xf495,
- 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11,
- 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19,
- 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8,
- 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc,
- 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0xeeff,
- 0xf020, 0x0800, 0x7681, 0x0040, 0x7711, 0x0055, 0x7681, 0x0000,
- 0x7711, 0x0057, 0x1881, 0x8000, 0xf020, 0x0800, 0x1c00, 0x80f8,
- 0x05a3, 0x76f8, 0x05a0, 0x0000, 0xf074, 0x0085, 0xee01, 0x8a18,
- 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e,
- 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12,
- 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08,
- 0xf4eb, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d,
- 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17,
- 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b,
- 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8,
- 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001,
- 0x4a08, 0x7681, 0x0800, 0x10f8, 0x05a2, 0x00f8, 0x05a0, 0x80f8,
- 0x05a0, 0x10f8, 0x05a2, 0x00f8, 0x05a1, 0x80f8, 0x05a1, 0x7211,
- 0x05a0, 0x7710, 0x1000, 0xf5a9, 0xfa20, 0x01b2, 0xf495, 0xeeff,
- 0xf074, 0x0085, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d,
- 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16,
- 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c,
- 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x7711, 0x0054,
- 0x7681, 0x0000, 0x7711, 0x0055, 0x7681, 0x0003, 0x7711, 0x0057,
- 0x7681, 0x2800, 0x7711, 0x0055, 0x7681, 0x0004, 0x7711, 0x0057,
- 0x7681, 0x7141, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057,
- 0x7681, 0x8000, 0x7711, 0x0055, 0x7681, 0x0001, 0x7711, 0x0057,
- 0x7681, 0x0022, 0x7711, 0x0055, 0x7681, 0x0002, 0x7711, 0x0057,
- 0x7681, 0x1000, 0x7711, 0x0054, 0x7681, 0x0080, 0x8a11, 0xfc00,
+ 0xf495, 0x74f8, 0x0008, 0x0281, 0xf040, 0x0001, 0x75f8, 0x0008,
+ 0x0281, 0xe808, 0x75f8, 0x0008, 0x0280, 0x74f8, 0x0008, 0x0281,
+ 0xf030, 0xfffe, 0x75f8, 0x0008, 0x0281, 0xfc00, 0x4a11, 0x60f8,
+ 0x05cb, 0x0001, 0xfa30, 0x00a3, 0xf495, 0xeefe, 0x60f8, 0x05cb,
+ 0x0002, 0xf820, 0x00b8, 0x7711, 0x0054, 0x6881, 0xfffe, 0xf074,
+ 0x0309, 0xe800, 0x75f8, 0x0008, 0x8006, 0x76f8, 0x05c8, 0x0000,
+ 0x76f8, 0x05c7, 0x0000, 0x76f8, 0x05c9, 0x0000, 0xf073, 0x0125,
+ 0x10f8, 0x05c8, 0x08f8, 0x05c6, 0xf844, 0x00c9, 0x76f8, 0x05c8,
+ 0x0000, 0x76f8, 0x0572, 0x0002, 0x76f8, 0x05cc, 0x0001, 0xf074,
+ 0x0080, 0x10f8, 0x05cc, 0xf844, 0x0125, 0x10f8, 0x05c6, 0x00f8,
+ 0x05c7, 0x08f8, 0x05c8, 0x8811, 0xf495, 0x7710, 0x1000, 0xf6a9,
+ 0xf820, 0x00e0, 0xf020, 0x1000, 0xf273, 0x00e4, 0x08f8, 0x05c7,
+ 0x10f8, 0x05c6, 0x08f8, 0x05c8, 0x80f8, 0x05c9, 0xf6b8, 0x10f8,
+ 0x05ca, 0xf000, 0x8000, 0x6ff8, 0x05c7, 0x0c1f, 0x75f8, 0x0008,
+ 0x8002, 0xe800, 0x75f8, 0x0008, 0x8003, 0x10f8, 0x05c4, 0xf1ef,
+ 0xf3e1, 0x10f8, 0x05c5, 0xf2a0, 0x00f8, 0x05c8, 0x4e00, 0xf020,
+ 0xffff, 0x5700, 0xf280, 0x75f8, 0x0008, 0x8000, 0x5600, 0xf0f0,
+ 0x75f8, 0x0008, 0x8001, 0xe800, 0x75f8, 0x05c9, 0x8004, 0x75f8,
+ 0x0008, 0x8005, 0xe801, 0x74f8, 0x0574, 0x8006, 0x74f8, 0x0575,
+ 0x8001, 0x74f8, 0x0576, 0x8000, 0x74f8, 0x0577, 0x8003, 0x74f8,
+ 0x0578, 0x8002, 0x75f8, 0x0008, 0x8006, 0xee02, 0x8a11, 0xfc00,
0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10,
0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17,
0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c,
0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d,
0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08,
- 0x7681, 0x0001, 0x6bf8, 0x059c, 0x0001, 0x76f8, 0x05a5, 0x0000,
- 0x10f8, 0x05a4, 0xfa44, 0x0245, 0xf495, 0xeeff, 0x7712, 0x0054,
- 0x960f, 0xf830, 0x0245, 0xf074, 0x0085, 0x7711, 0x0054, 0x6981,
- 0x0001, 0xf074, 0x02d7, 0xf073, 0x0247, 0xf074, 0x0085, 0xee01,
+ 0xeeff, 0xf020, 0x0800, 0x7681, 0x0040, 0x7711, 0x0055, 0x7681,
+ 0x0000, 0x7711, 0x0057, 0x1881, 0x8000, 0xf020, 0x0800, 0x1c00,
+ 0x80f8, 0x05ca, 0x76f8, 0x05c7, 0x0000, 0xf074, 0x0096, 0xee01,
0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06,
0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13,
0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09,
- 0x8a08, 0xf4eb, 0xf7be, 0xf6b9, 0xf4a0, 0xf6b7, 0xf6b5, 0xf6b6,
- 0xf7b8, 0x7718, 0x034b, 0x6bf8, 0x0018, 0x01ff, 0x68f8, 0x0018,
- 0xfffe, 0xf020, 0x05aa, 0xf100, 0x0001, 0xf84d, 0x028e, 0xf6b8,
- 0xf495, 0xf020, 0x05aa, 0xf073, 0x0288, 0x7ef8, 0x0012, 0xf000,
- 0x0001, 0x47f8, 0x0011, 0x7e92, 0x00f8, 0x0011, 0xf000, 0x0001,
- 0x7ef8, 0x0011, 0xf000, 0x0001, 0x6c89, 0x027d, 0xf7b8, 0xeefc,
- 0xf020, 0xffff, 0xf100, 0x0001, 0xf84d, 0x02a6, 0xf6b8, 0xf495,
- 0xf020, 0xffff, 0xf273, 0x02a0, 0x4e02, 0xf495, 0xf5e3, 0x5602,
- 0x7e00, 0x1100, 0xfa4c, 0x029e, 0x6b03, 0x0001, 0xf6b8, 0xee04,
- 0xf074, 0x02ed, 0xf074, 0x0310, 0x4a11, 0x7711, 0x0038, 0x7681,
- 0x0000, 0x7711, 0x0039, 0x7681, 0x0000, 0x7711, 0x0038, 0x7681,
- 0x0001, 0x7711, 0x0039, 0x7681, 0x0030, 0x7711, 0x0038, 0x7681,
- 0x000e, 0x7711, 0x0039, 0x7681, 0x0002, 0x7711, 0x0038, 0x7681,
- 0x0004, 0x7711, 0x0039, 0x7681, 0x00a0, 0x7711, 0x0038, 0x7681,
- 0x0005, 0x7711, 0x0039, 0x7681, 0x0000, 0x8a11, 0xfc00, 0x4a11,
- 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6981, 0x0001,
- 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711,
- 0x0039, 0x6881, 0xfffe, 0x8a11, 0xfc00, 0xf6b8, 0xf495, 0xf162,
- 0xffff, 0xf340, 0xffff, 0xf640, 0xf0e0, 0xf010, 0xffff, 0xf061,
- 0xffff, 0xfa44, 0x0301, 0x4a11, 0xeefe, 0xf273, 0x0307, 0xe800,
- 0xe900, 0x8911, 0xf495, 0x4911, 0x1081, 0xf300, 0x0001, 0x8100,
- 0xf074, 0x032c, 0xee02, 0x8a11, 0xfc00, 0xf495, 0xf073, 0x030e,
- 0x4a11, 0x8811, 0x10f8, 0x05a6, 0xf4e3, 0x10f8, 0x05a9, 0xf845,
- 0x031e, 0x11f8, 0x05a9, 0xf7e3, 0xf495, 0x4811, 0x10f8, 0x05a8,
- 0xf845, 0x0325, 0x10f8, 0x05a8, 0xf4e3, 0x10f8, 0x05a7, 0xf4e3,
- 0xf074, 0x030d, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0026, 0x7712,
- 0x0001, 0x7713, 0x0001, 0x7681, 0x0010, 0x7711, 0x0000, 0x7681,
- 0xffff, 0xe501, 0xf495, 0xf6bb, 0xf074, 0x02ac, 0xf074, 0x01cd,
- 0xf4e1, 0xf495, 0xf073, 0x0340, 0x80f8, 0x05a7, 0xfc00, 0x80f8,
- 0x05a6, 0xfc00, 0xfc00,
+ 0x8a08, 0xf4eb, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c,
+ 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16,
+ 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d,
+ 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000,
+ 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711,
+ 0x0001, 0x4a08, 0x7681, 0x0800, 0x10f8, 0x05c9, 0x00f8, 0x05c7,
+ 0x80f8, 0x05c7, 0x10f8, 0x05c9, 0x00f8, 0x05c8, 0x80f8, 0x05c8,
+ 0x7211, 0x05c7, 0x7710, 0x1000, 0xf5a9, 0xfa20, 0x01c3, 0xf495,
+ 0xeeff, 0xf074, 0x0096, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b,
+ 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17,
+ 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d,
+ 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x7711,
+ 0x0054, 0x7681, 0x0000, 0x7711, 0x0055, 0x7681, 0x0003, 0x7711,
+ 0x0057, 0x7681, 0x2800, 0x7711, 0x0055, 0x7681, 0x0004, 0x7711,
+ 0x0057, 0x7681, 0x7141, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711,
+ 0x0057, 0x7681, 0x8000, 0x7711, 0x0055, 0x7681, 0x0001, 0x7711,
+ 0x0057, 0x7681, 0x0022, 0x7711, 0x0055, 0x7681, 0x0002, 0x7711,
+ 0x0057, 0x7681, 0x1000, 0x7711, 0x0054, 0x7681, 0x0080, 0x8a11,
+ 0xfc00, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d,
+ 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17,
+ 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b,
+ 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8,
+ 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001,
+ 0x4a08, 0x7681, 0x0001, 0x6bf8, 0x05c3, 0x0001, 0x76f8, 0x05cc,
+ 0x0000, 0x10f8, 0x05cb, 0xfa44, 0x0256, 0xf495, 0xeeff, 0x7712,
+ 0x0054, 0x960f, 0xf830, 0x0256, 0xf074, 0x0096, 0x7711, 0x0054,
+ 0x6981, 0x0001, 0xf074, 0x02fe, 0xf073, 0x0258, 0xf074, 0x0096,
+ 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07,
+ 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14,
+ 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a,
+ 0x8a09, 0x8a08, 0xf4eb, 0xf495, 0x74f8, 0x0008, 0x0281, 0xf040,
+ 0x0001, 0x75f8, 0x0008, 0x0281, 0xe808, 0x75f8, 0x0008, 0x0280,
+ 0x74f8, 0x0008, 0x0281, 0xf030, 0xfffe, 0x75f8, 0x0008, 0x0281,
+ 0xfc00, 0xf7be, 0xf6b9, 0xf4a0, 0xf6b7, 0xf6b5, 0xf6b6, 0xf7b8,
+ 0x7718, 0x0372, 0x6bf8, 0x0018, 0x01ff, 0x68f8, 0x0018, 0xfffe,
+ 0xf020, 0x05d1, 0xf100, 0x0001, 0xf84d, 0x02b5, 0xf6b8, 0xf495,
+ 0xf020, 0x05d1, 0xf073, 0x02af, 0x7ef8, 0x0012, 0xf000, 0x0001,
+ 0x47f8, 0x0011, 0x7e92, 0x00f8, 0x0011, 0xf000, 0x0001, 0x7ef8,
+ 0x0011, 0xf000, 0x0001, 0x6c89, 0x02a4, 0xf7b8, 0xeefc, 0xf020,
+ 0xffff, 0xf100, 0x0001, 0xf84d, 0x02cd, 0xf6b8, 0xf495, 0xf020,
+ 0xffff, 0xf273, 0x02c7, 0x4e02, 0xf495, 0xf5e3, 0x5602, 0x7e00,
+ 0x1100, 0xfa4c, 0x02c5, 0x6b03, 0x0001, 0xf6b8, 0xee04, 0xf074,
+ 0x0314, 0xf074, 0x0337, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0000,
+ 0x7711, 0x0039, 0x7681, 0x0000, 0x7711, 0x0038, 0x7681, 0x0001,
+ 0x7711, 0x0039, 0x7681, 0x0030, 0x7711, 0x0038, 0x7681, 0x000e,
+ 0x7711, 0x0039, 0x7681, 0x0002, 0x7711, 0x0038, 0x7681, 0x0004,
+ 0x7711, 0x0039, 0x7681, 0x00a0, 0x7711, 0x0038, 0x7681, 0x0005,
+ 0x7711, 0x0039, 0x7681, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x7711,
+ 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6981, 0x0001, 0x8a11,
+ 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039,
+ 0x6881, 0xfffe, 0x8a11, 0xfc00, 0xf6b8, 0xf495, 0xf162, 0xffff,
+ 0xf340, 0xffff, 0xf640, 0xf0e0, 0xf010, 0xffff, 0xf061, 0xffff,
+ 0xfa44, 0x0328, 0x4a11, 0xeefe, 0xf273, 0x032e, 0xe800, 0xe900,
+ 0x8911, 0xf495, 0x4911, 0x1081, 0xf300, 0x0001, 0x8100, 0xf074,
+ 0x0353, 0xee02, 0x8a11, 0xfc00, 0xf495, 0xf073, 0x0335, 0x4a11,
+ 0x8811, 0x10f8, 0x05cd, 0xf4e3, 0x10f8, 0x05d0, 0xf845, 0x0345,
+ 0x11f8, 0x05d0, 0xf7e3, 0xf495, 0x4811, 0x10f8, 0x05cf, 0xf845,
+ 0x034c, 0x10f8, 0x05cf, 0xf4e3, 0x10f8, 0x05ce, 0xf4e3, 0xf074,
+ 0x0334, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0026, 0x7712, 0x0001,
+ 0x7713, 0x0001, 0x7681, 0x0010, 0x7711, 0x0000, 0x7681, 0xffff,
+ 0xe501, 0xf495, 0xf6bb, 0xf074, 0x02d3, 0xf074, 0x01de, 0xf4e1,
+ 0xf495, 0xf073, 0x0367, 0x80f8, 0x05ce, 0xfc00, 0x80f8, 0x05cd,
+ 0xfc00, 0xfc00,
};
static const unsigned short _section_cinit[] = {
- 0x0001, 0x05a6, 0x034a, 0x0001, 0x05a7, 0x034a, 0x0001, 0x05a8,
- 0x0000, 0x0001, 0x05a9, 0x0000, 0x0000,
+ 0x0001, 0x05cd, 0x0371, 0x0001, 0x05ce, 0x0371, 0x0001, 0x05cf,
+ 0x0000, 0x0001, 0x05d0, 0x0000, 0x0000,
};
static const unsigned short _section_vectors[] = {
- 0xf273, 0x0262, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
+ 0xf273, 0x0289, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -126,72 +131,73 @@ static const unsigned short _section_vectors[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0xf273, 0x0200, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
+ 0xf273, 0x0211, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
- 0xf273, 0x0117, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
+ 0xf273, 0x0128, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
- 0xf273, 0x0171, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
+ 0xf273, 0x0182, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
};
/* Program Mapping */
static const struct dsp_section dsp_image[] = {
- {_section_text, 0x0080, 0x02cb},
- {_section_cinit, 0x05aa, 0x000d},
- {NULL /* .bss */, 0x054b, 0x005f},
- {NULL /* .stack */, 0x034b, 0x0200},
+ {_section_text, 0x0080, 0x02f2},
+ {_section_cinit, 0x05d1, 0x000d},
+ {NULL /* .bss */, 0x0572, 0x005f},
+ {NULL /* .stack */, 0x0372, 0x0200},
{_section_vectors, 0x7f80, 0x0080},
{NULL /* .dma */, 0x8000, 0x1000},
{NULL, 0, 0}
};
/* Symbol table, usable with the DSP_() macro (see dsp-target.h). */
-#define cinit 0x05aa
-#define ___cinit__ 0x05aa
+#define cinit 0x05d1
+#define ___cinit__ 0x05d1
#define ___text__ 0x0080
-#define etext 0x034b
-#define ___etext__ 0x034b
+#define etext 0x0372
+#define ___etext__ 0x0372
#define ___data__ 0x0080
#define edata 0x0080
#define ___edata__ 0x0080
-#define ___bss__ 0x054b
-#define end 0x05aa
-#define ___end__ 0x05aa
-#define _int0_count 0x059c
-#define _status 0x054b
-#define _handle_int0 0x0200
-#define _main 0x032c
-#define _handle_dmac 0x0171
-#define _waiting 0x05a5
-#define _sdem_addrh 0x059d
-#define _sdem_addrl 0x059e
-#define _dma0_stopped 0x05a4
-#define _dma0_unlocked 0x05a3
-#define _sdem_dsp_size 0x059f
-#define _handle_dma0 0x0117
-#define _dsp_level 0x05a0
-#define _dma_init 0x01cd
-#define _sdem_level 0x05a1
-#define _rebuffer 0x0085
-#define _last_size 0x05a2
-#define _audiohw_start 0x02d7
-#define _audiohw_init 0x02ac
-#define _audiohw_stop 0x02e2
-#define _c_int00 0x0262
-#define __dtors_ptr 0x05a9
-#define _abort 0x030d
-#define _exit 0x0310
-#define __cleanup_ptr 0x05a8
-#define __lock 0x05a6
-#define __register_unlock 0x0344
-#define __nop 0x034a
-#define __register_lock 0x0347
-#define __unlock 0x05a7
-#define __args_main 0x02ed
+#define ___bss__ 0x0572
+#define end 0x05d1
+#define ___end__ 0x05d1
+#define _int0_count 0x05c3
+#define _status 0x0572
+#define _handle_int0 0x0211
+#define _int_arm 0x0273
+#define _main 0x0353
+#define _handle_dmac 0x0182
+#define _waiting 0x05cc
+#define _sdem_addrh 0x05c4
+#define _sdem_addrl 0x05c5
+#define _dma0_stopped 0x05cb
+#define _dma0_unlocked 0x05ca
+#define _sdem_dsp_size 0x05c6
+#define _handle_dma0 0x0128
+#define _dsp_level 0x05c7
+#define _dma_init 0x01de
+#define _sdem_level 0x05c8
+#define _rebuffer 0x0096
+#define _last_size 0x05c9
+#define _audiohw_start 0x02fe
+#define _audiohw_init 0x02d3
+#define _audiohw_stop 0x0309
+#define _c_int00 0x0289
+#define __dtors_ptr 0x05d0
+#define _abort 0x0334
+#define _exit 0x0337
+#define __cleanup_ptr 0x05cf
+#define __lock 0x05cd
+#define __register_unlock 0x036b
+#define __nop 0x0371
+#define __register_lock 0x036e
+#define __unlock 0x05ce
+#define __args_main 0x0314
#endif
diff --git a/firmware/target/arm/tms320dm320/dsp/registers.h b/firmware/target/arm/tms320dm320/dsp/registers.h
index edfdeaea88..aeaa7e8616 100644
--- a/firmware/target/arm/tms320dm320/dsp/registers.h
+++ b/firmware/target/arm/tms320dm320/dsp/registers.h
@@ -75,6 +75,8 @@
/* DM320 */
ioport unsigned short port280;
#define CP_INTC port280
+ioport unsigned short port281;
+#define CP_CLKC port281
ioport unsigned short port8000;
#define SDEM_ADDRL port8000
ioport unsigned short port8001;
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c
index 898013982b..38631401f9 100644
--- a/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c
+++ b/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c
@@ -324,9 +324,8 @@ static void dma_start_transfer16( char *src, int src_x, int src_y, int stride,
src -= CONFIG_SDRAM_START;
dst -= CONFIG_SDRAM_START;
- /* Enable Clocks */
+ /* Enable Image Buffer clock */
bitset16(&IO_CLK_MOD1, CLK_MOD1_IMGBUF);
- bitset16(&COP_CP_CLKC, 0x0001);
/* ... */
COP_BUF_MUX1 = 0x0005;
@@ -380,6 +379,9 @@ static void dma_start_transfer16( char *src, int src_x, int src_y, int stride,
dst += (stride*pix_width);
height--;
} while(height>0);
+
+ /* Disable Image Buffer clock */
+ bitclr16(&IO_CLK_MOD1, CLK_MOD1_IMGBUF);
}
#else
static void dma_start_transfer16( char *src, int src_x, int src_y, int stride,
@@ -401,9 +403,8 @@ static void dma_start_transfer16( char *src, int src_x, int src_y, int stride,
src -= CONFIG_SDRAM_START;
dst -= CONFIG_SDRAM_START;
- /* Enable Clocks */
+ /* Enable Image Buffer clock */
bitset16(&IO_CLK_MOD1, CLK_MOD1_IMGBUF);
- bitset16(&COP_CP_CLKC, 0x0001);
/* ... */
COP_BUF_MUX1 = 0x0005;
@@ -457,6 +458,9 @@ static void dma_start_transfer16( char *src, int src_x, int src_y, int stride,
dst -= (stride*pix_width);
width--;
} while(width>0);
+
+ /* Disable Image Buffer clock */
+ bitclr16(&IO_CLK_MOD1, CLK_MOD1_IMGBUF);
}
#endif
#endif
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
index 045f7b0ee9..8b1fbf95e4 100644
--- a/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
+++ b/firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c
@@ -79,9 +79,6 @@ void pcm_play_dma_init(void)
/* Enable the HPIB clock */
bitset16(&IO_CLK_MOD0, (CLK_MOD0_HPIB | CLK_MOD0_DSP));
- /* Enable IMGBUF clock */
- bitset16(&IO_CLK_MOD1, CLK_MOD1_IMGBUF);
-
dma_channel = dma_request_channel(DMA_PERIPHERAL_DSP,
DMA_MODE_1_BURST);