public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCHv1] ARM: Add Altera SOCFPGA Cyclone5
Date: Thu, 23 Aug 2012 00:26:53 +0200	[thread overview]
Message-ID: <201208230026.53389.marex@denx.de> (raw)
In-Reply-To: <1345157139-19585-1-git-send-email-dinguyen@altera.com>

Dear dinguyen at altera.com,

> From: Dinh Nguyen <dinguyen@altera.com>
> 
> Add minimal support for Altera's SOCFPGA Cyclone 5 hardware.
> 
> Signed-off-by: Dinh Nguyen <dinguyen@altera.com>
> Signed-off-by: Pavel Machek <pavel@denx.de>

[...]

Please CC albert with new arches.

> diff --git a/Makefile b/Makefile
> index 5ce5cc3..12aa372 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -369,7 +369,7 @@ BOARD_SIZE_CHECK =
>  endif
> 
>  # Always append ALL so that arch config.mk's can add custom ones
> -ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
> +ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)u-boot.img
> $(obj)System.map

This won't slide

>  ALL-$(CONFIG_NAND_U_BOOT) += $(obj)u-boot-nand.bin
>  ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin
[...]

> +/*
> + * Write the reset manager register to cause reset
> + */
> +void reset_cpu(ulong addr)
> +{
> +	/* request a warm reset */
> +	writel(RSTMGR_CTRL_SWWARMRSTREQ_LSB, &reset_manager_base->ctrl);
> +	/* infinite loop here as watchdog will trigger and reset
> +	 * the processor */
> +	while (1)
> +		;
> +}
> +
> +/*
> + * Release peripherals from reset based on handoff
> + */
> +void reset_deassert_peripherals_handoff(void)
> +{
> +	unsigned int val = 0;
> +	writel(val, &reset_manager_base->per_mod_reset);

writel(0, ...

> +}
> diff --git a/arch/arm/cpu/armv7/socfpga/sdram.c
> b/arch/arm/cpu/armv7/socfpga/sdram.c new file mode 100644
> index 0000000..6714983
> --- /dev/null
> +++ b/arch/arm/cpu/armv7/socfpga/sdram.c
> @@ -0,0 +1,26 @@
> +/*
> + *  Copyright (C) 2012 Altera Corporation <www.altera.com>
> + *
> + * 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, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <common.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +int dram_init(void)
> +{
> +	gd->ram_size = get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE);
> +	return 0;
> +}

Can all this be concentrated into single file (reset, sdram, etc. all those 
small functions).

> diff --git a/arch/arm/cpu/armv7/socfpga/spl.c
> b/arch/arm/cpu/armv7/socfpga/spl.c new file mode 100644
> index 0000000..7bd1e2f
> --- /dev/null
> +++ b/arch/arm/cpu/armv7/socfpga/spl.c
> @@ -0,0 +1,182 @@
> + /*
> + *  Copyright (C) 2012 Altera Corporation <www.altera.com>
> + *
> + * 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, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/u-boot.h>
> +#include <asm/utils.h>
> +#include <asm/arch/socfpga_spl.h>
> +#include <version.h>
> +#include <image.h>
> +#include <malloc.h>
> +#include <asm/arch/reset_manager.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static u32 *boot_params_ptr;
> +static struct spl_image_info spl_image;
> +
> +extern void __malloc_start, __malloc_end, __stack_start;
> +
> +/* Define global data structure pointer to it */
> +static gd_t gdata __attribute__ ((section(".data")));
> +
> +/*
> + * Error action
> + */
> +inline void hang(void)
> +{
> +	puts("### ERROR ### Please RESET the board ###\n");
> +	for (;;)
> +		;
> +}
> +
> +/*
> + * Read the mkimage signature to extract info such as entry point.
> + * The header is generated by tools/mkimage
> + */
> +static unsigned long spl_parse_image_header(const struct image_header
> *header) +{
> +	/* checking for mkimage signature */
> +	if (__be32_to_cpu(header->ih_magic) == IH_MAGIC) {
> +		/* Valid image. Extract information out of header */
> +		spl_image.size = __be32_to_cpu(header->ih_size);
> +		spl_image.entry_point = __be32_to_cpu(header->ih_load);
> +		spl_image.load_addr = __be32_to_cpu(header->ih_load);
> +		spl_image.os = header->ih_os;
> +		spl_image.name = (const char *)&header->ih_name;
> +		spl_image.crc = __be32_to_cpu(header->ih_dcrc);
> +		debug("Subsequent boot image info\n");
> +		debug("   Image Name:   %.*s\n", IH_NMLEN, spl_image.name);
> +		debug("   Data Size:    %d\n", spl_image.size);
> +		debug("   Load Address: 0x%x\n", spl_image.load_addr);
> +		debug("   Entry Point:  0x%X\n", spl_image.entry_point);
> +	} else {
> +		/* Not a valid image as mkimage signature not found */
> +		printf("Error : mkimage signature not found - ih_magic = %x\n",
> +			header->ih_magic);
> +		return 1;
> +	}
> +
> +	/* Checking image type. Do any customize stuff per image type here */
> +	switch (spl_image.os) {
> +	case IH_OS_U_BOOT:
> +		debug("   Image Type:   U-Boot\n");
> +		break;
> +	default:
> +		printf("   Image Type:   Unknown (%d)\n", spl_image.os);
> +		;
> +	}
> +	return 0;
> +}

I think I don't even wanna know what's the purpose here :-)

