summaryrefslogtreecommitdiff
path: root/firmware/target/arm/system-pp502x.c
diff options
context:
space:
mode:
authorTorne Wuff <torne@wolfpuppy.org.uk>2010-08-29 13:20:16 +0000
committerTorne Wuff <torne@wolfpuppy.org.uk>2010-08-29 13:20:16 +0000
commit8aa175bc1fd303bccd491fc92689f29bdf439094 (patch)
tree6e907019503dcd5ae01de1c0ae796c7b704e8a41 /firmware/target/arm/system-pp502x.c
parent47c510b9dcb0580d9db6199696d0d81ce680b999 (diff)
downloadrockbox-8aa175bc1fd303bccd491fc92689f29bdf439094.tar.gz
rockbox-8aa175bc1fd303bccd491fc92689f29bdf439094.zip
ipodvideo: detect ram size at boot (doesn't actually get USED yet)
This is the first step to allowing a single build which will work on any ipodvideo. A global variable, probed_ramsize, is initialised to either 32 or 64 early in boot. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27937 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/system-pp502x.c')
-rw-r--r--firmware/target/arm/system-pp502x.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c
index 9bedb0e42c..700686b427 100644
--- a/firmware/target/arm/system-pp502x.c
+++ b/firmware/target/arm/system-pp502x.c
@@ -42,6 +42,10 @@ extern void SERIAL0(void);
42static struct corelock cpufreq_cl SHAREDBSS_ATTR; 42static struct corelock cpufreq_cl SHAREDBSS_ATTR;
43#endif 43#endif
44 44
45#if defined(IPOD_VIDEO) && !defined(BOOTLOADER)
46unsigned char probed_ramsize;
47#endif
48
45void __attribute__((interrupt("IRQ"))) irq_handler(void) 49void __attribute__((interrupt("IRQ"))) irq_handler(void)
46{ 50{
47 if(CURRENT_CORE == CPU) 51 if(CURRENT_CORE == CPU)
@@ -518,6 +522,13 @@ void system_init(void)
518#else 522#else
519 pp_set_cpu_frequency(CPUFREQ_MAX); 523 pp_set_cpu_frequency(CPUFREQ_MAX);
520#endif 524#endif
525
526#if defined(IPOD_VIDEO)
527 /* crt0-pp.S wrote the ram size to the last byte of the first 32MB
528 ram bank. See the comment there for how we determine it. */
529 volatile unsigned char *end32 = (volatile unsigned char *)0x01ffffff;
530 probed_ramsize = *end32;
531#endif
521 } 532 }
522 533
523 init_cache(); 534 init_cache();