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
prev parent 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