From b98d03f4c389dd021ebd6f21ef2e7e993dec0714 Mon Sep 17 00:00:00 2001 From: Tomasz Moń Date: Mon, 19 Dec 2011 06:39:07 +0000 Subject: 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 --- firmware/target/arm/tms320dm320/dsp/arm.c | 16 ++ firmware/target/arm/tms320dm320/dsp/arm.h | 4 +- firmware/target/arm/tms320dm320/dsp/dsp-image.h | 266 +++++++++++---------- firmware/target/arm/tms320dm320/dsp/registers.h | 2 + .../target/arm/tms320dm320/mrobe-500/lcd-mr500.c | 12 +- .../tms320dm320/sansa-connect/pcm-sansaconnect.c | 3 - 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); -- cgit v1.2.3