From 151c2b25b204c5c69a6f9b174391c174a5128925 Mon Sep 17 00:00:00 2001 From: Bertrik Sikken Date: Sun, 20 Dec 2009 17:15:03 +0000 Subject: Make Meizu M3 bootloader compile again git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24084 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/config/meizuiaudiom3.h | 180 --------------------- firmware/export/config/meizum3.h | 180 +++++++++++++++++++++ firmware/target/arm/s5l8700/meizu-m3/ftl-target.h | 45 ++++++ firmware/target/arm/s5l8700/meizu-m3/nand-target.h | 58 +++++++ 4 files changed, 283 insertions(+), 180 deletions(-) delete mode 100644 firmware/export/config/meizuiaudiom3.h create mode 100644 firmware/export/config/meizum3.h create mode 100644 firmware/target/arm/s5l8700/meizu-m3/ftl-target.h create mode 100644 firmware/target/arm/s5l8700/meizu-m3/nand-target.h diff --git a/firmware/export/config/meizuiaudiom3.h b/firmware/export/config/meizuiaudiom3.h deleted file mode 100644 index 06720695eb..0000000000 --- a/firmware/export/config/meizuiaudiom3.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - * This config file is for Meizu M3 - */ -#define TARGET_TREE /* this target is using the target tree system */ - -/* For Rolo and boot loader */ -#define MODEL_NUMBER 39 - -#define MODEL_NAME "Meizu M3" - -/* define this if you have recording possibility */ -//#define HAVE_RECORDING - -/* Define bitmask of input sources - recordable bitmask can be defined - explicitly if different */ -#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_FMRADIO) - -/* define the bitmask of hardware sample rates */ -#define HW_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | SAMPR_CAP_11) - -/* define the bitmask of recording sample rates */ -#define REC_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | SAMPR_CAP_11) - -/* define this if you have a bitmap LCD display */ -#define HAVE_LCD_BITMAP - -/* define this if you can flip your LCD */ -//#define HAVE_LCD_FLIP - -/* define this if you have a colour LCD */ -#define HAVE_LCD_COLOR - -/* define this if you want album art for this target */ -#define HAVE_ALBUMART - -/* define this to enable bitmap scaling */ -#define HAVE_BMP_SCALING - -/* define this to enable JPEG decoding */ -#define HAVE_JPEG - -/* define this if you can invert the colours on your LCD */ -//#define HAVE_LCD_INVERT - -/* define this if you have access to the quickscreen */ -#define HAVE_QUICKSCREEN - -/* define this if you have access to the pitchscreen */ -#define HAVE_PITCHSCREEN - -/* define this if you would like tagcache to build on this target */ -#define HAVE_TAGCACHE - -/* define this if you have a flash memory storage */ -#define HAVE_FLASH_STORAGE - -#define CONFIG_STORAGE STORAGE_NAND - -#define CONFIG_NAND NAND_SAMSUNG - -/* The NAND flash has 2048-byte sectors, and is our only storage */ -#define SECTOR_SIZE 2048 - -/* LCD dimensions */ -#define LCD_WIDTH 176 -#define LCD_HEIGHT 132 -#define LCD_DEPTH 16 /* pseudo 262.144 colors */ -#define LCD_PIXELFORMAT RGB565 /* rgb565 */ - -/* Define this if your LCD can be enabled/disabled */ -//#define HAVE_LCD_ENABLE - -/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE - should be defined as well. */ -//#define HAVE_LCD_SLEEP - -#define CONFIG_KEYPAD MEIZU_M3_PAD - -//#define AB_REPEAT_ENABLE 1 -//#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE - -/* Define this if you do software codec */ -#define CONFIG_CODEC SWCODEC - -/* define this if you have a real-time clock */ -//#define CONFIG_RTC RTC_S5L8700 -#define CONFIG_RTC RTC_S35390A - -#define CONFIG_LCD LCD_MEIZUM6 - -/* Define the type of audio codec */ -#define HAVE_UDA1380 - -/* Define this for LCD backlight available */ -#define HAVE_BACKLIGHT -#define HAVE_BACKLIGHT_BRIGHTNESS - -/* Define this if you have a software controlled poweroff */ -#define HAVE_SW_POWEROFF - -/* The number of bytes reserved for loadable codecs */ -#define CODEC_SIZE 0x100000 - -/* The number of bytes reserved for loadable plugins */ -#define PLUGIN_BUFFER_SIZE 0x80000 - -/* FM Tuner */ -#define CONFIG_TUNER TEA5760 -#define CONFIG_TUNER_XTAL 32768 - -//#define HAVE_TLV320 - -/* TLV320 has no tone controls, so we use the software ones */ -#define HAVE_SW_TONE_CONTROLS - -#define BATTERY_CAPACITY_DEFAULT 700 /* default battery capacity */ -#define BATTERY_CAPACITY_MIN 500 /* min. capacity selectable */ -#define BATTERY_CAPACITY_MAX 2250 /* max. capacity selectable */ -#define BATTERY_CAPACITY_INC 50 /* capacity increment */ -#define BATTERY_TYPES_COUNT 1 /* only one type */ - -/* Hardware controlled charging, software can monitor plug and charge state */ -#define CONFIG_CHARGING CHARGING_MONITOR - -/* Define this if your LCD can set contrast */ -//#define HAVE_LCD_CONTRAST - -/* Define this if you have a Motorola SCF5250 */ -#define CONFIG_CPU S5L8700 - -/* Define this if you want to use coldfire's i2c interface */ -#define CONFIG_I2C I2C_S5L8700 - -/* define this if the hardware can be powered off while charging */ -#define HAVE_POWEROFF_WHILE_CHARGING - -/* The size of the flash ROM */ -#define FLASH_SIZE 0x400000 - -/* Define this to the CPU frequency */ -#define CPU_FREQ 11289600 - -/* Define this if you have ATA power-off control */ -//#define HAVE_ATA_POWER_OFF - -/* 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 - -/* USB On-the-go */ -//#define CONFIG_USBOTG USBOTG_M5636 - -/* Define this if you have adjustable CPU frequency */ -#define HAVE_ADJUSTABLE_CPU_FREQ - -#define BOOTFILE_EXT "meizu" -#define BOOTFILE "rockbox." BOOTFILE_EXT -#define BOOTDIR "/.rockbox" - -#define BOOTLOADER_ENTRYPOINT 0x001F0000 -#define FLASH_ENTRYPOINT 0x00001000 -#define FLASH_MAGIC 0xfbfbfbf1 - -/* Define this for FM radio input available */ -#define HAVE_FMRADIO_IN - -/** Port-specific settings **/ - -/* Main LCD contrast range and defaults */ -#define MIN_CONTRAST_SETTING 1 -#define MAX_CONTRAST_SETTING 30 -#define DEFAULT_CONTRAST_SETTING 19 /* Match boot contrast */ - -/* Main LCD backlight brightness range and defaults */ -#define MIN_BRIGHTNESS_SETTING 0 -#define MAX_BRIGHTNESS_SETTING 15 -#define DEFAULT_BRIGHTNESS_SETTING 10 - diff --git a/firmware/export/config/meizum3.h b/firmware/export/config/meizum3.h new file mode 100644 index 0000000000..06720695eb --- /dev/null +++ b/firmware/export/config/meizum3.h @@ -0,0 +1,180 @@ +/* + * This config file is for Meizu M3 + */ +#define TARGET_TREE /* this target is using the target tree system */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 39 + +#define MODEL_NAME "Meizu M3" + +/* define this if you have recording possibility */ +//#define HAVE_RECORDING + +/* Define bitmask of input sources - recordable bitmask can be defined + explicitly if different */ +#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_FMRADIO) + +/* define the bitmask of hardware sample rates */ +#define HW_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | SAMPR_CAP_11) + +/* define the bitmask of recording sample rates */ +#define REC_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | SAMPR_CAP_11) + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP + +/* define this if you can flip your LCD */ +//#define HAVE_LCD_FLIP + +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR + +/* define this if you want album art for this target */ +#define HAVE_ALBUMART + +/* define this to enable bitmap scaling */ +#define HAVE_BMP_SCALING + +/* define this to enable JPEG decoding */ +#define HAVE_JPEG + +/* define this if you can invert the colours on your LCD */ +//#define HAVE_LCD_INVERT + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* define this if you have access to the pitchscreen */ +#define HAVE_PITCHSCREEN + +/* define this if you would like tagcache to build on this target */ +#define HAVE_TAGCACHE + +/* define this if you have a flash memory storage */ +#define HAVE_FLASH_STORAGE + +#define CONFIG_STORAGE STORAGE_NAND + +#define CONFIG_NAND NAND_SAMSUNG + +/* The NAND flash has 2048-byte sectors, and is our only storage */ +#define SECTOR_SIZE 2048 + +/* LCD dimensions */ +#define LCD_WIDTH 176 +#define LCD_HEIGHT 132 +#define LCD_DEPTH 16 /* pseudo 262.144 colors */ +#define LCD_PIXELFORMAT RGB565 /* rgb565 */ + +/* Define this if your LCD can be enabled/disabled */ +//#define HAVE_LCD_ENABLE + +/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE + should be defined as well. */ +//#define HAVE_LCD_SLEEP + +#define CONFIG_KEYPAD MEIZU_M3_PAD + +//#define AB_REPEAT_ENABLE 1 +//#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +/* define this if you have a real-time clock */ +//#define CONFIG_RTC RTC_S5L8700 +#define CONFIG_RTC RTC_S35390A + +#define CONFIG_LCD LCD_MEIZUM6 + +/* Define the type of audio codec */ +#define HAVE_UDA1380 + +/* Define this for LCD backlight available */ +#define HAVE_BACKLIGHT +#define HAVE_BACKLIGHT_BRIGHTNESS + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x100000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +/* FM Tuner */ +#define CONFIG_TUNER TEA5760 +#define CONFIG_TUNER_XTAL 32768 + +//#define HAVE_TLV320 + +/* TLV320 has no tone controls, so we use the software ones */ +#define HAVE_SW_TONE_CONTROLS + +#define BATTERY_CAPACITY_DEFAULT 700 /* default battery capacity */ +#define BATTERY_CAPACITY_MIN 500 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 2250 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 50 /* capacity increment */ +#define BATTERY_TYPES_COUNT 1 /* only one type */ + +/* Hardware controlled charging, software can monitor plug and charge state */ +#define CONFIG_CHARGING CHARGING_MONITOR + +/* Define this if your LCD can set contrast */ +//#define HAVE_LCD_CONTRAST + +/* Define this if you have a Motorola SCF5250 */ +#define CONFIG_CPU S5L8700 + +/* Define this if you want to use coldfire's i2c interface */ +#define CONFIG_I2C I2C_S5L8700 + +/* define this if the hardware can be powered off while charging */ +#define HAVE_POWEROFF_WHILE_CHARGING + +/* The size of the flash ROM */ +#define FLASH_SIZE 0x400000 + +/* Define this to the CPU frequency */ +#define CPU_FREQ 11289600 + +/* Define this if you have ATA power-off control */ +//#define HAVE_ATA_POWER_OFF + +/* 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 + +/* USB On-the-go */ +//#define CONFIG_USBOTG USBOTG_M5636 + +/* Define this if you have adjustable CPU frequency */ +#define HAVE_ADJUSTABLE_CPU_FREQ + +#define BOOTFILE_EXT "meizu" +#define BOOTFILE "rockbox." BOOTFILE_EXT +#define BOOTDIR "/.rockbox" + +#define BOOTLOADER_ENTRYPOINT 0x001F0000 +#define FLASH_ENTRYPOINT 0x00001000 +#define FLASH_MAGIC 0xfbfbfbf1 + +/* Define this for FM radio input available */ +#define HAVE_FMRADIO_IN + +/** Port-specific settings **/ + +/* Main LCD contrast range and defaults */ +#define MIN_CONTRAST_SETTING 1 +#define MAX_CONTRAST_SETTING 30 +#define DEFAULT_CONTRAST_SETTING 19 /* Match boot contrast */ + +/* Main LCD backlight brightness range and defaults */ +#define MIN_BRIGHTNESS_SETTING 0 +#define MAX_BRIGHTNESS_SETTING 15 +#define DEFAULT_BRIGHTNESS_SETTING 10 + diff --git a/firmware/target/arm/s5l8700/meizu-m3/ftl-target.h b/firmware/target/arm/s5l8700/meizu-m3/ftl-target.h new file mode 100644 index 0000000000..ad4dc04db1 --- /dev/null +++ b/firmware/target/arm/s5l8700/meizu-m3/ftl-target.h @@ -0,0 +1,45 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2009 by Michael Sparmann + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef __FTL_TARGET_H__ +#define __FTL_TARGET_H__ + +#include "config.h" +#include "inttypes.h" + +#ifdef BOOTLOADER +/* Bootloaders don't need write access */ +#define FTL_READONLY +#endif + +/* Pointer to an info structure regarding the flash type used */ +const struct nand_device_info_type* ftl_nand_type; + +/* Number of banks we detected a chip on */ +uint32_t ftl_banks; + +uint32_t ftl_init(void); +uint32_t ftl_read(uint32_t sector, uint32_t count, void* buffer); +uint32_t ftl_write(uint32_t sector, uint32_t count, const void* buffer); +uint32_t ftl_sync(void); + + +#endif diff --git a/firmware/target/arm/s5l8700/meizu-m3/nand-target.h b/firmware/target/arm/s5l8700/meizu-m3/nand-target.h new file mode 100644 index 0000000000..51b215a248 --- /dev/null +++ b/firmware/target/arm/s5l8700/meizu-m3/nand-target.h @@ -0,0 +1,58 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2009 by Michael Sparmann + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef __NAND_TARGET_H__ +#define __NAND_TARGET_H__ + +#include "config.h" +#include "inttypes.h" + + +struct nand_device_info_type +{ + uint32_t id; + uint16_t blocks; + uint16_t userblocks; + uint16_t pagesperblock; + uint8_t blocksizeexponent; + uint8_t tunk1; + uint8_t twp; + uint8_t tunk2; + uint8_t tunk3; +} __attribute__((packed)); + +uint32_t nand_read_page(uint32_t bank, uint32_t page, void* databuffer, + void* sparebuffer, uint32_t doecc, + uint32_t checkempty); +uint32_t nand_write_page(uint32_t bank, uint32_t page, void* databuffer, + void* sparebuffer, uint32_t doecc); +uint32_t nand_block_erase(uint32_t bank, uint32_t page); + +const struct nand_device_info_type* nand_get_device_type(uint32_t bank); +uint32_t nand_reset(uint32_t bank); +uint32_t nand_device_init(void); +void nand_set_active(void); +long nand_last_activity(void); +void nand_power_up(void); +void nand_power_down(void); + + +#endif -- cgit v1.2.3