All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephan Linz <linz@li-pro.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/7] microblaze: Add support for device tree driven board configuration
Date: Tue, 07 Aug 2012 22:10:34 +0200	[thread overview]
Message-ID: <1344370234.29456.86.camel@keto> (raw)
In-Reply-To: <1344239199-11445-1-git-send-email-monstr@monstr.eu>

Am Montag, den 06.08.2012, 09:46 +0200 schrieb Michal Simek: 
> This is minimum code required to be able to use device-tree
> for u-boot initialization.
> Currently only for device driver initialization.
> 
> Linker script change ensures DTB to be aligned
> for both options CONFIG_OF_EMBED and CONFIG_OF_SEPARATE.
> 
> Signed-off-by: Michal Simek <monstr@monstr.eu>
> CC: Simon Glass <sjg@chromium.org>
> 

Acked-by: Stephan Linz <linz@li-pro.net>

Tested with AXI systems on Avnet S6LX150T and S6LX9 micro-evaluation.

> ---
> v2: Show message about DTB address in bootlog
> ---
>  arch/microblaze/config.mk                 |    2 ++
>  arch/microblaze/cpu/u-boot.lds            |    1 +
>  arch/microblaze/include/asm/global_data.h |    1 +
>  arch/microblaze/lib/board.c               |   24 ++++++++++++++++++++++++
>  4 files changed, 28 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/microblaze/config.mk b/arch/microblaze/config.mk
> index aca79e2..b4935f0 100644
> --- a/arch/microblaze/config.mk
> +++ b/arch/microblaze/config.mk
> @@ -31,3 +31,5 @@ CONFIG_STANDALONE_LOAD_ADDR ?= 0x80F00000
>  PLATFORM_CPPFLAGS += -ffixed-r31 -D__microblaze__
>  
>  LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
> +
> +CONFIG_ARCH_DEVICE_TREE := microblaze
> diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
> index ee41145..d033a28 100644
> --- a/arch/microblaze/cpu/u-boot.lds
> +++ b/arch/microblaze/cpu/u-boot.lds
> @@ -45,6 +45,7 @@ SECTIONS
>  	.data ALIGN(0x4):
>  	{
>  		__data_start = .;
> +		dts/libdts.o (.data)
>  		*(.data)
>  		__data_end = .;
>  	}
> diff --git a/arch/microblaze/include/asm/global_data.h b/arch/microblaze/include/asm/global_data.h
> index 6e8537c..e802e4e 100644
> --- a/arch/microblaze/include/asm/global_data.h
> +++ b/arch/microblaze/include/asm/global_data.h
> @@ -43,6 +43,7 @@ typedef	struct	global_data {
>  	unsigned long	precon_buf_idx;	/* Pre-Console buffer index */
>  #endif
>  	unsigned long	env_addr;	/* Address  of Environment struct */
> +	const void	*fdt_blob;	/* Our device tree, NULL if none */
>  	unsigned long	env_valid;	/* Checksum of Environment valid? */
>  	unsigned long	fb_base;	/* base address of frame buffer */
>  	void		**jt;		/* jump table */
> diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
> index b80250a..942e18c 100644
> --- a/arch/microblaze/lib/board.c
> +++ b/arch/microblaze/lib/board.c
> @@ -34,6 +34,7 @@
>  #include <net.h>
>  #include <asm/processor.h>
>  #include <asm/microblaze_intc.h>
> +#include <fdtdec.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> @@ -63,6 +64,9 @@ typedef int (init_fnc_t) (void);
>  
>  init_fnc_t *init_sequence[] = {
>  	env_init,
> +#ifdef CONFIG_OF_CONTROL
> +	fdtdec_check_fdt,
> +#endif
>  	serial_init,
>  	console_init_f,
>  #ifdef CONFIG_SYS_GPIO_0
> @@ -103,6 +107,17 @@ void board_init (void)
>  
>  	monitor_flash_len = __end - __text_start;
>  
> +#ifdef CONFIG_OF_EMBED
> +	/* Get a pointer to the FDT */
> +	gd->fdt_blob = _binary_dt_dtb_start;
> +#elif defined CONFIG_OF_SEPARATE
> +	/* FDT is at end of image */
> +	gd->fdt_blob = (void *)__end;
> +#endif
> +	/* Allow the early environment to override the fdt address */
> +	gd->fdt_blob = (void *)getenv_ulong("fdtcontroladdr", 16,
> +						(uintptr_t)gd->fdt_blob);
> +
>  	/*
>  	 * The Malloc area is immediately below the monitor copy in DRAM
>  	 * aka CONFIG_SYS_MONITOR_BASE - Note there is no need for reloc_off
> @@ -121,6 +136,15 @@ void board_init (void)
>  		}
>  	}
>  
> +#ifdef CONFIG_OF_CONTROL
> +	/* For now, put this check after the console is ready */
> +	if (fdtdec_prepare_fdt()) {
> +		panic("** CONFIG_OF_CONTROL defined but no FDT - please see "
> +			"doc/README.fdt-control");
> +	} else
> +		printf("DTB: 0x%x\n", (u32)gd->fdt_blob);
> +#endif
> +
>  	puts ("SDRAM :\n");
>  	printf ("\t\tIcache:%s\n", icache_status() ? "ON" : "OFF");
>  	printf ("\t\tDcache:%s\n", dcache_status() ? "ON" : "OFF");

-- 
Viele Gr??e,
Stephan Linz
______________________________________________________________________________
MB-Ref: http://www.li-pro.de/xilinx_mb:mbref:start
OpenDCC: http://www.li-pro.net/opendcc.phtml
PC/M: http://www.li-pro.net/pcm.phtml
Sourceforge: http://sourceforge.net/users/slz
Gitorious: https://gitorious.org/~slz

  parent reply	other threads:[~2012-08-07 20:10 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-06  7:46 [U-Boot] [PATCH v2 1/7] microblaze: Add support for device tree driven board configuration Michal Simek
2012-08-06  7:46 ` [U-Boot] [PATCH v2 2/7] microblaze: board: Remove compilation warning Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-06  7:46 ` [U-Boot] [PATCH v2 3/7] microblaze: intc: Registering interrupt should return value Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-08  8:27     ` Michal Simek
2012-08-08 17:47       ` Stephan Linz
2012-08-06  7:46 ` [U-Boot] [PATCH v2 4/7] microblaze: intc: Coding style cleanup Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-06  7:46 ` [U-Boot] [PATCH v2 5/7] microblaze: timer: Prepare for device-tree initialization Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-08  8:27     ` Michal Simek
2012-08-06  7:46 ` [U-Boot] [PATCH v2 6/7] microblaze: Clean microblaze initialization Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-06  7:46 ` [U-Boot] [PATCH v2 7/7] microblaze: board: Use bi_flashstart instead of CONFIG_SYS_FLASH_BASE Michal Simek
2012-08-07 20:10   ` Stephan Linz
2012-08-07 20:10 ` Stephan Linz [this message]
2012-08-10  7:16   ` [U-Boot] [PATCH v2 1/7] microblaze: Add support for device tree driven board configuration Michal Simek

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=1344370234.29456.86.camel@keto \
    --to=linz@li-pro.net \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.