diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/config_cmd_all.h | 1 | ||||
-rw-r--r-- | include/environment.h | 12 | ||||
-rw-r--r-- | include/mg_disk.h | 51 | ||||
-rw-r--r-- | include/part.h | 1 |
4 files changed, 65 insertions, 0 deletions
diff --git a/include/config_cmd_all.h b/include/config_cmd_all.h index c5e0d26..c747b4b 100644 --- a/include/config_cmd_all.h +++ b/include/config_cmd_all.h @@ -84,5 +84,6 @@ #define CONFIG_CMD_VFD /* VFD support (TRAB) */ #define CONFIG_CMD_XIMG /* Load part of Multi Image */ #define CONFIG_CMD_AT91_SPIMUX /* AT91 MMC/SPI Mux Support */ +#define CONFIG_CMD_MG_DISK /* mGine m(g)flash IO node support */ #endif /* _CONFIG_CMD_ALL_H */ diff --git a/include/environment.h b/include/environment.h index ea6b4d1..507e832 100644 --- a/include/environment.h +++ b/include/environment.h @@ -84,6 +84,18 @@ # endif #endif /* CONFIG_ENV_IS_IN_NAND */ +#if defined(CONFIG_ENV_IS_IN_MG_DISK) +# ifndef CONFIG_ENV_ADDR +# error "Need to define CONFIG_ENV_ADDR when using CONFIG_ENV_IS_IN_MG_DISK" +# endif +# ifndef CONFIG_ENV_SIZE +# error "Need to define CONFIG_ENV_SIZE when using CONFIG_ENV_IS_IN_MG_DISK" +# endif +# ifdef CONFIG_ENV_IS_EMBEDDED +# error "CONFIG_ENV_IS_EMBEDDED not supported when using CONFIG_ENV_IS_IN_MG_DISK" +# endif +#endif /* CONFIG_ENV_IS_IN_MG_DISK */ + #ifdef USE_HOSTCC # include <stdint.h> #else diff --git a/include/mg_disk.h b/include/mg_disk.h new file mode 100644 index 0000000..bd767a1 --- /dev/null +++ b/include/mg_disk.h @@ -0,0 +1,51 @@ +/* + * (C) Copyright 2009 mGine co. + * unsik Kim <donari75@gmail.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * 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 program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef MG_DISK_H_ +#define MG_DISK_H_ + +#include <asm/types.h> + +/* private driver data */ +struct mg_drv_data { + /* base address of mflash */ + u32 base; + /* Initialize hard reset, write protect, deep power down pins. + * Set these pins to GPIO and output high + */ + void (*mg_ctrl_pin_init) (void); + /* Set hard reset pin for given level + * level : logical level of hard reset pin (0 or 1) + */ + void (*mg_hdrst_pin) (u8 level); +}; + +struct mg_drv_data* mg_get_drv_data (void); + +unsigned int mg_disk_init (void); +unsigned int mg_disk_read (u32 addr, u8 *buff, u32 len); +unsigned int mg_disk_write(u32 addr, u8 *buff, u32 len); +unsigned int mg_disk_write_sects(void *buff, u32 sect_num, u32 sect_cnt); +unsigned int mg_disk_read_sects(void *buff, u32 sect_num, u32 sect_cnt); + +#endif /*MG_DISK_H_*/ diff --git a/include/part.h b/include/part.h index 980fd04..3cdae02 100644 --- a/include/part.h +++ b/include/part.h @@ -100,6 +100,7 @@ block_dev_desc_t* scsi_get_dev(int dev); block_dev_desc_t* usb_stor_get_dev(int dev); block_dev_desc_t* mmc_get_dev(int dev); block_dev_desc_t* systemace_get_dev(int dev); +block_dev_desc_t* mg_disk_get_dev(int dev); /* disk/part.c */ int get_partition_info (block_dev_desc_t * dev_desc, int part, disk_partition_t *info); |