forked from len0rd/rockbox
Initial support for iPod mini 2G: Rockbox boots, LCD driver is working. No sound, no buttons, and hangs at the boot screen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9363 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
1ccc81bf8f
commit
d3feb78e40
7 changed files with 148 additions and 12 deletions
|
|
@ -109,6 +109,10 @@ PLUGIN_HEADER
|
|||
#define FOOD_SIZE 3
|
||||
#define ARGH_SIZE 4
|
||||
#define SPEED 14
|
||||
#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
|
||||
#define FOOD_SIZE 4
|
||||
#define ARGH_SIZE 5
|
||||
#define SPEED 10
|
||||
#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128)
|
||||
#define FOOD_SIZE 4
|
||||
#define ARGH_SIZE 5
|
||||
|
|
|
|||
|
|
@ -76,20 +76,28 @@ static void lcd_wait_write(void)
|
|||
static void lcd_send_data(int data_lo, int data_hi)
|
||||
{
|
||||
lcd_wait_write();
|
||||
#ifdef IPOD_MINI2G
|
||||
outl((inl(IPOD_LCD_BASE) & ~0x1f00000) | 0x1700000, IPOD_LCD_BASE);
|
||||
outl(data_hi | (data_lo << 8) | 0x760000, IPOD_LCD_BASE+8);
|
||||
#else
|
||||
outl(data_lo, IPOD_LCD_BASE + LCD_DATA);
|
||||
lcd_wait_write();
|
||||
outl(data_hi, IPOD_LCD_BASE + LCD_DATA);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* send LCD command */
|
||||
static void lcd_prepare_cmd(int cmd)
|
||||
{
|
||||
lcd_wait_write();
|
||||
|
||||
#ifdef IPOD_MINI2G
|
||||
outl((inl(IPOD_LCD_BASE) & ~0x1f00000) | 0x1700000, IPOD_LCD_BASE);
|
||||
outl(cmd | 0x740000, IPOD_LCD_BASE+8);
|
||||
#else
|
||||
outl(0x0, IPOD_LCD_BASE + LCD_CMD);
|
||||
lcd_wait_write();
|
||||
outl(cmd, IPOD_LCD_BASE + LCD_CMD);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
/* send LCD command and data */
|
||||
|
|
@ -105,7 +113,8 @@ static void lcd_cmd_and_data(int cmd, int data_lo, int data_hi)
|
|||
* LCD init
|
||||
**/
|
||||
void lcd_init_device(void){
|
||||
#ifdef APPLE_IPODMINI
|
||||
#if defined(IPOD_MINI) || defined(IPOD_MINI2G)
|
||||
/* driver output control - 160x112 (ipod mini) */
|
||||
lcd_cmd_and_data(0x1, 0x0, 0xd);
|
||||
#else
|
||||
/* driver output control - 160x128 */
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* This config file is for the Apple iPod Mini (1st & 2nd Gen)
|
||||
* This config file is for the Apple iPod Mini (1st Gen)
|
||||
*/
|
||||
#define APPLE_IPODMINI 1
|
||||
|
||||
|
|
|
|||
99
firmware/export/config-ipodmini2g.h
Executable file
99
firmware/export/config-ipodmini2g.h
Executable file
|
|
@ -0,0 +1,99 @@
|
|||
/*
|
||||
* This config file is for the Apple iPod Mini 2nd Gen
|
||||
*/
|
||||
#define APPLE_IPODMINI 1
|
||||
|
||||
#define IPOD_ARCH 1
|
||||
|
||||
/* For Rolo and boot loader */
|
||||
#define MODEL_NUMBER 11
|
||||
|
||||
/* define this if you have recording possibility */
|
||||
/*#define HAVE_RECORDING 1*/
|
||||
|
||||
/* define this if you have a bitmap LCD display */
|
||||
#define HAVE_LCD_BITMAP 1
|
||||
|
||||
/* LCD dimensions */
|
||||
#define LCD_WIDTH 138
|
||||
#define LCD_HEIGHT 110
|
||||
#define LCD_DEPTH 2 /* 4 colours - 2bpp */
|
||||
|
||||
#define LCD_PIXELFORMAT HORIZONTAL_PACKING
|
||||
|
||||
#define CONFIG_KEYPAD IPOD_4G_PAD
|
||||
|
||||
/* Define this if you do software codec */
|
||||
#define CONFIG_CODEC SWCODEC
|
||||
|
||||
/* define this if you have a real-time clock */
|
||||
#ifndef BOOTLOADER
|
||||
#define CONFIG_RTC RTC_PCF50605
|
||||
#endif
|
||||
|
||||
/* Define this if you have a software controlled poweroff */
|
||||
#define HAVE_SW_POWEROFF
|
||||
|
||||
/* The number of bytes reserved for loadable codecs */
|
||||
#define CODEC_SIZE 0x80000
|
||||
|
||||
/* The number of bytes reserved for loadable plugins */
|
||||
#define PLUGIN_BUFFER_SIZE 0x80000
|
||||
|
||||
/* Define this if you have the WM8975 audio codec */
|
||||
#define HAVE_WM8975
|
||||
|
||||
/* Define this for LCD backlight available */
|
||||
#define CONFIG_BACKLIGHT BL_IPODMINI /* port controlled */
|
||||
|
||||
#ifndef SIMULATOR
|
||||
|
||||
/* Define this if you have a PortalPlayer PP5020 */
|
||||
#define CONFIG_CPU PP5020
|
||||
|
||||
/* Define this if you want to use the PP5020 i2c interface */
|
||||
#define CONFIG_I2C I2C_PP5020
|
||||
|
||||
/* Type of mobile power */
|
||||
//#define CONFIG_BATTERY BATT_LIPOL1300
|
||||
|
||||
#define BATTERY_SCALE_FACTOR 16665 /* FIX: this value is picked at random */
|
||||
|
||||
/* Define this if the platform can charge batteries */
|
||||
//#define HAVE_CHARGING 1
|
||||
|
||||
/* define this if the hardware can be powered off while charging */
|
||||
//#define HAVE_POWEROFF_WHILE_CHARGING
|
||||
|
||||
/* The start address index for ROM builds */
|
||||
#define ROM_START 0x00000000
|
||||
|
||||
/* Define this to the CPU frequency */
|
||||
#define CPU_FREQ 11289600
|
||||
|
||||
#define CONFIG_LCD LCD_IPOD2BPP
|
||||
|
||||
/* Offset ( in the firmware file's header ) to the file length */
|
||||
#define FIRMWARE_OFFSET_FILE_LENGTH 0
|
||||
|
||||
/* Offset ( in the firmware file's header ) to the file CRC */
|
||||
#define FIRMWARE_OFFSET_FILE_CRC 0
|
||||
|
||||
/* Offset ( in the firmware file's header ) to the real data */
|
||||
#define FIRMWARE_OFFSET_FILE_DATA 8
|
||||
|
||||
#define USB_IPODSTYLE
|
||||
|
||||
/* define this if the unit can be powered or charged via USB */
|
||||
#define HAVE_USB_POWER
|
||||
|
||||
/* Virtual LED (icon) */
|
||||
#define CONFIG_LED LED_VIRTUAL
|
||||
|
||||
/* Define this if you have adjustable CPU frequency */
|
||||
//#define HAVE_ADJUSTABLE_CPU_FREQ
|
||||
|
||||
#define BOOTFILE_EXT "ipod"
|
||||
#define BOOTFILE "rockbox." BOOTFILE_EXT
|
||||
|
||||
#endif
|
||||
|
|
@ -170,6 +170,8 @@
|
|||
#include "config-gigabeat.h"
|
||||
#elif defined(IPOD_MINI)
|
||||
#include "config-ipodmini.h"
|
||||
#elif defined(IPOD_MINI2G)
|
||||
#include "config-ipodmini2g.h"
|
||||
#else
|
||||
/* no known platform */
|
||||
#endif
|
||||
|
|
|
|||
24
tools/configure
vendored
24
tools/configure
vendored
|
|
@ -465,9 +465,10 @@ toolsdir='\$(ROOTDIR)/tools'
|
|||
echo "15 - iPod Video"
|
||||
echo "16 - iPod 3G"
|
||||
echo "17 - iPod 4G (Grayscale)"
|
||||
echo "18 - iPod Mini (1G/2G)"
|
||||
echo "18 - iPod Mini (1G)"
|
||||
echo "19 - iriver iFP-790"
|
||||
echo "20 - Toshiba Gigabeat F"
|
||||
echo "21 - iPod Mini 2G"
|
||||
|
||||
target_id=`input`;
|
||||
|
||||
|
|
@ -870,6 +871,25 @@ toolsdir='\$(ROOTDIR)/tools'
|
|||
toolset=$gigabeatbitmaptools
|
||||
;;
|
||||
|
||||
21)
|
||||
archos="ipodmini2g"
|
||||
target="-DIPOD_MINI2G"
|
||||
memory=32 # always
|
||||
arm7tdmicc
|
||||
tool="$rootdir/tools/scramble -add=mn2g"
|
||||
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
|
||||
bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
|
||||
output="rockbox.ipod"
|
||||
appextra="recorder:gui"
|
||||
archosrom=""
|
||||
flash=""
|
||||
plugins="yes"
|
||||
codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
|
||||
# toolset is the tools within the tools directory that we build for
|
||||
# this particular target.
|
||||
toolset=$ipodbitmaptools
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Please select an actual target platform!"
|
||||
exit
|
||||
|
|
@ -925,7 +945,7 @@ fi
|
|||
case $option in
|
||||
[Bb])
|
||||
case $archos in
|
||||
h100|h120|h300|x5|ipodcolor|ipodnano|ipodvideo|ipod3g|ipod4g|ipodmini)
|
||||
h100|h120|h300|x5|ipodcolor|ipodnano|ipodvideo|ipod3g|ipod4g|ipodmini|ipodmini2g)
|
||||
extradefines="-DBOOTLOADER" # for target makefile symbol EXTRA_DEFINES
|
||||
appsdir='\$(ROOTDIR)/bootloader'
|
||||
apps="bootloader"
|
||||
|
|
|
|||
|
|
@ -183,6 +183,8 @@ int main (int argc, char** argv)
|
|||
modelnum = 9;
|
||||
else if(!strcmp(&argv[1][5], "iax5"))
|
||||
modelnum = 10;
|
||||
else if(!strcmp(&argv[1][5], "mn2g"))
|
||||
modelnum = 11;
|
||||
else {
|
||||
fprintf(stderr, "unsupported model: %s\n", &argv[1][5]);
|
||||
return 2;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue