All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/5] microblaze: Add gpio.h
@ 2012-06-29  7:37 Michal Simek
  2012-06-29  7:37 ` [U-Boot] [PATCH 2/5] microblaze: Move individual board linker scripts to common script in cpu tree Michal Simek
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Michal Simek @ 2012-06-29  7:37 UTC (permalink / raw)
  To: u-boot

Gpio support is not implemented yet. Adding it because of fdtdec.

Signed-off-by: Michal Simek <monstr@monstr.eu>
---
 arch/microblaze/include/asm/gpio.h |   41 ++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)
 create mode 100644 arch/microblaze/include/asm/gpio.h

diff --git a/arch/microblaze/include/asm/gpio.h b/arch/microblaze/include/asm/gpio.h
new file mode 100644
index 0000000..883f4d4
--- /dev/null
+++ b/arch/microblaze/include/asm/gpio.h
@@ -0,0 +1,41 @@
+#ifndef _ASM_MICROBLAZE_GPIO_H_
+#define _ASM_MICROBLAZE_GPIO_H_
+
+#include <asm/io.h>
+
+static inline int gpio_request(unsigned gpio, const char *label)
+{
+	return 0;
+}
+
+static inline int gpio_free(unsigned gpio)
+{
+	return 0;
+}
+
+static inline int gpio_direction_input(unsigned gpio)
+{
+	return 0;
+}
+
+static inline int gpio_direction_output(unsigned gpio, int value)
+{
+	return 0;
+}
+
+static inline int gpio_get_value(unsigned gpio)
+{
+	return 0;
+}
+
+static inline int gpio_set_value(unsigned gpio, int value)
+{
+	return 0;
+}
+
+static inline int gpio_is_valid(int number)
+{
+	return 0;
+}
+#endif
+
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 2/5] microblaze: Move individual board linker scripts to common script in cpu tree.
  2012-06-29  7:37 [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek
@ 2012-06-29  7:37 ` Michal Simek
  2012-07-09  8:39   ` Michal Simek
  2012-06-29  7:37 ` [U-Boot] [PATCH 3/5] microblaze: Add support for device tree driven board configuration Michal Simek
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Michal Simek @ 2012-06-29  7:37 UTC (permalink / raw)
  To: u-boot

Unification for all microblaze boards.

Signed-off-by: Michal Simek <monstr@monstr.eu>
---
 arch/microblaze/config.mk                  |    2 +
 arch/microblaze/cpu/u-boot.lds             |   71 ++++++++++++++++++++++++++++
 board/xilinx/microblaze-generic/u-boot.lds |   71 ----------------------------
 3 files changed, 73 insertions(+), 71 deletions(-)
 create mode 100644 arch/microblaze/cpu/u-boot.lds
 delete mode 100644 board/xilinx/microblaze-generic/u-boot.lds

diff --git a/arch/microblaze/config.mk b/arch/microblaze/config.mk
index abea70b..aca79e2 100644
--- a/arch/microblaze/config.mk
+++ b/arch/microblaze/config.mk
@@ -29,3 +29,5 @@ CROSS_COMPILE ?= mb-
 CONFIG_STANDALONE_LOAD_ADDR ?= 0x80F00000
 
 PLATFORM_CPPFLAGS += -ffixed-r31 -D__microblaze__
