[U-Boot] [PATCH 0/5] ARM: Exynos5250: consolidate configuration files

Hi,
while working on HYP mode support for Exynos 5250 based boards, I fixed some shortcomings in their configuration files.
The purpose of this series is to get rid of the elaborate arndale.h and replace it mostly by an include of exynos5250-dt.h, which currently has an about 90% overlap. I couldn't find any prior art, please bear with me if I have missed something on the list.
* Patch 1 fixes a bug, where PMIC support would not have been included in the Arndale build. * Patch 2 removes double definitions. Those two should be considered regardless of the others. * Patch 3 prepares the consolidation of the config files by moving board specific defines out of the generic file. * Patch 4 makes keyboard and LCD support board dependent, please have a closer look at this. I guess SMDK5250 does not have the EC, but it breaks compilation if that is excluded. * Patch 5 then finally removes the now redundant defines in arndale.h and replaces them with an include of exynos5250-dt.h.
This series is mostly refactoring, though the config options change a bit for some boards. I could only compile test it, so please test it if you have the hardware.
Thanks! Andre
Signed-off-by: Andre Przywara andre.przywara@linaro.org
Andre Przywara (5): ARM: Exynos5250: rename obsoleted CONFIG_PMIC defines ARM: Exynos5250: remove redundant defines in exynos5250-dt.h ARM: Exynos5250: move feature defines out of generic config file ARM: snow: move defines for Chromebook embedded controller ARM: Arndale: include generic exynos5250-dt.h in arndale.h
drivers/power/power_fsl.c | 2 +- include/configs/arndale.h | 242 +--------------------------------------- include/configs/exynos5250-dt.h | 63 ++++------- include/configs/smdk5250.h | 11 +- include/configs/snow.h | 11 +- 5 files changed, 47 insertions(+), 282 deletions(-)

Commit be3b51aa4a450f3e3fcd9c6e5074ef435812a02d renamed CONFIG_PMIC to CONFIG_POWER, but somehow the old values survived or sneaked in again. Removed the redundant and useless version in exynos5250-dt.h and rename it in arndale.h.
Signed-off-by: Andre Przywara andre.przywara@linaro.org --- drivers/power/power_fsl.c | 2 +- include/configs/arndale.h | 6 +++--- include/configs/exynos5250-dt.h | 5 ----- 3 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/drivers/power/power_fsl.c b/drivers/power/power_fsl.c index ed778f3..7fb233d 100644 --- a/drivers/power/power_fsl.c +++ b/drivers/power/power_fsl.c @@ -52,7 +52,7 @@ int pmic_init(unsigned char bus) p->hw.i2c.tx_num = FSL_PMIC_I2C_LENGTH; p->bus = bus; #else -#error "You must select CONFIG_POWER_SPI or CONFIG_PMIC_I2C" +#error "You must select CONFIG_POWER_SPI" #endif
return 0; diff --git a/include/configs/arndale.h b/include/configs/arndale.h index ed44a04..f9eb051 100644 --- a/include/configs/arndale.h +++ b/include/configs/arndale.h @@ -226,9 +226,9 @@ #define CONFIG_I2C_EDID
/* PMIC */ -#define CONFIG_PMIC -#define CONFIG_PMIC_I2C -#define CONFIG_PMIC_MAX77686 +#define CONFIG_POWER +#define CONFIG_POWER_I2C +#define CONFIG_POWER_MAX77686
#define CONFIG_DEFAULT_DEVICE_TREE exynos5250-arndale
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index 8c21909..14d62e4 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -257,11 +257,6 @@ #define CONFIG_SYS_I2C_SLAVE 0x0 #define CONFIG_I2C_EDID
-/* PMIC */ -#define CONFIG_PMIC -#define CONFIG_PMIC_I2C -#define CONFIG_PMIC_MAX77686 - /* SPI */ #define CONFIG_ENV_IS_IN_SPI_FLASH #define CONFIG_SPI_FLASH

For some reasons the very same defines appear twice in exynos5250-dt.h. Remove the second version.
Signed-off-by: Andre Przywara andre.przywara@linaro.org --- include/configs/exynos5250-dt.h | 21 --------------------- 1 file changed, 21 deletions(-)
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index 14d62e4..c8c4b35 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -284,27 +284,6 @@ #define CONFIG_POWER_I2C #define CONFIG_POWER_MAX77686
-/* SPI */ -#define CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_SPI_FLASH - -#ifdef CONFIG_SPI_FLASH -#define CONFIG_EXYNOS_SPI -#define CONFIG_CMD_SF -#define CONFIG_CMD_SPI -#define CONFIG_SPI_FLASH_WINBOND -#define CONFIG_SF_DEFAULT_MODE SPI_MODE_0 -#define CONFIG_SF_DEFAULT_SPEED 50000000 -#define EXYNOS5_SPI_NUM_CONTROLLERS 5 -#endif - -#ifdef CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_ENV_SPI_MODE SPI_MODE_0 -#define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SIZE -#define CONFIG_ENV_SPI_BUS 1 -#define CONFIG_ENV_SPI_MAX_HZ 50000000 -#endif - /* Ethernet Controllor Driver */ #ifdef CONFIG_CMD_NET #define CONFIG_SMC911X

