[U-Boot] [PATCH 1/5] microblaze: Add gpio.h

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 +

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 = . ; -}

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

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");

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

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

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

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; }

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; }

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 Simekmonstr@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

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
participants (3)
-
Joe Hershberger
-
Michal Simek
-
Stephan Linz