[U-Boot] [PATCH] Blackfin: bf525-ucr2: new board port

From: Chong Huang chuang@ucrobotics.com
Signed-off-by: Chong Huang chuang@ucrobotics.com Signed-off-by: Haitao Zhang minipanda@linuxrobot.org Signed-off-by: Mike Frysinger vapier@gentoo.org --- MAINTAINERS | 5 ++ board/bf525-ucr2/Makefile | 54 ++++++++++++++++++++++ board/bf525-ucr2/bf525-ucr2.c | 16 +++++++ board/bf525-ucr2/config.mk | 32 +++++++++++++ boards.cfg | 1 + include/configs/bf525-ucr2.h | 101 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 209 insertions(+), 0 deletions(-) create mode 100644 board/bf525-ucr2/Makefile create mode 100644 board/bf525-ucr2/bf525-ucr2.c create mode 100644 board/bf525-ucr2/config.mk create mode 100644 include/configs/bf525-ucr2.h
diff --git a/MAINTAINERS b/MAINTAINERS index 059155b..a0bb25e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1094,6 +1094,11 @@ M.Hasewinkel (MHA) info@ssv-embedded.de
dnp5370 BF537
+Haitao Zhang hzhang@ucrobotics.com +Chong Huang chuang@ucrobotics.com + + bf525-ucr2 BF525 + ######################################################################### # End of MAINTAINERS list # ######################################################################### diff --git a/board/bf525-ucr2/Makefile b/board/bf525-ucr2/Makefile new file mode 100644 index 0000000..5c1f1ec --- /dev/null +++ b/board/bf525-ucr2/Makefile @@ -0,0 +1,54 @@ +# +# U-boot - Makefile +# +# Copyright (c) 2005-2008 Analog Device Inc. +# +# (C) Copyright 2000-2006 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# 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 +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(BOARD).o + +COBJS-y := $(BOARD).o + +SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS-y)) +SOBJS := $(addprefix $(obj),$(SOBJS-y)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) + +clean: + rm -f $(SOBJS) $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak $(obj).depend + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/board/bf525-ucr2/bf525-ucr2.c b/board/bf525-ucr2/bf525-ucr2.c new file mode 100644 index 0000000..3e6df1f --- /dev/null +++ b/board/bf525-ucr2/bf525-ucr2.c @@ -0,0 +1,16 @@ +/* U-boot - bf525-ucr2.c board specific routines + * + * (C) Copyright 2000-2004 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * Licensed under the GPL-2 or later. + */ + +#include <common.h> + +int checkboard(void) +{ + printf("Board: bf525-ucr2\n"); + printf("Support: http://www.ucrobotics.com/%5Cn"); + return 0; +} diff --git a/board/bf525-ucr2/config.mk b/board/bf525-ucr2/config.mk new file mode 100644 index 0000000..428390f --- /dev/null +++ b/board/bf525-ucr2/config.mk @@ -0,0 +1,32 @@ +# +# Copyright (c) 2005-2008 Analog Device Inc. +# +# (C) Copyright 2001 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# 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 +# + +# This is not actually used for Blackfin boards so do not change it +#TEXT_BASE = do-not-use-me + +CONFIG_BFIN_CPU = bf525-0.2 + +# Set some default LDR flags based on boot mode. +LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE)) diff --git a/boards.cfg b/boards.cfg index 7cb38fe..6f1a045 100644 --- a/boards.cfg +++ b/boards.cfg @@ -163,6 +163,7 @@ mimc200 avr32 at32ap - mimc hammerhead avr32 at32ap - miromico at32ap700x bct-brettl2 blackfin blackfin bf518f-ezbrd blackfin blackfin +bf525-ucr2 blackfin blackfin bf526-ezbrd blackfin blackfin bf527-ad7160-eval blackfin blackfin bf527-ezkit blackfin blackfin diff --git a/include/configs/bf525-ucr2.h b/include/configs/bf525-ucr2.h new file mode 100644 index 0000000..3fcd52b --- /dev/null +++ b/include/configs/bf525-ucr2.h @@ -0,0 +1,101 @@ +/* + * U-boot - Configuration file for bf525-ucr2 board + * The board includes ADSP-BF525 rev. 0.2, + * 32-bit SDRAM (SAMSUNG K4S561632H-UC75), + * USB 2.0 High Speed OTG USB WIFI, + * SPI flash (cFeon EN25Q128 16 MB), + * Support PPI and ITU-R656, + * See http://www.ucrobotics.com/?q=cn/ucr2 + */ + +#ifndef __CONFIG_BF525_UCR2_H__ +#define __CONFIG_BF525_UCR2_H__ + +#include <asm/config-pre.h> + +/* + * Processor Settings + */ +#define CONFIG_BFIN_BOOT_MODE BFIN_BOOT_SPI_MASTER + +/* + * Clock Settings + * CCLK = (CLKIN * VCO_MULT) / CCLK_DIV + * SCLK = (CLKIN * VCO_MULT) / SCLK_DIV + */ +/* CONFIG_CLKIN_HZ is any value in Hz */ +#define CONFIG_CLKIN_HZ 24000000 +/* CLKIN_HALF controls the DF bit in PLL_CTL 0 = CLKIN */ +/* 1 = CLKIN / 2 */ +#define CONFIG_CLKIN_HALF 0 +/* PLL_BYPASS controls the BYPASS bit in PLL_CTL 0 = do not bypass */ +/* 1 = bypass PLL */ +#define CONFIG_PLL_BYPASS 0 +/* VCO_MULT controls the MSEL (multiplier) bits in PLL_CTL */ +/* Values can range from 0-63 (where 0 means 64) */ +#define CONFIG_VCO_MULT 20 +/* CCLK_DIV controls the core clock divider */ +/* Values can be 1, 2, 4, or 8 ONLY */ +#define CONFIG_CCLK_DIV 1 +/* SCLK_DIV controls the system clock divider */ +/* Values can range from 1-15 */ +#define CONFIG_SCLK_DIV 4 + +/* + * Memory Settings + */ +#define CONFIG_MEM_ADD_WDTH 9 +#define CONFIG_MEM_SIZE 32 + +/* + * SDRAM reference page + * http://docs.blackfin.uclinux.org/doku.php?id=bfin:sdram + */ +#define CONFIG_EBIU_SDRRC_VAL 0x3f8 +#define CONFIG_EBIU_SDGCTL_VAL 0x9111cd + +#define CONFIG_EBIU_AMGCTL_VAL (AMBEN_ALL) +#define CONFIG_EBIU_AMBCTL0_VAL (B1WAT_7 | B1RAT_11 | B1HT_2 | B1ST_3 | B0WAT_7 | B0RAT_11 | B0HT_2 | B0ST_3) +#define CONFIG_EBIU_AMBCTL1_VAL (B3WAT_7 | B3RAT_11 | B3HT_2 | B3ST_3 | B2WAT_7 | B2RAT_11 | B2HT_2 | B2ST_3) + +#define CONFIG_SYS_MONITOR_LEN (320 * 1024) +#define CONFIG_SYS_MALLOC_LEN (320 * 1024) + +/* We don't have a parallel flash chip */ +#define CONFIG_SYS_NO_FLASH + +/* support for serial flash */ +#define CONFIG_BFIN_SPI +#define CONFIG_SPI_FLASH +#define CONFIG_CMD_SF +#define CONFIG_SF_DEFAULT_HZ 30000000 +#define CONFIG_SPI_FLASH_EON + +#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_ENV_SPI_MAX_HZ 30000000 +#define CONFIG_ENV_OFFSET 0x10000 +#define CONFIG_ENV_SIZE 0x10000 +#define CONFIG_ENV_SECT_SIZE 0x10000 +#define CONFIG_ENV_OVERWRITE 1 + +/* + * Misc Settings + */ +#define CONFIG_UART_CONSOLE 0 + +#define CONFIG_BAUDRATE 115200 +#define CONFIG_BOOTARGS "root=/dev/mtdblock0 rw" +#define CONFIG_BOOTCOMMAND "run sfboot" +#define CONFIG_BOOTDELAY 5 +#define CONFIG_EXTRA_ENV_SETTINGS \ + "sfboot=sf probe 1;" \ + "sf read 0x1000000 0x20000 0x300000;" \ + "bootm 0x1000000\0" + +/* this sets up the default list of enabled commands */ +#include <config_cmd_default.h> +#undef CONFIG_CMD_NET /* bootp, tftpboot, rarpboot */ +#undef CONFIG_CMD_NFS +#undef CONFIG_CMD_IMLS + +#endif

Dear Mike Frysinger,
In message 1291891702-20707-1-git-send-email-vapier@gentoo.org you wrote:
From: Chong Huang chuang@ucrobotics.com
Signed-off-by: Chong Huang chuang@ucrobotics.com Signed-off-by: Haitao Zhang minipanda@linuxrobot.org Signed-off-by: Mike Frysinger vapier@gentoo.org
...
--- /dev/null +++ b/board/bf525-ucr2/config.mk
...
+CONFIG_BFIN_CPU = bf525-0.2
+# Set some default LDR flags based on boot mode. +LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
Can we not move all this into the board config file, and drop the config.mk ?
Best regards,
Wolfgang Denk

On Saturday, December 18, 2010 18:14:48 Wolfgang Denk wrote:
Mike Frysinger wrote:
--- /dev/null +++ b/board/bf525-ucr2/config.mk +CONFIG_BFIN_CPU = bf525-0.2
+# Set some default LDR flags based on boot mode. +LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
Can we not move all this into the board config file, and drop the config.mk ?
i dont know what you're referring to. the cpu needs to be available before autoconf.mk is generated, and LDR_FLAGS is a build setting that makes more sense to keep in the build .mk. -mike

Dear Mike Frysinger,
In message 201012182340.27980.vapier@gentoo.org you wrote:
+++ b/board/bf525-ucr2/config.mk +CONFIG_BFIN_CPU = bf525-0.2
+# Set some default LDR flags based on boot mode. +LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
Can we not move all this into the board config file, and drop the config.mk ?
i dont know what you're referring to. the cpu needs to be available before autoconf.mk is generated, and LDR_FLAGS is a build setting that makes more sense to keep in the build .mk.
I want to get rid of all these board specific config.mk files. And I don't see a good reason why it would be needed here. Other boards don;t need any of this either.
Best regards,
Wolfgang Denk

On Sunday, December 19, 2010 07:25:00 Wolfgang Denk wrote:
Mike Frysinger wrote:
+++ b/board/bf525-ucr2/config.mk +CONFIG_BFIN_CPU = bf525-0.2
+# Set some default LDR flags based on boot mode. +LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
Can we not move all this into the board config file, and drop the config.mk ?
i dont know what you're referring to. the cpu needs to be available before autoconf.mk is generated, and LDR_FLAGS is a build setting that makes more sense to keep in the build .mk.
I want to get rid of all these board specific config.mk files. And I don't see a good reason why it would be needed here. Other boards don;t need any of this either.
then where exactly are boards supposed to specify their own custom build settings ? like optimizations that they want to enable on specific files/subdirs ? many Blackfin boards prefer speed over size in the compression code because we arent hurting for space, and most people prefer the faster decompression at runtime. without a board config.mk, that isnt possible. -mike

Dear Mike Frysinger,
In message 201012191133.30875.vapier@gentoo.org you wrote:
I want to get rid of all these board specific config.mk files. And I don't see a good reason why it would be needed here. Other boards don;t need any of this either.
then where exactly are boards supposed to specify their own custom build settings ? like optimizations that they want to enable on specific
Boards should not need custom build rules in the first place.
files/subdirs ? many Blackfin boards prefer speed over size in the compression code because we arent hurting for space, and most people prefer the faster decompression at runtime. without a board config.mk, that isnt possible.
Can these be gobal settings for all BF boards then?
"not possible" is a strong statement.
Best regards,
Wolfgang Denk

On Sunday, December 19, 2010 15:09:44 Wolfgang Denk wrote:
Mike Frysinger wrote:
I want to get rid of all these board specific config.mk files. And I don't see a good reason why it would be needed here. Other boards don;t need any of this either.
then where exactly are boards supposed to specify their own custom build settings ? like optimizations that they want to enable on specific
Boards should not need custom build rules in the first place.
i didnt say build rules, i said settings. that means tweaking things like CFLAGS. none of the Blackfin board config.mk's have custom build rules.
files/subdirs ? many Blackfin boards prefer speed over size in the compression code because we arent hurting for space, and most people prefer the faster decompression at runtime. without a board config.mk, that isnt possible.
Can these be gobal settings for all BF boards then?
no, that doesnt make any sense. just because i want some of the boards i maintain to favor speed over size doesnt mean every board maintainer should. thus the settings are in the board-specific config.mk where they should be. -mike

Dear Mike Frysinger,
In message 201012191705.46162.vapier@gentoo.org you wrote:
Can these be gobal settings for all BF boards then?
no, that doesnt make any sense. just because i want some of the boards i maintain to favor speed over size doesnt mean every board maintainer should. thus the settings are in the board-specific config.mk where they should be.
We have here:
CONFIG_BFIN_CPU = bf525-0.2 LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
Which these fall into that group?
Best regards,
Wolfgang Denk

On Sunday, December 19, 2010 16:20:15 Wolfgang Denk wrote:
Mike Frysinger wrote:
Can these be gobal settings for all BF boards then?
no, that doesnt make any sense. just because i want some of the boards i maintain to favor speed over size doesnt mean every board maintainer should. thus the settings are in the board-specific config.mk where they should be.
We have here:
CONFIG_BFIN_CPU = bf525-0.2 LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
Which these fall into that group?
i dont understand the question, so i'll just spout random noise.
the LDR_FLAGS-y convention is board specific and is only set in boards' config.mk. i could unify that convention across all Blackfin boards and move this one specific line to the common Blackfin config.mk, but that still wouldnt change the requirement of a board specific config.mk to set up custom LDR_FLAGS for its specific boot modes. which some Blackfin boards need.
as for the cpu selection, obviously that cannot be in any common file since the cpu variant and silicon rev is about as board specific as you could possibly get. -mike

Dear Mike Frysinger,
In message 201012191818.56840.vapier@gentoo.org you wrote:
no, that doesnt make any sense. just because i want some of the boards i maintain to favor speed over size doesnt mean every board maintainer should. thus the settings are in the board-specific config.mk where they should be.
We have here:
CONFIG_BFIN_CPU = bf525-0.2 LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
Which these fall into that group?
i dont understand the question, so i'll just spout random noise.
Well, your argument was the need to provide board or file specific optimizer options to "favor speed over size ...". To me it seems this argument has nothing to do with what the definitions above are doing.
the LDR_FLAGS-y convention is board specific and is only set in boards' config.mk. i could unify that convention across all Blackfin boards and move this one specific line to the common Blackfin config.mk, but that still
OK, then please let's do this. I guess this will allow to remove a number of other config.mk files as well.
wouldnt change the requirement of a board specific config.mk to set up custom LDR_FLAGS for its specific boot modes. which some Blackfin boards need.
Such config.mk files that are really needed (i. e. for which no easy other approach exists) may remain.
as for the cpu selection, obviously that cannot be in any common file since the cpu variant and silicon rev is about as board specific as you could possibly get.
And why cannot it be set in the board config file like every other board doing it?
Best regards,
Wolfgang Denk

On Monday, December 20, 2010 05:49:22 Wolfgang Denk wrote:
Mike Frysinger wrote:
no, that doesnt make any sense. just because i want some of the boards i maintain to favor speed over size doesnt mean every board maintainer should. thus the settings are in the board-specific config.mk where they should be.
We have here: CONFIG_BFIN_CPU = bf525-0.2 LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
Which these fall into that group?
i dont understand the question, so i'll just spout random noise.
Well, your argument was the need to provide board or file specific optimizer options to "favor speed over size ...". To me it seems this argument has nothing to do with what the definitions above are doing.
i was responding to your *general* statement that you wish to get rid of all board config.mk's. and my simple response that this goal is not feasible. so to back up my statement with fact, i gave real world examples that are not attainable if you punt all board config.mk's.
the LDR_FLAGS-y convention is board specific and is only set in boards' config.mk. i could unify that convention across all Blackfin boards and move this one specific line to the common Blackfin config.mk, but that still
OK, then please let's do this. I guess this will allow to remove a number of other config.mk files as well.
np
as for the cpu selection, obviously that cannot be in any common file since the cpu variant and silicon rev is about as board specific as you could possibly get.
And why cannot it be set in the board config file like every other board doing it?
ive explained in the past why. one of the reasons why i think config.mk makes more sense is this setting is only used for compilation (build flags). it isnt used directly anywhere in the config.h or related code. i also find it significantly cleaner than the cpu handling as found in the arm or m68k or ppc ports where copy & pasting swaths of code is the rule. -mike

Dear Mike Frysinger,
In message 201012201436.49709.vapier@gentoo.org you wrote:
as for the cpu selection, obviously that cannot be in any common file since the cpu variant and silicon rev is about as board specific as you could possibly get.
I did not ask for moving it into a common file, but into the board config file.
And why cannot it be set in the board config file like every other board doing it?
ive explained in the past why. one of the reasons why i think config.mk makes more sense is this setting is only used for compilation (build flags). it isnt used directly anywhere in the config.h or related code. i also find it significantly cleaner than the cpu handling as found in the arm or m68k or ppc ports where copy & pasting swaths of code is the rule.
OK, so this is a "I think it makes more sense" and a "I find it cleaner". There was no "cannot", as far as I can tell.
I think it makes a lot of sense to try and move all board specific configuration settings into a single file (the board config file); this will, among other things, make it easier to make such settings accessable through some config tool - assume somebody wants to take steps toward Kconfig or such.
So please get rid of this config.mk file.
Best regards,
Wolfgang Denk

On Monday, December 20, 2010 16:05:20 Wolfgang Denk wrote:
Mike Frysinger wrote:
And why cannot it be set in the board config file like every other board doing it?
ive explained in the past why. one of the reasons why i think config.mk makes more sense is this setting is only used for compilation (build flags). it isnt used directly anywhere in the config.h or related code. i also find it significantly cleaner than the cpu handling as found in the arm or m68k or ppc ports where copy & pasting swaths of code is the rule.
OK, so this is a "I think it makes more sense" and a "I find it cleaner". There was no "cannot", as far as I can tell.
things can be moved back, but it would require ugly hacks in the Blackfin code to pull it back out. if you want to live with the ugly hacks as a trade off of getting rid of a few more Blackfin config.mk's (but not all), then that is possible.
note that these issues shouldnt hold up merging a board which is working the way it should as the other boards.
I think it makes a lot of sense to try and move all board specific configuration settings into a single file (the board config file); this will, among other things, make it easier to make such settings accessable through some config tool - assume somebody wants to take steps toward Kconfig or such.
i dont see how Kconfig would be relevant. the point of Kconfig is to let users configure optional features, not aspects burned into hardware. letting people pick a processor that isnt on the board makes no sense. linux specifically has followed this style -- the way the board is physically wired up is in the platform resources, not Kconfig. -mike

Dear Mike Frysinger,
In message 201012201731.47283.vapier@gentoo.org you wrote:
note that these issues shouldnt hold up merging a board which is working the way it should as the other boards.
I have nothing to add. Please get rid of this unnecessary config.mk file.
Best regards,
Wolfgang Denk

On Monday, December 20, 2010 17:56:38 Wolfgang Denk wrote:
Mike Frysinger wrote:
note that these issues shouldnt hold up merging a board which is working the way it should as the other boards.
I have nothing to add. Please get rid of this unnecessary config.mk file.
so you agree with my statement, or you're going to prevent any new Blackfin boards from being merged until something you consider a deficiency in the core (and really a board independent issue) is resolved ? -mike

Dear Mike Frysinger,
In message 201012201924.42903.vapier@gentoo.org you wrote:
I have nothing to add. Please get rid of this unnecessary config.mk file.
so you agree with my statement, or you're going to prevent any new Blackfin boards from being merged until something you consider a deficiency in the core (and really a board independent issue) is resolved ?
I will NAK submissions that include unnecessary config.mk files.
Best regards,
Wolfgang Denk

On Tuesday, December 21, 2010 00:37:24 Wolfgang Denk wrote:
Mike Frysinger wrote:
I have nothing to add. Please get rid of this unnecessary config.mk file.
so you agree with my statement, or you're going to prevent any new Blackfin boards from being merged until something you consider a deficiency in the core (and really a board independent issue) is resolved ?
I will NAK submissions that include unnecessary config.mk files.
unnecessary in your opinion of course -mike
participants (2)
-
Mike Frysinger
-
Wolfgang Denk