+
+LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
new file mode 100644
index 0000000..ee41145
--- /dev/null
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -0,0 +1,71 @@
+/*
+ * (C) Copyright 2004 Atmark Techno, Inc.
+ *
+ * Yasushi SHOJI <yashi@atmark-techno.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
+ */
+
+OUTPUT_ARCH(microblaze)
+ENTRY(_start)
+
+SECTIONS
+{
+	.text ALIGN(0x4):
+	{
+		__text_start = .;
+		arch/microblaze/cpu/start.o (.text)
+		*(.text)
+		__text_end = .;
+	}
+
+	.rodata ALIGN(0x4):
+	{
+		__rodata_start = .;
+		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
+		__rodata_end = .;
+	}
+
+	.data ALIGN(0x4):
+	{
+		__data_start = .;
+		*(.data)
+		__data_end = .;
+	}
+
+	.u_boot_cmd ALIGN(0x4):
+	{
+		. = .;
+		__u_boot_cmd_start = .;
+		*(.u_boot_cmd)
+		__u_boot_cmd_end = .;
+	}
+
+	.bss ALIGN(0x4):
+	{
+		__bss_start = .;
+		*(.sbss)
+		*(.scommon)
+		*(.bss)
+		*(COMMON)
+		. = ALIGN(4);
+		__bss_end = .;
+	}
+	__end = . ;
+}
diff --git a/board/xilinx/microblaze-generic/u-boot.lds b/board/xilinx/microblaze-generic/u-boot.lds
deleted file mode 100644
index ee41145..0000000
--- a/board/xilinx/microblaze-generic/u-boot.lds
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * (C) Copyright 2004 Atmark Techno, Inc.
- *
- * Yasushi SHOJI <yashi@atmark-techno.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
- */
-
-OUTPUT_ARCH(microblaze)
-ENTRY(_start)
-
-SECTIONS
-{
-	.text ALIGN(0x4):
-	{
-		__text_start = .;
-		arch/microblaze/cpu/start.o (.text)
-		*(.text)
-		__text_end = .;
-	}
-
-	.rodata ALIGN(0x4):
-	{
-		__rodata_start = .;
-		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-		__rodata_end = .;
-	}
-
-	.data ALIGN(0x4):
-	{
-		__data_start = .;
-		*(.data)
-		__data_end = .;
-	}
-
-	.u_boot_cmd ALIGN(0x4):
-	{
-		. = .;
-		__u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		__u_boot_cmd_end = .;
-	}
-
-	.bss ALIGN(0x4):
-	{
-		__bss_start = .;
-		*(.sbss)
-		*(.scommon)
-		*(.bss)
-		*(COMMON)
-		. = ALIGN(4);
-		__bss_end = .;
-	}
-	__end = . ;
-}
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 3/5] microblaze: Add support for device tree driven board configuration
  2012-06-29  7:37 [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek
  2012-06-29  7:37 ` [U-Boot] [PATCH 2/5] microblaze: Move individual board linker scripts to common script in cpu tree Michal Simek
@ 2012-06-29  7:37 ` Michal Simek
  2012-07-09  8:41   ` Michal Simek
  2012-06-29  7:37 ` [U-Boot] [PATCH 4/5] net: emaclite: Support OF initialization Michal Simek
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Michal Simek @ 2012-06-29  7:37 UTC (permalink / raw)
  To: u-boot

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>
---
 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               |   23 +++++++++++++++++++++++
 4 files changed, 27 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 f3679d5..59d39a0 100644
--- a/arch/microblaze/lib/board.c
+++ b/arch/microblaze/lib/board.c
@@ -32,6 +32,7 @@
 #include <stdio_dev.h>
 #include <net.h>
 #include <asm/processor.h>
+#include <fdtdec.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -68,6 +69,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
@@ -110,6 +114,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
@@ -124,6 +139,14 @@ 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");
+	}
+#endif
+
 	puts ("SDRAM :\n");
 	printf ("\t\tIcache:%s\n", icache_status() ? "ON" : "OFF");
 	printf ("\t\tDcache:%s\n", dcache_status() ? "ON" : "OFF");
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 4/5] net: emaclite: Support OF initialization
  2012-06-29  7:37 [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek
  2012-06-29  7:37 ` [U-Boot] [PATCH 2/5] microblaze: Move individual board linker scripts to common script in cpu tree Michal Simek
  2012-06-29  7:37 ` [U-Boot] [PATCH 3/5] microblaze: Add support for device tree driven board configuration Michal Simek
@ 2012-06-29  7:37 ` Michal Simek
  2012-09-28 15:52   ` Joe Hershberger
  2012-06-29  7:37 ` [U-Boot] [PATCH 5/5] microblaze: Wire up fdt emaclite initialization Michal Simek
  2012-07-09  8:38 ` [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek
  4 siblings, 1 reply; 11+ messages in thread
From: Michal Simek @ 2012-06-29  7:37 UTC (permalink / raw)
  To: u-boot

Support new CONFIG_OF_CONTROL option where device
probing is done based on device tree description.

Signed-off-by: Michal Simek <monstr@monstr.eu>
CC: Joe Hershberger <joe.hershberger@gmail.com>
---
 drivers/net/xilinx_emaclite.c |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index d5bd737..d890d60 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -28,6 +28,9 @@
 #include <config.h>
 #include <malloc.h>
 #include <asm/io.h>
+#include <fdtdec.h>
+
+DECLARE_GLOBAL_DATA_PTR;
 
 #undef DEBUG
 
@@ -375,3 +378,30 @@ int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,
 
 	return 1;
 }
+
+#ifdef CONFIG_OF_CONTROL
+int xilinx_emaclite_init(bd_t *bis)
+{
+	int offset = 0;
+	u32 ret = 0;
+	u32 reg;
+
+	do {
+		offset = fdt_node_offset_by_compatible(gd->fdt_blob, offset,
+					"xlnx,xps-ethernetlite-1.00.a");
+		if (offset != -1) {
+			reg = fdtdec_get_addr(gd->fdt_blob, offset, "reg");
+			if (reg != FDT_ADDR_T_NONE) {
+				u32 rxpp = fdtdec_get_int(gd->fdt_blob, offset,
+							"xlnx,rx-ping-pong", 0);
+				u32 txpp = fdtdec_get_int(gd->fdt_blob, offset,
+							"xlnx,tx-ping-pong", 0);
+				ret |= xilinx_emaclite_initialize(bis, reg,
+								txpp, rxpp);
+			}
+		}
+	} while (offset != -1);
+
+	return ret;
+}
+#endif
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 5/5] microblaze: Wire up fdt emaclite initialization
  2012-06-29  7:37 [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek
                   ` (2 preceding siblings ...)
  2012-06-29  7:37 ` [U-Boot] [PATCH 4/5] net: emaclite: Support OF initialization Michal Simek
@ 2012-06-29  7:37 ` Michal Simek
  2012-06-29 20:22   ` Stephan Linz
  2012-07-09  8:38 ` [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek
  4 siblings, 1 reply; 11+ messages in thread
From: Michal Simek @ 2012-06-29  7:37 UTC (permalink / raw)
  To: u-boot

Call emaclite FDT registration when CONFIG_OF_CONTROL is used.

Signed-off-by: Michal Simek <monstr@monstr.eu>
---
 .../xilinx/microblaze-generic/microblaze-generic.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
index a1e2bfe..4a719ba 100644
--- a/board/xilinx/microblaze-generic/microblaze-generic.c
+++ b/board/xilinx/microblaze-generic/microblaze-generic.c
@@ -73,6 +73,9 @@ int board_eth_init(bd_t *bis)
 {
 	int ret = 0;
 
+#ifdef CONFIG_OF_CONTROL
+	ret |= xilinx_emaclite_init(bis);
+#else
 #ifdef CONFIG_XILINX_AXIEMAC
 	ret |= xilinx_axiemac_initialize(bis, XILINX_AXIEMAC_BASEADDR,
 						XILINX_AXIDMA_BASEADDR);
@@ -125,6 +128,6 @@ int board_eth_init(bd_t *bis)
 #  endif
 # endif
 #endif
-
+#endif
 	return ret;
 }
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 5/5] microblaze: Wire up fdt emaclite initialization
  2012-06-29  7:37 ` [U-Boot] [PATCH 5/5] microblaze: Wire up fdt emaclite initialization Michal Simek
@ 2012-06-29 20:22   ` Stephan Linz
  2012-07-03  5:23     ` Michal Simek
  0 siblings, 1 reply; 11+ messages in thread
From: Stephan Linz @ 2012-06-29 20:22 UTC (permalink / raw)
  To: u-boot

Am Freitag, den 29.06.2012, 09:37 +0200 schrieb Michal Simek: 
> Call emaclite FDT registration when CONFIG_OF_CONTROL is used.
> 
> Signed-off-by: Michal Simek <monstr@monstr.eu>
> ---
>  .../xilinx/microblaze-generic/microblaze-generic.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
> index a1e2bfe..4a719ba 100644
> --- a/board/xilinx/microblaze-generic/microblaze-generic.c
> +++ b/board/xilinx/microblaze-generic/microblaze-generic.c
> @@ -73,6 +73,9 @@ int board_eth_init(bd_t *bis)
>  {
>  	int ret = 0;
>  
> +#ifdef CONFIG_OF_CONTROL
> +	ret |= xilinx_emaclite_init(bis);
> +#else

First of all: I've successful tested on an AXI system on Avnet S6LX9
micro-module.

Now some words to the different configuration strategy. I prefer a
seperation between the ongoing development without device tree support
and the upcoming development with fdt support.

Could you split the development in the context of boards, for example:

OLD: Development w/o fdt in:
  - board/xilinx/microblaze-generic/*
  - configuration in include/configs/microblaze-generic.h

NEW: Development with fdt in:
  - board/xilinx/microblaze-fdt/*
  - configuration in include/configs/microblaze-fdt.h

So you can start with a really clean and slimmed board configuration for
fdt development (especially the content of config header) and the old
generic board support would be retained. Anytime in the future, when the
generic configuration will become obsolete you can remove it.


br,
Stephan

> #ifdef CONFIG_XILINX_AXIEMAC
>  	ret |= xilinx_axiemac_initialize(bis, XILINX_AXIEMAC_BASEADDR,
>  						XILINX_AXIDMA_BASEADDR);
> @@ -125,6 +128,6 @@ int board_eth_init(bd_t *bis)
>  #  endif
>  # endif
>  #endif
> -
> +#endif
>  	return ret;
>  }

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 5/5] microblaze: Wire up fdt emaclite initialization
  2012-06-29 20:22   ` Stephan Linz
@ 2012-07-03  5:23     ` Michal Simek
  0 siblings, 0 replies; 11+ messages in thread
From: Michal Simek @ 2012-07-03  5:23 UTC (permalink / raw)
  To: u-boot

On 06/29/2012 10:22 PM, Stephan Linz wrote:
> Am Freitag, den 29.06.2012, 09:37 +0200 schrieb Michal Simek:
>> Call emaclite FDT registration when CONFIG_OF_CONTROL is used.
>>
>> Signed-off-by: Michal Simek<monstr@monstr.eu>
>> ---
>>   .../xilinx/microblaze-generic/microblaze-generic.c |    5 ++++-
>>   1 files changed, 4 insertions(+), 1 deletions(-)
>>
>> diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
>> index a1e2bfe..4a719ba 100644
>> --- a/board/xilinx/microblaze-generic/microblaze-generic.c
>> +++ b/board/xilinx/microblaze-generic/microblaze-generic.c
>> @@ -73,6 +73,9 @@ int board_eth_init(bd_t *bis)
>>   {
>>   	int ret = 0;
>>
>> +#ifdef CONFIG_OF_CONTROL
>> +	ret |= xilinx_emaclite_init(bis);
>> +#else
>
> First of all: I've successful tested on an AXI system on Avnet S6LX9
> micro-module.
>
> Now some words to the different configuration strategy. I prefer a
> seperation between the ongoing development without device tree support
> and the upcoming development with fdt support.
>
> Could you split the development in the context of boards, for example:
>
> OLD: Development w/o fdt in:
>    - board/xilinx/microblaze-generic/*
>    - configuration in include/configs/microblaze-generic.h
>
> NEW: Development with fdt in:
>    - board/xilinx/microblaze-fdt/*
>    - configuration in include/configs/microblaze-fdt.h
>
> So you can start with a really clean and slimmed board configuration for
> fdt development (especially the content of config header) and the old
> generic board support would be retained. Anytime in the future, when the
> generic configuration will become obsolete you can remove it.

I don't think this is good idea to split it.
All the time when you split development to different trees/configuration they start
to diverge and then you just need to spend more a more time to manage both.

My strategy will be to add both configuration together.
It will have also demonstration purpose to show up differences.

If you want to use two boards you can.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 1/5] microblaze: Add gpio.h
  2012-06-29  7:37 [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek
                   ` (3 preceding siblings ...)
  2012-06-29  7:37 ` [U-Boot] [PATCH 5/5] microblaze: Wire up fdt emaclite initialization Michal Simek
@ 2012-07-09  8:38 ` Michal Simek
  4 siblings, 0 replies; 11+ messages in thread
From: Michal Simek @ 2012-07-09  8:38 UTC (permalink / raw)
  To: u-boot

2012/6/29 Michal Simek <monstr@monstr.eu>:
> Gpio support is not implemented yet. Adding it because of fdtdec.
>
> Signed-off-by: Michal Simek <monstr@monstr.eu>
> ---
>  arch/microblaze/include/asm/gpio.h |   41 ++++++++++++++++++++++++++++++++++++
>  1 files changed, 41 insertions(+), 0 deletions(-)
>  create mode 100644 arch/microblaze/include/asm/gpio.h
>
> diff --git a/arch/microblaze/include/asm/gpio.h b/arch/microblaze/include/asm/gpio.h
> new file mode 100644
> index 0000000..883f4d4
> --- /dev/null
> +++ b/arch/microblaze/include/asm/gpio.h
> @@ -0,0 +1,41 @@
> +#ifndef _ASM_MICROBLAZE_GPIO_H_
> +#define _ASM_MICROBLAZE_GPIO_H_
> +
> +#include <asm/io.h>
> +
> +static inline int gpio_request(unsigned gpio, const char *label)
> +{
> +       return 0;
> +}
> +
> +static inline int gpio_free(unsigned gpio)
> +{
> +       return 0;
> +}
> +
> +static inline int gpio_direction_input(unsigned gpio)
> +{
> +       return 0;
> +}
> +
> +static inline int gpio_direction_output(unsigned gpio, int value)
> +{
> +       return 0;
> +}
> +
> +static inline int gpio_get_value(unsigned gpio)
> +{
> +       return 0;
> +}
> +
> +static inline int gpio_set_value(unsigned gpio, int value)
> +{
> +       return 0;
> +}
> +
> +static inline int gpio_is_valid(int number)
> +{
> +       return 0;
> +}
> +#endif
> +
> --

Applied to microblaze custodian branch.

Michal

-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 2/5] microblaze: Move individual board linker scripts to common script in cpu tree.
  2012-06-29  7:37 ` [U-Boot] [PATCH 2/5] microblaze: Move individual board linker scripts to common script in cpu tree Michal Simek
@ 2012-07-09  8:39   ` Michal Simek
  0 siblings, 0 replies; 11+ messages in thread
From: Michal Simek @ 2012-07-09  8:39 UTC (permalink / raw)
  To: u-boot

2012/6/29 Michal Simek <monstr@monstr.eu>:
> Unification for all microblaze boards.
>
> Signed-off-by: Michal Simek <monstr@monstr.eu>
> ---
>  arch/microblaze/config.mk                  |    2 +
>  arch/microblaze/cpu/u-boot.lds             |   71 ++++++++++++++++++++++++++++
>  board/xilinx/microblaze-generic/u-boot.lds |   71 ----------------------------
>  3 files changed, 73 insertions(+), 71 deletions(-)
>  create mode 100644 arch/microblaze/cpu/u-boot.lds
>  delete mode 100644 board/xilinx/microblaze-generic/u-boot.lds
>
> diff --git a/arch/microblaze/config.mk b/arch/microblaze/config.mk
> index abea70b..aca79e2 100644
> --- a/arch/microblaze/config.mk
> +++ b/arch/microblaze/config.mk
> @@ -29,3 +29,5 @@ CROSS_COMPILE ?= mb-
>  CONFIG_STANDALONE_LOAD_ADDR ?= 0x80F00000
>
>  PLATFORM_CPPFLAGS += -ffixed-r31 -D__microblaze__
> +
> +LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
> diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
> new file mode 100644
> index 0000000..ee41145
> --- /dev/null
> +++ b/arch/microblaze/cpu/u-boot.lds
> @@ -0,0 +1,71 @@
> +/*
> + * (C) Copyright 2004 Atmark Techno, Inc.
> + *
> + * Yasushi SHOJI <yashi@atmark-techno.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
> + */
> +
> +OUTPUT_ARCH(microblaze)
> +ENTRY(_start)
> +
> +SECTIONS
> +{
> +       .text ALIGN(0x4):
> +       {
> +               __text_start = .;
> +               arch/microblaze/cpu/start.o (.text)
> +               *(.text)
> +               __text_end = .;
> +       }
> +
> +       .rodata ALIGN(0x4):
> +       {
> +               __rodata_start = .;
> +               *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
> +               __rodata_end = .;
> +       }
> +
> +       .data ALIGN(0x4):
> +       {
> +               __data_start = .;
> +               *(.data)
> +               __data_end = .;
> +       }
> +
> +       .u_boot_cmd ALIGN(0x4):
> +       {
> +               . = .;
> +               __u_boot_cmd_start = .;
> +               *(.u_boot_cmd)
> +               __u_boot_cmd_end = .;
> +       }
> +
> +       .bss ALIGN(0x4):
> +       {
> +               __bss_start = .;
> +               *(.sbss)
> +               *(.scommon)
> +               *(.bss)
> +               *(COMMON)
> +               . = ALIGN(4);
> +               __bss_end = .;
> +       }
> +       __end = . ;
> +}
> diff --git a/board/xilinx/microblaze-generic/u-boot.lds b/board/xilinx/microblaze-generic/u-boot.lds
> deleted file mode 100644
> index ee41145..0000000
> --- a/board/xilinx/microblaze-generic/u-boot.lds
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -/*
> - * (C) Copyright 2004 Atmark Techno, Inc.
> - *
> - * Yasushi SHOJI <yashi@atmark-techno.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
> - */
> -
> -OUTPUT_ARCH(microblaze)
> -ENTRY(_start)
> -
> -SECTIONS
> -{
> -       .text ALIGN(0x4):
> -       {
> -               __text_start = .;
> -               arch/microblaze/cpu/start.o (.text)
> -               *(.text)
> -               __text_end = .;
> -       }
> -
> -       .rodata ALIGN(0x4):
> -       {
> -               __rodata_start = .;
> -               *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
> -               __rodata_end = .;
> -       }
> -
> -       .data ALIGN(0x4):
> -       {
> -               __data_start = .;
> -               *(.data)
> -               __data_end = .;
> -       }
> -
> -       .u_boot_cmd ALIGN(0x4):
> -       {
> -               . = .;
> -               __u_boot_cmd_start = .;
> -               *(.u_boot_cmd)
> -               __u_boot_cmd_end = .;
> -       }
> -
> -       .bss ALIGN(0x4):
> -       {
> -               __bss_start = .;
> -               *(.sbss)
> -               *(.scommon)
> -               *(.bss)
> -               *(COMMON)
> -               . = ALIGN(4);
> -               __bss_end = .;
> -       }
> -       __end = . ;
> -}
> --
> 1.7.0.4
>

Applied to microblaze custodian branch.

Michal

-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 3/5] microblaze: Add support for device tree driven board configuration
  2012-06-29  7:37 ` [U-Boot] [PATCH 3/5] microblaze: Add support for device tree driven board configuration Michal Simek
@ 2012-07-09  8:41   ` Michal Simek
  0 siblings, 0 replies; 11+ messages in thread
From: Michal Simek @ 2012-07-09  8:41 UTC (permalink / raw)
  To: u-boot

2012/6/29 Michal Simek <monstr@monstr.eu>:
> 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>
> ---
>  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               |   23 +++++++++++++++++++++++
>  4 files changed, 27 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 f3679d5..59d39a0 100644
> --- a/arch/microblaze/lib/board.c
> +++ b/arch/microblaze/lib/board.c
> @@ -32,6 +32,7 @@
>  #include <stdio_dev.h>
>  #include <net.h>
>  #include <asm/processor.h>
> +#include <fdtdec.h>
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> @@ -68,6 +69,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
> @@ -110,6 +114,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
> @@ -124,6 +139,14 @@ 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");
> +       }
> +#endif
> +
>         puts ("SDRAM :\n");
>         printf ("\t\tIcache:%s\n", icache_status() ? "ON" : "OFF");
>         printf ("\t\tDcache:%s\n", dcache_status() ? "ON" : "OFF");
> --
> 1.7.0.4
>

Reject. v2 will add one more puts.

Michal

-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 4/5] net: emaclite: Support OF initialization
  2012-06-29  7:37 ` [U-Boot] [PATCH 4/5] net: emaclite: Support OF initialization Michal Simek
@ 2012-09-28 15:52   ` Joe Hershberger
  0 siblings, 0 replies; 11+ messages in thread
From: Joe Hershberger @ 2012-09-28 15:52 UTC (permalink / raw)
  To: u-boot

Hi Michal,

On Fri, Jun 29, 2012 at 2:37 AM, Michal Simek <monstr@monstr.eu> wrote:
> Support new CONFIG_OF_CONTROL option where device
> probing is done based on device tree description.
>
> Signed-off-by: Michal Simek <monstr@monstr.eu>
> CC: Joe Hershberger <joe.hershberger@gmail.com>
> ---

Applied, thanks.

-Joe

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-09-28 15:52 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-29  7:37 [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek
2012-06-29  7:37 ` [U-Boot] [PATCH 2/5] microblaze: Move individual board linker scripts to common script in cpu tree Michal Simek
2012-07-09  8:39   ` Michal Simek
2012-06-29  7:37 ` [U-Boot] [PATCH 3/5] microblaze: Add support for device tree driven board configuration Michal Simek
2012-07-09  8:41   ` Michal Simek
2012-06-29  7:37 ` [U-Boot] [PATCH 4/5] net: emaclite: Support OF initialization Michal Simek
2012-09-28 15:52   ` Joe Hershberger
2012-06-29  7:37 ` [U-Boot] [PATCH 5/5] microblaze: Wire up fdt emaclite initialization Michal Simek
2012-06-29 20:22   ` Stephan Linz
2012-07-03  5:23     ` Michal Simek
2012-07-09  8:38 ` [U-Boot] [PATCH 1/5] microblaze: Add gpio.h Michal Simek

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.