On 25/09/13 19:42, Andre Przywara wrote:
For some reasons the very same defines appear twice in exynos5250-dt.h. Remove the second version.
Signed-off-by: Andre Przywara andre.przywara@linaro.org
include/configs/exynos5250-dt.h | 21 --------------------- 1 file changed, 21 deletions(-)
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index 14d62e4..c8c4b35 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -284,27 +284,6 @@ #define CONFIG_POWER_I2C #define CONFIG_POWER_MAX77686
-/* SPI */ -#define CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_SPI_FLASH
-#ifdef CONFIG_SPI_FLASH -#define CONFIG_EXYNOS_SPI -#define CONFIG_CMD_SF -#define CONFIG_CMD_SPI -#define CONFIG_SPI_FLASH_WINBOND -#define CONFIG_SF_DEFAULT_MODE SPI_MODE_0 -#define CONFIG_SF_DEFAULT_SPEED 50000000 -#define EXYNOS5_SPI_NUM_CONTROLLERS 5 -#endif
-#ifdef CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_ENV_SPI_MODE SPI_MODE_0 -#define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SIZE -#define CONFIG_ENV_SPI_BUS 1 -#define CONFIG_ENV_SPI_MAX_HZ 50000000 -#endif
/* Ethernet Controllor Driver */ #ifdef CONFIG_CMD_NET #define CONFIG_SMC911X
Same patch is applied to u-boot-samsung.
commit 31e0bd6974cbaca15e15f400acf1d7499e86fe17 Author: Luka Perkov luka@openwrt.org Date: Mon Nov 4 02:12:00 2013 +0100
config: arm: exynos5250: remove duplicate defines
The SPI section is already defined in this file (lines 268-288) so we can remove the duplicate definitions. While at it, also fix one tiny whitespace typo.
Signed-off-by: Luka Perkov luka@openwrt.org Signed-off-by: Minkyu Kang mk7.kang@samsung.com
Thanks, Minkyu Kang.

The config file exynos5250-dt.h is used by two boards currently. To allow the Arndale board to use it too in the future, move some board specific defines out of that generic file. Update the copyright, header comment and include protection define on the way.
Signed-off-by: Andre Przywara andre.przywara@linaro.org --- include/configs/exynos5250-dt.h | 15 ++++----------- include/configs/smdk5250.h | 10 +++++++++- include/configs/snow.h | 10 +++++++++- 3 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index c8c4b35..e855745 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -1,13 +1,13 @@ /* - * Copyright (C) 2012 Samsung Electronics + * Copyright (C) 2012,2013 Samsung Electronics * - * Configuration settings for the SAMSUNG EXYNOS5250 board. + * Configuration settings for SAMSUNG EXYNOS5250 based boards. * * SPDX-License-Identifier: GPL-2.0+ */
-#ifndef __CONFIG_H -#define __CONFIG_H +#ifndef __CONFIG_EXYNOS_5250_DT_H +#define __CONFIG_EXYNOS_5250_DT_H
/* High Level Configuration Options */ #define CONFIG_SAMSUNG /* in a SAMSUNG core */ @@ -165,7 +165,6 @@ /* Miscellaneous configurable options */ #define CONFIG_SYS_LONGHELP /* undef to save memory */ #define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */ -#define CONFIG_SYS_PROMPT "SMDK5250 # " #define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ #define CONFIG_SYS_PBSIZE 384 /* Print Buffer Size */ #define CONFIG_SYS_MAXARGS 16 /* max number of command args */ @@ -205,7 +204,6 @@ /* FLASH and environment organization */ #define CONFIG_SYS_NO_FLASH #undef CONFIG_CMD_IMLS -#define CONFIG_IDENT_STRING " for SMDK5250"
#define CONFIG_SYS_MMC_ENV_DEV 0
@@ -258,9 +256,6 @@ #define CONFIG_I2C_EDID
/* SPI */ -#define CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_SPI_FLASH - #ifdef CONFIG_SPI_FLASH #define CONFIG_EXYNOS_SPI #define CONFIG_CMD_SF @@ -299,7 +294,6 @@ #endif
/* Sound */ -#define CONFIG_CMD_SOUND #ifdef CONFIG_CMD_SOUND #define CONFIG_SOUND #define CONFIG_I2S @@ -317,7 +311,6 @@ #define CONFIG_SHA256
/* Display */ -#define CONFIG_LCD #ifdef CONFIG_LCD #define CONFIG_EXYNOS_FB #define CONFIG_EXYNOS_DP diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h index 183aae7..b1bb783 100644 --- a/include/configs/smdk5250.h +++ b/include/configs/smdk5250.h @@ -9,9 +9,17 @@ #ifndef __CONFIG_SMDK_H #define __CONFIG_SMDK_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_LCD +#define CONFIG_CMD_SOUND + #include <configs/exynos5250-dt.h>
-#undef CONFIG_DEFAULT_DEVICE_TREE #define CONFIG_DEFAULT_DEVICE_TREE exynos5250-smdk5250
+#define CONFIG_SYS_PROMPT "SMDK5250 # " + +#define CONFIG_IDENT_STRING " for SMDK5250" + #endif /* __CONFIG_SMDK_H */ diff --git a/include/configs/snow.h b/include/configs/snow.h index ed5c0b6..4d34c48 100644 --- a/include/configs/snow.h +++ b/include/configs/snow.h @@ -9,9 +9,17 @@ #ifndef __CONFIG_SNOW_H #define __CONFIG_SNOW_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_LCD +#define CONFIG_CMD_SOUND + #include <configs/exynos5250-dt.h>
-#undef CONFIG_DEFAULT_DEVICE_TREE #define CONFIG_DEFAULT_DEVICE_TREE exynos5250-snow
+#define CONFIG_SYS_PROMPT "SMDK5250 # " + +#define CONFIG_IDENT_STRING " for SMDK5250" + #endif /* __CONFIG_SNOW_H */