[...]

  parent reply	other threads:[~2012-08-22 22:26 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-16 22:45 [U-Boot] [PATCHv1] ARM: Add Altera SOCFPGA Cyclone5 dinguyen at altera.com
2012-08-22 22:10 ` Pavel Machek
2012-08-22 22:26 ` Marek Vasut [this message]
2012-08-23  1:13   ` Tom Rini
2012-08-23 10:43     ` Pavel Machek
2012-08-23 11:18       ` Stefan Roese
2012-08-29 12:30         ` Pavel Machek
2012-08-29 12:32           ` Stefan Roese
2012-08-24 19:18       ` Tom Rini
2012-08-25  9:03         ` Pavel Machek
2012-08-25 10:42         ` Pavel Machek
2012-08-25 11:56         ` Pavel Machek
2012-08-27 15:43           ` Tom Rini
2012-08-29 12:07             ` Pavel Machek
2012-08-25 12:05         ` Pavel Machek
2012-08-27 15:57           ` Tom Rini
2012-08-29 12:27             ` Pavel Machek
2012-08-29 13:41             ` Pavel Machek
2012-08-29 18:26               ` Tom Rini
2012-08-29 23:21                 ` Pavel Machek
2012-08-30  0:00                   ` Tom Rini
2012-08-30 17:18                     ` Pavel Machek
2012-08-30 17:34                       ` Tom Rini
2012-08-30 17:46                         ` Tom Rini
2012-08-30 18:05                         ` Pavel Machek
2012-08-30 18:30                           ` Tom Rini
2012-08-30 20:42                             ` Pavel Machek
2012-08-30 22:25                               ` Tom Rini
2012-08-31 21:26                                 ` Dinh Nguyen
2012-08-31 21:37                                   ` Tom Rini
2012-08-31  7:02                               ` Stefan Roese
2012-08-29 23:34                 ` Pavel Machek
2012-08-29 23:56                   ` Marek Vasut
2012-08-30 16:59                     ` Pavel Machek
2012-08-30 18:02                       ` Marek Vasut
2012-08-30 18:12                         ` Pavel Machek
2012-08-30 18:16                           ` Marek Vasut
2012-09-03  2:59                       ` Chin Liang See
2012-08-30  0:03                   ` Tom Rini
2012-08-30 17:20                     ` Pavel Machek
2012-08-23 10:56     ` Pavel Machek
2012-08-23 10:50   ` Pavel Machek
2012-08-24 22:59     ` Tom Rini

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=201208230026.53389.marex@denx.de \
    --to=marex@denx.de \
    --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