summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2010-08-31 19:06:04 +0000
committerFrank Gevaerts <frank@gevaerts.be>2010-08-31 19:06:04 +0000
commita1cf4ced837327c718061feedf96d512328f5cc8 (patch)
tree2c51950d2c48715aede1e3d4d3e0a1a137885378
parentb9201e3c6fcfdcb2d1e14f5593fc0ff98af40290 (diff)
downloadrockbox-a1cf4ced837327c718061feedf96d512328f5cc8.tar.gz
rockbox-a1cf4ced837327c718061feedf96d512328f5cc8.zip
Unify 32mb and 64mb ipod video builds - FS#11580
Since memory on 32mb ipod videos is mapped twice, a 64mb build still has codecs and plugins mapped in a usable area. This means that all that needs to be done to support 32mb and 64mb boards with the same build is to adjust audiobufend to avoid using more than the actually present RAM. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27960 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/debug_menu.c10
-rw-r--r--apps/main.c7
-rw-r--r--firmware/export/buffer.h5
-rw-r--r--firmware/export/config/ipodvideo.h13
-rw-r--r--firmware/target/arm/ipod/app.lds4
-rw-r--r--manual/configure_rockbox/system_options.tex6
-rwxr-xr-xtools/configure1
7 files changed, 30 insertions, 16 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index ba0114774d..c0a476dc10 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -1601,12 +1601,10 @@ static bool view_battery(void)
1601 lcd_putsf(0, 7, "Headphone: %s", 1601 lcd_putsf(0, 7, "Headphone: %s",
1602 headphone ? "connected" : "disconnected"); 1602 headphone ? "connected" : "disconnected");
1603#ifdef IPOD_VIDEO 1603#ifdef IPOD_VIDEO
1604 x = (adc_read(ADC_4066_ISTAT) * 2400) / 1604 if(probed_ramsize == 64)
1605#if MEM == 64 1605 x = (adc_read(ADC_4066_ISTAT) * 2400) / (1024 * 2);
1606 (1024 * 2); 1606 else
1607#else 1607 x = (adc_read(ADC_4066_ISTAT) * 2400) / (1024 * 3);
1608 (1024 * 3);
1609#endif
1610 lcd_putsf(0, 8, "Ibat: %d mA", x); 1608 lcd_putsf(0, 8, "Ibat: %d mA", x);
1611 lcd_putsf(0, 9, "Vbat * Ibat: %d mW", x * y / 1000); 1609 lcd_putsf(0, 9, "Vbat * Ibat: %d mW", x * y / 1000);
1612#endif 1610#endif
diff --git a/apps/main.c b/apps/main.c
index ceaa85f38f..0c2f0751b3 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -422,6 +422,13 @@ static void init(void)
422#endif 422#endif
423 423
424 system_init(); 424 system_init();
425#if defined(IPOD_VIDEO)
426 audiobufend=(unsigned char *)audiobufend_lds;
427 if(MEM==64 && probed_ramsize!=64)
428 {
429 audiobufend -= (32<<20);
430 }
431#endif
425 kernel_init(); 432 kernel_init();
426 433
427#ifdef HAVE_ADJUSTABLE_CPU_FREQ 434#ifdef HAVE_ADJUSTABLE_CPU_FREQ
diff --git a/firmware/export/buffer.h b/firmware/export/buffer.h
index ae8886bffc..f0525edd68 100644
--- a/firmware/export/buffer.h
+++ b/firmware/export/buffer.h
@@ -24,7 +24,12 @@
24#include "config.h" 24#include "config.h"
25/* defined in linker script */ 25/* defined in linker script */
26#if (CONFIG_PLATFORM & PLATFORM_NATIVE) 26#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
27#if defined(IPOD_VIDEO)
28extern unsigned char *audiobufend_lds[];
29unsigned char *audiobufend;
30#else
27extern unsigned char audiobufend[]; 31extern unsigned char audiobufend[];
32#endif
28#else 33#else
29extern unsigned char *audiobufend; 34extern unsigned char *audiobufend;
30#endif 35#endif
diff --git a/firmware/export/config/ipodvideo.h b/firmware/export/config/ipodvideo.h
index e0c3bfb68e..82391d1f77 100644
--- a/firmware/export/config/ipodvideo.h
+++ b/firmware/export/config/ipodvideo.h
@@ -136,15 +136,10 @@
136#define HAVE_HEADPHONE_DETECTION 136#define HAVE_HEADPHONE_DETECTION
137 137
138/* Type of mobile power */ 138/* Type of mobile power */
139#if (MEM==32) /* this is the 30GB-model */ 139#define BATTERY_CAPACITY_DEFAULT 400 /* default battery capacity for the */
140# define BATTERY_CAPACITY_DEFAULT 400 /* default battery capacity for the 30GB model */ 140 /* 30GB model. 60/80GB would have 600 */
141# define BATTERY_CAPACITY_MIN 300 /* min. capacity selectable */ 141#define BATTERY_CAPACITY_MIN 300 /* min. capacity selectable */
142# define BATTERY_CAPACITY_MAX 1000 /* max. capacity selectable */ 142#define BATTERY_CAPACITY_MAX 1400 /* max. capacity selectable */
143#else /* these are the 60/80GB-models */
144# define BATTERY_CAPACITY_DEFAULT 600 /* default battery capacity for the 60/80GB model */
145# define BATTERY_CAPACITY_MIN 500 /* min. capacity selectable */
146# define BATTERY_CAPACITY_MAX 1400 /* max. capacity selectable */
147#endif
148#define BATTERY_CAPACITY_INC 50 /* capacity increment */ 143#define BATTERY_CAPACITY_INC 50 /* capacity increment */
149#define BATTERY_TYPES_COUNT 1 /* only one type */ 144#define BATTERY_TYPES_COUNT 1 /* only one type */
150 145
diff --git a/firmware/target/arm/ipod/app.lds b/firmware/target/arm/ipod/app.lds
index ec26fdbe38..f8e6906a4c 100644
--- a/firmware/target/arm/ipod/app.lds
+++ b/firmware/target/arm/ipod/app.lds
@@ -192,7 +192,11 @@ SECTIONS
192 192
193 .audiobufend ENDAUDIOADDR (NOLOAD) : 193 .audiobufend ENDAUDIOADDR (NOLOAD) :
194 { 194 {
195#ifdef IPOD_VIDEO
196 audiobufend_lds = .;
197#else
195 audiobufend = .; 198 audiobufend = .;
199#endif
196 _audiobufend = .; 200 _audiobufend = .;
197 } > DRAM 201 } > DRAM
198 202
diff --git a/manual/configure_rockbox/system_options.tex b/manual/configure_rockbox/system_options.tex
index c9e526ae1d..9e70a0e06d 100644
--- a/manual/configure_rockbox/system_options.tex
+++ b/manual/configure_rockbox/system_options.tex
@@ -38,7 +38,7 @@
38 \opt{ipodmini}{400~mAh (1G) or 630~mAh (2G)}% 38 \opt{ipodmini}{400~mAh (1G) or 630~mAh (2G)}%
39 \opt{ipodcolor}{700~mAh}% 39 \opt{ipodcolor}{700~mAh}%
40 \opt{ipodnano}{300~mAh}% 40 \opt{ipodnano}{300~mAh}%
41 \opt{ipodvideo}{400~mAh (30~GB) or 600~mAh (60/80~GB)}% 41 \opt{ipodvideo}{400~mAh}%
42 \opt{ipod4g}{630~mAh}% 42 \opt{ipod4g}{630~mAh}%
43 \opt{ipod3g}{630~mAh}% 43 \opt{ipod3g}{630~mAh}%
44 \opt{ipod1g2g}{1200~mAh}% 44 \opt{ipod1g2g}{1200~mAh}%
@@ -52,6 +52,10 @@
52 calculation. Changing this setting has no effect whatsoever on 52 calculation. Changing this setting has no effect whatsoever on
53 actual battery life. This setting only affects the accuracy of the 53 actual battery life. This setting only affects the accuracy of the
54 runtime estimation as shown on screen. 54 runtime estimation as shown on screen.
55 \opt{ipodvideo}{Rockbox does not automatically distinguish
56 between the 60/80~GB models and the 30~GB models which determine the
57 default value. If your \dap{} is a 60~GB or 80~GB model
58 set the value to 600~mAh for more accuracy in the runtime estimation.}
55 \opt{iaudiom3,iaudiom5,iaudiox5}{Rockbox does not automatically distinguish 59 \opt{iaudiom3,iaudiom5,iaudiox5}{Rockbox does not automatically distinguish
56 between the ``L'' models and the ``simple'' models which determine the 60 between the ``L'' models and the ``simple'' models which determine the
57 default value. If your \dap{} is an 61 default value. If your \dap{} is an
diff --git a/tools/configure b/tools/configure
index e554c3d76b..1742e28789 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1467,6 +1467,7 @@ fi
1467 target_id=15 1467 target_id=15
1468 modelname="ipodvideo" 1468 modelname="ipodvideo"
1469 target="-DIPOD_VIDEO" 1469 target="-DIPOD_VIDEO"
1470 memory=64 # always. This is reduced at runtime if needed
1470 arm7tdmicc 1471 arm7tdmicc
1471 tool="$rootdir/tools/scramble -add=ipvd" 1472 tool="$rootdir/tools/scramble -add=ipvd"
1472 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" 1473 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"