diff options
author | Greg White <gwhite@rockbox.org> | 2007-01-13 02:24:15 +0000 |
---|---|---|
committer | Greg White <gwhite@rockbox.org> | 2007-01-13 02:24:15 +0000 |
commit | 355be5010af1e33c0f3b36af85033bd31f996491 (patch) | |
tree | 1e83cefbe3d313179bda383a5ad508adaff8ffac | |
parent | 35b0c3f24f279eb8056e54094cb12310802f6709 (diff) | |
download | rockbox-355be5010af1e33c0f3b36af85033bd31f996491.tar.gz rockbox-355be5010af1e33c0f3b36af85033bd31f996491.zip |
Setup LCD ourselves; move LCD buffer and TTB to free up 1.7MB of memory
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11994 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/plugins/plugin.lds | 14 | ||||
-rw-r--r-- | bootloader/gigabeat.c | 13 | ||||
-rw-r--r-- | firmware/app.lds | 13 | ||||
-rw-r--r-- | firmware/export/config-gigabeat.h | 4 | ||||
-rw-r--r-- | firmware/export/lcd.h | 2 | ||||
-rw-r--r-- | firmware/export/s3c2440.h | 9 | ||||
-rw-r--r-- | firmware/target/arm/gigabeat/meg-fx/ata-meg-fx.c | 11 | ||||
-rw-r--r-- | firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c | 12 | ||||
-rw-r--r-- | firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c | 45 | ||||
-rw-r--r-- | firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c | 9 | ||||
-rw-r--r-- | firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c | 1 | ||||
-rwxr-xr-x | tools/configure | 116 |
12 files changed, 142 insertions, 107 deletions
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index 52a5cc32a5..5181e5604d 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds @@ -37,6 +37,8 @@ OUTPUT_FORMAT(elf32-sh) #define IRAMORIG 0x407000 #define IRAMSIZE 0x9000 #elif CONFIG_CPU == S3C2440 +#include "s3c2440.h" +#define DRAMSIZE (MEMORYSIZE * 0x100000) - 0x100 - STUBOFFSET - LCD_BUFFER_SIZE - TTB_SIZE - PLUGIN_BUFFER_SIZE - CODEC_SIZE #define DRAMORIG 0x100 + STUBOFFSET #define IRAMORIG DRAMORIG #define IRAMSIZE 4K @@ -46,11 +48,13 @@ OUTPUT_FORMAT(elf32-sh) #endif #define PLUGIN_LENGTH PLUGIN_BUFFER_SIZE + +#if CONFIG_CPU != S3C2440 #define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGIN_LENGTH - CODEC_SIZE +#endif #define CODEC_ORIGIN (DRAMORIG + (DRAMSIZE)) #define PLUGIN_ORIGIN (CODEC_ORIGIN + CODEC_SIZE) - #ifdef CODEC #define THIS_LENGTH CODEC_SIZE #define THIS_ORIGIN CODEC_ORIGIN @@ -84,7 +88,7 @@ SECTIONS #endif } > PLUGIN_RAM - .rodata : + .rodata : { *(.rodata*) . = ALIGN(0x4); @@ -98,7 +102,7 @@ SECTIONS #endif } > PLUGIN_RAM - /DISCARD/ : + /DISCARD/ : { *(.eh_frame) } @@ -124,7 +128,7 @@ SECTIONS .bss (NOLOAD) : { - plugin_bss_start = .; + plugin_bss_start = .; *(.bss*) *(COMMON) . = ALIGN(0x4); @@ -134,7 +138,7 @@ SECTIONS /* Special trick to avoid a linker error when no other sections are left after garbage collection (plugin not for this platform) */ - .comment 0 : + .comment 0 : { KEEP(*(.comment)) } diff --git a/bootloader/gigabeat.c b/bootloader/gigabeat.c index 62c31310ae..38e8bbf63e 100644 --- a/bootloader/gigabeat.c +++ b/bootloader/gigabeat.c @@ -70,8 +70,8 @@ void memdump(void) data = *(volatile int *)memlocations[i].address; - snprintf(tmp, sizeof(tmp), "%s %s 0x%08X", - (i==current) ? "*" : " ", + snprintf(tmp, sizeof(tmp), "%s %s 0x%08X", + (i==current) ? "*" : " ", memlocations[i].desc, data); lcd_puts(0, i*2+5, tmp); @@ -323,6 +323,9 @@ void * main(void) lcd_puts(0, line++, "Hold MENU when booting for rescue mode."); lcd_puts(0, line++, " \"VOL+\" button to restore original kernel"); lcd_puts(0, line++, " \"A\" button to load original firmware"); + line++; + snprintf(buf, sizeof(buf), "FRAME %x TTB %x", FRAME, TTB_BASE); + lcd_puts(0, line++, buf); lcd_update(); sleep(1*HZ); @@ -334,7 +337,7 @@ void * main(void) while(1); } - sleep(5*HZ); + sleep(1*HZ); if(GPGDAT & 0x10) { load_original = true; @@ -434,7 +437,7 @@ load_rockbox: map_memory(); lcd_puts(0, line, "Loading Rockbox..."); lcd_update(); - sleep(HZ*4); + /* sleep(HZ*4); */ // TODO: read those values from somwhere loadbuffer = (unsigned char*) 0x100; @@ -447,7 +450,7 @@ load_rockbox: } else { lcd_puts(0, line++, "Rockbox loaded."); lcd_update(); - kernel_entry = (void*)0x100; + kernel_entry = (void*) loadbuffer; rc = kernel_entry(); snprintf(buf, sizeof(buf), "Woops, should not return from firmware: %d", rc); lcd_puts(0, line++, buf); diff --git a/firmware/app.lds b/firmware/app.lds index 1053437106..02c204a2a8 100644 --- a/firmware/app.lds +++ b/firmware/app.lds @@ -26,8 +26,9 @@ INPUT(target/sh/crt0.o) #define STUBOFFSET 0 #endif +#if CONFIG_CPU!=S3C2440 #define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE - +#endif #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300) #define DRAMORIG 0x31000000 + STUBOFFSET #define IRAMORIG 0x10000000 @@ -45,7 +46,9 @@ INPUT(target/sh/crt0.o) #define IRAMORIG 0x400000 #define IRAMSIZE 0x7000 #elif CONFIG_CPU==S3C2440 -#define DRAMORIG 0x100 + STUBOFFSET +#include "s3c2440.h" +#define DRAMORIG (0x100 + STUBOFFSET) +#define DRAMSIZE (MEMORYSIZE * 0x100000) - 0x100 - STUBOFFSET - LCD_BUFFER_SIZE - TTB_SIZE - PLUGINSIZE - CODECSIZE #define IRAMORIG DRAMORIG #define IRAMSIZE 4K #define IRAM DRAM @@ -126,7 +129,7 @@ SECTIONS _dataend = .; } > DRAM - /DISCARD/ : + /DISCARD/ : { *(.eh_frame) } @@ -163,7 +166,7 @@ SECTIONS } > IRAM AT> DRAM _iramcopy = LOADADDR(.iram); - + .ibss (NOLOAD) : { _iedata = .; @@ -180,7 +183,7 @@ SECTIONS . += 0x2000; stackend = .; } > IRAM - + #ifdef CPU_PP .cop_stack : { diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h index 4a1d11d43a..3dbdadf621 100644 --- a/firmware/export/config-gigabeat.h +++ b/firmware/export/config-gigabeat.h @@ -86,7 +86,7 @@ #define BATTERY_TYPES_COUNT 1 /* only one type */ /* ADC[0] is (530) at discharge and 625 at full charge */ -#define BATTERY_SCALE_FACTOR 6450 +#define BATTERY_SCALE_FACTOR 6450 /* Hardware controlled charging with monitoring */ #define CONFIG_CHARGING CHARGING_MONITOR @@ -132,5 +132,5 @@ #define BOOTFILE_EXT "gigabeat" #define BOOTFILE "rockbox." BOOTFILE_EXT - + #endif diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index 8a65d09fa3..37ad2b0cc2 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -347,8 +347,10 @@ extern void lcd_set_drawinfo(int mode, unsigned foreground, void lcd_set_backdrop(fb_data* backdrop); #if defined(TOSHIBA_GIGABEAT_F) && !defined(SIMULATOR) void lcd_device_prepare_backdrop(fb_data* backdrop); +bool lcd_enabled(void); #else #define lcd_device_prepare_backdrop(x) ; +#define lcd_enabled() true #endif fb_data* lcd_get_backdrop(void); diff --git a/firmware/export/s3c2440.h b/firmware/export/s3c2440.h index 3c7075acd6..4a799da3e2 100644 --- a/firmware/export/s3c2440.h +++ b/firmware/export/s3c2440.h @@ -143,9 +143,12 @@ #define LCDINTMSK (*(volatile int *)0x4D00005C) /* LCD interrupt mask */ #define TCONSEL (*(volatile int *)0x4D000060) /* TCON(LPC3600/LCC3600) control */ -/* The following should be computed but for now, we cheat. */ -#define FRAME ( (short *) 0x31E00000 ) /* LCD Frame buffer */ - +#define LCD_BUFFER_SIZE ((320*240*2)) +#define TTB_SIZE (0x4000) +/*#define FRAME ( (short *) 0x31E00000 ) */ /* LCD Frame buffer - Firmware Address */ +/* must be 16Kb (0x4000) aligned */ +#define TTB_BASE (0x30000000 + (32*1024*1024) - TTB_SIZE) /* End of memory */ +#define FRAME ((short *) (TTB_BASE - LCD_BUFFER_SIZE)) /* Right before TTB */ /* NAND Flash */ #define NFCONF (*(volatile int *)0x4E000000) /* NAND flash configuration */ diff --git a/firmware/target/arm/gigabeat/meg-fx/ata-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/ata-meg-fx.c index 8e246045e6..00b5e09ed3 100644 --- a/firmware/target/arm/gigabeat/meg-fx/ata-meg-fx.c +++ b/firmware/target/arm/gigabeat/meg-fx/ata-meg-fx.c @@ -53,10 +53,11 @@ void ata_device_init(void) { } +#if !defined(BOOTLOADER) void copy_read_sectors(unsigned char* buf, int wordcount) { __buttonlight_trigger(); - + /* Unaligned transfer - slow copy */ if ( (unsigned long)buf & 1) { /* not 16-bit aligned, copy byte by byte */ @@ -94,7 +95,9 @@ void copy_read_sectors(unsigned char* buf, int wordcount) DISRC0 = (int) 0x18000000; DISRCC0 = 0x1; /* Dest mapped to physical address, on AHB bus, increment */ - DIDST0 = (int) (buf + 0x30000000); + DIDST0 = (int) buf; + if(DIDST0 < 0x30000000) + DIDST0 += 0x30000000; DIDSTC0 = 0; /* DACK/DREQ Sync to AHB, Int on Transfer complete, Whole service, No reload, 16-bit transfers */ @@ -112,10 +115,10 @@ void copy_read_sectors(unsigned char* buf, int wordcount) /* Wait for transfer to complete */ while((DSTAT0 & 0x000fffff)) - CLKCON |= (1 << 2); /* set IDLE bit */ + yield(); /* Dump cache for the buffer */ } - +#endif void dma0(void) { } diff --git a/firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c index f6a8d31c7b..2f96584515 100644 --- a/firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c +++ b/firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c @@ -123,8 +123,8 @@ bool __backlight_init(void) buttonlight_selected = 0x04; - /* delay 2 seconds before any fading */ - initial_tick_delay = 2000; + /* delay 4 seconds before any fading */ + initial_tick_delay = 400; /* put the led control on the tick list */ tick_add_task(led_control_service); @@ -272,10 +272,10 @@ void __buttonlight_mode(enum buttonlight_mode mode, */ static void led_control_service(void) { - if(initial_tick_delay) { - initial_tick_delay--; - return; - } + if(initial_tick_delay) { + initial_tick_delay--; + return; + } switch (backlight_control) { case BACKLIGHT_CONTROL_IDLE: diff --git a/firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c index 778e049dd5..c3a17e16cb 100644 --- a/firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c +++ b/firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c @@ -29,21 +29,37 @@ bool lcd_enabled() return lcd_on; } +unsigned int LCDBANK(unsigned int address) +{ + return ((address >> 22) & 0xff); +} + +unsigned int LCDBASEU(unsigned int address) +{ + return (address & ((1 << 22)-1)) >> 1; +} + +unsigned int LCDBASEL(unsigned int address) +{ + address += 320*240*2; + return (address & ((1 << 22)-1)) >> 1; +} + + /* LCD init */ void lcd_init_device(void) { - memset16(fg_pattern_blit, fg_pattern, sizeof(fg_pattern_blit)/2); - memset16(bg_pattern_blit, bg_pattern, sizeof(bg_pattern_blit)/2); - clean_dcache_range((void *)fg_pattern_blit, sizeof(fg_pattern_blit)); - clean_dcache_range((void *)bg_pattern_blit, sizeof(bg_pattern_blit)); - - LCDSADDR1 = 0x18F00000; /* These values are pulled from an F40 */ - LCDSADDR2 = 0x00112C00; /* They should move FRAME to the correct location */ - LCDSADDR3 = 0x000000F0; /* TODO: Move FRAME to where we want it */ + LCDSADDR1 = (LCDBANK((unsigned)FRAME) << 21) | (LCDBASEU((unsigned)FRAME)); + LCDSADDR2 = LCDBASEL((unsigned)FRAME); + LCDSADDR3 = 0x000000F0; LCDCON5 |= 1 << 11; /* Switch from 555I mode to 565 mode */ #if !defined(BOOTLOADER) + memset16(fg_pattern_blit, fg_pattern, sizeof(fg_pattern_blit)/2); + memset16(bg_pattern_blit, bg_pattern, sizeof(bg_pattern_blit)/2); + clean_dcache_range((void *)fg_pattern_blit, sizeof(fg_pattern_blit)); + clean_dcache_range((void *)bg_pattern_blit, sizeof(bg_pattern_blit)); use_dma_blit = true; lcd_poweroff = true; #endif @@ -66,7 +82,7 @@ void lcd_update_rect(int x, int y, int width, int height) { /* Wait for this controller to stop pending transfer */ while((DSTAT1 & 0x000fffff)) - CLKCON |= (1 << 2); /* set IDLE bit */ + yield(); /* Flush DCache */ invalidate_dcache_range((void *)(((int) &lcd_framebuffer)+(y * sizeof(fb_data) * LCD_WIDTH)), (height * sizeof(fb_data) * LCD_WIDTH)); @@ -92,7 +108,7 @@ void lcd_update_rect(int x, int y, int width, int height) /* Wait for transfer to complete */ while((DSTAT1 & 0x000fffff)) - CLKCON |= (1 << 2); /* set IDLE bit */ + yield(); } else memcpy(((char*)FRAME) + (y * sizeof(fb_data) * LCD_WIDTH), ((char *)&lcd_framebuffer) + (y * sizeof(fb_data) * LCD_WIDTH), ((height * sizeof(fb_data) * LCD_WIDTH))); @@ -143,9 +159,8 @@ void lcd_clear_display_dma(void) void *src; bool inc = false; - if(!lcd_on) { - sleep(200); - } + if(!lcd_on) + yield(); if (lcd_get_drawmode() & DRMODE_INVERSEVID) src = fg_pattern_blit; else @@ -162,7 +177,7 @@ void lcd_clear_display_dma(void) } /* Wait for any pending transfer to complete */ while((DSTAT3 & 0x000fffff)) - CLKCON |= (1 << 2); /* set IDLE bit */ + yield(); DMASKTRIG3 |= 0x4; /* Stop controller */ DIDST3 = ((int) lcd_framebuffer) + 0x30000000; /* set DMA dest, physical address */ DIDSTC3 = 0; /* Dest on AHB, increment */ @@ -182,7 +197,7 @@ void lcd_clear_display_dma(void) /* Wait for transfer to complete */ while((DSTAT3 & 0x000fffff)) - CLKCON |= (1 << 2); /* set IDLE bit */ + yield(); } void lcd_clear_display(void) diff --git a/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c index 47abb9d46a..8094ff828f 100644 --- a/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c +++ b/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c @@ -1,6 +1,7 @@ #include <string.h> #include "s3c2440.h" #include "mmu-meg-fx.h" +#include "panic.h" void map_memory(void); static void enable_mmu(void); @@ -20,7 +21,7 @@ void map_memory(void) { enable_mmu(); } -unsigned int* ttb_base; +unsigned int* ttb_base = (unsigned int *) TTB_BASE; const int ttb_size = 4096; void set_ttb() { @@ -29,7 +30,7 @@ void set_ttb() { int domain_access; /* must be 16Kb (0x4000) aligned */ - ttb_base = (int*)0x31F00000; + ttb_base = (int*) TTB_BASE; for (i=0; i<ttb_size; i++,ttbPtr++) ttbPtr = 0; asm volatile("mcr p15, 0, %0, c2, c0, 0" : : "r" (ttb_base)); @@ -47,8 +48,8 @@ void set_page_tables() { map_section(0x30000000, 0, 32, CACHE_NONE); /* map RAM to 0 */ - map_section(0x30000000, 0, 30, CACHE_ALL); /* cache the first 30 MB or RAM */ - map_section(0x31E00000, 0x31E00000, 1, BUFFERED); /* enable buffered writing for the framebuffer */ + map_section(0x30000000, 0, 32, CACHE_ALL); /* cache the first 31 MB or RAM */ + map_section((int)FRAME, (int)FRAME, 1, BUFFERED); /* enable buffered writing for the framebuffer */ } void map_section(unsigned int pa, unsigned int va, int mb, int cache_flags) { diff --git a/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c index b2b4a6207b..6f48a76452 100644 --- a/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c +++ b/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c @@ -59,6 +59,7 @@ void system_init(void) /* Turn off AC97 and Camera */ CLKCON &= ~( (1<<19) | (1<<20) ); + } diff --git a/tools/configure b/tools/configure index 1cfc4cc104..e2e0befae5 100755 --- a/tools/configure +++ b/tools/configure @@ -167,7 +167,7 @@ simcc () { exit ;; esac - + if [ "`uname -m`" = "x86_64" ]; then GCCOPTS="$GCCOPTS -fPIC" # needed to make shared objects link fi @@ -284,7 +284,7 @@ whichdevel () { echo "done" cont=0 ;; - esac + esac done if [ "yes" = "$use_debug" ]; then @@ -402,7 +402,7 @@ voiceconfig () { NOISEFLOOR=$DEFAULT_NOISEFLOOR esac echo "Using $TTS_ENGINE for TTS" - + echo "" if [ `which oggenc` ]; then @@ -416,7 +416,7 @@ voiceconfig () { SPEEXENC="(S)peexenc " DEFAULT_ENC="speexenc" SPEEX_OPTS="" # TODO: find appropriate options for speex - DEFAULT_ENC_OPTS=$SPEEX_OPTS + DEFAULT_ENC_OPTS=$SPEEX_OPTS DEFAULT_CHOICE="S" fi if [ `which lame` ]; then @@ -464,32 +464,32 @@ ${ENC_OPTS} EOF } -picklang() { - # figure out which languages that are around - for file in $rootdir/apps/lang/*.lang; do - clean=`echo $file | sed -e 's:.*/::g' | cut "-d." -f1` - langs="$langs $clean" - done - - num=1 - for one in $langs; do - echo "$num. $one" - num=`expr $num + 1` - done - - read pick - return $pick; -} - -whichlang() { - num=1 - for one in $langs; do - if [ "$num" = "$pick" ]; then - echo $one - return - fi - num=`expr $num + 1` - done +picklang() { + # figure out which languages that are around + for file in $rootdir/apps/lang/*.lang; do + clean=`echo $file | sed -e 's:.*/::g' | cut "-d." -f1` + langs="$langs $clean" + done + + num=1 + for one in $langs; do + echo "$num. $one" + num=`expr $num + 1` + done + + read pick + return $pick; +} + +whichlang() { + num=1 + for one in $langs; do + if [ "$num" = "$pick" ]; then + echo $one + return + fi + num=`expr $num + 1` + done } target=$1 @@ -553,17 +553,17 @@ toolsdir='\$(ROOTDIR)/tools' echo "Enter target platform:" cat <<EOF - ==Archos== ==iriver== ==Apple iPod== - 0) Player/Studio 10) H120/H140 20) Color/Photo - 1) Recorder 11) H320/H340 21) Nano - 2) FM Recorder 12) iHP-100/110/115 22) Video - 3) Recorder v2 13) iFP-790 23) 3G - 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale - 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G - 26) Mini 2G - - ==iAudio== ==Toshiba== ==SanDisk== - 30) X5/X5V/X5L 40) Gigabeat F 50) Sansa e200 + ==Archos== ==iriver== ==Apple iPod== + 0) Player/Studio 10) H120/H140 20) Color/Photo + 1) Recorder 11) H320/H340 21) Nano + 2) FM Recorder 12) iHP-100/110/115 22) Video + 3) Recorder v2 13) iFP-790 23) 3G + 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale + 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G + 26) Mini 2G + + ==iAudio== ==Toshiba== ==SanDisk== + 30) X5/X5V/X5L 40) Gigabeat F 50) Sansa e200 ==Tatung== 60) Elio TPJ-1022 @@ -598,7 +598,7 @@ EOF # output: the final output file name # boottool: the tool that takes a plain binary and generates a bootloader # file for your target (or blank to use $tool) - # bootoutput:the final output file name for the bootloader (or blank to use + # bootoutput:the final output file name for the bootloader (or blank to use # $output) # appextra: passed to the APPEXTRA variable in the Makefiles. # TODO: add proper explanation @@ -953,7 +953,7 @@ EOF t_manufacturer="ipod" t_model="3g" ;; - + 24|ipod4g) target_id=17 archos="ipod4g" @@ -978,7 +978,7 @@ EOF t_manufacturer="ipod" t_model="4g" ;; - + 25|ipodmini) target_id=18 archos="ipodmini" @@ -1003,7 +1003,7 @@ EOF t_manufacturer="ipod" t_model="mini" ;; - + 13|ifp7xx) target_id=19 archos="ifp7xx" @@ -1031,7 +1031,7 @@ EOF target_id=20 archos="gigabeatf" target="-DGIGABEAT_F" - memory=30 # always + memory=32 # always arm9tdmicc tool="cp" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" @@ -1286,7 +1286,7 @@ fi toolset=''; apps="manual" echo "Manual build selected" - ;; + ;; [Vv]) echo "Voice build selected" voiceconfig @@ -1312,7 +1312,7 @@ fi ;; ipodmini2g) manualdev="ipodmini" - ;; + ;; *) manualdev=$archos ;; @@ -1329,15 +1329,15 @@ language="english" # Ask about language if building voice if [ "yes" = "$voice" ]; then - echo "Select a number for the language to use (default is english)" + echo "Select a number for the language to use (default is english)" - picklang - language=`whichlang` + picklang + language=`whichlang` - if [ -z "$language" ]; then - # pick a default + if [ -z "$language" ]; then + # pick a default language="english" - fi + fi echo "Language set to $language" fi @@ -1378,14 +1378,14 @@ else echo "Using $CC $gccver ($gccnum)" - if test "$gccnum" -ge "400"; then + if test "$gccnum" -ge "400"; then # gcc 4.0 is just *so* much pickier on arguments that differ in signedness # so we ignore that warnings for now # -Wno-pointer-sign GCCOPTS="$GCCOPTS -Wno-pointer-sign" fi - if test "$gccnum" -ge "401"; then + if test "$gccnum" -ge "401"; then # this is a lame hack to avoid "warning: dereferencing type-punned pointer # will break strict-aliasing rules" @@ -1396,7 +1396,7 @@ fi # check the compiler for SH platforms if test "$CC" = "sh-elf-gcc"; then - if test "$gccnum" -lt "400"; then + if test "$gccnum" -lt "400"; then echo "WARNING: Consider upgrading your compiler to the 4.0.X series!" echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler" else @@ -1689,7 +1689,7 @@ help: @echo "fontzip - creates rockbox-fonts.zip" @echo "mapzip - creates rockbox-maps.zip with all .map files" @echo "tools - builds the tools only" - @echo "install - installs your build (for simulator builds only)" + @echo "install - installs your build (for simulator builds only)" EOF |