public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Scott McNutt <smcnutt@psyent.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] NIOS2: Added DE2 board with SD support
Date: Sat, 07 Mar 2009 19:53:24 -0500	[thread overview]
Message-ID: <49B31704.2080400@psyent.com> (raw)
In-Reply-To: <51a313240812221325g5f3dfb07me24eadd71b58a2a1@mail.gmail.com>

Patch is rejected -- incomplete.

Ivan,

Contact me off-list ... we can discuss how to proceed.

Regards,
--Scott

ivanchuklist ivanchu wrote:
> Hi list,
> I wrote about my work with u-boot in the thread "[U-Boot] DE2 board with MMC
> interface (PIO based) and FAT support enabled" and i decided to post a
> patch. I would like to discuss the changes.
> I have changed the Makefile to match the binutils provided by Altera and i
> added the DE2 board.
> I have also made changes to the files cmd_mem.c to add one more command
> "dmmc". Because the SD card is not a memory mapped device in the bus like a
> flash memory, we can't deduce the direction of data (i mean when copying
> data to sd or from sd) with the function mmc2info(). I tried to solve this
> trick by using the command dmmc.
> I found problems at link level with cmd_mmc.o and cmd_mem.o because both
> files includes mmc.h, then i have two copies of the same functions in both
> objects files. I solved this problem by declaring extern the function
> mmc_init in cmd_mmc.c.
> I think i should post the file include/asm-nios2/arch-nios2/mmc.h and the
> board related files but i will wait your response.
> In include/asm-nios2/arch-nios2/mmc.h i implemented mmc_get_dev() and
> mmc_read_block() to provide access to the FAT table.
> The code is working with all the examples distributed by Altera in the DE2
> board and it should work with any SD socket interfaced by PIO cores.
> 
> diff --git a/Makefile b/Makefile
> index 4df4812..6501d08 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -163,7 +163,7 @@ ifeq ($(ARCH),nios)
>  CROSS_COMPILE = nios-elf-
>  endif
>  ifeq ($(ARCH),nios2)
> -CROSS_COMPILE = nios2-elf-
> +CROSS_COMPILE = nios2-linux-
>  endif
>  ifeq ($(ARCH),m68k)
>  CROSS_COMPILE = m68k-elf-
> @@ -3137,6 +3137,9 @@ PK1C20_config : unconfig
>  PCI5441_config : unconfig
>      @$(MKCONFIG)  PCI5441 nios2 nios2 pci5441 psyent
> 
> +DE2_config : unconfig
> +    @$(MKCONFIG)  DE2 nios2 nios2 de2 altera
> +
>  #========================================================================
>  ## Microblaze
>  #========================================================================
> diff --git a/common/cmd_mem.c b/common/cmd_mem.c
> index 400cfd7..4585795 100644
> --- a/common/cmd_mem.c
> +++ b/common/cmd_mem.c
> @@ -53,6 +53,7 @@ uint    dp_last_length = 0x40;
>  uint    mm_last_addr, mm_last_size;
> 
>  static    ulong    base_address = 0;
> +static    ulong    mmc_direction = 0;
> 
>  /* Memory Display
>   *
> @@ -355,6 +356,17 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc,
> char *argv[])
>      return rcode;
>  }
> 
> +int do_dmmc( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
> +{
> +    if (argc > 1)
> +        mmc_direction = simple_strtoul(argv[1], NULL, 10);
> +    if (mmc_direction)
> +        printf("Mem to mmc\n");
> +    else
> +        printf("Mmc to mem\n");
> +    return 0;
> +}
> +
>  int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
>  {
>      ulong    addr, dest, count;
> @@ -405,7 +417,7 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc,
> char *argv[])
>  #endif
> 
>  #if defined(CONFIG_CMD_MMC)
> -    if (mmc2info(dest)) {
> +    if (mmc_direction) {
>          int rc;
> 
>          puts ("Copy to MMC... ");
> @@ -422,9 +434,7 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc,
> char *argv[])
>          }
>          puts ("done\n");
>          return 0;
> -    }
> -
> -    if (mmc2info(addr)) {
> +    } else {
>          int rc;
> 
>          puts ("Copy from MMC... ");
> @@ -1221,6 +1231,14 @@ U_BOOT_CMD(
>      "[.b, .w, .l] address value [count]\n    - write memory\n"
>  );
> 
> +#if defined(CONFIG_CMD_MMC)
> +U_BOOT_CMD(
> +    dmmc,    2,    1,    do_dmmc,
> +    "dmmc    - set mmc-memory copy direction\n",
> +    "direction\n    - copy mmc<->mem\n"
> +);
> +#endif
> +
>  U_BOOT_CMD(
>      cp,    4,    1,    do_mem_cp,
>      "cp    - memory copy\n",
> diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
> index 25c9702..c9a5ac6 100644
> --- a/common/cmd_mmc.c
> +++ b/common/cmd_mmc.c
> @@ -23,7 +23,8 @@
> 
>  #include <common.h>
>  #include <command.h>
> -#include <mmc.h>
> +
> +extern int mmc_init(int);
> 
>  int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
>  {
> @@ -31,6 +32,7 @@ int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char
> *argv[])
>          printf ("No MMC card found\n");
>          return 1;
>      }
> +    printf ("MMC card found\n");
>      return 0;
>  }
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

      reply	other threads:[~2009-03-08  0:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-22 21:25 [U-Boot] [PATCH] NIOS2: Added DE2 board with SD support ivanchuklist ivanchu
2009-03-08  0:53 ` Scott McNutt [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49B31704.2080400@psyent.com \
    --to=smcnutt@psyent.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox