mx6qsabresd: Add basic support
Fabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Add basic support for mx6qsabresd board.
--- MAINTAINERS | 1 + board/freescale/mx6qsabresd/Makefile | 37 ++++++ board/freescale/mx6qsabresd/imximage.cfg | 170 +++++++++++++++++++++++++++ board/freescale/mx6qsabresd/mx6qsabresd.c | 111 ++++++++++++++++++ boards.cfg | 1 + include/configs/mx6qsabresd.h | 178 +++++++++++++++++++++++++++++ 6 files changed, 498 insertions(+), 0 deletions(-) create mode 100644 board/freescale/mx6qsabresd/Makefile create mode 100644 board/freescale/mx6qsabresd/imximage.cfg create mode 100644 board/freescale/mx6qsabresd/mx6qsabresd.c create mode 100644 include/configs/mx6qsabresd.h
MAINTAINERS +1 -0
@@ -648,6 +648,7 @@ Fabio Estevam <[email protected]> mx31pdk i.MX31 mx53ard i.MX53 mx53smd i.MX53 + mx6qsabresd i.MX6Q Daniel Gorsulowski <[email protected]>
board/freescale/mx6qsabresd/Makefile new file +37 -0
@@ -0,0 +1,37 @@ +# +# Copyright (C) 2007, Guennadi Liakhovetski <[email protected]> +# +# (C) Copyright 2011 Freescale Semiconductor, Inc. +# +# 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. +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(BOARD).o + +COBJS := mx6qsabresd.o + +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(call cmd_link_o_target, $(OBJS) $(SOBJS)) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################
board/freescale/mx6qsabresd/imximage.cfg new file +170 -0
170 lines not on this page · raw message
board/freescale/mx6qsabresd/mx6qsabresd.c new file +111 -0
111 lines not on this page · raw message
boards.cfg +1 -0
@@ -192,6 +192,7 @@ mx53smd arm armv7 mx53smd freesca vision2 arm armv7 vision2 ttcontrol mx5 vision2:IMX_CONFIG=board/ttcontrol/vision2/imximage_hynix.cfg mx6qarm2 arm armv7 mx6qarm2 freescale mx6 mx6qarm2:IMX_CONFIG=board/freescale/mx6qarm2/imximage.cfg mx6qsabrelite arm armv7 mx6qsabrelite freescale mx6 mx6qsabrelite:IMX_CONFIG=board/freescale/mx6qsabrelite/imximage.cfg +mx6qsabresd arm armv7 mx6qsabresd freescale mx6 mx6qsabresd:IMX_CONFIG=board/freescale/mx6qsabresd/imximage.cfg cm_t35 arm armv7 cm_t35 - omap3 omap3_overo arm armv7 overo - omap3 omap3_pandora arm armv7 pandora - omap3
include/configs/mx6qsabresd.h new file +178 -0
178 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 1/1 mx6qsabresd: Add basic support
Dear Fabio Estevam,
Quoted 3 lines · In message <[email protected]> you wrote:
Add basic support for mx6qsabresd board.
Signed-off-by Fabio Estevam <[email protected]>
Could you please add a bit information which sort of board this is, where to find documetnation about it, etc.?
include/configs/mx6qsabresd.h line 119
Quoted 2 lines
include/configs/mx6qsabresd.h new file +2
-0+#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " +#define CONFIG_SYS_PROMPT "MX6QSABRESD U-Boot > "
Do we really need such verbose prompts? This appears to be overkill, and is becoming more and more a nuisance. [I wonder when I will see the first board which puts the full version string in the prompt :-( ]
include/configs/mx6qsabresd.h line 129
Quoted 2 lines
include/configs/mx6qsabresd.h new file +2
-0+#define CONFIG_SYS_MEMTEST_START 0x10000000 +#define CONFIG_SYS_MEMTEST_END 0x10010000
Does this make sense?
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If you think the problem is bad now, just wait until we've solved it.
Epstein's LawFabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Quoted 2 lines · Wolfgang Denk
Could you please add a bit information which sort of board this is, where to find documetnation about it, etc.?
Ok, will add more information about this board.
I will not be able to point to any documentation about it as it is not yet publicly available.
Quoted 7 lines
Review
Quoted 3 lines
(quoted diff) +2
-0+#define CONFIG_SYS_PROMPT_HUSH_PS2 ? ? "> " +#define CONFIG_SYS_PROMPT ? ? ? ? ? ? ?"MX6QSABRESD U-Boot > "Do we really need such verbose prompts? ?This appears to be overkill, and is becoming more and more a nuisance. [I wonder when I will see the first board which puts the full version string in the prompt :-( ]
Ok, I will make the prompt shorter
Quoted 3 lines
Review
Quoted 3 lines
(quoted diff) +2
-0+#define CONFIG_SYS_MEMTEST_START ? ? ? 0x10000000 +#define CONFIG_SYS_MEMTEST_END ? ? ? ? 0x10010000
0x10000000 is the start address for DDR on mx6.
mx6qarm2 and mx6qsabrelite do the same approach.
Doesn't this seem OK?
Regards,
Fabio Estevam
PATCH 1/1 mx6qsabresd: Add basic support
Dear Fabio Estevam,
Quoted 7 lines · In message <CAOMZO5B82CU=f_yNG9fmfbJ39i_oZuDfEEFf=PuCZLGwr7sfng@mail.gmail.com>…
Quoted 3 lines
Review
Quoted 3 lines
(quoted diff) +2
-0+#define CONFIG_SYS_MEMTEST_START ? ? ? 0x10000000 +#define CONFIG_SYS_MEMTEST_END ? ? ? ? 0x10010000
0x10000000is the start address for DDR on mx6.mx6qarm2 and mx6qsabrelite do the same approach.
Then these should eventually be fixed, too.
Quoted 1 line
Doesn't this seem OK?
Does testing just the first 64 KiB of RAM make any sense? Not to me.
BTW: where are the exception vectors located?
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Sometimes a feeling is all we humans have to go on. -- Kirk, "A Taste of Armageddon", stardate 3193.9
Fabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Quoted 1 line · Wolfgang Denk
Does testing just the first 64 KiB of RAM make any sense? Not to me.
Ok, I will expand the mtest range.
Quoted 1 line
BTW: where are the exception vectors located?
I don't know actually, but would like to learn about it. Looked at the generated u-boot.map and could not find it out.
Stefano,
Can you please help me to find a safer DDR location for performing mtest on mx6? I think we probably have the same issues on other i.MX processors as well. Do you know how can I locate the address range that the exception vectors occupy?
Thanks,
Fabio Estevam
PATCH 1/1 mx6qsabresd: Add basic support
Quoted 11 lines · Fabio Estevam
Quoted 1 line · Wolfgang Denk
Does testing just the first 64 KiB of RAM make any sense? Not to me.
Ok, I will expand the mtest range.
Quoted 1 line
BTW: where are the exception vectors located?
I don't know actually, but would like to learn about it. Looked at the generated u-boot.map and could not find it out.
Quoted 6 lines
Stefano,
Can you please help me to find a safer DDR location for performing mtest on mx6? I think we probably have the same issues on other i.MX processors as well. Do you know how can I locate the address range that the exception vectors occupy?
Regarding the exception vectors:
I would think that the code of the U-Boot exception vectors are located at
#define CONFIG_SYS_TEXT_BASE 0x17800000
and
#define CONFIG_LOADADDR 0x10800000
after relocation using
and
So as long as we don't have the MMU enabled, these vectors aren't used at all. I would expect that the BootRom exception vectors at address 0x00000000 are used, instead.
I might be wrong, so people please correct me ;)
Best regards
Dirk
Fabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Quoted 9 lines · Dirk Behme
Regarding the exception vectors:
I would think that the code of the U-Boot exception vectors are located at
#define
CONFIG_SYS_TEXT_BASE? ? ? ? ?0x17800000and
#define
CONFIG_LOADADDR? ? ? ? ? ? ? ? ? ? ? ?0x10800000
Thanks, Dirk.
I am looking at the u-boot.map:
arch/arm/cpu/armv7/start.o(.text)
.text 0x17800000 0x4a0 arch/arm/cpu/armv7/start.o
0x17800000 _start
0x17800040 _end_vect
0x17800040 _TEXT_BASE
0x17800044 _bss_start_ofs
0x17800048 _image_copy_end_ofs
0x1780004c _bss_end_ofs
0x17800050 _end_ofs
0x17800054 IRQ_STACK_START_IN
0x17800098 relocate_code
0x178001a8 cpu_init_cp15*(.text)
So, would it be OK to use 0x10000000 - 0x177fffff as the memory range for mtest?
Thanks,
Fabio Estevam
Fabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Quoted 1 line · Fabio Estevam
So, would it be OK to use
0x10000000-0x177fffffas the memory range for mtest?
Looks like I forgot the relocation. So the range for mtest would be from 0x10000000 until 0x10800000 - 1, right?
Thanks,
Fabio Estevam
PATCH 1/1 mx6qsabresd: Add basic support
Quoted 6 lines · Fabio Estevam
Quoted 1 line · Fabio Estevam
So, would it be OK to use
0x10000000-0x177fffffas the memory range for mtest?Looks like I forgot the relocation. So the range for mtest would be from
0x10000000until0x10800000- 1, right?
Yes.
Or somewhere between
0x10800000 + some space for the relocated U-Boot
and
0x177fffff
Best regards
Dirk
PATCH 1/1 mx6qsabresd: Add basic support
In reply to Fabio EstevamAm 14/04/2012 01:04, schrieb Fabio Estevam:
Quoted 2 lines · Fabio Estevam
Hi Fabio,
Quoted 1 line
Quoted 1 line
So, would it be OK to use
0x10000000-0x177fffffas the memory range for mtest?
Some considerations about this issue. hopefully I am not OT. The values put in the configuration file are the default parameters taken by the mtest command if no parameters are issued. I agree they must not be set to wrong values (I mean, outside the adressable RAM), but in any case mtest is not run automatically and the range can be adjusted in the console. I can always send a "mtest 0x0x10000000 - 0x177fffff" even if a restricted range is set in the config file, for example as it is set now for the mx6qsabrelite (64k).
The start address CONFIG_SYS_MEMTEST_START is the lowest address of the SDRAM that can be accessed, that is MMDC0_ARB_BASE_ADDR (0x10000000) for i.MX6.
Now we can take a look at the end address. IMHO it is better to inform always mtest about which is the end address to be tested, and not rely to a default value. And, because the total memory is computed dynamically, also the last RAM address that can be tested should be computed at run time and not at compile time with CONFIG_SYS_MEMTEST_END.
So I will be for a patch that changes the behavior of mtest and computes automatically the last testable address if the second parameter is not given, dropping CONFIG_SYS_MEMTEST_END - I know, this is not part of your patch, I have already said I can be OT ;-)
Regarding the i.MX6, I think it is not important to bind the last address to 0x10800000 (CONFIG_LOADADDR). This is only the default address used to load data. U-Boot is not multitasking, so we are sure that when mtest runs nothing is loaded, and we can test also this memory range. Maybe it is more important to test the range from 0x10800000, because it is used mostly to transfer data and we would like to know if there is some problem in this range.
The only thing we have to be sure is that we cannot overwrite where u-boot is currently running and its resorces (malloc area, stack, lcd memory,..). That is, after the relocation, quite at the end of the available memory (maybe gd->relocaddr -1 ?).
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================
Fabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Hi Stefano,
Quoted 8 lines · stefano babic
Some considerations about this issue. hopefully I am not OT. The values put in the configuration file are the default parameters taken by the mtest command if no parameters are issued. I agree they must not be set to wrong values (I mean, outside the adressable RAM), but in any case mtest is not run automatically and the range can be adjusted in the console. I can always send a "mtest 0x0x10000000 -
0x177fffff" even if a restricted range is set in the config file, for example as it is set now for the mx6qsabrelite (64k).
Thanks for your and Dirk's explanations. Very helpful!
Quoted 4 lines
So I will be for a patch that changes the behavior of mtest and computes automatically the last testable address if the second parameter is not given, dropping
CONFIG_SYS_MEMTEST_END- I know, this is not part of your patch, I have already said I can be OT ;-)
Something like the patch below? (Build tested only - no hardware handy right now)
common/cmd_mem.c +3 -1
@@ -40,6 +40,8 @@ #define PRINTF(fmt,args...)#endif +DECLARE_GLOBAL_DATA_PTR ; +static int mod_mem (cmd_tbl_t *,int ,int ,int ,char *const []);/* Display values from last command.
@@ -662,7 +664,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, charif (argc >2 ) end = (ulong *)simple_strtoul (argv[2 ],NULL ,16 );else - end = (ulong *)(CONFIG_SYS_MEMTEST_END ); + end = (ulong *)(gd->relocaddr -1 );if (argc >3 ) pattern = (ulong )simple_strtoul (argv[3 ],NULL ,16 );
(END)
Fabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Quoted 2 lines · Fabio Estevam
Something like the patch below? (Build tested only - no hardware handy right now)
Sorry, I meant the patch below:
common/cmd_mem.c +5 -1
@@ -40,6 +40,8 @@ #define PRINTF(fmt,args...)#endif +DECLARE_GLOBAL_DATA_PTR ; +static int mod_mem (cmd_tbl_t *,int ,int ,int ,char *const []);/* Display values from last command.
@@ -656,8 +658,10 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, chaif (argc >1 ) start = (ulong *)simple_strtoul (argv[1 ],NULL ,16 ); -else +else { start = (ulong *)CONFIG_SYS_MEMTEST_START ; + end = (ulong *)(gd->relocaddr -1 ); + }if (argc >2 ) end = (ulong *)simple_strtoul (argv[2 ],NULL ,16 );
PATCH 1/1 mx6qsabresd: Add basic support
Am 14/04/2012 17:28, schrieb Fabio Estevam:
Quoted 19 lines · Fabio Estevam
Quoted 3 lines
Something like the patch below? (Build tested only - no hardware handy right now)
Sorry, I meant the patch below:
common/cmd_mem.c +2
-0@@ -40,6 +40,8 @@ #define PRINTF(fmt,args...)#endif +DECLARE_GLOBAL_DATA_PTR ; +static int mod_mem (cmd_tbl_t *,int ,int ,int ,char *const []);/* Display values from last command.
common/cmd_mem.c int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, cha · line 663
Quoted 7 lines
common/cmd_mem.c +2
-1@@ -656,8 +658,10 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, chaif (argc >1 ) start = (ulong *)simple_strtoul (argv[1 ],NULL ,16 ); -else +else { start = (ulong *)CONFIG_SYS_MEMTEST_START ; + end = (ulong *)(gd->relocaddr -1 );
Something like this, but not exactly this. After sending my answer I remembered that the stack is *before* u-boot code, and not after as I wrote - using gd->relocaddr is wrong. We should subtract the memory reserve for stack and heap from this value.
Stefano
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================
PATCH 1/1 mx6qsabresd: Add basic support
Dear Stefano,
Quoted 5 lines · In message <[email protected]> you wrote:
Something like this, but not exactly this. After sending my answer I remembered that the stack is *before* u-boot code, and not after as I wrote - using
gd->relocaddris wrong. We should subtract the memory reserve for stack and heap from this value.
There is no builtin limit for the stack size in U-Boot. It gows downward unchecked.
Best regards,
Wolfgang Denk
Signature · 6 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de If you believe that feeling bad or worrying long enough will change a past or future event, then you are residing on another planet with a different reality system.
PATCH 1/1 mx6qsabresd: Add basic support
Am 14/04/2012 22:15, schrieb Wolfgang Denk:
Quoted 11 lines
Dear Stefano,
Quoted 5 lines · In message <[email protected]> you wrote:
Something like this, but not exactly this. After sending my answer I remembered that the stack is *before* u-boot code, and not after as I wrote - using
gd->relocaddris wrong. We should subtract the memory reserve for stack and heap from this value.There is no builtin limit for the stack size in U-Boot. It gows downward unchecked.
I see, but then it seems to me that CONFIG_STACKSIZE is obsolete - right ?
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================
Wolfgang Denk
NAKPATCH 1/1 mx6qsabresd: Add basic support
In reply to Fabio EstevamDear Fabio Estevam,
Quoted 3 lines · In message <CAOMZO5B8ipMR5Wvq23d8PY3TkbRktdo4cGvhW5K1VL+7t14bEA@mail.gmail.com>…
Something like the patch below? (Build tested only - no hardware handy right now)
NAK
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Microsoft Multimedia: You have nice graphics, sound and animations when the system crashes.
PATCH 1/1 mx6qsabresd: Add basic support
In reply to stefano babicDear Stefano,
Quoted 4 lines · In message <[email protected]> you wrote:
The start address
CONFIG_SYS_MEMTEST_STARTis the lowest address of the SDRAM that can be accessed, that isMMDC0_ARB_BASE_ADDR(0x10000000) for i.MX6.
But it _should_ be the lowest address that can _safely_ be used for such tests, i. e. the range MEMTEST_START - MEMTEST_START must neither contain the exception vectors, not U-Boot's code, stack or malloc arena.
Quoted 2 lines
dynamically, also the last RAM address that can be tested should be computed at run time and not at compile time with
CONFIG_SYS_MEMTEST_END.
CONFIG_SYS_MEMTEST_END is NOT the end of physical RAM, but the end of the range that can be tested without crashing U-Boot...
Quoted 4 lines
So I will be for a patch that changes the behavior of mtest and computes automatically the last testable address if the second parameter is not given, dropping
CONFIG_SYS_MEMTEST_END- I know, this is not part of your patch, I have already said I can be OT ;-)
Such a patch would be wrong.
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "I've seen it. It's rubbish." - Marvin the Paranoid Android
PATCH 1/1 mx6qsabresd: Add basic support
Am 14/04/2012 22:13, schrieb Wolfgang Denk:
Quoted 12 lines
Dear Stefano,
Quoted 4 lines · In message <[email protected]> you wrote:
The start address
CONFIG_SYS_MEMTEST_STARTis the lowest address of the SDRAM that can be accessed, that isMMDC0_ARB_BASE_ADDR(0x10000000) for i.MX6.But it _should_ be the lowest address that can _safely_ be used for such tests, i. e. the range
MEMTEST_START-MEMTEST_STARTmust neither contain the exception vectors, not U-Boot's code, stack or malloc arena.
Quoted 5 lines
Quoted 2 lines
dynamically, also the last RAM address that can be tested should be computed at run time and not at compile time with
CONFIG_SYS_MEMTEST_END.
CONFIG_SYS_MEMTEST_ENDis NOT the end of physical RAM, but the end of the range that can be tested without crashing U-Boot...
Well, but why do we have to define at compile time this value, that in most cases can be wrong ? Why should "mtest" use a default value if not all parameters are passed ? IMHO it is better if mtest returns with an error if end address is not provided.
Quoted 2 lines
Such a patch would be wrong.
Really I think it is better to get rid completely of CONFIG_SYS_MEMTEST_START and CONFIG_SYS_MEMTEST_END without trying to make some (maybe wrong) assumptions, and let mtest doing its job
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================
PATCH 1/1 mx6qsabresd: Add basic support
Hi Fabio,
Quoted 21 lines · stefano babic
Am 14/04/2012 22:13, schrieb Wolfgang Denk:
Quoted 6 lines
Dear Stefano,
Quoted 3 lines · In message <[email protected]> you wrote:
The start address
CONFIG_SYS_MEMTEST_STARTis the lowest address of the SDRAM that can be accessed, that isMMDC0_ARB_BASE_ADDR(0x10000000) for i.MX6.Quoted 8 lines
But it _should_ be the lowest address that can _safely_ be used for such tests, i. e. the range
MEMTEST_START-MEMTEST_STARTmust neither contain the exception vectors, not U-Boot's code, stack or malloc arena.Quoted 2 lines
dynamically, also the last RAM address that can be tested should be computed at run time and not at compile time with
CONFIG_SYS_MEMTEST_END.
CONFIG_SYS_MEMTEST_ENDis NOT the end of physical RAM, but the end of the range that can be tested without crashing U-Boot...Well, but why do we have to define at compile time this value, that in most cases can be wrong ? Why should "mtest" use a default value if not all parameters are passed ? IMHO it is better if mtest returns with an error if end address is not provided.
Quoted 5 lines
Quoted 1 line
Such a patch would be wrong.
Really I think it is better to get rid completely of
CONFIG_SYS_MEMTEST_STARTandCONFIG_SYS_MEMTEST_ENDwithout trying to make some (maybe wrong) assumptions, and let mtest doing its job
Will we get an update of this patch?
Many thanks and best regards
Dirk
Fabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Hi Dirk,
Quoted 1 line · Dirk Behme
Will we get an update of this patch?
I plan to send an updated patch in the first week of August.
Regards,
Fabio Estevam
PATCH 1/1 mx6qsabresd: Add basic support
In reply to Wolfgang DenkDear Wolfgang Denk,
Quoted 10 lines
Dear Fabio Estevam,
Quoted 3 lines · In message <[email protected]> you wrote:
Add basic support for mx6qsabresd board.
Signed-off-by Fabio Estevam <[email protected]>Could you please add a bit information which sort of board this is, where to find documetnation about it, etc.?
Quoted 6 lines
include/configs/mx6qsabresd.h line 119
Quoted 2 lines
include/configs/mx6qsabresd.h new file +2
-0+#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " +#define CONFIG_SYS_PROMPT "MX6QSABRESD U-Boot > "Do we really need such verbose prompts? This appears to be overkill, and is becoming more and more a nuisance. [I wonder when I will see the first board which puts the full version string in the prompt :-( ]
MX28EVK rev. D with U-Boot v2012.04-rc2 00025-g7ae6af4-dirty (Apr 12 2012 - 05:36:01) >>> # _
;-D
Quoted 5 lines
include/configs/mx6qsabresd.h line 129
Quoted 3 lines
include/configs/mx6qsabresd.h new file +2
-0+#define CONFIG_SYS_MEMTEST_START 0x10000000 +#define CONFIG_SYS_MEMTEST_END 0x10010000Does this make sense?
It probably does, it runs memtest on a small piece of memory.
Quoted 4 lines
Best regards,
Wolfgang Denk
Best regards,
Marek Vasut
PATCH 1/1 mx6qsabresd: Add basic support
In reply to Fabio EstevamQuoted 3 lines · Fabio Estevam
Add basic support for mx6qsabresd board.
Signed-off-by Fabio Estevam <[email protected]>
Hi Fabio,
Quoted 4 lines
--- MAINTAINERS | 1 + board/freescale/mx6qsabresd/Makefile | 37 ++++++ board/freescale/mx6qsabresd/imximage.cfg | 170 +++++++++++++++++++++++++++
Quoted 9 lines
board/freescale/mx6qsabresd/mx6qsabresd.c | 111 ++++++++++++++++++ boards.cfg | 1 + include/configs/mx6qsabresd.h | 178 +++++++++++++++++++++++++++++ 6 files changed, 498 insertions(+), 0 deletions(-) create mode 100644 board/freescale/mx6qsabresd/Makefile create mode 100644 board/freescale/mx6qsabresd/imximage.cfg create mode 100644 board/freescale/mx6qsabresd/mx6qsabresd.c create mode 100644 include/configs/mx6qsabresd.h
A general question: in your patch it seems to me that only SD is currently supported on this board. Which is the difference between this board and the mx6qsabrelite we have already mainlined ?
Quoted 167 lines
(quoted diff) +1
-0+#########################################################################board/freescale/mx6qsabresd/imximage.cfg new file +160
-0@@ -0,0 +1,170 @@ +# Copyright (C) 2011 Freescale Semiconductor, Inc. +# Jason Liu <[email protected]> +# +# 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. 51 Franklin Street Fifth Floor Boston, +# MA 02110-1301 USA +# +# Refer docs/README.imxmage for more details about how-to configure +# and create imximage boot image +# +# The syntax is taken as close as possible with the kwbimage + +# image version + +IMAGE_VERSION 2 + +# Boot Device : one of +# spi, sd (the board has no nand neither onenand) + +BOOT_FROM sd + +# Device Configuration Data (DCD) +# +# Each entry must have the format: +# Addr-type Address Value +# +# where: +# Addr-type register length (1,2 or 4 bytes) +# Address absolute address of the register +# value value to be stored in the register +DATA 4 0x020e05a8 0x00000030 +DATA 4 0x020e05b0 0x00000030 +DATA 4 0x020e0524 0x00000030 +DATA 4 0x020e051c 0x00000030 + +DATA 4 0x020e0518 0x00000030 +DATA 4 0x020e050c 0x00000030 +DATA 4 0x020e05b8 0x00000030 +DATA 4 0x020e05c0 0x00000030 + +DATA 4 0x020e05ac 0x00020030 +DATA 4 0x020e05b4 0x00020030 +DATA 4 0x020e0528 0x00020030 +DATA 4 0x020e0520 0x00020030 + +DATA 4 0x020e0514 0x00020030 +DATA 4 0x020e0510 0x00020030 +DATA 4 0x020e05bc 0x00020030 +DATA 4 0x020e05c4 0x00020030 + +DATA 4 0x020e056c 0x00020030 +DATA 4 0x020e0578 0x00020030 +DATA 4 0x020e0588 0x00020030 +DATA 4 0x020e0594 0x00020030 + +DATA 4 0x020e057c 0x00020030 +DATA 4 0x020e0590 0x00003000 +DATA 4 0x020e0598 0x00003000 +DATA 4 0x020e058c 0x00000000 + +DATA 4 0x020e059c 0x00003030 +DATA 4 0x020e05a0 0x00003030 +DATA 4 0x020e0784 0x00000030 +DATA 4 0x020e0788 0x00000030 + +DATA 4 0x020e0794 0x00000030 +DATA 4 0x020e079c 0x00000030 +DATA 4 0x020e07a0 0x00000030 +DATA 4 0x020e07a4 0x00000030 + +DATA 4 0x020e07a8 0x00000030 +DATA 4 0x020e0748 0x00000030 +DATA 4 0x020e074c 0x00000030 +DATA 4 0x020e0750 0x00020000 + +DATA 4 0x020e0758 0x00000000 +DATA 4 0x020e0774 0x00020000 +DATA 4 0x020e078c 0x00000030 +DATA 4 0x020e0798 0x000C0000 + +DATA 4 0x021b081c 0x33333333 +DATA 4 0x021b0820 0x33333333 +DATA 4 0x021b0824 0x33333333 +DATA 4 0x021b0828 0x33333333 + +DATA 4 0x021b481c 0x33333333 +DATA 4 0x021b4820 0x33333333 +DATA 4 0x021b4824 0x33333333 +DATA 4 0x021b4828 0x33333333 + +DATA 4 0x021b0018 0x00081740 + +DATA 4 0x021b001c 0x00008000 +DATA 4 0x021b000c 0x555A7975 +DATA 4 0x021b0010 0xFF538E64 +DATA 4 0x021b0014 0x01FF00DB +DATA 4 0x021b002c 0x000026D2 + +DATA 4 0x021b0030 0x005B0E21 +DATA 4 0x021b0008 0x09444040 +DATA 4 0x021b0004 0x00025576 +DATA 4 0x021b0040 0x00000027 +DATA 4 0x021b0000 0x831A0000 + +DATA 4 0x021b001c 0x04088032 +DATA 4 0x021b001c 0x0408803A +DATA 4 0x021b001c 0x00008033 +DATA 4 0x021b001c 0x0000803B +DATA 4 0x021b001c 0x00428031 +DATA 4 0x021b001c 0x00428039 +DATA 4 0x021b001c 0x09408030 +DATA 4 0x021b001c 0x09408038 + +DATA 4 0x021b001c 0x04008040 +DATA 4 0x021b001c 0x04008048 +DATA 4 0x021b0800 0xA1380003 +DATA 4 0x021b4800 0xA1380003 +DATA 4 0x021b0020 0x00005800 +DATA 4 0x021b0818 0x00022227 +DATA 4 0x021b4818 0x00022227 + +DATA 4 0x021b083c 0x434B0350 +DATA 4 0x021b0840 0x034C0359 +DATA 4 0x021b483c 0x434B0350 +DATA 4 0x021b4840 0x03650348 +DATA 4 0x021b0848 0x4436383B +DATA 4 0x021b4848 0x39393341 +DATA 4 0x021b0850 0x35373933 +DATA 4 0x021b4850 0x48254A36 + +DATA 4 0x021b080c 0x001F001F +DATA 4 0x021b0810 0x001F001F + +DATA 4 0x021b480c 0x00440044 +DATA 4 0x021b4810 0x00440044 + +DATA 4 0x021b08b8 0x00000800 +DATA 4 0x021b48b8 0x00000800 + +DATA 4 0x021b001c 0x00000000 +DATA 4 0x021b0404 0x00011006 + +# set the default clock gate to save power +DATA 4 0x020c4068 0x00C03F3F +DATA 4 0x020c406c 0x0030FC03 +DATA 4 0x020c4070 0x0FFFC000
board/freescale/mx6qsabresd/imximage.cfg line 170
Quoted 10 lines
board/freescale/mx6qsabresd/imximage.cfg new file +10
-0+DATA 4 0x020c4074 0x3FF00000 +DATA 4 0x020c4078 0x00FFF300 +DATA 4 0x020c407c 0x0F0000C3 +DATA 4 0x020c4080 0x000003FF + +# enable AXI cache for VDOA/VPU/IPU +DATA 4 0x020e0010 0xF00000FF +# set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 +DATA 4 0x020e0018 0x007F007F +DATA 4 0x020e001c 0x007F007F
This file is identical to imximage.cfg for the mx6qsabrelite board. I can imagine this is derived board. Why cannot we implement it as a variant of the original one ? We have several example in u-boot, for example the efika (MX51), or the TAM3517 (ok, I admit I know this very well because I did it...), or imx27-lite /magnesium, or....
Quoted 34 lines
board/freescale/mx6qsabresd/mx6qsabresd.c new file +28
-0@@ -0,0 +1,111 @@ +/* +* Copyright (C) 2012 Freescale Semiconductor, Inc. +* +* Author: Fabio Estevam <[email protected]> +* +* 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. +*/ + +#include <common.h> +#include <asm/io.h> +#include <asm/arch/imx-regs.h> +#include <asm/arch/mx6x_pins.h> +#include <asm/arch/iomux-v3.h> +#include <asm/errno.h> +#include <asm/gpio.h> +#include <mmc.h> +#include <fsl_esdhc.h>
board/freescale/mx6qsabresd/mx6qsabresd.c line 38
Quoted 10 lines
board/freescale/mx6qsabresd/mx6qsabresd.c new file +10
-0+ +DECLARE_GLOBAL_DATA_PTR ; + +#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ + PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) + +#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \ + PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
This is also identical to the sabrelite. It seems to me we can manage it only disabling some feature and introducing a way (CONFIG_) to distinguish the two boards, but without adding a new one.
board/freescale/mx6qsabresd/mx6qsabresd.c line 67
Quoted 1 line
board/freescale/mx6qsabresd/mx6qsabresd.c new file +1
-0+#ifdef CONFIG_FSL_ESDHC
...for this board if we undefine CONFIG_FSL_ESDHC there is no peripheral at all.
Quoted 15 lines
board/freescale/mx6qsabresd/mx6qsabresd.c new file +15
-0+#define CONFIG_EXTRA_ENV_SETTINGS \ + "script=boot.scr\0" \ + "uimage=uImage\0" \ + "console=ttymxc0\0" \ + "fdt_high=0xffffffff\0" \ + "initrd_high=0xffffffff\0" \ + "mmcdev=0\0" \ + "mmcpart=2\0" \ + "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \ + "mmcargs=setenv bootargs console=${console},${baudrate} " \ + "root=${mmcroot}\0" \ + "loadbootscript=" \ + "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ + "bootscript=echo Running bootscript from mmc ...; " \ + "source\0" \
board/freescale/mx6qsabresd/mx6qsabresd.c line 64
Quoted 10 lines
board/freescale/mx6qsabresd/mx6qsabresd.c new file +10
-0+"loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ +"mmcboot=echo Booting from mmc ...; " \ +"run mmcargs; " \ +"bootm\0" \ +"netargs=setenv bootargs console=${console},${baudrate} " \ +"root=/dev/nfs " \ +"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ +"netboot=echo Booting from net ...; " \ +"run netargs; " \ +"dhcp ${uimage}; bootm\0" \
There is a "netboot", but no NET available. Not a real problem, but it tells me that the board is strictly related to the sabrelite and instead of having a separate implementation we can merge both.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
Fabio Estevam
reviewerPATCH 1/1 mx6qsabresd: Add basic support
Hi Stefano,
Quoted 5 lines · Stefano Babic
This file is identical to imximage.cfg for the mx6qsabrelite board. I can imagine this is derived board. Why cannot we implement it as a variant of the original one ? We have several example in u-boot, for example the efika (MX51), or the TAM3517 (ok, I admit I know this very well because I did it...), or imx27-lite /magnesium, or....
After a long time, I am returning on adding support to mx6qsabresd.
I have been comparing mx6qsabrelite against mx6qsabresd and I have started to do as you suggested: unify the 2 boards into mx6qsabrelite.c.
What I realize is that the differences are relevant: UART1 pin muxing, SDHC ports, SDHC card detect GPIO, USB Host enable port, I2C devices, Ethernet PHY, etc.
It seems to me that the code is becoming polluted by all the ifdef's I need to place in order to handle both boards, and I am starting to think if it wouldn't be better to follow with the original approach of adding a board/freescale/mx6qsabresd directory.
After I finish mx6qsabresd, I also plan to add one more mx6q board, and this would mean even more ifdefs, which would make the code even harder to read.
Please let me know what you think.
Regards,
Fabio Estevam
PATCH 1/1 mx6qsabresd: Add basic support
Am 11/09/2012 05:56, schrieb Fabio Estevam:
Quoted 2 lines
Hi Stefano,
Hi Fabio,
Quoted 10 lines · Stefano Babic
Quoted 6 lines
This file is identical to imximage.cfg for the mx6qsabrelite board. I can imagine this is derived board. Why cannot we implement it as a variant of the original one ? We have several example in u-boot, for example the efika (MX51), or the TAM3517 (ok, I admit I know this very well because I did it...), or imx27-lite /magnesium, or....
After a long time, I am returning on adding support to mx6qsabresd.
Quoted 7 lines
I have been comparing mx6qsabrelite against mx6qsabresd and I have started to do as you suggested: unify the 2 boards into
mx6qsabrelite.c.What I realize is that the differences are relevant: UART1 pin muxing, SDHC ports, SDHC card detect GPIO, USB Host enable port, I2C devices, Ethernet PHY, etc.
Of course, unifying boards makes sense if the two boards are very similar.
Quoted 9 lines
It seems to me that the code is becoming polluted by all the ifdef's I need to place in order to handle both boards, and I am starting to think if it wouldn't be better to follow with the original approach of adding a board/freescale/mx6qsabresd directory.
After I finish mx6qsabresd, I also plan to add one more mx6q board, and this would mean even more ifdefs, which would make the code even harder to read.
Absolutely. I let you to decide if some code can be shared, but if you see such a lot of differences, go on with a separate board.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================
PATCH 1/1 mx6qsabresd: Add basic support
In reply to Fabio EstevamQuoted 25 lines · Fabio Estevam
Hi Stefano,
Quoted 5 lines · Stefano Babic
This file is identical to imximage.cfg for the mx6qsabrelite board. I can imagine this is derived board. Why cannot we implement it as a variant of the original one ? We have several example in u-boot, for example the efika (MX51), or the TAM3517 (ok, I admit I know this very well because I did it...), or imx27-lite /magnesium, or....
After a long time, I am returning on adding support to mx6qsabresd.
I have been comparing mx6qsabrelite against mx6qsabresd and I have started to do as you suggested: unify the 2 boards into
mx6qsabrelite.c.What I realize is that the differences are relevant: UART1 pin muxing, SDHC ports, SDHC card detect GPIO, USB Host enable port, I2C devices, Ethernet PHY, etc.
It seems to me that the code is becoming polluted by all the ifdef's I need to place in order to handle both boards, and I am starting to think if it wouldn't be better to follow with the original approach of adding a board/freescale/mx6qsabresd directory.
Quoted 5 lines
After I finish mx6qsabresd, I also plan to add one more mx6q board, and this would mean even more ifdefs, which would make the code even harder to read.
Please let me know what you think.
I don't know all the boards close enough, but if we could somehow find an unique identifier to be able to auto-detect the board type at runtime and read this early in the boot phase, we could try to have one U-Boot binary for different boards which configures itself correctly at runtime.
Just an idea ...
Best regards
Dirk
PATCH 1/1 mx6qsabresd: Add basic support
In reply to Fabio EstevamQuoted 25 lines · Fabio Estevam
Hi Stefano,
Quoted 5 lines · Stefano Babic
This file is identical to imximage.cfg for the mx6qsabrelite board. I can imagine this is derived board. Why cannot we implement it as a variant of the original one ? We have several example in u-boot, for example the efika (MX51), or the TAM3517 (ok, I admit I know this very well because I did it...), or imx27-lite /magnesium, or....
After a long time, I am returning on adding support to mx6qsabresd.
I have been comparing mx6qsabrelite against mx6qsabresd and I have started to do as you suggested: unify the 2 boards into
mx6qsabrelite.c.What I realize is that the differences are relevant: UART1 pin muxing, SDHC ports, SDHC card detect GPIO, USB Host enable port, I2C devices, Ethernet PHY, etc.
It seems to me that the code is becoming polluted by all the ifdef's I need to place in order to handle both boards, and I am starting to think if it wouldn't be better to follow with the original approach of adding a board/freescale/mx6qsabresd directory.
Quoted 6 lines
After I finish mx6qsabresd, I also plan to add one more mx6q board, and this would mean even more ifdefs, which would make the code even harder to read.
Please let me know what you think.
Hi Fabio and Stefano,
We also need to add support for a board (our Nitrogen6x) which is a slight variation on Sabre Lite.
We have been patching the board/freescale/mx6qsabrelite, and our needs can in general be handled without ifdefs, but it seems that this approach doesn't scale well.
When other vendors produce boards which are also slight variations, where do we draw the line, and more importantly, how do we track and test the needs of each?
Our thinking is that if it's a different board, it should have a different directory, and common code should be clearly separated.
Regards,
Eric
PATCH 1/1 mx6qsabresd: Add basic support
Quoted 8 lines · Eric Nelson
On 09/10/2012 08:56 PM, Fabio Estevam wrote:
We also need to add support for a board (our Nitrogen6x) which is a slight variation on Sabre Lite.We have been patching the board/freescale/mx6qsabrelite, and our needs can in general be handled without ifdefs, but it seems that this approach doesn't scale well.
Quoted 6 lines
When other vendors produce boards which are also slight variations, where do we draw the line, and more importantly, how do we track and test the needs of each?
Our thinking is that if it's a different board, it should have a different directory, and common code should be clearly separated.
It is not my call but I think I share your view; even it is a small variation it is better to have it clear also because it is more developer-friendly or developer needs to be careful all the time to not mess with other boards settings.
Signature · 3 lines
Otavio Salvador O.S. Systems E-mail: otavio at ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
PATCH 1/1 mx6qsabresd: Add basic support
In reply to Eric NelsonAm 11/09/2012 16:43, schrieb Eric Nelson:
Quoted 26 lines · Fabio Estevam
Quoted 25 lines
Hi Stefano,
Quoted 5 lines · Stefano Babic
This file is identical to imximage.cfg for the mx6qsabrelite board. I can imagine this is derived board. Why cannot we implement it as a variant of the original one ? We have several example in u-boot, for example the efika (MX51), or the TAM3517 (ok, I admit I know this very well because I did it...), or imx27-lite /magnesium, or....
After a long time, I am returning on adding support to mx6qsabresd.
I have been comparing mx6qsabrelite against mx6qsabresd and I have started to do as you suggested: unify the 2 boards into
mx6qsabrelite.c.What I realize is that the differences are relevant: UART1 pin muxing, SDHC ports, SDHC card detect GPIO, USB Host enable port, I2C devices, Ethernet PHY, etc.
It seems to me that the code is becoming polluted by all the ifdef's I need to place in order to handle both boards, and I am starting to think if it wouldn't be better to follow with the original approach of adding a board/freescale/mx6qsabresd directory.
Quoted 9 lines
Quoted 6 lines
After I finish mx6qsabresd, I also plan to add one more mx6q board, and this would mean even more ifdefs, which would make the code even harder to read.
Please let me know what you think.
Hi Fabio and Stefano,
Hi Eric,
Quoted 6 lines
We also need to add support for a board (our Nitrogen6x) which is a slight variation on Sabre Lite.
We have been patching the board/freescale/mx6qsabrelite, and our needs can in general be handled without ifdefs, but it seems that this approach doesn't scale well.
It seems you want also to put the board with your vendor name, and then goes into a separate directory.
Quoted 4 lines
When other vendors produce boards which are also slight variations, where do we draw the line, and more importantly, how do we track and test the needs of each?
There is no strict rule. And of course, if the code is in the same directory, any change should be tested on all boards belonging to this directory. In your case, I understand you prefer to have your board identified with your vendor name and not mixed up with Freescale's boards.
Quoted 3 lines
Our thinking is that if it's a different board, it should have a different directory, and common code should be clearly separated.
I like this approach. If we can identify common code, it is better to put it in a common place and make available to all boards, and each board has still its own identity.
Best regards,
Stefano
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================