]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ubuntu-packaging-samples/u-boot.git/commitdiff
Remove old debian target patches
authorTom Rini <trini@ti.com>
Fri, 25 Jan 2013 19:13:38 +0000 (14:13 -0500)
committerTom Rini <trini@ti.com>
Fri, 25 Jan 2013 20:08:21 +0000 (15:08 -0500)
Signed-off-by: Tom Rini <trini@ti.com>
debian/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff [deleted file]
debian/patches/hurd.diff [deleted file]
debian/patches/kerma-sheevaplug-mvsata.diff [deleted file]
debian/patches/kerma-sheevaplug-mvsdio.diff [deleted file]
debian/patches/mipsel-native-endianness.diff [deleted file]
debian/patches/no-error-on-set-but-unused-variables.diff [deleted file]
debian/patches/openrd-mmc.diff [deleted file]
debian/patches/series [deleted file]
debian/patches/strip-env-tools.diff [deleted file]

diff --git a/debian/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff b/debian/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff
deleted file mode 100644 (file)
index 6cd7624..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-From ebdb222b0d65bcc050e3f0fd6e97faf17fb3eae4 Mon Sep 17 00:00:00 2001
-Sender: Loïc Minier <loic.minier@linaro.org>
-From: Enric Balletbo i Serra <eballetbo@iseebcn.com>
-Date: Wed, 23 Feb 2011 14:35:41 +0100
-Subject: [PATCH] ARM: OMAP3: Revamp IGEP default configuration
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The default IGEP configuration doesn't do anything useful; using some
-boot.scr search logic like BeagleBoard is much more useful.
-
-Signed-off-by: Loïc Minier <loic.minier@linaro.org>
----
- include/configs/igep0020.h |   55 ++++++++++++++++++++++++++++++++++++++++---
- 1 files changed, 51 insertions(+), 4 deletions(-)
-
-diff --git a/include/configs/igep0020.h b/include/configs/igep0020.h
-index c19ecc0..2466562 100644
---- a/include/configs/igep0020.h
-+++ b/include/configs/igep0020.h
-@@ -130,13 +130,60 @@
- #define CONFIG_TWL4030_POWER          1
- /* Environment information */
--#define CONFIG_BOOTCOMMAND \
--      "mmc init 0 ; fatload mmc 0 0x80000000 setup.ini ; source \0"
--
- #define CONFIG_BOOTDELAY              3
- #define CONFIG_EXTRA_ENV_SETTINGS \
--      "usbtty=cdc_acm\0"
-+      "loadaddr=0x82000000\0" \
-+      "usbtty=cdc_acm\0" \
-+      "console=ttyS2,115200n8\0" \
-+      "mpurate=500\0" \
-+      "vram=12M\0" \
-+      "dvimode=1024x768MR-16@60\0" \
-+      "defaultdisplay=dvi\0" \
-+      "mmcdev=0\0" \
-+      "mmcroot=/dev/mmcblk0p2 rw\0" \
-+      "mmcrootfstype=ext3 rootwait\0" \
-+      "nandroot=/dev/mtdblock4 rw\0" \
-+      "nandrootfstype=jffs2\0" \
-+      "mmcargs=setenv bootargs console=${console} " \
-+              "mpurate=${mpurate} " \
-+              "vram=${vram} " \
-+              "omapfb.mode=dvi:${dvimode} " \
-+              "omapfb.debug=y " \
-+              "omapdss.def_disp=${defaultdisplay} " \
-+              "root=${mmcroot} " \
-+              "rootfstype=${mmcrootfstype}\0" \
-+      "nandargs=setenv bootargs console=${console} " \
-+              "mpurate=${mpurate} " \
-+              "vram=${vram} " \
-+              "omapfb.mode=dvi:${dvimode} " \
-+              "omapfb.debug=y " \
-+              "omapdss.def_disp=${defaultdisplay} " \
-+              "root=${nandroot} " \
-+              "rootfstype=${nandrootfstype}\0" \
-+      "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
-+      "bootscript=echo Running bootscript from mmc ...; " \
-+              "source ${loadaddr}\0" \
-+      "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
-+      "mmcboot=echo Booting from mmc ...; " \
-+              "run mmcargs; " \
-+              "bootm ${loadaddr}\0" \
-+      "nandboot=echo Booting from nand ...; " \
-+              "run nandargs; " \
-+              "nand read ${loadaddr} 280000 400000; " \
-+              "bootm ${loadaddr}\0" \
-+
-+#define CONFIG_BOOTCOMMAND \
-+      "if mmc rescan ${mmcdev}; then " \
-+              "if run loadbootscript; then " \
-+                      "run bootscript; " \
-+              "else " \
-+                      "if run loaduimage; then " \
-+                              "run mmcboot; " \
-+                      "else run nandboot; " \
-+                      "fi; " \
-+              "fi; " \
-+      "else run nandboot; fi"
- #define CONFIG_AUTO_COMPLETE          1
--- 
-1.7.2.3
-
diff --git a/debian/patches/hurd.diff b/debian/patches/hurd.diff
deleted file mode 100644 (file)
index 546e5fb..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/include/compiler.h
-+++ b/include/compiler.h
-@@ -15,7 +15,7 @@
-     defined(__sun__)   || \
-     defined(__APPLE__)
- # include <inttypes.h>
--#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__)
-+#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__) || defined(__GLIBC__)
- # include <stdint.h>
- #endif
-@@ -41,7 +41,7 @@
- #define O_BINARY      0
- #endif
--#ifdef __linux__
-+#if defined(__linux__) || defined(__GLIBC__)
- # include <endian.h>
- # include <byteswap.h>
- #elif defined(__MACH__) || defined(__FreeBSD__)
diff --git a/debian/patches/kerma-sheevaplug-mvsata.diff b/debian/patches/kerma-sheevaplug-mvsata.diff
deleted file mode 100644 (file)
index 34d9854..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-    Add mvsata support to SHEEVAPLUG
-
-Signed-off-by: Gérald Kerma <geraker at gmail.com>
----
-Changes in v2:
- * typo fixed
- * list reordered
-
- include/configs/sheevaplug.h |   29 +++++++++++++++++++++++++++++
- 1 files changed, 29 insertions(+), 0 deletions(-)
-
---- a/include/configs/sheevaplug.h
-+++ b/include/configs/sheevaplug.h
-@@ -46,6 +46,7 @@
- #include <config_cmd_default.h>
- #define CONFIG_CMD_DHCP
- #define CONFIG_CMD_ENV
-+#define CONFIG_CMD_IDE
- #define CONFIG_CMD_MII
- #define CONFIG_CMD_NAND
- #define CONFIG_CMD_PING
-@@ -98,6 +99,34 @@
- #endif /* CONFIG_CMD_NET */
- /*
-+ * IDE Support on SATA port0
-+ */
-+#ifdef CONFIG_CMD_IDE
-+#define __io
-+#define CONFIG_CMD_EXT2
-+#define CONFIG_MVSATA_IDE
-+#define CONFIG_IDE_PREINIT
-+#define CONFIG_MVSATA_IDE_USE_PORT0
-+/* Needs byte-swapping for ATA data register */
-+#define CONFIG_IDE_SWAP_IO
-+/* Data, registers and alternate blocks are at the same offset */
-+#define CONFIG_SYS_ATA_DATA_OFFSET    (0x0100)
-+#define CONFIG_SYS_ATA_REG_OFFSET     (0x0100)
-+#define CONFIG_SYS_ATA_ALT_OFFSET     (0x0100)
-+/* Each 8-bit ATA register is aligned to a 4-bytes address */
-+#define CONFIG_SYS_ATA_STRIDE         4
-+/* Controller supports 48-bits LBA addressing */
-+#define CONFIG_LBA48
-+/* CONFIG_CMD_IDE requires some #defines for ATA registers */
-+#define CONFIG_SYS_IDE_MAXBUS         1
-+#define CONFIG_SYS_IDE_MAXDEVICE      1
-+/* ATA registers base is at SATA controller base */
-+#define CONFIG_SYS_ATA_BASE_ADDR      KW_SATA_BASE
-+/* ATA bus 0 is Kirkwood port 1 on sheevaplug */
-+#define CONFIG_SYS_ATA_IDE0_OFFSET    KW_SATA_PORT1_OFFSET
-+#endif /* CONFIG_CMD_IDE */
-+
-+/*
-  * File system
-  */
- #define CONFIG_CMD_EXT2
diff --git a/debian/patches/kerma-sheevaplug-mvsdio.diff b/debian/patches/kerma-sheevaplug-mvsdio.diff
deleted file mode 100644 (file)
index 1c373a7..0000000
+++ /dev/null
@@ -1,1156 +0,0 @@
-This patch has been tweaked a lot to apply
-==========================================
-
-    Add mvsdio driver to Kirkwood SoC
-    Add SDIO support to SHEEVAPLUG
-    Fix environments for SHEEVAPLUG
-
-Signed-off-by: Gérald Kerma <geraker at gmail.com>
----
-Changes in v1:
- * Fix errors from SD/SDHC detect
- * Minor fixes in boot env
-
- arch/arm/cpu/arm926ejs/kirkwood/timer.c       |   23 +
- arch/arm/include/asm/arch-kirkwood/kirkwood.h |    1 +
- drivers/mmc/Makefile                          |    1 +
- drivers/mmc/mv_sdio.c                         |  747 +++++++++++++++++++++++++
- drivers/mmc/mv_sdio.h                         |  296 ++++++++++
- include/configs/sheevaplug.h                  |   65 ++-
- 6 files changed, 1124 insertions(+), 9 deletions(-)
-
---- a/arch/arm/include/asm/arch-kirkwood/kirkwood.h
-+++ b/arch/arm/include/asm/arch-kirkwood/kirkwood.h
-@@ -55,6 +55,7 @@
- #define KW_EGIGA0_BASE                        (KW_REGISTER(0x72000))
- #define KW_EGIGA1_BASE                        (KW_REGISTER(0x76000))
- #define KW_SATA_BASE                  (KW_REGISTER(0x80000))
-+#define KW_SDIO_BASE                  (KW_REGISTER(0x90000))
- /* Kirkwood Sata controller has two ports */
- #define KW_SATA_PORT0_OFFSET          0x2000
---- a/drivers/mmc/Makefile
-+++ b/drivers/mmc/Makefile
-@@ -34,6 +34,7 @@
- COBJS-$(CONFIG_MMC_SPI) += mmc_spi.o
- COBJS-$(CONFIG_ARM_PL180_MMCI) += arm_pl180_mmci.o
- COBJS-$(CONFIG_MV_SDHCI) += mv_sdhci.o
-+COBJS-$(CONFIG_MV_SDIO) += mv_sdio.o
- COBJS-$(CONFIG_MXC_MMC) += mxcmmc.o
- COBJS-$(CONFIG_MXS_MMC) += mxsmmc.o
- COBJS-$(CONFIG_OMAP_HSMMC) += omap_hsmmc.o
---- /dev/null
-+++ b/drivers/mmc/mv_sdio.c
-@@ -0,0 +1,747 @@
-+/*
-+ * (C) Copyright 2003
-+ * Kyle Harris, Nexus Technologies, Inc. kharris at nexus-tech.net
-+ * Copyright (C) 2010 G?rald Kerma <geraker at 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
-+ */
-+
-+#include <config.h>
-+#include <common.h>
-+#include <malloc.h>
-+#include <mmc.h>
-+#include "mv_sdio.h"
-+#include <asm/errno.h>
-+#include <part.h>
-+#include <asm/io.h>
-+#include <asm/arch/kirkwood.h>
-+
-+#ifdef CONFIG_MMC
-+
-+#define DRIVER_NAME "mv-sdio"
-+
-+//#define DEBUG
-+
-+//static int maxfreq = MVSD_CLOCKRATE_MAX;
-+//static int nodma;
-+
-+static int is_sdhc;
-+
-+extern int fat_register_device(block_dev_desc_t *dev_desc, int part_no);
-+
-+static block_dev_desc_t mmc_dev;
-+
-+block_dev_desc_t * mmc_get_dev(int dev)
-+{
-+      return ((block_dev_desc_t *)&mmc_dev);
-+}
-+
-+/*
-+ * FIXME needs to read cid and csd info to determine block size
-+ * and other parameters
-+ */
-+static uchar mmc_buf[MMC_BLOCK_SIZE];
-+static mv_mmc_csd_t mv_mmc_csd;
-+static int mmc_ready = 0;
-+
-+/* MMC_DEFAULT_RCA should probably be just 1, but this may break other code
-+   that expects it to be shifted. */
-+static u_int16_t rca = 0;
-+
-+static u_int32_t mv_mmc_size(const struct mv_mmc_csd *csd)
-+{
-+      u_int32_t block_len, mult, blocknr;
-+
-+      block_len = csd->read_bl_len << 12;
-+      mult = csd->c_size_mult1 << 8;
-+      blocknr = (csd->c_size+1) * mult;
-+
-+      return blocknr * block_len;
-+}
-+
-+static int isprint (unsigned char ch)
-+{
-+      if (ch >= 32 && ch < 127)
-+              return (1);
-+
-+      return (0);
-+}
-+
-+static int toprint(char *dst, char c)
-+{
-+      if (isprint(c)) {
-+              *dst = c;
-+              return 1;
-+      }
-+
-+      return sprintf(dst,"\\x%02x", c);
-+
-+}
-+
-+static void print_mmc_cid(mv_mmc_cid_t *cid)
-+{
-+      printf("MMC found. Card desciption is:\n");
-+      printf("Manufacturer ID = %02x%02x%02x\n",
-+              cid->id[0], cid->id[1], cid->id[2]);
-+      printf("HW/FW Revision = %x %x\n",cid->hwrev, cid->fwrev);
-+      cid->hwrev = cid->fwrev = 0;    /* null terminate string */
-+      printf("Product Name = %s\n",cid->name);
-+      printf("Serial Number = %02x%02x%02x\n",
-+              cid->sn[0], cid->sn[1], cid->sn[2]);
-+      printf("Month = %d\n",cid->month);
-+      printf("Year = %d\n",1997 + cid->year);
-+}
-+
-+static void print_sd_cid(mv_sd_cid_t *cid)
-+{
-+      int len;
-+      char tbuf[64];
-+
-+      printf("SD%s found. Card desciption is:\n", is_sdhc?"HC":"");
-+
-+      len = 0;
-+      len += toprint(&tbuf[len], cid->oid_0);
-+      len += toprint(&tbuf[len], cid->oid_1);
-+      tbuf[len] = 0;
-+
-+      printf("Manufacturer:       0x%02x, OEM \"%s\"\n",
-+          cid->mid, tbuf);
-+
-+      len = 0;
-+      len += toprint(&tbuf[len], cid->pnm_0);
-+      len += toprint(&tbuf[len], cid->pnm_1);
-+      len += toprint(&tbuf[len], cid->pnm_2);
-+      len += toprint(&tbuf[len], cid->pnm_3);
-+      len += toprint(&tbuf[len], cid->pnm_4);
-+      tbuf[len] = 0;
-+
-+      printf("Product name:       \"%s\", revision %d.%d\n",
-+              tbuf,
-+          cid->prv >> 4, cid->prv & 15);
-+
-+      printf("Serial number:      %u\n",
-+          cid->psn_0 << 24 | cid->psn_1 << 16 | cid->psn_2 << 8 |
-+          cid->psn_3);
-+      printf("Manufacturing date: %d/%d\n",
-+          cid->mdt_1 & 15,
-+          2000+((cid->mdt_0 & 15) << 4)+((cid->mdt_1 & 0xf0) >> 4));
-+
-+      printf("CRC:                0x%02x, b0 = %d\n",
-+          cid->crc >> 1, cid->crc & 1);
-+}
-+
-+static void mvsdio_set_clock(unsigned int clock)
-+{
-+      unsigned int m;
-+
-+      m = MVSDMMC_BASE_FAST_CLOCK/(2*clock) - 1;
-+
-+      debug("mvsdio_set_clock: dividor = 0x%x clock=%d\n",
-+                    m, clock);
-+
-+
-+      SDIO_REG_WRITE32(SDIO_CLK_DIV, m & 0x7ff);
-+
-+      if (isprint(1))
-+      udelay(10*1000);
-+}
-+
-+/****************************************************/
-+static ulong * mv_mmc_cmd(ulong cmd, ulong arg, ushort xfermode, ushort resptype, ushort waittype)
-+/****************************************************/
-+{
-+      static ulong resp[4];
-+      ushort done ;
-+      int err = 0 ;
-+      ulong curr, start, diff, hz;
-+      ushort response[8], resp_indx = 0;
-+
-+      debug("mv_mmc_cmd %x, arg: %x,xfer: %x,resp: %x, wait : %x\n"
-+      , (unsigned int)cmd, (unsigned int)arg, xfermode, resptype, waittype);
-+
-+
-+      //clear status
-+      SDIO_REG_WRITE16(SDIO_NOR_INTR_STATUS, 0xffff);
-+      SDIO_REG_WRITE16(SDIO_ERR_INTR_STATUS, 0xffff);
-+
-+      start = get_ticks();
-+      hz = get_tbclk();
-+
-+      while((SDIO_REG_READ16(SDIO_PRESENT_STATE0) & CARD_BUSY)) {
-+              curr = get_ticks();
-+              diff = (long) curr - (long) start;
-+              if (diff > (3*hz))
-+              {
-+                      // 3 seconds timeout, card busy, can't sent cmd
-+                      printf("card too busy \n");
-+                      return 0;
-+              }
-+      }
-+
-+      SDIO_REG_WRITE16(SDIO_ARG_LOW, (ushort)(arg&0xffff) );
-+      SDIO_REG_WRITE16(SDIO_ARG_HI, (ushort)(arg>>16) );
-+      SDIO_REG_WRITE16(SDIO_XFER_MODE, xfermode);
-+      if( (cmd == MMC_CMD_READ_BLOCK) || (cmd == 25) )
-+      {
-+              SDIO_REG_WRITE16(SDIO_CMD, ((cmd << 8) | resptype | 0x3c ) );
-+      debug("cmd reg : %x\n", SDIO_REG_READ16( SDIO_CMD )) ;
-+
-+      }
-+      else
-+      {
-+              SDIO_REG_WRITE16(SDIO_CMD, ((cmd << 8) | resptype ) );
-+      }
-+
-+      done = SDIO_REG_READ16(SDIO_NOR_INTR_STATUS) & waittype;
-+      start = get_ticks();
-+
-+      while( done!=waittype)
-+      {
-+              done = SDIO_REG_READ16(SDIO_NOR_INTR_STATUS) & waittype;
-+
-+              if( SDIO_REG_READ16(SDIO_NOR_INTR_STATUS) & 0x8000 )
-+              {               
-+                      debug("Error! cmd : %d, err : %04x\n", (unsigned int)cmd, SDIO_REG_READ16(SDIO_ERR_INTR_STATUS) ) ;
-+
-+                      return 0 ;      // error happen
-+              }
-+
-+              curr = get_ticks();
-+              diff = (long) curr - (long) start;
-+              if (diff > (3*hz))
-+              {
-+                      debug("cmd timeout, status : %04x\n", SDIO_REG_READ16(SDIO_NOR_INTR_STATUS));
-+                      debug("xfer mode : %04x\n", SDIO_REG_READ16(SDIO_XFER_MODE));
-+
-+                      err = 1 ;
-+                      break;
-+              }
-+      }
-+
-+      for (resp_indx = 0 ; resp_indx < 8; resp_indx++)
-+              response[resp_indx] = SDIO_REG_READ16(SDIO_RSP(resp_indx));
-+
-+      memset(resp, 0, sizeof(resp));
-+
-+      switch (resptype & 0x3) {
-+              case SDIO_CMD_RSP_48:
-+              case SDIO_CMD_RSP_48BUSY:
-+                      resp[0] = ((response[2] & 0x3f) << (8 - 8)) |
-+                              ((response[1] & 0xffff) << (14 - 8)) |
-+                              ((response[0] & 0x3ff) << (30 - 8));
-+                      resp[1] = ((response[0] & 0xfc00) >> 10);
-+                      break;
-+
-+              case SDIO_CMD_RSP_136:
-+                      resp[3] = ((response[7] & 0x3fff) << 8) |
-+                              ((response[6] & 0x3ff) << 22);
-+                      resp[2] = ((response[6] & 0xfc00) >> 10)        |
-+                              ((response[5] & 0xffff) << 6)   |
-+                              ((response[4] & 0x3ff) << 22);
-+                      resp[1] = ((response[4] & 0xfc00) >> 10)        |
-+                              ((response[3] & 0xffff) << 6)   |
-+                              ((response[2] & 0x3ff) << 22);
-+                      resp[0] = ((response[2] & 0xfc00) >> 10)        |
-+                              ((response[1] & 0xffff) << 6)   |
-+                              ((response[0] & 0x3ff) << 22);
-+                      break;
-+              default:
-+                      return 0;
-+      }
-+      int i;
-+      debug("MMC resp :");
-+      for (i=0; i<4; ++i ) {
-+              debug(" %08x", (unsigned int)resp[i]);
-+      }
-+      debug("\n");
-+      if( err )
-+              return NULL ;
-+      else
-+              return resp;
-+}
-+
-+/****************************************************/
-+static int mv_mmc_block_read(uchar *dst, ulong src, ulong len)
-+/****************************************************/
-+{
-+      ulong *resp;
-+      //ushort argh, argl;
-+      //ulong status;
-+
-+      if (len == 0) {
-+              return 0;
-+      }
-+
-+      if (is_sdhc) {
-+              /* SDHC: use block address */
-+              src >>= 9;
-+      }
-+
-+      debug("mmc_block_rd dst %lx src %lx len %d\n", (ulong)dst, src, (int)len);
-+
-+      // prepare for dma transfer
-+      SDIO_REG_WRITE16(SDIO_SYS_ADDR_LOW,((ulong)(dst))&0xffff);
-+      SDIO_REG_WRITE16(SDIO_SYS_ADDR_HI,(((ulong)dst)>>16)&0xffff);
-+      SDIO_REG_WRITE16(SDIO_BLK_SIZE,len);
-+      SDIO_REG_WRITE16(SDIO_BLK_COUNT,1);
-+      
-+      /* send read command */
-+      resp = mv_mmc_cmd(MMC_CMD_READ_BLOCK, src, 0x10 , // 0x12,
-+                      SDIO_CMD_RSP_48, SDIO_NOR_XFER_DONE);
-+      if (!resp) {
-+              debug("mv_mmc_block_read: mmc read block cmd fails\n");
-+              return -EIO;
-+      }
-+
-+      return 0;
-+}
-+
-+/****************************************************/
-+static int mv_mmc_block_write(ulong dst, uchar *src, int len)
-+/****************************************************/
-+{
-+      return -1 ;
-+}
-+
-+/****************************************************/
-+int mv_mmc_read(ulong src, uchar *dst, int size)
-+/****************************************************/
-+{
-+      ulong end, part_start, part_end, part_len, aligned_start, aligned_end;
-+      ulong mmc_block_size, mmc_block_address;
-+
-+      if (size == 0) {
-+              return 0;
-+      }
-+
-+      if (!mmc_ready) {
-+              printf("Please initial the MMC first\n");
-+              return -1;
-+      }
-+
-+      mmc_block_size = MMC_BLOCK_SIZE;
-+      mmc_block_address = ~(mmc_block_size - 1);
-+
-+      end = src + size;
-+      part_start = ~mmc_block_address & src;
-+      part_end = ~mmc_block_address & end;
-+      aligned_start = mmc_block_address & src;
-+      aligned_end = mmc_block_address & end;
-+
-+      /* all block aligned accesses */
-+      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+      if (part_start) {
-+              part_len = mmc_block_size - part_start;
-+              debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+              if ((mv_mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
-+                      return -1;
-+              }
-+              memcpy(dst, mmc_buf+part_start, part_len);
-+              dst += part_len;
-+              src += part_len;
-+      }
-+      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+      for (; src < aligned_end; aligned_start +=mmc_block_size, src += mmc_block_size, dst += mmc_block_size) {
-+              debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+              if ((mv_mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
-+                      printf("mmc block read error\n");
-+                      return -1;
-+              }
-+              //printf("mem copy from %x to %x, size %d\n", (ulong)mmc_buf, (ulong)dst, mmc_block_size );
-+              memcpy(dst, mmc_buf, mmc_block_size);
-+      }
-+      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+      if (part_end && src < end) {
-+              debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+              if ((mv_mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
-+                      return -1;
-+              }
-+              memcpy(dst, mmc_buf, part_end);
-+      }
-+      return 0;
-+}
-+
-+/****************************************************/
-+static int mv_mmc_write(uchar *src, ulong dst, int size)
-+/****************************************************/
-+{
-+      ulong end, part_start, part_end, part_len, aligned_start, aligned_end;
-+      ulong mmc_block_size, mmc_block_address;
-+
-+      if (size == 0) {
-+              return 0;
-+      }
-+
-+      if (!mmc_ready) {
-+              printf("Please initial the MMC first\n");
-+              return -1;
-+      }
-+
-+      mmc_block_size = MMC_BLOCK_SIZE;
-+      mmc_block_address = ~(mmc_block_size - 1);
-+
-+      end = dst + size;
-+      part_start = ~mmc_block_address & dst;
-+      part_end = ~mmc_block_address & end;
-+      aligned_start = mmc_block_address & dst;
-+      aligned_end = mmc_block_address & end;
-+
-+      /* all block aligned accesses */
-+      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+      if (part_start) {
-+              part_len = mmc_block_size - part_start;
-+              debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+              (ulong)src, dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+              if ((mv_mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
-+                      return -1;
-+              }
-+              memcpy(mmc_buf+part_start, src, part_len);
-+              if ((mv_mmc_block_write(aligned_start, mmc_buf, mmc_block_size)) < 0) {
-+                      return -1;
-+              }
-+              dst += part_len;
-+              src += part_len;
-+      }
-+      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+      for (; dst < aligned_end; src += mmc_block_size, dst += mmc_block_size) {
-+              debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+              if ((mv_mmc_block_write(dst, (uchar *)src, mmc_block_size)) < 0) {
-+                      return -1;
-+              }
-+      }
-+      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+      if (part_end && dst < end) {
-+              debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
-+              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
-+
-+              if ((mv_mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
-+                      return -1;
-+              }
-+              memcpy(mmc_buf, src, part_end);
-+              if ((mv_mmc_block_write(aligned_end, mmc_buf, mmc_block_size)) < 0) {
-+                      return -1;
-+              }
-+      }
-+      return 0;
-+}
-+
-+/****************************************************/
-+static ulong mv_mmc_bread(int dev_num, ulong blknr, ulong blkcnt, ulong *dst)
-+/****************************************************/
-+{
-+      int mmc_block_size = MMC_BLOCK_SIZE;
-+      ulong src = blknr * mmc_block_size;
-+
-+      mv_mmc_read(src, (uchar *)dst, blkcnt*mmc_block_size);
-+      return blkcnt;
-+}
-+
-+/****************************************************/
-+int mmc_legacy_init(int verbose)
-+/****************************************************/
-+{
-+      int retries, rc = -ENODEV;
-+      ulong *resp;
-+      int sd_ver20;
-+      int is_sd;
-+      ushort reg;
-+      uchar cidbuf[64];
-+
-+      sd_ver20 = 0;
-+      is_sdhc = 0;
-+      is_sd = 0;
-+
-+      // Initial Host Ctrl : Timeout : max , Normal Speed mode, 4-bit data mode
-+      // Big Endian, SD memory Card, Push_pull CMD Line
-+      SDIO_REG_WRITE16(SDIO_HOST_CTRL,
-+              SDIO_HOST_CTRL_TMOUT(0xf) |
-+              SDIO_HOST_CTRL_DATA_WIDTH_4_BITS |
-+              SDIO_HOST_CTRL_BIG_ENDIAN |
-+              SDIO_HOST_CTRL_PUSH_PULL_EN |
-+              SDIO_HOST_CTRL_CARD_TYPE_MEM_ONLY );
-+
-+      SDIO_REG_WRITE16(SDIO_CLK_CTRL, 0);
-+
-+      //enable status
-+      SDIO_REG_WRITE16(SDIO_NOR_STATUS_EN, 0xffff);
-+      SDIO_REG_WRITE16(SDIO_ERR_STATUS_EN, 0xffff);
-+
-+      //disable interrupts
-+      SDIO_REG_WRITE16(SDIO_NOR_INTR_EN, 0);
-+      SDIO_REG_WRITE16(SDIO_ERR_INTR_EN, 0);
-+
-+      SDIO_REG_WRITE16(SDIO_SW_RESET,0x100);
-+      udelay(10000);
-+
-+      mv_mmc_csd.c_size = 0;
-+
-+      /* reset */
-+      retries = 10;
-+      //mv_mmc_cmd(ulong cmd, ulong arg, ushort xfermode, ushort resptype, ushort waittype);
-+      resp = mv_mmc_cmd(0, 0, 0, SDIO_CMD_RSP_NONE, SDIO_NOR_CMD_DONE );
-+      debug("cmd 0 resp : %08x %08x %08x %08x\n",
-+      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
-+
-+
-+      debug ("trying to detect SD card version\n");
-+
-+      resp = mv_mmc_cmd(8, 0x000001aa, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+      debug("cmd 8 resp : %08x %08x %08x %08x\n",
-+      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
-+
-+      if (resp && (resp[0] & 0x1ff)==0x1aa) {
-+              debug ("SD version 2.0 card detected\n");
-+
-+              sd_ver20 = 1;
-+      }
-+
-+      if (sd_ver20)
-+              retries = 50;
-+      else
-+              retries = 10;
-+
-+      while (retries--) {
-+              resp = mv_mmc_cmd(55, 0, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+              debug("cmd 55 resp : %08x %08x %08x %08x\n",
-+              (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
-+
-+
-+              if (sd_ver20)
-+                      resp = mv_mmc_cmd(41, 0x40300000, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+              else
-+                      resp = mv_mmc_cmd(41, 0x00300000, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+
-+              debug("cmd 41 resp : %08x %08x %08x %08x\n",
-+              (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
-+
-+
-+              if (resp && (resp[0] & 0x80000000)) {
-+                      debug ("detected SD card\n");
-+
-+                      is_sd = 1;
-+                      break;
-+              }
-+
-+              udelay(100*1000);
-+      }
-+
-+      if (retries <= 0 && !is_sd) {
-+              debug ("failed to detect SD card, trying MMC\n");
-+
-+              retries = 10;
-+              while (retries--) {
-+                      resp = mv_mmc_cmd(1, 0, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+                      debug("cmd 01 resp : %08x %08x %08x %08x\n",
-+                      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
-+
-+
-+                      if (resp && (resp[0] & 0x80000000)) {
-+                              printf ("detected MMC card\n");
-+                              reg = SDIO_REG_READ16(SDIO_HOST_CTRL);
-+                              reg &= ~(0x3<<1);
-+                              reg |= SDIO_HOST_CTRL_CARD_TYPE_IO_MMC;
-+                              SDIO_REG_WRITE16(SDIO_HOST_CTRL, reg);
-+                              break;
-+                      }
-+
-+                      udelay(100*1000);
-+              }
-+      }
-+              
-+      if (retries <= 0) {
-+              debug ("detect fails\n");
-+
-+              return -ENODEV;
-+      }
-+
-+      /* try to get card id */
-+      resp = mv_mmc_cmd(2, 0, 0, SDIO_CMD_RSP_136, SDIO_NOR_CMD_DONE );
-+      debug("cmd 2 resp : %08x %08x %08x %08x\n",
-+      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
-+
-+
-+      if (resp == NULL) {
-+              debug ("read cid fails\n");
-+
-+              return -ENODEV;
-+      }
-+
-+      if (is_sd) {
-+              mv_sd_cid_t *cid = (mv_sd_cid_t *) resp;
-+
-+              memcpy(cidbuf, resp, sizeof(mv_sd_cid_t));
-+
-+              sprintf((char *) mmc_dev.vendor,
-+                      "Man %02x OEM %c%c \"%c%c%c%c%c\"",
-+                      cid->mid, cid->oid_0, cid->oid_1,
-+                      cid->pnm_0, cid->pnm_1, cid->pnm_2, cid->pnm_3, cid->pnm_4);
-+
-+              sprintf((char *) mmc_dev.product, "%d",
-+                      (cid->psn_0 << 24) | (cid->psn_1 <<16) | (cid->psn_2 << 8) | (cid->psn_3 << 8));
-+              
-+              sprintf((char *) mmc_dev.revision, "%d.%d", cid->prv>>4, cid->prv & 0xff);
-+              
-+      } else {
-+              /* TODO configure mmc driver depending on card attributes */
-+              mv_mmc_cid_t *cid = (mv_mmc_cid_t *) resp;
-+
-+              memcpy(cidbuf, resp, sizeof(mv_sd_cid_t));
-+
-+
-+              sprintf((char *) mmc_dev.vendor,
-+                      "Man %02x%02x%02x Snr %02x%02x%02x",
-+                      cid->id[0], cid->id[1], cid->id[2],
-+                      cid->sn[0], cid->sn[1], cid->sn[2]);
-+              sprintf((char *) mmc_dev.product, "%s", cid->name);
-+              sprintf((char *) mmc_dev.revision, "%x %x", cid->hwrev, cid->fwrev);
-+      }
-+      
-+      /* fill in device description */
-+      mmc_dev.if_type = IF_TYPE_MMC;
-+      mmc_dev.part_type = PART_TYPE_DOS;
-+      mmc_dev.dev = 0;
-+      mmc_dev.lun = 0;
-+      mmc_dev.type = 0;
-+
-+      /* FIXME fill in the correct size (is set to 128MByte) */
-+      mmc_dev.blksz = MMC_BLOCK_SIZE;
-+      mmc_dev.lba = 0x10000;
-+
-+      mmc_dev.removable = 0;
-+      mmc_dev.block_read = mv_mmc_bread;
-+
-+      /* MMC exists, get CSD too */
-+      resp = mv_mmc_cmd(MMC_CMD_SET_RCA, 0, 0, SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+      if (resp == NULL) {
-+              debug ("set rca fails\n");
-+
-+              return -ENODEV;
-+      }
-+      debug("cmd3 resp : 0x%08x 0x%08x 0x%08x 0x%08x\n",
-+      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3]);
-+
-+
-+      if (is_sd)
-+              rca = resp[0] >> 16;
-+      else
-+              rca = 0;
-+
-+      resp = mv_mmc_cmd(MMC_CMD_SEND_CSD, rca<<16, 0, SDIO_CMD_RSP_136,SDIO_NOR_CMD_DONE );
-+      debug("cmd 9 resp : %08x %08x %08x %08x\n",
-+      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
-+
-+      if (resp == NULL) {
-+              debug ("read csd fails\n");
-+
-+              return -ENODEV;
-+      }
-+
-+      memcpy(&mv_mmc_csd, (mv_mmc_csd_t *) resp, sizeof(mv_mmc_csd_t));
-+      rc = 0;
-+      mmc_ready = 1;
-+
-+      /* FIXME add verbose printout for csd */
-+      debug ("size = %u\n", mv_mmc_size(&mv_mmc_csd));
-+
-+
-+      resp = mv_mmc_cmd(7, rca<<16, 0, SDIO_CMD_RSP_48BUSY, SDIO_NOR_CMD_DONE);
-+      if (resp == NULL) {
-+              debug ("select card fails\n");
-+
-+              return -ENODEV;
-+      }
-+      debug("cmd 7 resp : %08x %08x %08x %08x\n",
-+      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
-+
-+
-+      if (is_sd) {
-+              resp = mv_mmc_cmd(55, rca<<16, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+              if (resp == NULL) {
-+                      debug ("cmd55 fails\n");
-+
-+                      return -ENODEV;
-+              }
-+              debug("cmd55 resp : 0x%08x 0x%08x 0x%08x 0x%08x\n",
-+              (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3]);
-+
-+
-+              resp = mv_mmc_cmd(6, (rca<<16) | 0x2 , 0, SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+              if (resp == NULL) {
-+                      debug ("cmd55 fails\n");
-+
-+                      return -ENODEV;
-+              }
-+      debug("cmd6 resp : 0x%08x 0x%08x 0x%08x 0x%08x\n",
-+      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3]);
-+
-+      }
-+
-+      resp = (ulong *) &mv_mmc_csd;
-+      debug("csd: 0x%08x 0x%08x 0x%08x 0x%08x\n",
-+      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3]);
-+
-+
-+      /* check SDHC */
-+      if ((resp[0]&0xf0000000)==0x40000000)
-+              is_sdhc = 1;
-+
-+      /* set block len */
-+      resp = mv_mmc_cmd(MMC_CMD_SET_BLOCKLEN, MMC_BLOCK_SIZE, 0, SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
-+      if (!resp) {
-+              debug("mv_mmc_block_read: set blk len fails\n");
-+              return -ENODEV;
-+      }
-+
-+      if (verbose) {
-+              if (is_sd)
-+                      print_sd_cid((mv_sd_cid_t *) cidbuf);
-+              else
-+                      print_mmc_cid((mv_mmc_cid_t *) cidbuf);
-+      }
-+
-+      mvsdio_set_clock(CONFIG_SYS_MMC_CLK_PP);
-+
-+      fat_register_device(&mmc_dev,1); /* partitions start counting with 1 */
-+
-+      return 0;
-+}
-+
-+#endif        /* CONFIG_MMC */
-+
---- /dev/null
-+++ b/drivers/mmc/mv_sdio.h
-@@ -0,0 +1,296 @@
-+/*
-+ * Copyright (C) 2008 Marvell Semiconductors, All Rights Reserved.
-+ * Copyright (C) 2010 G?rald Kerma <gerald.kerma at gk2.net>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#ifndef _MVSDIO_INCLUDE
-+#define _MVSDIO_INCLUDE
-+
-+#define SDIO_REG(x) (KW_SDIO_BASE + (x))
-+
-+#define SDIO_REG_WRITE32(offset,value) writel(value,SDIO_REG(offset))
-+#define SDIO_REG_READ32(offset) readl(SDIO_REG(offset))
-+
-+#define SDIO_REG_WRITE16(offset,value) writew(value,SDIO_REG(offset))
-+#define SDIO_REG_READ16(offset) readw(SDIO_REG(offset))
-+
-+#define MVSDMMC_DMA_SIZE                      65536
-+#define MVSDMMC_CMD_TIMEOUT                   2 /* 100 usec*/
-+
-+/*
-+ * Clock rates
-+ */
-+
-+#define MVSD_CLOCKRATE_MAX                    50000000
-+#define MVSD_BASE_DIV_MAX                     0x7ff
-+
-+#define CONFIG_SYS_MMC_CLK_PP                 25000000
-+
-+/*
-+ * The base MMC clock rate
-+ */
-+
-+#define MVSDMMC_CLOCKRATE_MIN                 100000
-+#define MVSDMMC_CLOCKRATE_MAX                 MVSD_CLOCKRATE_MAX
-+#define MVSDMMC_BASE_FAST_CLOCK                       CONFIG_SYS_TCLK
-+
-+
-+/*
-+ * SDIO register
-+ */
-+
-+#define SDIO_SYS_ADDR_LOW                     0x000
-+#define SDIO_SYS_ADDR_HI                      0x004
-+#define SDIO_BLK_SIZE                         0x008
-+#define SDIO_BLK_COUNT                                0x00c
-+#define SDIO_ARG_LOW                          0x010
-+#define SDIO_ARG_HI                           0x014
-+#define SDIO_XFER_MODE                                0x018
-+#define SDIO_CMD                              0x01c
-+#define SDIO_RSP(i)                           (0x020 + ((i)<<2))
-+#define SDIO_RSP0                             0x020
-+#define SDIO_RSP1                             0x024
-+#define SDIO_RSP2                             0x028
-+#define SDIO_RSP3                             0x02c
-+#define SDIO_RSP4                             0x030
-+#define SDIO_RSP5                             0x034
-+#define SDIO_RSP6                             0x038
-+#define SDIO_RSP7                             0x03c
-+#define SDIO_BUF_DATA_PORT                    0x040
-+#define SDIO_RSVED                            0x044
-+
-+#define SDIO_PRESENT_STATE0                   0x048
-+#define SDIO_PRESENT_STATE1                   0x04c
-+#define SDIO_HOST_CTRL                                0x050
-+#define SDIO_BLK_GAP_CTRL                     0x054
-+#define SDIO_CLK_CTRL                         0x058
-+#define SDIO_SW_RESET                         0x05c
-+#define SDIO_NOR_INTR_STATUS                  0x060
-+#define SDIO_ERR_INTR_STATUS                  0x064
-+#define SDIO_NOR_STATUS_EN                    0x068
-+#define SDIO_ERR_STATUS_EN                    0x06c
-+#define SDIO_NOR_INTR_EN                      0x070
-+#define SDIO_ERR_INTR_EN                      0x074
-+#define SDIO_AUTOCMD12_ERR_STATUS             0x078
-+#define SDIO_CURR_BYTE_LEFT                   0x07c
-+#define SDIO_CURR_BLK_LEFT                    0x080
-+#define SDIO_AUTOCMD12_ARG_LOW                        0x084
-+#define SDIO_AUTOCMD12_ARG_HI                 0x088
-+#define SDIO_AUTOCMD12_INDEX                  0x08c
-+#define SDIO_AUTO_RSP(i)                      (0x090 + ((i)<<2))
-+#define SDIO_AUTO_RSP0                                0x090
-+#define SDIO_AUTO_RSP1                                0x094
-+#define SDIO_AUTO_RSP2                                0x098
-+#define SDIO_CLK_DIV                          0x128
-+
-+#define WINDOW_CTRL(i)                                (0x108 + ((i) << 3))
-+#define WINDOW_BASE(i)                                (0x10c + ((i) << 3))
-+
-+
-+/*
-+ * SDIO_PRESENT_STATE
-+ */
-+
-+#define CARD_BUSY                             (1 << 1)
-+#define CMD_INHIBIT                           (1 << 0)
-+#define CMD_TXACTIVE                          (1 << 8)
-+#define CMD_RXACTIVE                          (1 << 9)
-+#define CMD_AUTOCMD12ACTIVE                   (1 << 14)
-+
-+#define CMD_BUS_BUSY                          (CMD_AUTOCMD12ACTIVE|   \
-+                                              CMD_RXACTIVE|   \
-+                                              CMD_TXACTIVE|   \
-+                                              CMD_INHIBIT|    \
-+                                              CARD_BUSY)
-+
-+/*
-+ * SDIO_CMD
-+ */
-+
-+#define SDIO_CMD_RSP_NONE                     (0 << 0)
-+#define SDIO_CMD_RSP_136                      (1 << 0)
-+#define SDIO_CMD_RSP_48                               (2 << 0)
-+#define SDIO_CMD_RSP_48BUSY                   (3 << 0)
-+
-+#define SDIO_CMD_CHECK_DATACRC16              (1 << 2)
-+#define SDIO_CMD_CHECK_CMDCRC                 (1 << 3)
-+#define SDIO_CMD_INDX_CHECK                   (1 << 4)
-+#define SDIO_CMD_DATA_PRESENT                 (1 << 5)
-+#define SDIO_UNEXPECTED_RESP                  (1 << 7)
-+
-+
-+/*
-+ * SDIO_XFER_MODE
-+ */
-+
-+#define SDIO_XFER_MODE_STOP_CLK                       (1 << 5)
-+#define SDIO_XFER_MODE_HW_WR_DATA_EN          (1 << 1)
-+#define SDIO_XFER_MODE_AUTO_CMD12             (1 << 2)
-+#define SDIO_XFER_MODE_INT_CHK_EN             (1 << 3)
-+#define SDIO_XFER_MODE_TO_HOST                        (1 << 4)
-+
-+
-+/*
-+ * SDIO_HOST_CTRL
-+ */
-+
-+#define SDIO_HOST_CTRL_PUSH_PULL_EN           (1 << 0)
-+
-+#define SDIO_HOST_CTRL_CARD_TYPE_MEM_ONLY     (0 << 1)
-+#define SDIO_HOST_CTRL_CARD_TYPE_IO_ONLY      (1 << 1)
-+#define SDIO_HOST_CTRL_CARD_TYPE_IO_MEM_COMBO         (2 << 1)
-+#define SDIO_HOST_CTRL_CARD_TYPE_IO_MMC       (3 << 1)
-+#define SDIO_HOST_CTRL_CARD_TYPE_MASK         (3 << 1)
-+
-+#define SDIO_HOST_CTRL_BIG_ENDIAN             (1 << 3)
-+#define SDIO_HOST_CTRL_LSB_FIRST              (1 << 4)
-+#define SDIO_HOST_CTRL_ID_MODE_LOW_FREQ       (1 << 5)
-+#define SDIO_HOST_CTRL_HALF_SPEED             (1 << 6)
-+#define SDIO_HOST_CTRL_DATA_WIDTH_4_BITS      (1 << 9)
-+#define SDIO_HOST_CTRL_HI_SPEED_EN            (1 << 10)
-+
-+
-+#define SDIO_HOST_CTRL_TMOUT_MASK             (0xf << 11)
-+#define SDIO_HOST_CTRL_TMOUT_MAX              (0xf << 11)
-+#define SDIO_HOST_CTRL_TMOUT(x)               ((x) << 11)
-+#define SDIO_HOST_CTRL_TMOUT_EN               (1 << 15)
-+
-+#define SDIO_HOST_CTRL_DFAULT_OPEN_DRAIN      \
-+              (SDIO_HOST_CTRL_TMOUT(x)(0xf))
-+#define SDIO_HOST_CTRL_DFAULT_PUSH_PULL       \
-+              (SDIO_HOST_CTRL_TMOUT(x)(0xf) | SDIO_HOST_CTRL_PUSH_PULL_EN)
-+
-+
-+/*
-+ * NOR status bits
-+ */
-+
-+#define SDIO_NOR_ERROR                                (1 << 15)
-+#define SDIO_NOR_UNEXP_RSP                    (1 << 14)
-+#define SDIO_NOR_AUTOCMD12_DONE                       (1 << 13)
-+#define SDIO_NOR_SUSPEND_ON                   (1 << 12)
-+#define SDIO_NOR_LMB_FF_8W_AVAIL              (1 << 11)
-+#define SDIO_NOR_LMB_FF_8W_FILLED             (1 << 10)
-+#define SDIO_NOR_READ_WAIT_ON                 (1 << 9)
-+#define SDIO_NOR_CARD_INT                     (1 << 8)
-+#define SDIO_NOR_READ_READY                   (1 << 5)
-+#define SDIO_NOR_WRITE_READY                  (1 << 4)
-+#define SDIO_NOR_DMA_INI                      (1 << 3)
-+#define SDIO_NOR_BLK_GAP_EVT                  (1 << 2)
-+#define SDIO_NOR_XFER_DONE                    (1 << 1)
-+#define SDIO_NOR_CMD_DONE                     (1 << 0)
-+
-+
-+/*
-+ * ERR status bits
-+ */
-+
-+#define SDIO_ERR_CRC_STATUS                   (1 << 14)
-+#define SDIO_ERR_CRC_STARTBIT                 (1 << 13)
-+#define SDIO_ERR_CRC_ENDBIT                   (1 << 12)
-+#define SDIO_ERR_RESP_TBIT                    (1 << 11)
-+#define SDIO_ERR_SIZE                         (1 << 10)
-+#define SDIO_ERR_CMD_STARTBIT                 (1 << 9)
-+#define SDIO_ERR_AUTOCMD12                    (1 << 8)
-+#define SDIO_ERR_DATA_ENDBIT                  (1 << 6)
-+#define SDIO_ERR_DATA_CRC                     (1 << 5)
-+#define SDIO_ERR_DATA_TIMEOUT                 (1 << 4)
-+#define SDIO_ERR_CMD_INDEX                    (1 << 3)
-+#define SDIO_ERR_CMD_ENDBIT                   (1 << 2)
-+#define SDIO_ERR_CMD_CRC                      (1 << 1)
-+#define SDIO_ERR_CMD_TIMEOUT                  (1 << 0)
-+
-+#define SDIO_ERR_INTR_MASK                    0xFFFF
-+
-+
-+#define MMC_BLOCK_SIZE                  512
-+#define MMC_CMD_RESET                   0
-+#define MMC_CMD_SEND_OP_COND            1
-+#define MMC_CMD_ALL_SEND_CID            2
-+#define MMC_CMD_SET_RCA                 3
-+#define MMC_CMD_SELECT_CARD           7
-+#define MMC_CMD_SEND_CSD                9
-+#define MMC_CMD_SEND_CID                10
-+#define MMC_CMD_SEND_STATUS             13
-+#define MMC_CMD_SET_BLOCKLEN            16
-+#define MMC_CMD_READ_BLOCK              17
-+#define MMC_CMD_RD_BLK_MULTI            18
-+#define MMC_CMD_WRITE_BLOCK             24
-+#define MMC_MAX_BLOCK_SIZE              512
-+
-+typedef struct mv_mmc_cid
-+{
-+      /* FIXME: BYTE_ORDER */
-+      uchar year:4,
-+      month:4;
-+      uchar sn[3];
-+      uchar fwrev:4,
-+      hwrev:4;
-+      uchar name[6];
-+      uchar id[3];
-+} mv_mmc_cid_t;
-+
-+typedef struct mv_mmc_csd
-+{
-+      uchar   ecc:2,
-+              file_format:2,
-+              tmp_write_protect:1,
-+              perm_write_protect:1,
-+              copy:1,
-+              file_format_grp:1;
-+      uint64_t content_prot_app:1,
-+              rsvd3:4,
-+              write_bl_partial:1,
-+              write_bl_len:4,
-+              r2w_factor:3,
-+              default_ecc:2,
-+              wp_grp_enable:1,
-+              wp_grp_size:5,
-+              erase_grp_mult:5,
-+              erase_grp_size:5,
-+              c_size_mult1:3,
-+              vdd_w_curr_max:3,
-+              vdd_w_curr_min:3,
-+              vdd_r_curr_max:3,
-+              vdd_r_curr_min:3,
-+              c_size:12,
-+              rsvd2:2,
-+              dsr_imp:1,
-+              read_blk_misalign:1,
-+              write_blk_misalign:1,
-+              read_bl_partial:1;
-+      ushort  read_bl_len:4,
-+              ccc:12;
-+      uchar   tran_speed;
-+      uchar   nsac;
-+      uchar   taac;
-+      uchar   rsvd1:2,
-+              spec_vers:4,
-+              csd_structure:2;
-+} mv_mmc_csd_t;
-+
-+typedef struct {
-+      char            pnm_0;  /* product name */
-+      char            oid_1;  /* OEM/application ID */
-+      char            oid_0;
-+      uint8_t         mid;    /* manufacturer ID */
-+      char            pnm_4;
-+      char            pnm_3;
-+      char            pnm_2;
-+      char            pnm_1;
-+      uint8_t         psn_2;  /* product serial number */
-+      uint8_t         psn_1;
-+      uint8_t         psn_0;  /* MSB */
-+      uint8_t         prv;    /* product revision */
-+      uint8_t         crc;    /* CRC7 checksum, b0 is unused and set to 1 */
-+      uint8_t         mdt_1;  /* manufacturing date, LSB, RRRRyyyy yyyymmmm */
-+      uint8_t         mdt_0;  /* MSB */
-+      uint8_t         psn_3;  /* LSB */
-+} mv_sd_cid_t;
-+
-+#endif /* _MVSDIO_INCLUDE */
---- a/include/configs/sheevaplug.h
-+++ b/include/configs/sheevaplug.h
-@@ -25,10 +25,12 @@
- #ifndef _CONFIG_SHEEVAPLUG_H
- #define _CONFIG_SHEEVAPLUG_H
-+//#define DEBUG 1
-+
- /*
-  * Version number information
-  */
--#define CONFIG_IDENT_STRING   "\nMarvell-Sheevaplug"
-+#define CONFIG_IDENT_STRING   "\nMarvell-Sheevaplug - eSATA - SD/MMC"
- /*
-  * High Level Configuration Options (easy to change)
-@@ -48,6 +50,7 @@
- #define CONFIG_CMD_ENV
- #define CONFIG_CMD_IDE
- #define CONFIG_CMD_MII
-+#define CONFIG_CMD_MMC
- #define CONFIG_CMD_NAND
- #define CONFIG_CMD_PING
- #define CONFIG_CMD_USB
-@@ -79,16 +82,18 @@
-  */
- #define CONFIG_BOOTCOMMAND            "${x_bootcmd_kernel}; " \
-       "setenv bootargs ${x_bootargs} ${x_bootargs_root}; "    \
--      "${x_bootcmd_usb}; bootm 0x6400000;"
-+      "${x_bootcmd_usb}; ${x_bootcmd_sata}; bootm 0x6400000;"
-+
-+#define CONFIG_MTDPARTS               "orion_nand:"   \
-+      "512k(uboot),4m@1m(kernel),507m@5m(rootfs) rw\0"
--#define CONFIG_MTDPARTS               "orion_nand:512k(uboot),"       \
--      "3m@1m(kernel),1m@4m(psm),13m@5m(rootfs) rw\0"
--#define CONFIG_EXTRA_ENV_SETTINGS     "x_bootargs=console"    \
--      "=ttyS0,115200 mtdparts="CONFIG_MTDPARTS        \
--      "x_bootcmd_kernel=nand read 0x6400000 0x100000 0x300000\0" \
--      "x_bootcmd_usb=usb start\0" \
--      "x_bootargs_root=root=/dev/mtdblock3 rw rootfstype=jffs2\0"
-+#define CONFIG_EXTRA_ENV_SETTINGS     "x_bootargs=console"            \
-+      "=ttyS0,115200 mtdparts="CONFIG_MTDPARTS                        \
-+      "x_bootcmd_kernel=nand read 0x6400000 0x100000 0x400000\0"      \
-+      "x_bootcmd_usb=usb start;\0"                                    \
-+      "x_bootcmd_sata=ide reset;\0"                                   \
-+      "x_bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0"
- /*
-  * Ethernet Driver configuration
-@@ -99,6 +104,14 @@
- #endif /* CONFIG_CMD_NET */
- /*
-+ * SDIO/MMC Card Configuration
-+ */
-+#ifdef CONFIG_CMD_MMC
-+#define CONFIG_MMC
-+#define CONFIG_MV_SDIO
-+#endif /* CONFIG_CMD_MMC */
-+
-+/*
-  * IDE Support on SATA port0
-  */
- #ifdef CONFIG_CMD_IDE
diff --git a/debian/patches/mipsel-native-endianness.diff b/debian/patches/mipsel-native-endianness.diff
deleted file mode 100644 (file)
index c63f18c..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-[MIPS] Fix little-endian build with non-ELDK toolchains
-
-We've been in trouble for a long time when cross compiling with non-ELDK
-toolchains.  This is caused by -EB passed to CPPFLAGS incorrectly, by the
-lack of an endian specifier to LDFLAGS, and by wrong OUTPUT_FORMATs.
-
-We're going to implement two workarounds.  One is the endianness specifier
-bugfix not to pass -EB / -EL to CPPFLAGS unless ELDK toolchain is used.
-Note that ELDK and non-ELDK toolchains know their default endianness, so
-the endianness specifier may not be necessary in principle.
-
-The other is removal of OUTPUT_FORMAT in *.lds files.  If we have this,
-it doesn't work unless an endianness specifier is added to LDFLAGS.  As
-we haven't added that to LDFLAGS so far, it must have not worked properly,
-except ELDK; I don't know why and how ELDK works, though.
-
-With these two changes, all objects will be generated and linked in the
-toolchain's default endianness.  Then MAKEALL mips_el will work even with
-non-ELDK toolchain.
-
-Note that Linux/MIPS kernel has CONFIG_CPU_BIG_ENDIAN and
-CONFIG_CPU_LITTLE_ENDIAN alternatives to allow users to compile kernels
-with a toolchain for the other endianness. But U-Boot does not have such
-feature for now, and it's another story.
-
-Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
----
- board/dbau1x00/u-boot.lds  |    4 ----
- board/gth2/u-boot.lds      |    4 ----
- board/incaip/u-boot.lds    |    4 ----
- board/pb1x00/u-boot.lds    |    4 ----
- board/purple/u-boot.lds    |    4 ----
- board/qemu-mips/u-boot.lds |    4 ----
- board/tb0229/u-boot.lds    |    2 --
- cpu/mips/config.mk         |    8 --------
- examples/mips.lds          |    4 ----
- mips_config.mk             |   26 ++++++++++++++++++++++++++
- 10 files changed, 26 insertions(+), 38 deletions(-)
-
---- a/board/dbau1x00/u-boot.lds
-+++ b/board/dbau1x00/u-boot.lds
-@@ -21,10 +21,6 @@
-  * MA 02111-1307 USA
-  */
--/*
--OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
--*/
--OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
- OUTPUT_ARCH(mips)
- ENTRY(_start)
- SECTIONS
---- a/board/gth2/u-boot.lds
-+++ b/board/gth2/u-boot.lds
-@@ -21,10 +21,6 @@
-  * MA 02111-1307 USA
-  */
--/*
--OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
--*/
--OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
- OUTPUT_ARCH(mips)
- ENTRY(_start)
- SECTIONS
---- a/board/incaip/u-boot.lds
-+++ b/board/incaip/u-boot.lds
-@@ -21,10 +21,6 @@
-  * MA 02111-1307 USA
-  */
--/*
--OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
--*/
--OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
- OUTPUT_ARCH(mips)
- ENTRY(_start)
- SECTIONS
---- a/board/pb1x00/u-boot.lds
-+++ b/board/pb1x00/u-boot.lds
-@@ -21,10 +21,6 @@
-  * MA 02111-1307 USA
-  */
--/*
--OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
--*/
--OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-tradbigmips", "elf32-tradlittlemips")
- OUTPUT_ARCH(mips)
- ENTRY(_start)
- SECTIONS
---- a/board/qemu-mips/u-boot.lds
-+++ b/board/qemu-mips/u-boot.lds
-@@ -21,10 +21,6 @@
-  * MA 02111-1307 USA
-  */
--/*
--OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
--*/
--OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
- OUTPUT_ARCH(mips)
- ENTRY(_start)
- SECTIONS
---- a/examples/standalone/mips.lds
-+++ b/examples/standalone/mips.lds
-@@ -21,10 +21,6 @@
-  * MA 02111-1307 USA
-  */
--/*
--OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
--*/
--OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
- OUTPUT_ARCH(mips)
- SECTIONS
- {
---- a/arch/mips/cpu/mips32/config.mk
-+++ b/arch/mips/cpu/mips32/config.mk
-@@ -45,5 +45,4 @@
- # Default to EB if no endianess is configured
- ENDIANNESS ?= -EB
--PLATFORM_CPPFLAGS += $(MIPSFLAGS) $(ENDIANNESS)
--PLATFORM_LDFLAGS += $(ENDIANNESS)
-+PLATFORM_CPPFLAGS += $(MIPSFLAGS)
---- a/arch/mips/config.mk
-+++ b/arch/mips/config.mk
-@@ -21,7 +21,7 @@
- # MA 02111-1307 USA
- #
--CROSS_COMPILE ?= mips_4KC-
-+#CROSS_COMPILE ?= mips_4KC-
- CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000 -T mips.lds
diff --git a/debian/patches/no-error-on-set-but-unused-variables.diff b/debian/patches/no-error-on-set-but-unused-variables.diff
deleted file mode 100644 (file)
index 307fd89..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/arch/x86/cpu/config.mk
-+++ b/arch/x86/cpu/config.mk
-@@ -23,7 +23,7 @@
- CROSS_COMPILE ?= i386-linux-
--PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -march=i386 -Werror
-+PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -march=i386 -Werror -Wno-error=unused-but-set-variable
- # DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
- LDPPFLAGS += -DRESET_SEG_START=0xffff0000
diff --git a/debian/patches/openrd-mmc.diff b/debian/patches/openrd-mmc.diff
deleted file mode 100644 (file)
index 4457b60..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-This partially depends on the kerma sheevaplug stuff.
-
---- a/include/configs/openrd.h
-+++ b/include/configs/openrd.h
-@@ -65,6 +65,7 @@
- #define CONFIG_CMD_DHCP
- #define CONFIG_CMD_ENV
- #define CONFIG_CMD_MII
-+#define CONFIG_CMD_MMC
- #define CONFIG_CMD_NAND
- #define CONFIG_CMD_PING
- #define CONFIG_CMD_USB
-@@ -139,4 +140,9 @@
- #define CONFIG_SYS_ATA_IDE1_OFFSET    MV_SATA_PORT1_OFFSET
- #endif /*CONFIG_MVSATA_IDE*/
-+#ifdef CONFIG_CMD_MMC
-+#define CONFIG_MMC
-+#define CONFIG_MV_SDIO
-+#endif /* CONFIG_CMD_MMC */
-+
- #endif /* _CONFIG_OPENRD_BASE_H */
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644 (file)
index f636816..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-mipsel-native-endianness.diff
-kerma-sheevaplug-mvsata.diff
-kerma-sheevaplug-mvsdio.diff
-openrd-mmc.diff
-no-error-on-set-but-unused-variables.diff
-hurd.diff
-strip-env-tools.diff
diff --git a/debian/patches/strip-env-tools.diff b/debian/patches/strip-env-tools.diff
deleted file mode 100644 (file)
index c0e165e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 17a2bf859d1dcd393db767a254442e35f01804f2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <lool@debian.org>
-Date: Sun, 11 Mar 2012 16:40:59 +0100
-Subject: [PATCH] Strip fw_printenv like the other tools
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Loïc Minier <lool@debian.org>
----
- tools/env/Makefile |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/tools/env/Makefile b/tools/env/Makefile
-index 28b73da..07634bc 100644
---- a/tools/env/Makefile
-+++ b/tools/env/Makefile
-@@ -41,6 +41,7 @@ all: $(obj)fw_printenv
- # Some files complain if compiled with -pedantic, use HOSTCFLAGS_NOPED
- $(obj)fw_printenv:    $(HOSTSRCS) $(HEADERS)
-       $(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTLDFLAGS) -o $@ $(HOSTSRCS)
-+      $(HOSTSTRIP) $@
- clean:
-       rm -f $(obj)fw_printenv
--- 
-1.7.9
-