forked from len0rd/rockbox
New target - iPod Video.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8261 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
3f9789b45a
commit
2a7bd9fb7b
12 changed files with 334 additions and 11 deletions
|
@ -56,11 +56,11 @@ recorder/icons.c
|
||||||
recorder/keyboard.c
|
recorder/keyboard.c
|
||||||
recorder/peakmeter.c
|
recorder/peakmeter.c
|
||||||
recorder/widgets.c
|
recorder/widgets.c
|
||||||
#ifdef IRIVER_H300_SERIES
|
#if defined(IRIVER_H300_SERIES) || defined(APPLE_IPODVIDEO)
|
||||||
recorder/logo-h300.c
|
recorder/logo-h300.c
|
||||||
#elif APPLE_IPODCOLOR
|
#elif defined(APPLE_IPODCOLOR)
|
||||||
recorder/logo-ipod.c
|
recorder/logo-ipod.c
|
||||||
#elif APPLE_IPODNANO
|
#elif defined(APPLE_IPODNANO)
|
||||||
recorder/logo-nano.c
|
recorder/logo-nano.c
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
#define SWAP_TIMER 30
|
#define SWAP_TIMER 30
|
||||||
|
|
||||||
/* use 22x22 tiles */
|
/* use 22x22 tiles */
|
||||||
#if (LCD_HEIGHT == 176) && (LCD_WIDTH == 220) && \
|
#if (LCD_HEIGHT >= 176) && (LCD_WIDTH >= 220) && \
|
||||||
(LCD_PIXELFORMAT == RGB565SWAPPED)
|
(LCD_PIXELFORMAT == RGB565SWAPPED)
|
||||||
/* size of a tile */
|
/* size of a tile */
|
||||||
#define TILE_WIDTH 22
|
#define TILE_WIDTH 22
|
||||||
|
@ -616,7 +616,7 @@ static unsigned short jewel[8][484] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* use 22x22 tiles */
|
/* use 22x22 tiles */
|
||||||
#elif (LCD_HEIGHT == 176) && (LCD_WIDTH == 220) && \
|
#elif (LCD_HEIGHT >= 176) && (LCD_WIDTH >= 220) && \
|
||||||
(LCD_PIXELFORMAT == RGB565)
|
(LCD_PIXELFORMAT == RGB565)
|
||||||
/* size of a tile */
|
/* size of a tile */
|
||||||
#define TILE_WIDTH 22
|
#define TILE_WIDTH 22
|
||||||
|
|
|
@ -381,7 +381,7 @@ static unsigned char num_inverse[10][8]= {
|
||||||
/* Numeral 9 */
|
/* Numeral 9 */
|
||||||
{0x3f,0x3f,0x1b,0x15,0x15,0x23,0x3f,0x3f},
|
{0x3f,0x3f,0x1b,0x15,0x15,0x23,0x3f,0x3f},
|
||||||
};
|
};
|
||||||
#elif (LCD_HEIGHT==176) && (LCD_WIDTH==220)
|
#elif (LCD_HEIGHT>=176) && (LCD_WIDTH>=220)
|
||||||
/* iriver h300 */
|
/* iriver h300 */
|
||||||
|
|
||||||
/* Internal dimensions of a cell */
|
/* Internal dimensions of a cell */
|
||||||
|
|
|
@ -81,7 +81,7 @@ extern const unsigned char bitmap_icon_disk[];
|
||||||
#if LCD_WIDTH == 112 || LCD_WIDTH == 128 || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_WIDTH == 128)
|
#if LCD_WIDTH == 112 || LCD_WIDTH == 128 || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_WIDTH == 128)
|
||||||
extern const unsigned char rockbox112x37[];
|
extern const unsigned char rockbox112x37[];
|
||||||
#endif
|
#endif
|
||||||
#if defined(IRIVER_H300_SERIES) || defined(APPLE_IPODCOLOR)
|
#if defined(IRIVER_H300_SERIES) || defined(APPLE_IPODCOLOR) || defined(APPLE_IPODVIDEO)
|
||||||
#define ROCKBOXLOGO_WIDTH 220
|
#define ROCKBOXLOGO_WIDTH 220
|
||||||
#define ROCKBOXLOGO_HEIGHT 68
|
#define ROCKBOXLOGO_HEIGHT 68
|
||||||
extern const unsigned short rockboxlogo[];
|
extern const unsigned short rockboxlogo[];
|
||||||
|
|
|
@ -61,6 +61,9 @@ drivers/lcd-16bit.c
|
||||||
#if CONFIG_LCD==LCD_IPODNANO || CONFIG_LCD==LCD_IPODCOLOR
|
#if CONFIG_LCD==LCD_IPODNANO || CONFIG_LCD==LCD_IPODCOLOR
|
||||||
drivers/lcd-ipod.c
|
drivers/lcd-ipod.c
|
||||||
#endif
|
#endif
|
||||||
|
#if CONFIG_LCD==LCD_IPODVIDEO
|
||||||
|
drivers/lcd-ipodvideo.c
|
||||||
|
#endif
|
||||||
#if CONFIG_LCD==LCD_H300
|
#if CONFIG_LCD==LCD_H300
|
||||||
drivers/lcd-h300.c
|
drivers/lcd-h300.c
|
||||||
#endif
|
#endif
|
||||||
|
@ -99,7 +102,7 @@ drivers/mas.c
|
||||||
#ifdef IRIVER_H300_SERIES
|
#ifdef IRIVER_H300_SERIES
|
||||||
drivers/pcf50606.c
|
drivers/pcf50606.c
|
||||||
#endif
|
#endif
|
||||||
#if defined(APPLE_IPODCOLOR) || defined(APPLE_IPODNANO)
|
#if defined(APPLE_IPODCOLOR) || defined(APPLE_IPODNANO) || defined(APPLE_IPODVIDEO)
|
||||||
drivers/pcf50605.c
|
drivers/pcf50605.c
|
||||||
#endif
|
#endif
|
||||||
#if CONFIG_RTC == RTC_M41ST84W
|
#if CONFIG_RTC == RTC_M41ST84W
|
||||||
|
|
195
firmware/drivers/lcd-ipodvideo.c
Normal file
195
firmware/drivers/lcd-ipodvideo.c
Normal file
|
@ -0,0 +1,195 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* __________ __ ___.
|
||||||
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||||
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||||
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||||
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||||
|
* \/ \/ \/ \/ \/
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2005 by Dave Chapman
|
||||||
|
*
|
||||||
|
* Rockbox driver for iPod Video LCDs
|
||||||
|
*
|
||||||
|
* Based on code from ipodlinux - http://ipodlinux.org
|
||||||
|
*
|
||||||
|
* All files in this archive are subject to the GNU General Public License.
|
||||||
|
* See the file COPYING in the source tree root for full license agreement.
|
||||||
|
*
|
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
* KIND, either express or implied.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
#include "config.h"
|
||||||
|
#include "cpu.h"
|
||||||
|
#include "lcd.h"
|
||||||
|
#include "kernel.h"
|
||||||
|
#include "system.h"
|
||||||
|
|
||||||
|
/*** hardware configuration ***/
|
||||||
|
|
||||||
|
void lcd_set_contrast(int val)
|
||||||
|
{
|
||||||
|
/* TODO: Implement lcd_set_contrast() */
|
||||||
|
(void)val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_set_invert_display(bool yesno)
|
||||||
|
{
|
||||||
|
/* TODO: Implement lcd_set_invert_display() */
|
||||||
|
(void)yesno;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* turn the display upside down (call lcd_update() afterwards) */
|
||||||
|
void lcd_set_flip(bool yesno)
|
||||||
|
{
|
||||||
|
/* TODO: Implement lcd_set_flip() */
|
||||||
|
(void)yesno;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Rolls up the lcd display by the specified amount of lines.
|
||||||
|
* Lines that are rolled out over the top of the screen are
|
||||||
|
* rolled in from the bottom again. This is a hardware
|
||||||
|
* remapping only and all operations on the lcd are affected.
|
||||||
|
* ->
|
||||||
|
* @param int lines - The number of lines that are rolled.
|
||||||
|
* The value must be 0 <= pixels < LCD_HEIGHT. */
|
||||||
|
void lcd_roll(int lines)
|
||||||
|
{
|
||||||
|
/* TODO: Implement lcd_roll() */
|
||||||
|
lines &= LCD_HEIGHT-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LCD init */
|
||||||
|
void lcd_init_device(void)
|
||||||
|
{
|
||||||
|
/* iPodLinux doesn't appear have any LCD init code for the Video */
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** update functions ***/
|
||||||
|
|
||||||
|
/* Performance function that works with an external buffer
|
||||||
|
note that by and bheight are in 4-pixel units! */
|
||||||
|
void lcd_blit(const fb_data* data, int x, int by, int width,
|
||||||
|
int bheight, int stride)
|
||||||
|
{
|
||||||
|
/* TODO: Implement lcd_blit() */
|
||||||
|
(void)data;
|
||||||
|
(void)x;
|
||||||
|
(void)by;
|
||||||
|
(void)width;
|
||||||
|
(void)bheight;
|
||||||
|
(void)stride;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_bcm_write32(unsigned address, unsigned value)
|
||||||
|
{
|
||||||
|
/* write out destination address as two 16bit values */
|
||||||
|
outw(address, 0x30010000);
|
||||||
|
outw((address >> 16), 0x30010000);
|
||||||
|
|
||||||
|
/* wait for it to be write ready */
|
||||||
|
while ((inw(0x30030000) & 0x2) == 0);
|
||||||
|
|
||||||
|
/* write out the value low 16, high 16 */
|
||||||
|
outw(value, 0x30000000);
|
||||||
|
outw((value >> 16), 0x30000000);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_bcm_setup_rect(unsigned cmd,
|
||||||
|
unsigned start_horiz,
|
||||||
|
unsigned start_vert,
|
||||||
|
unsigned max_horiz,
|
||||||
|
unsigned max_vert,
|
||||||
|
unsigned count)
|
||||||
|
{
|
||||||
|
lcd_bcm_write32(0x1F8, 0xFFFA0005);
|
||||||
|
lcd_bcm_write32(0xE0000, cmd);
|
||||||
|
lcd_bcm_write32(0xE0004, start_horiz);
|
||||||
|
lcd_bcm_write32(0xE0008, start_vert);
|
||||||
|
lcd_bcm_write32(0xE000C, max_horiz);
|
||||||
|
lcd_bcm_write32(0xE0010, max_vert);
|
||||||
|
lcd_bcm_write32(0xE0014, count);
|
||||||
|
lcd_bcm_write32(0xE0018, count);
|
||||||
|
lcd_bcm_write32(0xE001C, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned lcd_bcm_read32(unsigned address) {
|
||||||
|
while ((inw(0x30020000) & 1) == 0);
|
||||||
|
|
||||||
|
/* write out destination address as two 16bit values */
|
||||||
|
outw(address, 0x30020000);
|
||||||
|
outw((address >> 16), 0x30020000);
|
||||||
|
|
||||||
|
/* wait for it to be read ready */
|
||||||
|
while ((inw(0x30030000) & 0x10) == 0);
|
||||||
|
|
||||||
|
/* read the value */
|
||||||
|
return inw(0x30000000) | inw(0x30000000) << 16;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_bcm_finishup(void) {
|
||||||
|
unsigned data;
|
||||||
|
|
||||||
|
outw(0x31, 0x30030000);
|
||||||
|
|
||||||
|
lcd_bcm_read32(0x1FC);
|
||||||
|
|
||||||
|
do {
|
||||||
|
data = lcd_bcm_read32(0x1F8);
|
||||||
|
} while (data == 0xFFFA0005 || data == 0xFFFF);
|
||||||
|
|
||||||
|
lcd_bcm_read32(0x1FC);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Update a fraction of the display. */
|
||||||
|
void lcd_update_rect(int x, int y, int width, int height)
|
||||||
|
{
|
||||||
|
int rect1,rect2,rect3,rect4;
|
||||||
|
int newx,newwidth;
|
||||||
|
int count;
|
||||||
|
unsigned int curpixel=0;
|
||||||
|
int c, r;
|
||||||
|
unsigned long *addr;
|
||||||
|
int p0,p1;
|
||||||
|
|
||||||
|
/* Ensure x and width are both even - so we can read 32-bit aligned
|
||||||
|
data from lcd_framebuffer */
|
||||||
|
newx=x&~1;
|
||||||
|
newwidth=width&~1;
|
||||||
|
if (newx+newwidth < x+width) { newwidth+=2; }
|
||||||
|
x=newx; width=newwidth;
|
||||||
|
|
||||||
|
/* calculate the drawing region */
|
||||||
|
rect1 = x; /* start horiz */
|
||||||
|
rect2 = y; /* start vert */
|
||||||
|
rect3 = (x + width) - 1; /* max horiz */
|
||||||
|
rect4 = (y + height) - 1; /* max vert */
|
||||||
|
|
||||||
|
/* setup the drawing region */
|
||||||
|
count=(width * height) << 1;
|
||||||
|
lcd_bcm_setup_rect(0x34, rect1, rect2, rect3, rect4, count);
|
||||||
|
|
||||||
|
addr = (unsigned long*)&lcd_framebuffer[y][x];
|
||||||
|
|
||||||
|
/* for each row */
|
||||||
|
for (r = 0; r < height; r++) {
|
||||||
|
/* for each column */
|
||||||
|
for (c = 0; c < width; c += 2) {
|
||||||
|
/* output 2 pixels */
|
||||||
|
lcd_bcm_write32(0xE0020 + (curpixel << 2), *(addr++));
|
||||||
|
curpixel++;
|
||||||
|
}
|
||||||
|
|
||||||
|
addr += (LCD_WIDTH - width)/2;
|
||||||
|
}
|
||||||
|
|
||||||
|
lcd_bcm_finishup();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Update the display.
|
||||||
|
This must be called after all other LCD functions that change the display. */
|
||||||
|
void lcd_update(void)
|
||||||
|
{
|
||||||
|
lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT);
|
||||||
|
}
|
96
firmware/export/config-ipodvideo.h
Normal file
96
firmware/export/config-ipodvideo.h
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
/*
|
||||||
|
* This config file is for the Apple iPod Video
|
||||||
|
*/
|
||||||
|
#define APPLE_IPODVIDEO 1
|
||||||
|
|
||||||
|
/* For Rolo and boot loader */
|
||||||
|
#define MODEL_NUMBER 5
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* define this if you have a colour LCD */
|
||||||
|
#define HAVE_LCD_COLOR 1
|
||||||
|
|
||||||
|
/* LCD dimensions */
|
||||||
|
#define LCD_WIDTH 320
|
||||||
|
#define LCD_HEIGHT 240
|
||||||
|
#define LCD_DEPTH 16 /* 65536 colours */
|
||||||
|
#define LCD_PIXELFORMAT RGB565 /* rgb565 */
|
||||||
|
|
||||||
|
#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 */
|
||||||
|
#define CONFIG_RTC RTC_PCF50605
|
||||||
|
|
||||||
|
/* 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 0xC0000
|
||||||
|
|
||||||
|
/* Define this if you have the WM8975 audio codec */
|
||||||
|
#define HAVE_WM8975
|
||||||
|
|
||||||
|
/* Define this for LCD backlight available */
|
||||||
|
#define CONFIG_BACKLIGHT BL_IPODNANO /* port controlled */
|
||||||
|
|
||||||
|
#ifndef SIMULATOR
|
||||||
|
|
||||||
|
/* The Nano actually has a PP5021 - but it's register compatible with
|
||||||
|
the 5020 so Rockbox doesn't care. */
|
||||||
|
/* 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_IPODVIDEO
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* 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
|
|
@ -75,6 +75,7 @@
|
||||||
unknown at the time of this writing */
|
unknown at the time of this writing */
|
||||||
#define LCD_IPODCOLOR 6 /* as used by iPod Color/Photo */
|
#define LCD_IPODCOLOR 6 /* as used by iPod Color/Photo */
|
||||||
#define LCD_IPODNANO 7 /* as used by iPod Nano */
|
#define LCD_IPODNANO 7 /* as used by iPod Nano */
|
||||||
|
#define LCD_IPODVIDEO 8 /* as used by iPod Video */
|
||||||
|
|
||||||
/* LCD_PIXELFORMAT */
|
/* LCD_PIXELFORMAT */
|
||||||
#define RGB565 565
|
#define RGB565 565
|
||||||
|
@ -87,7 +88,7 @@
|
||||||
#define BL_IRIVER_H100 3 /* IRiver GPIO */
|
#define BL_IRIVER_H100 3 /* IRiver GPIO */
|
||||||
#define BL_GMINI 4 /* Archos GMini */
|
#define BL_GMINI 4 /* Archos GMini */
|
||||||
#define BL_IPOD4G 5 /* Apple iPod 4G */
|
#define BL_IPOD4G 5 /* Apple iPod 4G */
|
||||||
#define BL_IPODNANO 6 /* Apple iPod Nano */
|
#define BL_IPODNANO 6 /* Apple iPod Nano and iPod Video*/
|
||||||
#define BL_IRIVER_H300 7 /* IRiver PWM */
|
#define BL_IRIVER_H300 7 /* IRiver PWM */
|
||||||
|
|
||||||
/* CONFIG_I2C */
|
/* CONFIG_I2C */
|
||||||
|
@ -137,6 +138,8 @@
|
||||||
#include "config-ipodcolor.h"
|
#include "config-ipodcolor.h"
|
||||||
#elif defined(IPOD_NANO)
|
#elif defined(IPOD_NANO)
|
||||||
#include "config-ipodnano.h"
|
#include "config-ipodnano.h"
|
||||||
|
#elif defined(IPOD_VIDEO)
|
||||||
|
#include "config-ipodvideo.h"
|
||||||
#else
|
#else
|
||||||
/* no known platform */
|
/* no known platform */
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -34,6 +34,8 @@ extern long cpu_frequency;
|
||||||
#define outl(a,b) (*(volatile unsigned long *) (b) = (a))
|
#define outl(a,b) (*(volatile unsigned long *) (b) = (a))
|
||||||
#define inb(a) (*(volatile unsigned char *) (a))
|
#define inb(a) (*(volatile unsigned char *) (a))
|
||||||
#define outb(a,b) (*(volatile unsigned char *) (b) = (a))
|
#define outb(a,b) (*(volatile unsigned char *) (b) = (a))
|
||||||
|
#define inw(a) (*(volatile unsigned short *) (a))
|
||||||
|
#define outw(a,b) (*(volatile unsigned short *) (b) = (a))
|
||||||
static inline void udelay(unsigned usecs)
|
static inline void udelay(unsigned usecs)
|
||||||
{
|
{
|
||||||
unsigned start = inl(0x60005010);
|
unsigned start = inl(0x60005010);
|
||||||
|
|
|
@ -1126,6 +1126,9 @@ void irq(void)
|
||||||
|
|
||||||
static void ipod_init_cache(void)
|
static void ipod_init_cache(void)
|
||||||
{
|
{
|
||||||
|
/* Initialising the cache in the iPod Video bootloader prevents
|
||||||
|
Rockbox from starting */
|
||||||
|
#if !defined(BOOTLOADER) || !defined(APPLE_IPODVIDEO)
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
/* cache init mode? */
|
/* cache init mode? */
|
||||||
|
@ -1144,6 +1147,7 @@ static void ipod_init_cache(void)
|
||||||
|
|
||||||
for (i = 0x10000000; i < 0x10002000; i += 16)
|
for (i = 0x10000000; i < 0x10002000; i += 16)
|
||||||
inb(i);
|
inb(i);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ipod_set_cpu_speed(void)
|
static void ipod_set_cpu_speed(void)
|
||||||
|
|
20
tools/configure
vendored
20
tools/configure
vendored
|
@ -410,6 +410,7 @@ appsdir='\$(ROOTDIR)/apps'
|
||||||
echo "12 - iAudio X5"
|
echo "12 - iAudio X5"
|
||||||
echo "13 - iPod Color/Photo"
|
echo "13 - iPod Color/Photo"
|
||||||
echo "14 - iPod Nano"
|
echo "14 - iPod Nano"
|
||||||
|
echo "15 - iPod Video"
|
||||||
|
|
||||||
getit=`input`;
|
getit=`input`;
|
||||||
|
|
||||||
|
@ -659,6 +660,23 @@ appsdir='\$(ROOTDIR)/apps'
|
||||||
toolset=$ipodbitmaptools
|
toolset=$ipodbitmaptools
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
15)
|
||||||
|
archos="ipodvideo"
|
||||||
|
target="-DIPOD_VIDEO"
|
||||||
|
memory=32 # 30GB models have 32MB, 60GB have 64MB
|
||||||
|
arm7tdmicc
|
||||||
|
tool="$rootdir/tools/scramble -add=ipvd"
|
||||||
|
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!"
|
echo "Please select an actual target platform!"
|
||||||
exit
|
exit
|
||||||
|
@ -703,7 +721,7 @@ fi
|
||||||
case $option in
|
case $option in
|
||||||
[Bb])
|
[Bb])
|
||||||
case $archos in
|
case $archos in
|
||||||
h100|h120|h300|ipodcolor|ipodnano)
|
h100|h120|h300|ipodcolor|ipodnano|ipodvideo)
|
||||||
extradefines="-DBOOTLOADER" # for target makefile symbol EXTRA_DEFINES
|
extradefines="-DBOOTLOADER" # for target makefile symbol EXTRA_DEFINES
|
||||||
appsdir='\$(ROOTDIR)/bootloader'
|
appsdir='\$(ROOTDIR)/bootloader'
|
||||||
apps="bootloader"
|
apps="bootloader"
|
||||||
|
|
|
@ -68,7 +68,7 @@ void usage(void)
|
||||||
"\t-mm=X Archos Multimedia format (X values: A=JBMM, B=AV1xx, C=AV3xx)\n"
|
"\t-mm=X Archos Multimedia format (X values: A=JBMM, B=AV1xx, C=AV3xx)\n"
|
||||||
"\t-iriver iRiver format\n"
|
"\t-iriver iRiver format\n"
|
||||||
"\t-add=X Rockbox generic \"add-up\" checksum format\n"
|
"\t-add=X Rockbox generic \"add-up\" checksum format\n"
|
||||||
"\t (X values: h100, h120, h140, h300, ipco, nano)\n"
|
"\t (X values: h100, h120, h140, h300, ipco, nano, ipvd)\n"
|
||||||
"\nNo option results in Archos standard player/recorder format.\n");
|
"\nNo option results in Archos standard player/recorder format.\n");
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -166,6 +166,8 @@ int main (int argc, char** argv)
|
||||||
modelnum = 3;
|
modelnum = 3;
|
||||||
else if(!strcmp(&argv[1][5], "nano"))
|
else if(!strcmp(&argv[1][5], "nano"))
|
||||||
modelnum = 4;
|
modelnum = 4;
|
||||||
|
else if(!strcmp(&argv[1][5], "ipvd"))
|
||||||
|
modelnum = 5;
|
||||||
else {
|
else {
|
||||||
fprintf(stderr, "unsupported model: %s\n", &argv[1][5]);
|
fprintf(stderr, "unsupported model: %s\n", &argv[1][5]);
|
||||||
return 2;
|
return 2;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue