diff options
| author | Rafaël Carré <rafael.carre@gmail.com> | 2010-06-08 18:07:59 +0000 |
|---|---|---|
| committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-06-08 18:07:59 +0000 |
| commit | e907a96d71d1c1bbd8eb491c54a30583021623b9 (patch) | |
| tree | e5ee761347c7941e0ebcd9073359742ef8abbc00 | |
| parent | 268c0644bfdbfb25ac48b3148f9ed2e95f4b899f (diff) | |
| download | rockbox-e907a96d71d1c1bbd8eb491c54a30583021623b9.zip rockbox-e907a96d71d1c1bbd8eb491c54a30583021623b9.tar.gz rockbox-e907a96d71d1c1bbd8eb491c54a30583021623b9.tar.bz2 rockbox-e907a96d71d1c1bbd8eb491c54a30583021623b9.tar.xz | |
make meizu-m6sl bootloader build
assume 512 bytes sector size as reported by dmesg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26700 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/export/config/meizum6sl.h | 3 | ||||
| -rw-r--r-- | firmware/target/arm/s5l8700/meizu-m6sl/ftl-target.h | 45 | ||||
| -rw-r--r-- | firmware/target/arm/s5l8700/meizu-m6sl/nand-target.h | 58 |
3 files changed, 106 insertions, 0 deletions
diff --git a/firmware/export/config/meizum6sl.h b/firmware/export/config/meizum6sl.h index 4e54f80..d18a34d 100644 --- a/firmware/export/config/meizum6sl.h +++ b/firmware/export/config/meizum6sl.h @@ -58,6 +58,9 @@ #define CONFIG_NAND NAND_SAMSUNG +/* The NAND flash has 512-byte sectors, and is our only storage */ +#define SECTOR_SIZE 512 + /* LCD dimensions */ #define LCD_WIDTH 320 #define LCD_HEIGHT 240 diff --git a/firmware/target/arm/s5l8700/meizu-m6sl/ftl-target.h b/firmware/target/arm/s5l8700/meizu-m6sl/ftl-target.h new file mode 100644 index 0000000..ad4dc04 --- /dev/null +++ b/firmware/target/arm/s5l8700/meizu-m6sl/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-m6sl/nand-target.h b/firmware/target/arm/s5l8700/meizu-m6sl/nand-target.h new file mode 100644 index 0000000..dee690e --- /dev/null +++ b/firmware/target/arm/s5l8700/meizu-m6sl/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 |