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
This commit is contained in:
Tomasz Moń 2011-12-19 06:39:07 +00:00
parent 2d8fd040d8
commit b98d03f4c3
6 changed files with 163 additions and 140 deletions

View file

@ -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);
}

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -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);