On 25/09/13 19:42, Andre Przywara wrote:
The config file exynos5250-dt.h is used by two boards currently. To allow the Arndale board to use it too in the future, move some board specific defines out of that generic file. Update the copyright, header comment and include protection define on the way.
Signed-off-by: Andre Przywara andre.przywara@linaro.org
include/configs/exynos5250-dt.h | 15 ++++----------- include/configs/smdk5250.h | 10 +++++++++- include/configs/snow.h | 10 +++++++++- 3 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index c8c4b35..e855745 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -1,13 +1,13 @@ /*
- Copyright (C) 2012 Samsung Electronics
- Copyright (C) 2012,2013 Samsung Electronics
- Configuration settings for the SAMSUNG EXYNOS5250 board.
*/
- Configuration settings for SAMSUNG EXYNOS5250 based boards.
- SPDX-License-Identifier: GPL-2.0+
-#ifndef __CONFIG_H -#define __CONFIG_H +#ifndef __CONFIG_EXYNOS_5250_DT_H +#define __CONFIG_EXYNOS_5250_DT_H
/* High Level Configuration Options */ #define CONFIG_SAMSUNG /* in a SAMSUNG core */ @@ -165,7 +165,6 @@ /* Miscellaneous configurable options */ #define CONFIG_SYS_LONGHELP /* undef to save memory */ #define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */ -#define CONFIG_SYS_PROMPT "SMDK5250 # " #define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ #define CONFIG_SYS_PBSIZE 384 /* Print Buffer Size */ #define CONFIG_SYS_MAXARGS 16 /* max number of command args */ @@ -205,7 +204,6 @@ /* FLASH and environment organization */ #define CONFIG_SYS_NO_FLASH #undef CONFIG_CMD_IMLS -#define CONFIG_IDENT_STRING " for SMDK5250"
#define CONFIG_SYS_MMC_ENV_DEV 0
@@ -258,9 +256,6 @@ #define CONFIG_I2C_EDID
/* SPI */ -#define CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_SPI_FLASH
#ifdef CONFIG_SPI_FLASH #define CONFIG_EXYNOS_SPI #define CONFIG_CMD_SF @@ -299,7 +294,6 @@ #endif
/* Sound */ -#define CONFIG_CMD_SOUND #ifdef CONFIG_CMD_SOUND #define CONFIG_SOUND #define CONFIG_I2S @@ -317,7 +311,6 @@ #define CONFIG_SHA256
/* Display */ -#define CONFIG_LCD #ifdef CONFIG_LCD #define CONFIG_EXYNOS_FB #define CONFIG_EXYNOS_DP diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h index 183aae7..b1bb783 100644 --- a/include/configs/smdk5250.h +++ b/include/configs/smdk5250.h @@ -9,9 +9,17 @@ #ifndef __CONFIG_SMDK_H #define __CONFIG_SMDK_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_LCD +#define CONFIG_CMD_SOUND
#include <configs/exynos5250-dt.h>
-#undef CONFIG_DEFAULT_DEVICE_TREE #define CONFIG_DEFAULT_DEVICE_TREE exynos5250-smdk5250
+#define CONFIG_SYS_PROMPT "SMDK5250 # "
+#define CONFIG_IDENT_STRING " for SMDK5250"
#endif /* __CONFIG_SMDK_H */ diff --git a/include/configs/snow.h b/include/configs/snow.h index ed5c0b6..4d34c48 100644 --- a/include/configs/snow.h +++ b/include/configs/snow.h @@ -9,9 +9,17 @@ #ifndef __CONFIG_SNOW_H #define __CONFIG_SNOW_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_LCD +#define CONFIG_CMD_SOUND
#include <configs/exynos5250-dt.h>
-#undef CONFIG_DEFAULT_DEVICE_TREE #define CONFIG_DEFAULT_DEVICE_TREE exynos5250-snow
+#define CONFIG_SYS_PROMPT "SMDK5250 # "
"SNOW #"?
+#define CONFIG_IDENT_STRING " for SMDK5250"
SNOW?
#endif /* __CONFIG_SNOW_H */
Thanks, Minkyu Kang.

Hi Andre,
I have submitted a patch set for support of exynos5420 in which I separate the config files to form one common exynos5-dt.h and which is inherited in 5420 and 5250 config file. May be u can use the same patch.
On Thu, Dec 5, 2013 at 1:38 PM, Minkyu Kang mk7.kang@samsung.com wrote:
On 25/09/13 19:42, Andre Przywara wrote:
The config file exynos5250-dt.h is used by two boards currently. To allow the Arndale board to use it too in the future, move some board specific defines out of that generic file. Update the copyright, header comment and include protection define on the way.
Signed-off-by: Andre Przywara andre.przywara@linaro.org
include/configs/exynos5250-dt.h | 15 ++++----------- include/configs/smdk5250.h | 10 +++++++++- include/configs/snow.h | 10 +++++++++- 3 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index c8c4b35..e855745 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -1,13 +1,13 @@ /*
- Copyright (C) 2012 Samsung Electronics
- Copyright (C) 2012,2013 Samsung Electronics
- Configuration settings for the SAMSUNG EXYNOS5250 board.
*/
- Configuration settings for SAMSUNG EXYNOS5250 based boards.
- SPDX-License-Identifier: GPL-2.0+
-#ifndef __CONFIG_H -#define __CONFIG_H +#ifndef __CONFIG_EXYNOS_5250_DT_H +#define __CONFIG_EXYNOS_5250_DT_H
/* High Level Configuration Options */ #define CONFIG_SAMSUNG /* in a SAMSUNG core */ @@ -165,7 +165,6 @@ /* Miscellaneous configurable options */ #define CONFIG_SYS_LONGHELP /* undef to save memory */ #define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */ -#define CONFIG_SYS_PROMPT "SMDK5250 # " #define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ #define CONFIG_SYS_PBSIZE 384 /* Print Buffer Size */ #define CONFIG_SYS_MAXARGS 16 /* max number of command args */ @@ -205,7 +204,6 @@ /* FLASH and environment organization */ #define CONFIG_SYS_NO_FLASH #undef CONFIG_CMD_IMLS -#define CONFIG_IDENT_STRING " for SMDK5250"
#define CONFIG_SYS_MMC_ENV_DEV 0
@@ -258,9 +256,6 @@ #define CONFIG_I2C_EDID
/* SPI */ -#define CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_SPI_FLASH
#ifdef CONFIG_SPI_FLASH #define CONFIG_EXYNOS_SPI #define CONFIG_CMD_SF @@ -299,7 +294,6 @@ #endif
/* Sound */ -#define CONFIG_CMD_SOUND #ifdef CONFIG_CMD_SOUND #define CONFIG_SOUND #define CONFIG_I2S @@ -317,7 +311,6 @@ #define CONFIG_SHA256
/* Display */ -#define CONFIG_LCD #ifdef CONFIG_LCD #define CONFIG_EXYNOS_FB #define CONFIG_EXYNOS_DP diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h index 183aae7..b1bb783 100644 --- a/include/configs/smdk5250.h +++ b/include/configs/smdk5250.h @@ -9,9 +9,17 @@ #ifndef __CONFIG_SMDK_H #define __CONFIG_SMDK_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_LCD +#define CONFIG_CMD_SOUND
#include <configs/exynos5250-dt.h>
-#undef CONFIG_DEFAULT_DEVICE_TREE #define CONFIG_DEFAULT_DEVICE_TREE exynos5250-smdk5250
+#define CONFIG_SYS_PROMPT "SMDK5250 # "
+#define CONFIG_IDENT_STRING " for SMDK5250"
#endif /* __CONFIG_SMDK_H */ diff --git a/include/configs/snow.h b/include/configs/snow.h index ed5c0b6..4d34c48 100644 --- a/include/configs/snow.h +++ b/include/configs/snow.h @@ -9,9 +9,17 @@ #ifndef __CONFIG_SNOW_H #define __CONFIG_SNOW_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_LCD +#define CONFIG_CMD_SOUND
#include <configs/exynos5250-dt.h>
-#undef CONFIG_DEFAULT_DEVICE_TREE #define CONFIG_DEFAULT_DEVICE_TREE exynos5250-snow
+#define CONFIG_SYS_PROMPT "SMDK5250 # "
"SNOW #"?
+#define CONFIG_IDENT_STRING " for SMDK5250"
SNOW?
#endif /* __CONFIG_SNOW_H */
Thanks, Minkyu Kang. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On 12/05/2013 11:44 AM, Rajeshwari Birje wrote:
Minkyu, Rajeshwari,
I have submitted a patch set for support of exynos5420 in which I separate the config files to form one common exynos5-dt.h and which is inherited in 5420 and 5250 config file. May be u can use the same patch.
Thanks for the info and the other comments. Did the patch already appear in some tree I could base my work on? I will try to find some time in the next week to look at that again.
Thanks, Andre.
On Thu, Dec 5, 2013 at 1:38 PM, Minkyu Kang mk7.kang@samsung.com wrote:
On 25/09/13 19:42, Andre Przywara wrote:
The config file exynos5250-dt.h is used by two boards currently. To allow the Arndale board to use it too in the future, move some board specific defines out of that generic file. Update the copyright, header comment and include protection define on the way.
Signed-off-by: Andre Przywara andre.przywara@linaro.org
include/configs/exynos5250-dt.h | 15 ++++----------- include/configs/smdk5250.h | 10 +++++++++- include/configs/snow.h | 10 +++++++++- 3 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index c8c4b35..e855745 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -1,13 +1,13 @@ /*
- Copyright (C) 2012 Samsung Electronics
- Copyright (C) 2012,2013 Samsung Electronics
- Configuration settings for the SAMSUNG EXYNOS5250 board.
*/
- Configuration settings for SAMSUNG EXYNOS5250 based boards.
- SPDX-License-Identifier: GPL-2.0+
-#ifndef __CONFIG_H -#define __CONFIG_H +#ifndef __CONFIG_EXYNOS_5250_DT_H +#define __CONFIG_EXYNOS_5250_DT_H
/* High Level Configuration Options */ #define CONFIG_SAMSUNG /* in a SAMSUNG core */ @@ -165,7 +165,6 @@ /* Miscellaneous configurable options */ #define CONFIG_SYS_LONGHELP /* undef to save memory */ #define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */ -#define CONFIG_SYS_PROMPT "SMDK5250 # " #define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ #define CONFIG_SYS_PBSIZE 384 /* Print Buffer Size */ #define CONFIG_SYS_MAXARGS 16 /* max number of command args */ @@ -205,7 +204,6 @@ /* FLASH and environment organization */ #define CONFIG_SYS_NO_FLASH #undef CONFIG_CMD_IMLS -#define CONFIG_IDENT_STRING " for SMDK5250"
#define CONFIG_SYS_MMC_ENV_DEV 0
@@ -258,9 +256,6 @@ #define CONFIG_I2C_EDID
/* SPI */ -#define CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_SPI_FLASH
- #ifdef CONFIG_SPI_FLASH #define CONFIG_EXYNOS_SPI #define CONFIG_CMD_SF
@@ -299,7 +294,6 @@ #endif
/* Sound */ -#define CONFIG_CMD_SOUND #ifdef CONFIG_CMD_SOUND #define CONFIG_SOUND #define CONFIG_I2S @@ -317,7 +311,6 @@ #define CONFIG_SHA256
/* Display */ -#define CONFIG_LCD #ifdef CONFIG_LCD #define CONFIG_EXYNOS_FB #define CONFIG_EXYNOS_DP diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h index 183aae7..b1bb783 100644 --- a/include/configs/smdk5250.h +++ b/include/configs/smdk5250.h @@ -9,9 +9,17 @@ #ifndef __CONFIG_SMDK_H #define __CONFIG_SMDK_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_LCD +#define CONFIG_CMD_SOUND
- #include <configs/exynos5250-dt.h>
-#undef CONFIG_DEFAULT_DEVICE_TREE #define CONFIG_DEFAULT_DEVICE_TREE exynos5250-smdk5250
+#define CONFIG_SYS_PROMPT "SMDK5250 # "
+#define CONFIG_IDENT_STRING " for SMDK5250"
- #endif /* __CONFIG_SMDK_H */
diff --git a/include/configs/snow.h b/include/configs/snow.h index ed5c0b6..4d34c48 100644 --- a/include/configs/snow.h +++ b/include/configs/snow.h @@ -9,9 +9,17 @@ #ifndef __CONFIG_SNOW_H #define __CONFIG_SNOW_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_LCD +#define CONFIG_CMD_SOUND
- #include <configs/exynos5250-dt.h>
-#undef CONFIG_DEFAULT_DEVICE_TREE #define CONFIG_DEFAULT_DEVICE_TREE exynos5250-snow
+#define CONFIG_SYS_PROMPT "SMDK5250 # "
"SNOW #"?
+#define CONFIG_IDENT_STRING " for SMDK5250"
SNOW?
- #endif /* __CONFIG_SNOW_H */
Thanks, Minkyu Kang. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

AFAIK the CROS_EC is only available on the Chromebook. So move the corresponding define to the snow config file and include the keyboard only in this case. Also the LCD should be protected in the same way, though this seems to be also valid for the SMDK5250 board. Unfortunately compilation breaks for the SMDK5250 without the CROS_EC define, so pull it in for this board too for the time being.
Signed-off-by: Andre Przywara andre.przywara@linaro.org --- include/configs/exynos5250-dt.h | 22 +++++++++++++++++----- include/configs/smdk5250.h | 1 + include/configs/snow.h | 1 + 3 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index e855745..5f44684 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -74,23 +74,35 @@ #define CONFIG_SILENT_CONSOLE
/* Enable keyboard */ -#define CONFIG_CROS_EC /* CROS_EC protocol */ +#ifdef CONFIG_CROS_EC /* ChromeOS embedded controller */ #define CONFIG_CROS_EC_SPI /* Support CROS_EC over SPI */ #define CONFIG_CROS_EC_I2C /* Support CROS_EC over I2C */ #define CONFIG_CROS_EC_KEYB /* CROS_EC keyboard input */ #define CONFIG_CMD_CROS_EC #define CONFIG_KEYBOARD +#endif
/* Console configuration */ #define CONFIG_CONSOLE_MUX #define CONFIG_SYS_CONSOLE_IS_IN_ENV -#define EXYNOS_DEVICE_SETTINGS \ - "stdin=serial,cros-ec-keyb\0" \ - "stdout=serial,lcd\0" \ + +#ifdef CONFIG_KEYBOARD +#define EXYNOS_DEVICE_INPUT "stdin=serial,cros-ec-keyb\0" +#else +#define EXYNOS_DEVICE_INPUT "stdin=serial\0" +#endif + +#ifdef CONFIG_LCD +#define EXYNOS_DEVICE_OUTPUT "stdout=serial,lcd\0" \ "stderr=serial,lcd\0" +#else +#define EXYNOS_DEVICE_OUTPUT "stdout=serial\0" \ + "stderr=serial\0" +#endif
#define CONFIG_EXTRA_ENV_SETTINGS \ - EXYNOS_DEVICE_SETTINGS + EXYNOS_DEVICE_INPUT \ + EXYNOS_DEVICE_OUTPUT
/* SD/MMC configuration */ #define CONFIG_GENERIC_MMC diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h index b1bb783..b8150e9 100644 --- a/include/configs/smdk5250.h +++ b/include/configs/smdk5250.h @@ -13,6 +13,7 @@ #define CONFIG_SPI_FLASH #define CONFIG_LCD #define CONFIG_CMD_SOUND +#define CONFIG_CROS_EC
#include <configs/exynos5250-dt.h>
diff --git a/include/configs/snow.h b/include/configs/snow.h index 4d34c48..0cf7322 100644 --- a/include/configs/snow.h +++ b/include/configs/snow.h @@ -13,6 +13,7 @@ #define CONFIG_SPI_FLASH #define CONFIG_LCD #define CONFIG_CMD_SOUND +#define CONFIG_CROS_EC
#include <configs/exynos5250-dt.h>

Now that we have moved most of the board specific defines out of exynos5250-dt.h, we can replace arndale.h with an include of that generic file. Define the remaining, Arndale-specific options after that.
Signed-off-by: Andre Przywara andre.przywara@linaro.org --- include/configs/arndale.h | 242 +--------------------------------------------- 1 file changed, 5 insertions(+), 237 deletions(-)
diff --git a/include/configs/arndale.h b/include/configs/arndale.h index f9eb051..768d369 100644 --- a/include/configs/arndale.h +++ b/include/configs/arndale.h @@ -9,247 +9,15 @@ #ifndef __CONFIG_ARNDALE_H #define __CONFIG_ARNDALE_H
-/* High Level Configuration Options */ -#define CONFIG_SAMSUNG /* in a SAMSUNG core */ -#define CONFIG_S5P /* S5P Family */ -#define CONFIG_EXYNOS5 /* which is in a Exynos5 Family */ -#define CONFIG_EXYNOS5250 - -#include <asm/arch/cpu.h> /* get chip and board defs */ - -#define CONFIG_SYS_GENERIC_BOARD -#define CONFIG_ARCH_CPU_INIT -#define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO - -/* Enable fdt support for Exynos5250 */ -#define CONFIG_ARCH_DEVICE_TREE exynos5250 -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE - -/* Allow tracing to be enabled */ -#define CONFIG_TRACE -#define CONFIG_CMD_TRACE -#define CONFIG_TRACE_BUFFER_SIZE (16 << 20) -#define CONFIG_TRACE_EARLY_SIZE (8 << 20) -#define CONFIG_TRACE_EARLY -#define CONFIG_TRACE_EARLY_ADDR 0x50000000 - -/* Keep L2 Cache Disabled */ -#define CONFIG_SYS_DCACHE_OFF - -#define CONFIG_SYS_SDRAM_BASE 0x40000000 -#define CONFIG_SYS_TEXT_BASE 0x43E00000 - -/* input clock of PLL: SMDK5250 has 24MHz input clock */ -#define CONFIG_SYS_CLK_FREQ 24000000 - -#define CONFIG_SETUP_MEMORY_TAGS -#define CONFIG_CMDLINE_TAG -#define CONFIG_INITRD_TAG -#define CONFIG_CMDLINE_EDITING - -/* Power Down Modes */ -#define S5P_CHECK_SLEEP 0x00000BAD -#define S5P_CHECK_DIDLE 0xBAD00000 -#define S5P_CHECK_LPA 0xABAD0000 - -/* Offset for inform registers */ -#define INFORM0_OFFSET 0x800 -#define INFORM1_OFFSET 0x804 - -/* Size of malloc() pool */ -#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (4 << 20)) - -/* select serial console configuration */ -#define CONFIG_BAUDRATE 115200 -#define EXYNOS5_DEFAULT_UART_OFFSET 0x010000 -#define CONFIG_SILENT_CONSOLE - -/* Console configuration */ -#define CONFIG_CONSOLE_MUX -#define CONFIG_SYS_CONSOLE_IS_IN_ENV -#define EXYNOS_DEVICE_SETTINGS \ - "stdin=serial\0" \ - "stdout=serial\0" \ - "stderr=serial\0" - -#define CONFIG_EXTRA_ENV_SETTINGS \ - EXYNOS_DEVICE_SETTINGS - -/* SD/MMC configuration */ -#define CONFIG_GENERIC_MMC -#define CONFIG_MMC -#define CONFIG_SDHCI -#define CONFIG_S5P_SDHCI -#define CONFIG_DWMMC -#define CONFIG_EXYNOS_DWMMC -#define CONFIG_SUPPORT_EMMC_BOOT - - -#define CONFIG_BOARD_EARLY_INIT_F -#define CONFIG_SKIP_LOWLEVEL_INIT - -/* PWM */ -#define CONFIG_PWM - -/* allow to overwrite serial and ethaddr */ -#define CONFIG_ENV_OVERWRITE - -/* Command definition*/ -#include <config_cmd_default.h> - -#define CONFIG_CMD_PING -#define CONFIG_CMD_ELF -#define CONFIG_CMD_MMC -#define CONFIG_CMD_EXT2 -#define CONFIG_CMD_FAT -#define CONFIG_CMD_NET -#define CONFIG_CMD_HASH - -#define CONFIG_BOOTDELAY 3 -#define CONFIG_ZERO_BOOTDELAY_CHECK - -/* USB */ -#define CONFIG_CMD_USB -#define CONFIG_USB_EHCI -#define CONFIG_USB_EHCI_EXYNOS -#define CONFIG_USB_STORAGE - -/* MMC SPL */ -#define CONFIG_SPL -#define COPY_BL2_FNPTR_ADDR 0x02020030 - -#define CONFIG_SPL_LIBCOMMON_SUPPORT - -/* specific .lds file */ -#define CONFIG_SPL_LDSCRIPT "board/samsung/common/exynos-uboot-spl.lds" -#define CONFIG_SPL_TEXT_BASE 0x02023400 -#define CONFIG_SPL_MAX_FOOTPRINT (14 * 1024) - -#define CONFIG_BOOTCOMMAND "mmc read 40007000 451 2000; bootm 40007000" - -/* Miscellaneous configurable options */ -#define CONFIG_SYS_LONGHELP /* undef to save memory */ -#define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */ -#define CONFIG_SYS_PROMPT "ARNDALE # " -#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ -#define CONFIG_SYS_PBSIZE 384 /* Print Buffer Size */ -#define CONFIG_SYS_MAXARGS 16 /* max number of command args */ -#define CONFIG_DEFAULT_CONSOLE "console=ttySAC2,115200n8\0" -/* Boot Argument Buffer Size */ -#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE -/* memtest works on */ -#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE -#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_SDRAM_BASE + 0x5E00000) -#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x3E00000) - -#define CONFIG_SYS_HZ 1000 - -#define CONFIG_RD_LVL - -#define CONFIG_NR_DRAM_BANKS 8 -#define SDRAM_BANK_SIZE (256UL << 20UL) /* 256 MB */ -#define PHYS_SDRAM_1 CONFIG_SYS_SDRAM_BASE -#define PHYS_SDRAM_1_SIZE SDRAM_BANK_SIZE -#define PHYS_SDRAM_2 (CONFIG_SYS_SDRAM_BASE + SDRAM_BANK_SIZE) -#define PHYS_SDRAM_2_SIZE SDRAM_BANK_SIZE -#define PHYS_SDRAM_3 (CONFIG_SYS_SDRAM_BASE + (2 * SDRAM_BANK_SIZE)) -#define PHYS_SDRAM_3_SIZE SDRAM_BANK_SIZE -#define PHYS_SDRAM_4 (CONFIG_SYS_SDRAM_BASE + (3 * SDRAM_BANK_SIZE)) -#define PHYS_SDRAM_4_SIZE SDRAM_BANK_SIZE -#define PHYS_SDRAM_5 (CONFIG_SYS_SDRAM_BASE + (4 * SDRAM_BANK_SIZE)) -#define PHYS_SDRAM_5_SIZE SDRAM_BANK_SIZE -#define PHYS_SDRAM_6 (CONFIG_SYS_SDRAM_BASE + (5 * SDRAM_BANK_SIZE)) -#define PHYS_SDRAM_6_SIZE SDRAM_BANK_SIZE -#define PHYS_SDRAM_7 (CONFIG_SYS_SDRAM_BASE + (6 * SDRAM_BANK_SIZE)) -#define PHYS_SDRAM_7_SIZE SDRAM_BANK_SIZE -#define PHYS_SDRAM_8 (CONFIG_SYS_SDRAM_BASE + (7 * SDRAM_BANK_SIZE)) -#define PHYS_SDRAM_8_SIZE SDRAM_BANK_SIZE - -#define CONFIG_SYS_MONITOR_BASE 0x00000000 - -/* FLASH and environment organization */ -#define CONFIG_SYS_NO_FLASH -#undef CONFIG_CMD_IMLS -#define CONFIG_IDENT_STRING " for ARNDALE" - -#define CONFIG_SYS_MMC_ENV_DEV 0 - #define CONFIG_ENV_IS_IN_MMC -#define CONFIG_SECURE_BL1_ONLY - -/* Secure FW size configuration */ -#ifdef CONFIG_SECURE_BL1_ONLY -#define CONFIG_SEC_FW_SIZE (8 << 10) /* 8KB */ -#else -#define CONFIG_SEC_FW_SIZE 0 -#endif - -/* Configuration of BL1, BL2, ENV Blocks on mmc */ -#define CONFIG_RES_BLOCK_SIZE (512) -#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ -#define CONFIG_BL2_SIZE (512UL << 10UL) /* 512 KB */ -#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */
-#define CONFIG_BL1_OFFSET (CONFIG_RES_BLOCK_SIZE + CONFIG_SEC_FW_SIZE) -#define CONFIG_BL2_OFFSET (CONFIG_BL1_OFFSET + CONFIG_BL1_SIZE) -#define CONFIG_ENV_OFFSET (CONFIG_BL2_OFFSET + CONFIG_BL2_SIZE) - -/* U-boot copy size from boot Media to DRAM.*/ -#define BL2_START_OFFSET (CONFIG_BL2_OFFSET/512) -#define BL2_SIZE_BLOC_COUNT (CONFIG_BL2_SIZE/512) - -#define CONFIG_SPI_BOOTING -#define EXYNOS_COPY_SPI_FNPTR_ADDR 0x02020058 -#define SPI_FLASH_UBOOT_POS (CONFIG_SEC_FW_SIZE + CONFIG_BL1_SIZE) - -#define CONFIG_DOS_PARTITION -#define CONFIG_EFI_PARTITION -#define CONFIG_CMD_PART -#define CONFIG_PARTITION_UUIDS - - -#define CONFIG_IRAM_STACK 0x02050000 - -#define CONFIG_SYS_INIT_SP_ADDR CONFIG_IRAM_STACK - -/* I2C */ -#define CONFIG_SYS_I2C_INIT_BOARD -#define CONFIG_HARD_I2C -#define CONFIG_CMD_I2C -#define CONFIG_SYS_I2C_SPEED 100000 /* 100 Kbps */ -#define CONFIG_DRIVER_S3C24X0_I2C -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_MAX_I2C_NUM 8 -#define CONFIG_SYS_I2C_SLAVE 0x0 -#define CONFIG_I2C_EDID - -/* PMIC */ -#define CONFIG_POWER -#define CONFIG_POWER_I2C -#define CONFIG_POWER_MAX77686 +#include <configs/exynos5250-dt.h>
#define CONFIG_DEFAULT_DEVICE_TREE exynos5250-arndale
-/* Ethernet Controllor Driver */ -#ifdef CONFIG_CMD_NET -#define CONFIG_SMC911X -#define CONFIG_SMC911X_BASE 0x5000000 -#define CONFIG_SMC911X_16_BIT -#define CONFIG_ENV_SROM_BANK 1 -#endif /*CONFIG_CMD_NET*/ - -/* Enable PXE Support */ -#ifdef CONFIG_CMD_NET -#define CONFIG_CMD_PXE -#define CONFIG_MENU -#endif - -/* Enable devicetree support */ -#define CONFIG_OF_LIBFDT +#define CONFIG_SYS_PROMPT "ARNDALE # "
-/* Enable Time Command */ -#define CONFIG_CMD_TIME +#undef CONFIG_DEFAULT_CONSOLE +#define CONFIG_DEFAULT_CONSOLE "console=ttySAC2,115200n8\0"
-#endif /* __CONFIG_H */ +#endif /* __CONFIG_ARNDALE_H */

Hi Andre,
On Wed, Sep 25, 2013 at 4:42 AM, Andre Przywara andre.przywara@linaro.orgwrote:
Hi,
while working on HYP mode support for Exynos 5250 based boards, I fixed some shortcomings in their configuration files.
The purpose of this series is to get rid of the elaborate arndale.h and replace it mostly by an include of exynos5250-dt.h, which currently has an about 90% overlap. I couldn't find any prior art, please bear with me if I have missed something on the list.
- Patch 1 fixes a bug, where PMIC support would not have been included
in the Arndale build.
- Patch 2 removes double definitions.
Those two should be considered regardless of the others.
- Patch 3 prepares the consolidation of the config files by moving
board specific defines out of the generic file.
- Patch 4 makes keyboard and LCD support board dependent, please have
a closer look at this. I guess SMDK5250 does not have the EC, but it breaks compilation if that is excluded.
- Patch 5 then finally removes the now redundant defines in arndale.h
and replaces them with an include of exynos5250-dt.h.
This series is mostly refactoring, though the config options change a bit for some boards. I could only compile test it, so please test it if you have the hardware.
I'd like to adjust the approach slightly. The idea with exynos5250-dt.h is that it mirrors the exynos5250-dt.c file in the kernel - it is intended that we can create a U-Boot that will run on any Exynos 5250 board, with an appropriate device tree file provided. In short I'd like to create an 'exynos5250-dt' board config.
Your series moves towards exynos5250-dt.h just being a common file used by many boards. So can we rename this file, perhaps to exynos5250-common.h, before making your changes? Then I can do a patch to add the generic Exynos5250 board.
Regards, Simon
Thanks! Andre
Signed-off-by: Andre Przywara andre.przywara@linaro.org
Andre Przywara (5): ARM: Exynos5250: rename obsoleted CONFIG_PMIC defines ARM: Exynos5250: remove redundant defines in exynos5250-dt.h ARM: Exynos5250: move feature defines out of generic config file ARM: snow: move defines for Chromebook embedded controller ARM: Arndale: include generic exynos5250-dt.h in arndale.h
drivers/power/power_fsl.c | 2 +- include/configs/arndale.h | 242 +--------------------------------------- include/configs/exynos5250-dt.h | 63 ++++------- include/configs/smdk5250.h | 11 +- include/configs/snow.h | 11 +- 5 files changed, 47 insertions(+), 282 deletions(-)
-- 1.7.12.1
participants (4)
-
Andre Przywara
-
Minkyu Kang
-
Rajeshwari Birje
-
Simon Glass