Skip to contentSkip to conversation

cm-fx6 updates and a new splash screen feature

PATCH New Nikita Kiryanov 6 participants 50 messages Jan 14, 2015 – Jan 29, 2015

lore
Share & tools
lore
#0 lore raw

cover cm-fx6 updates and a new splash screen feature

This series consists of updates for cm-fx6. Some of these updates (specifically:
compulab: splash: use errno values
compulab: splash: refactor splash.c
compulab: splash: support multiple splash sources
compulab: splash: support loading splash from sf)
produce an end result which is not really compulab specific and could be useful for other boards as well, so as a last step in the series this code is converted to common code (common: convert compulab splash load code to common code).

The new feature: CONFIG_SPLASH_SOURCE
This user option will enable splash_source.c, a module which implements a standard way for boards to define a collection of splash screen locations, as well as routines for loading the splash image into memory.

When invoked using splash_source_load(locations, size), the module will consult the environment variable "splashsource" and compare its value with the splash location names as provided by board code. If there's a match, that splash location is used. If there's no mach, no splash image will be loaded. If splashsource is left undefined, the first splash location is used as default.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Anatolij Gustschin <[email protected]>

Nikita Kiryanov (14):
arm: mx6: cm-fx6: expand boot sequence
arm: mx6: cm-fx6: change dtb node for ethaddr
compulab: eeprom: allow reading mac address from multiple eeproms
arm: mx6: cm-fx6: pass 2nd nic mac addr to Linux
arm: mx6: cm-fx6: increase size of malloc area
arm: mx6: cm-fx6: add hdmi console support
arm: mx6: cm-fx6: display compulab logo
arm: mx6: cm-fx6: add support for usb keyboard
compulab: splash: use errno values
compulab: splash: refactor splash.c
compulab: splash: support multiple splash sources
compulab: splash: support loading splash from sf
arm: mx6: cm-fx6: add splash screen support
common: convert compulab splash load code to common code

 board/compulab/cm_fx6/cm_fx6.c     |  95 ++++++++++++++++++--
 board/compulab/cm_t335/cm_t335.c   |   2 +-
 board/compulab/cm_t35/cm_t35.c     |  14 ++-
 board/compulab/cm_t3517/cm_t3517.c |   2 +-
 board/compulab/cm_t54/cm_t54.c     |   2 +-
 board/compulab/common/Makefile     |   1 -
 board/compulab/common/common.h     |   9 --
 board/compulab/common/eeprom.c     |  20 +++--
 board/compulab/common/eeprom.h     |   4 +-
 board/compulab/common/splash.c     |  72 ---------------
 common/Makefile                    |   1 +
 common/splash_source.c             | 176 +++++++++++++++++++++++++++++++++++++
 doc/README.splashprepare           |  13 +++
 include/configs/cm_fx6.h           | 158 +++++++++++++++++++--------------
 include/configs/cm_t35.h           |   1 +
 include/splash.h                   |  11 +++
 tools/logos/compulab.bmp           | Bin 0 -> 31810 bytes
 17 files changed, 409 insertions(+), 172 deletions(-)
 delete mode 100644 board/compulab/common/splash.c
 create mode 100644 common/splash_source.c
 create mode 100644 tools/logos/compulab.bmp
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/14 arm: mx6: cm-fx6: expand boot sequence

Expand boot sequence to the following order:
1) mmc boot: mmc boot script, then mmc bootm, then mmc bootz.
2) usb boot: usb boot script.
3) sata boot: sata boot script, sata bootm, sata bootz.
4) nand boot: nand bootm, then nand bootz.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 include/configs/cm_fx6.h | 127 +++++++++++++++++++++++------------------------
 1 file changed, 61 insertions(+), 66 deletions(-)
include/configs/cm_fx6.h +61 -66
index f7277eb..d79c83b 100644
@@ -103,97 +103,92 @@
 #define CONFIG_ENV_OFFSET		(768 * 1024)
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
-	"kernel=uImage-cm-fx6\0" \
 	"autoload=no\0" \
+	"kernel=uImage-cm-fx6\0" \
+	"script=boot.scr\0" \
+	"dtb=cm-fx6.dtb\0" \
+	"bootm_low=18000000\0" \
 	"loadaddr=0x10800000\0" \
 	"fdtaddr=0x11000000\0" \
 	"console=ttymxc3,115200\0" \
 	"ethprime=FEC0\0" \
-	"bootscr=boot.scr\0" \
-	"bootm_low=18000000\0" \
 	"video_hdmi=mxcfb0:dev=hdmi,1920x1080M-32 at 50,if=RGB32\0" \
 	"video_dvi=mxcfb0:dev=dvi,1280x800M-32 at 50,if=RGB32\0" \
-	"fdtfile=cm-fx6.dtb\0" \
 	"doboot=bootm ${loadaddr}\0" \
-	"loadfdt=false\0" \
+	"doloadfdt=false\0" \
 	"setboottypez=setenv kernel zImage-cm-fx6;" \
 		"setenv doboot bootz ${loadaddr} - ${fdtaddr};" \
-		"setenv loadfdt true;\0" \
+		"setenv doloadfdt true;\0" \
 	"setboottypem=setenv kernel uImage-cm-fx6;" \
 		"setenv doboot bootm ${loadaddr};" \
-		"setenv loadfdt false;\0"\
-	"run_eboot=echo Starting EBOOT ...; "\
-		"mmc dev ${mmcdev} && " \
-		"mmc rescan && mmc read 10042000 a 400 && go 10042000\0" \
-	"mmcdev=2\0" \
+		"setenv doloadfdt false;\0"\
 	"mmcroot=/dev/mmcblk0p2 rw rootwait\0" \
-	"loadmmcbootscript=load mmc ${mmcdev} ${loadaddr} ${bootscr}\0" \
-	"mmcbootscript=echo Running bootscript from mmc ...; "\
-		"source ${loadaddr}\0" \
-	"mmcargs=setenv bootargs console=${console} " \
-		"root=${mmcroot} " \
-		"${video}\0" \
-	"mmcloadkernel=load mmc ${mmcdev} ${loadaddr} ${kernel}\0" \
-	"mmcloadfdt=load mmc ${mmcdev} ${fdtaddr} ${fdtfile}\0" \
-	"mmcboot=echo Booting from mmc ...; " \
-		"run mmcargs; " \
-		"run doboot\0" \
-	"satadev=0\0" \
 	"sataroot=/dev/sda2 rw rootwait\0" \
-	"sataargs=setenv bootargs console=${console} " \
-		"root=${sataroot} " \
-		"${video}\0" \
-	"loadsatabootscript=load sata ${satadev} ${loadaddr} ${bootscr}\0" \
-	"satabootscript=echo Running bootscript from sata ...; " \
-		"source ${loadaddr}\0" \
-	"sataloadkernel=load sata ${satadev} ${loadaddr} ${kernel}\0" \
-	"sataloadfdt=load sata ${satadev} ${fdtaddr} ${fdtfile}\0" \
-	"sataboot=echo Booting from sata ...; "\
-		"run sataargs; " \
-		"run doboot\0" \
 	"nandroot=/dev/mtdblock4 rw\0" \
 	"nandrootfstype=ubifs\0" \
+	"mmcargs=setenv bootargs console=${console} root=${mmcroot} " \
+		"${video}\0" \
+	"sataargs=setenv bootargs console=${console} root=${sataroot} " \
+		"${video}\0" \
 	"nandargs=setenv bootargs console=${console} " \
 		"root=${nandroot} " \
 		"rootfstype=${nandrootfstype} " \
 		"${video}\0" \
-	"nandloadfdt=nand read ${fdtaddr} 780000 80000;\0" \
-	"nandboot=echo Booting from nand ...; " \
-		"run nandargs; " \
-		"nand read ${loadaddr} 0 780000; " \
-		"if ${loadfdt}; then " \
+	"nandboot=if run nandloadkernel; then " \
 			"run nandloadfdt;" \
-		"fi; " \
-		"run doboot\0" \
-	"boot=mmc dev ${mmcdev}; " \
-		"if mmc rescan; then " \
-			"if run loadmmcbootscript; then " \
-				"run mmcbootscript;" \
-			"else " \
-				"if run mmcloadkernel; then " \
-					"if ${loadfdt}; then " \
-						"run mmcloadfdt;" \
-					"fi;" \
-					"run mmcboot;" \
-				"fi;" \
-			"fi;" \
+			"run setboottypem;" \
+			"run storagebootcmd;" \
+			"run setboottypez;" \
+			"run storagebootcmd;" \
+		"fi;\0" \
+	"run_eboot=echo Starting EBOOT ...; "\
+		"mmc dev 2 && " \
+		"mmc rescan && mmc read 10042000 a 400 && go 10042000\0" \
+	"loadscript=load ${storagetype} ${storagedev} ${loadaddr} ${script};\0"\
+	"loadkernel=load ${storagetype} ${storagedev} ${loadaddr} ${kernel};\0"\
+	"loadfdt=load ${storagetype} ${storagedev} ${fdtaddr} ${dtb};\0" \
+	"bootscript=echo Running bootscript from ${storagetype} ...;" \
+		   "source ${loadaddr};\0" \
+	"nandloadkernel=nand read ${loadaddr} 0 780000;\0" \
+	"nandloadfdt=nand read ${fdtaddr} 780000 80000;\0" \
+	"setupmmcboot=setenv storagetype mmc; setenv storagedev 2;\0" \
+	"setupsataboot=setenv storagetype sata; setenv storagedev 0;\0" \
+	"setupnandboot=setenv storagetype nand;\0" \
+	"setupusbboot=setenv storagetype usb; setenv storagedev 0;\0" \
+	"storagebootcmd=echo Booting from ${storagetype} ...;" \
+			"run ${storagetype}args; run doboot;\0" \
+	"trybootk=if run loadkernel; then " \
+		"if ${doloadfdt}; then " \
+			"run loadfdt;" \
 		"fi;" \
-		"if sata init; then " \
-			"if run loadsatabootscript; then " \
-				"run satabootscript;" \
-			"else "\
-				"if run sataloadkernel; then " \
-					"if ${loadfdt}; then " \
-						"run sataloadfdt; " \
-					"fi;" \
-					"run sataboot;" \
-				"fi;" \
-			"fi;" \
+		"run storagebootcmd;" \
+		"fi;\0" \
+	"trybootsmz=if run loadscript; then " \
+			"run bootscript;" \
 		"fi;" \
-		"run nandboot\0"
+		"run setboottypem;" \
+		"run trybootk;" \
+		"run setboottypez;" \
+		"run trybootk;\0"
 
 #define CONFIG_BOOTCOMMAND \
-	"run setboottypem; run boot"
+	"run setupmmcboot;" \
+	"mmc dev ${storagedev};" \
+	"if mmc rescan; then " \
+		"run trybootsmz;" \
+	"fi;" \
+	"run setupusbboot;" \
+	"if usb start; then "\
+		"if run loadscript; then " \
+			"run bootscript;" \
+		"fi;" \
+	"fi;" \
+	"run setupsataboot;" \
+	"if sata init; then " \
+		"run trybootsmz;" \
+	"fi;" \
+	"run setupnandboot;" \
+	"run nandboot;"
 
 /* SPI */
 #define CONFIG_SPI
Signature · 1 line
1.9.1
#2 lore raw

PATCH 1/14 arm: mx6: cm-fx6: expand boot sequence

Quoted 9 lines · Nikita Kiryanov

Expand boot sequence to the following order:
1) mmc boot: mmc boot script, then mmc bootm, then mmc bootz.
2) usb boot: usb boot script.
3) sata boot: sata boot script, sata bootm, sata bootz.
4) nand boot: nand bootm, then nand bootz.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards,
Igor.
#3 lore raw

PATCH 1/14 arm: mx6: cm-fx6: expand boot sequence

In reply to Nikita Kiryanov
Quoted 10 lines · Nikita Kiryanov

Expand boot sequence to the following order:
1) mmc boot: mmc boot script, then mmc bootm, then mmc bootz.
2) usb boot: usb boot script.
3) sata boot: sata boot script, sata bootm, sata bootz.
4) nand boot: nand bootm, then nand bootz.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#4 lore raw

PATCH 2/14 arm: mx6: cm-fx6: change dtb node for ethaddr

In reply to Nikita Kiryanov

When passing eth address to Linux via dtb, the "local-mac-address" property should be set for "/soc/aips-bus at 02100000/ethernet at 02188000", not "/fec".

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
board/compulab/cm_fx6/cm_fx6.c +3 -2
index 84e3643..5ddf8c6 100644
@@ -464,8 +464,9 @@ int ft_board_setup(void *blob, bd_t *bd)
 
 	/* MAC addr */
 	if (eth_getenv_enetaddr("ethaddr", enetaddr)) {
-		fdt_find_and_setprop(blob, "/fec", "local-mac-address",
-				     enetaddr, 6, 1);
+		fdt_find_and_setprop(blob,
+				     "/soc/aips-bus at 02100000/ethernet at 02188000",
+				     "local-mac-address", enetaddr, 6, 1);
 	}
 
 	return 0;
Signature · 1 line
1.9.1
#6 lore raw

PATCH 2/14 arm: mx6: cm-fx6: change dtb node for ethaddr

In reply to Nikita Kiryanov
Quoted 8 lines · Nikita Kiryanov

When passing eth address to Linux via dtb, the "local-mac-address" property should be set for "/soc/aips-bus at 02100000/ethernet at 02188000", not "/fec".

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#7 lore raw

PATCH 3/14 compulab: eeprom: allow reading mac address from multiple eeproms

In reply to Nikita Kiryanov

Implement the option to select the eeprom i2c bus when reading mac address.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Ilya Ledvich <[email protected]>
Cc Dmitry Lifshitz <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c     |  2 +-
 board/compulab/cm_t335/cm_t335.c   |  2 +-
 board/compulab/cm_t35/cm_t35.c     |  2 +-
 board/compulab/cm_t3517/cm_t3517.c |  2 +-
 board/compulab/cm_t54/cm_t54.c     |  2 +-
 board/compulab/common/eeprom.c     | 20 +++++++++++++-------
 board/compulab/common/eeprom.h     |  4 ++--
 7 files changed, 20 insertions(+), 14 deletions(-)
board/compulab/cm_fx6/cm_fx6.c +1 -1
index 5ddf8c6..32f4434 100644
@@ -354,7 +354,7 @@ static int handle_mac_address(void)
 	if (rc)
 		return 0;
 
-	rc = cl_eeprom_read_mac_addr(enetaddr);
+	rc = cl_eeprom_read_mac_addr(enetaddr, CONFIG_SYS_I2C_EEPROM_BUS);
 	if (rc)
 		return rc;
 
board/compulab/cm_t335/cm_t335.c +1 -1
index 9583149..592ef3d 100644
@@ -110,7 +110,7 @@ static int handle_mac_address(void)
 	if (rv)
 		return 0;
 
-	rv = cl_eeprom_read_mac_addr(enetaddr);
+	rv = cl_eeprom_read_mac_addr(enetaddr, CONFIG_SYS_I2C_EEPROM_BUS);
 	if (rv)
 		get_efuse_mac_addr(enetaddr);
 
board/compulab/cm_t35/cm_t35.c +1 -1
index 43463d5..9a3b2ee 100644
@@ -429,7 +429,7 @@ static int handle_mac_address(void)
 	if (rc)
 		return 0;
 
-	rc = cl_eeprom_read_mac_addr(enetaddr);
+	rc = cl_eeprom_read_mac_addr(enetaddr, CONFIG_SYS_I2C_EEPROM_BUS);
 	if (rc)
 		return rc;
 
board/compulab/cm_t3517/cm_t3517.c +1 -1
index cac1ad9..624cf4c 100644
@@ -163,7 +163,7 @@ static int cm_t3517_handle_mac_address(void)
 	if (ret)
 		return 0;
 
-	ret = cl_eeprom_read_mac_addr(enetaddr);
+	ret = cl_eeprom_read_mac_addr(enetaddr, CONFIG_SYS_I2C_EEPROM_BUS);
 	if (ret) {
 		ret = am3517_get_efuse_enetaddr(enetaddr);
 		if (ret)
board/compulab/cm_t54/cm_t54.c +1 -1
index 2c2530a..fdea909 100644
@@ -165,7 +165,7 @@ static int handle_mac_address(void)
 	if (ret)
 		return 0;
 
-	ret = cl_eeprom_read_mac_addr(enetaddr);
+	ret = cl_eeprom_read_mac_addr(enetaddr, CONFIG_SYS_I2C_EEPROM_BUS);
 	if (ret || !is_valid_ether_addr(enetaddr))
 		generate_mac_addr(enetaddr);
 
board/compulab/common/eeprom.c +13 -7
index a45e7be..77bcea4 100644
@@ -31,6 +31,7 @@
 #define LAYOUT_INVALID	0
 #define LAYOUT_LEGACY	0xff
 
+static int cl_eeprom_bus;
 static int cl_eeprom_layout; /* Implicitly LAYOUT_INVALID */
 
 static int cl_eeprom_read(uint offset, uchar *buf, int len)
@@ -38,7 +39,7 @@ static int cl_eeprom_read(uint offset, uchar *buf, int len)
 	int res;
 	unsigned int current_i2c_bus = i2c_get_bus_num();
 
-	res = i2c_set_bus_num(CONFIG_SYS_I2C_EEPROM_BUS);
+	res = i2c_set_bus_num(cl_eeprom_bus);
 	if (res < 0)
 		return res;
 
@@ -50,13 +51,18 @@ static int cl_eeprom_read(uint offset, uchar *buf, int len)
 	return res;
 }
 
-static int cl_eeprom_setup_layout(void)
+static int cl_eeprom_setup(uint eeprom_bus)
 {
 	int res;
 
-	if (cl_eeprom_layout != LAYOUT_INVALID)
+	/*
+	 * We know the setup was already done when the layout is set to a valid
+	 * value and we're using the same bus as before.
+	 */
+	if (cl_eeprom_layout != LAYOUT_INVALID && eeprom_bus == cl_eeprom_bus)
 		return 0;
 
+	cl_eeprom_bus = eeprom_bus;
 	res = cl_eeprom_read(EEPROM_LAYOUT_VER_OFFSET,
 			     (uchar *)&cl_eeprom_layout, 1);
 	if (res) {
@@ -77,7 +83,7 @@ void get_board_serial(struct tag_serialnr *serialnr)
 
 	memset(serialnr, 0, sizeof(*serialnr));
 
-	if (cl_eeprom_setup_layout())
+	if (cl_eeprom_setup(CONFIG_SYS_I2C_EEPROM_BUS))
 		return;
 
 	offset = (cl_eeprom_layout != LAYOUT_LEGACY) ?
@@ -96,11 +102,11 @@ void get_board_serial(struct tag_serialnr *serialnr)
  * Routine: cl_eeprom_read_mac_addr
  * Description: read mac address and store it in buf.
  */
-int cl_eeprom_read_mac_addr(uchar *buf)
+int cl_eeprom_read_mac_addr(uchar *buf, uint eeprom_bus)
 {
 	uint offset;
 
-	if (cl_eeprom_setup_layout())
+	if (cl_eeprom_setup(eeprom_bus))
 		return 0;
 
 	offset = (cl_eeprom_layout != LAYOUT_LEGACY) ?
@@ -123,7 +129,7 @@ u32 cl_eeprom_get_board_rev(void)
 	if (board_rev)
 		return board_rev;
 
-	if (cl_eeprom_setup_layout())
+	if (cl_eeprom_setup(CONFIG_SYS_I2C_EEPROM_BUS))
 		return 0;
 
 	if (cl_eeprom_layout != LAYOUT_LEGACY)
board/compulab/common/eeprom.h +2 -2
index 85d5bf0..50c6b02 100644
@@ -11,10 +11,10 @@
 #define _EEPROM_
 
 #ifdef CONFIG_SYS_I2C
-int cl_eeprom_read_mac_addr(uchar *buf);
+int cl_eeprom_read_mac_addr(uchar *buf, uint eeprom_bus);
 u32 cl_eeprom_get_board_rev(void);
 #else
-static inline int cl_eeprom_read_mac_addr(uchar *buf)
+static inline int cl_eeprom_read_mac_addr(uchar *buf, uint eeprom_bus)
 {
 	return 1;
 }
Signature · 1 line
1.9.1
#8 lore raw

PATCH 3/14 compulab: eeprom: allow reading mac address from multiple eeproms

Quoted 8 lines · Nikita Kiryanov

Implement the option to select the eeprom i2c bus when reading mac address.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Ilya Ledvich <[email protected]>
Cc Dmitry Lifshitz <[email protected]>
Signature · 2 lines
Regards,
Igor.
#9 lore raw

PATCH 3/14 compulab: eeprom: allow reading mac address from multiple eeproms

In reply to Nikita Kiryanov
Quoted 9 lines · Nikita Kiryanov

Implement the option to select the eeprom i2c bus when reading mac address.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Ilya Ledvich <[email protected]>
Cc Dmitry Lifshitz <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#10 lore raw

PATCH 4/14 arm: mx6: cm-fx6: pass 2nd nic mac addr to Linux

In reply to Nikita Kiryanov

Obtain 2nd NIC MAC address from baseboard EEPROM and pass it to Linux.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)
board/compulab/cm_fx6/cm_fx6.c +16 -7
index 32f4434..eb18dfc 100644
@@ -345,32 +345,36 @@ static iomux_v3_cfg_t const enet_pads[] = {
 						MUX_PAD_CTRL(ENET_PAD_CTRL)),
 };
 
-static int handle_mac_address(void)
+static int handle_mac_address(char *env_var, uint eeprom_bus)
 {
 	unsigned char enetaddr[6];
 	int rc;
 
-	rc = eth_getenv_enetaddr("ethaddr", enetaddr);
+	rc = eth_getenv_enetaddr(env_var, enetaddr);
 	if (rc)
 		return 0;
 
-	rc = cl_eeprom_read_mac_addr(enetaddr, CONFIG_SYS_I2C_EEPROM_BUS);
+	rc = cl_eeprom_read_mac_addr(enetaddr, eeprom_bus);
 	if (rc)
 		return rc;
 
 	if (!is_valid_ether_addr(enetaddr))
 		return -1;
 
-	return eth_setenv_enetaddr("ethaddr", enetaddr);
+	return eth_setenv_enetaddr(env_var, enetaddr);
 }
 
+#define SB_FX6_I2C_EEPROM_BUS	0
+#define NO_MAC_ADDR		"No MAC address found for %s\n"
 int board_eth_init(bd_t *bis)
 {
 	int err;
 
-	err = handle_mac_address();
-	if (err)
-		puts("No MAC address found\n");
+	if (handle_mac_address("ethaddr", CONFIG_SYS_I2C_EEPROM_BUS))
+		printf(NO_MAC_ADDR, "primary NIC");
+
+	if (handle_mac_address("eth1addr", SB_FX6_I2C_EEPROM_BUS))
+		printf(NO_MAC_ADDR, "secondary NIC");
 
 	SETUP_IOMUX_PADS(enet_pads);
 	/* phy reset */
@@ -469,6 +473,11 @@ int ft_board_setup(void *blob, bd_t *bd)
 				     "local-mac-address", enetaddr, 6, 1);
 	}
 
+	if (eth_getenv_enetaddr("eth1addr", enetaddr)) {
+		fdt_find_and_setprop(blob, "/eth at pcie", "local-mac-address",
+				     enetaddr, 6, 1);
+	}
+
 	return 0;
 }
 #endif
Signature · 1 line
1.9.1
#12 lore raw

PATCH 4/14 arm: mx6: cm-fx6: pass 2nd nic mac addr to Linux

In reply to Nikita Kiryanov
Quoted 6 lines · Nikita Kiryanov

Obtain 2nd NIC MAC address from baseboard EEPROM and pass it to Linux.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#13 lore raw

PATCH 5/14 arm: mx6: cm-fx6: increase size of malloc area

In reply to Nikita Kiryanov

Increase size of malloc area to make room for framebuffer and other such big allocations.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 include/configs/cm_fx6.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/configs/cm_fx6.h +1 -1
index d79c83b..a2e42c4 100644
@@ -276,7 +276,7 @@
 /* misc */
 #define CONFIG_SYS_GENERIC_BOARD
 #define CONFIG_STACKSIZE			(128 * 1024)
-#define CONFIG_SYS_MALLOC_LEN			(2 * 1024 * 1024)
+#define CONFIG_SYS_MALLOC_LEN			(10 * 1024 * 1024)
 #define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS	800 /* 400 KB */
 #define CONFIG_OF_BOARD_SETUP
 
Signature · 1 line
1.9.1
#14 lore raw

PATCH 5/14 arm: mx6: cm-fx6: increase size of malloc area

Quoted 7 lines · Nikita Kiryanov

Increase size of malloc area to make room for framebuffer and other such big allocations.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#15 lore raw

PATCH 6/14 arm: mx6: cm-fx6: add hdmi console support

In reply to Nikita Kiryanov

Add support for hdmi console.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c | 51 ++++++++++++++++++++++++++++++++++++++++++
 include/configs/cm_fx6.h       | 15 +++++++++++++
 2 files changed, 66 insertions(+)
board/compulab/cm_fx6/cm_fx6.c +51 -0
index eb18dfc..b31e1f5 100644
@@ -18,8 +18,10 @@
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/iomux.h>
+#include <asm/arch/mxc_hdmi.h>
 #include <asm/imx-common/mxc_i2c.h>
 #include <asm/imx-common/sata.h>
+#include <asm/imx-common/video.h>
 #include <asm/io.h>
 #include <asm/gpio.h>
 #include <dm/platform_data/serial_mxc.h>
@@ -28,6 +30,53 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#ifdef CONFIG_IMX_HDMI
+static void cm_fx6_enable_hdmi(struct display_info_t const *dev)
+{
+	imx_enable_hdmi_phy();
+}
+
+struct display_info_t const displays[] = {
+	{
+		.bus	= -1,
+		.addr	= 0,
+		.pixfmt	= IPU_PIX_FMT_RGB24,
+		.detect	= detect_hdmi,
+		.enable	= cm_fx6_enable_hdmi,
+		.mode	= {
+			.name           = "HDMI",
+			.refresh        = 60,
+			.xres           = 1024,
+			.yres           = 768,
+			.pixclock       = 40385,
+			.left_margin    = 220,
+			.right_margin   = 40,
+			.upper_margin   = 21,
+			.lower_margin   = 7,
+			.hsync_len      = 60,
+			.vsync_len      = 10,
+			.sync           = FB_SYNC_EXT,
+			.vmode          = FB_VMODE_NONINTERLACED,
+		}
+	},
+};
+size_t display_count = ARRAY_SIZE(displays);
+
+static void cm_fx6_setup_display(void)
+{
+	struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
+	int reg;
+
+	enable_ipu_clock();
+	imx_setup_hdmi();
+	reg = __raw_readl(&mxc_ccm->CCGR3);
+	reg |= MXC_CCM_CCGR3_IPU1_IPU_DI0_MASK;
+	writel(reg, &mxc_ccm->CCGR3);
+}
+#else
+static inline void cm_fx6_setup_display(void) {}
+#endif /* CONFIG_VIDEO_IPUV3 */
+
 #ifdef CONFIG_DWC_AHSATA
 static int cm_fx6_issd_gpios[] = {
 	/* The order of the GPIOs in the array is important! */
@@ -516,6 +565,8 @@ int board_init(void)
 	if (ret)
 		printf("Warning: I2C setup failed: %d\n", ret);
 
+	cm_fx6_setup_display();
+
 	return 0;
 }
 
include/configs/cm_fx6.h +15 -0
index a2e42c4..a9f33a9 100644
@@ -103,6 +103,9 @@
 #define CONFIG_ENV_OFFSET		(768 * 1024)
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	"stdout=serial,vga\0" \
+	"stderr=serial,vga\0" \
+	"panel=HDMI\0" \
 	"autoload=no\0" \
 	"kernel=uImage-cm-fx6\0" \
 	"script=boot.scr\0" \
@@ -291,4 +294,16 @@
 #define CONFIG_SYS_SPI_U_BOOT_OFFS	(64 * 1024)
 #define CONFIG_SPL_SPI_LOAD
 
+/* Display */
+#define CONFIG_VIDEO
+#define CONFIG_VIDEO_IPUV3
+#define CONFIG_IPUV3_CLK          260000000
+#define CONFIG_IMX_HDMI
+#define CONFIG_IMX_VIDEO_SKIP
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+#define CONFIG_CONSOLE_MUX
+#define CONFIG_VIDEO_SW_CURSOR
+
 #endif	/* __CONFIG_CM_FX6_H */
Signature · 1 line
1.9.1
#16 lore raw

PATCH 6/14 arm: mx6: cm-fx6: add hdmi console

Quoted 7 lines

Add support for hdmi console.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c | 51

++++++++++++++++++++++++++++++++++++++++++

Quoted 2 lines
 include/configs/cm_fx6.h       | 15 +++++++++++++
 2 files changed, 66 insertions(+)

[...]

Quoted 14 lines
board/compulab/cm_fx6/cm_fx6.c +14 -0
+struct display_info_t const displays[] = {
+	{
+		.bus	= -1,
+		.addr	= 0,
+		.pixfmt	= IPU_PIX_FMT_RGB24,
+		.detect	= detect_hdmi,
+		.enable	= cm_fx6_enable_hdmi,
+		.mode	= {
+			.name           = "HDMI",
+			.refresh        = 60,
+			.xres           = 1024,
+			.yres           = 768,
+			.pixclock       = 40385,
+			.left_margin    = 220,

board/compulab/cm_fx6/cm_fx6.c line 62

Quoted 10 lines
board/compulab/cm_fx6/cm_fx6.c +10 -0
+			.right_margin   = 40,
+			.upper_margin   = 21,
+			.lower_margin   = 7,
+			.hsync_len      = 60,
+			.vsync_len      = 10,
+			.sync           = FB_SYNC_EXT,
+			.vmode          = FB_VMODE_NONINTERLACED,
+		}
+	},
+};

This is not VESA compliant.

board/compulab/cm_fx6/cm_fx6.c line 75

Quoted 11 lines
board/compulab/cm_fx6/cm_fx6.c +11 -0
+static void cm_fx6_setup_display(void)
+{
+	struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *) CCM_BASE_ADDR;
+	int reg;
+
+	enable_ipu_clock();
+	imx_setup_hdmi();
+	reg = __raw_readl(&mxc_ccm->CCGR3);
+	reg |= MXC_CCM_CCGR3_IPU1_IPU_DI0_MASK;
+	writel(reg, &mxc_ccm->CCGR3);
+}

This will not give the correct pixel clock for a framerate of 60 frames per second (as probably expected).

Just as a warning: Due to the non-standard video timing most hdmi monitors will not work. For more compatible settings please have a look into the tbs2910 board code.

Soeren

#17 lore raw

PATCH 6/14 arm: mx6: cm-fx6: add hdmi console

Hi Soeren,

Quoted 56 lines · Soeren Moch
Quoted 7 lines

Add support for hdmi console.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
  board/compulab/cm_fx6/cm_fx6.c | 51

++++++++++++++++++++++++++++++++++++++++++

Quoted 2 lines
  include/configs/cm_fx6.h       | 15 +++++++++++++
  2 files changed, 66 insertions(+)

[...]

Quoted 14 lines
board/compulab/cm_fx6/cm_fx6.c +14 -0
+struct display_info_t const displays[] = {
+	{
+		.bus	= -1,
+		.addr	= 0,
+		.pixfmt	= IPU_PIX_FMT_RGB24,
+		.detect	= detect_hdmi,
+		.enable	= cm_fx6_enable_hdmi,
+		.mode	= {
+			.name           = "HDMI",
+			.refresh        = 60,
+			.xres           = 1024,
+			.yres           = 768,
+			.pixclock       = 40385,
+			.left_margin    = 220,

board/compulab/cm_fx6/cm_fx6.c line 62

Quoted 10 lines
board/compulab/cm_fx6/cm_fx6.c +10 -0
+			.right_margin   = 40,
+			.upper_margin   = 21,
+			.lower_margin   = 7,
+			.hsync_len      = 60,
+			.vsync_len      = 10,
+			.sync           = FB_SYNC_EXT,
+			.vmode          = FB_VMODE_NONINTERLACED,
+		}
+	},
+};

This is not VESA compliant.

board/compulab/cm_fx6/cm_fx6.c line 75

Quoted 11 lines
board/compulab/cm_fx6/cm_fx6.c +11 -0
+static void cm_fx6_setup_display(void)
+{
+	struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *) CCM_BASE_ADDR;
+	int reg;
+
+	enable_ipu_clock();
+	imx_setup_hdmi();
+	reg = __raw_readl(&mxc_ccm->CCGR3);
+	reg |= MXC_CCM_CCGR3_IPU1_IPU_DI0_MASK;
+	writel(reg, &mxc_ccm->CCGR3);
+}

This will not give the correct pixel clock for a framerate of 60 frames per second (as probably expected).

Quoted 4 lines

Just as a warning: Due to the non-standard video timing most hdmi monitors will not work. For more compatible settings please have a look into the tbs2910 board code.

Thanks for the pointer. I'll take a look at the tbs2910 code when I expand the set of supported display presets. For now this is a preliminary support.

Signature · 2 lines
Regards,
Nikita Kiryanov
#19 lore raw

PATCH 6/14 arm: mx6: cm-fx6: add hdmi console support

In reply to Nikita Kiryanov
Quoted 6 lines · Nikita Kiryanov

Add support for hdmi console.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#20 lore raw

PATCH 7/14 arm: mx6: cm-fx6: display compulab logo

In reply to Nikita Kiryanov

Add compulab logo and display it on boot.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 include/configs/cm_fx6.h |   3 +++
 tools/logos/compulab.bmp | Bin 0 -> 31810 bytes
 2 files changed, 3 insertions(+)
 create mode 100644 tools/logos/compulab.bmp
include/configs/cm_fx6.h +3 -0
index a9f33a9..5d0d303 100644
@@ -306,4 +306,7 @@
 #define CONFIG_CONSOLE_MUX
 #define CONFIG_VIDEO_SW_CURSOR
 
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
+
 #endif	/* __CONFIG_CM_FX6_H */
tools/logos/compulab.bmp new file binary +0 -0
new file mode 100644
index 0000000000000000000000000000000000000000..df5435cb596ee93496557b78fbbb0c2b97299b4b
GIT binary patch

zBr8?~U7J4kNHBE65 at c9ApjogEYr0Yvvg~_M~Yz?vUW(;F5QM^MGzEex3t~=+>g}5 zl4H6N8b{)>$?xO6_j~-#Irp6NT~eJxogtFapeCxs-n)2llZsBr_VfTzR<iPX7%lul zC!L5VO3<DlU1}Vi%t)i+EDag-CnzTmo5|%HI!(mu%w83YvRdVol1tv3R-GW(QHc+ z85<pvNfIhTZ*Zrt(CTViR|6k)L}8xrQRB{^>ow6rxWP0>0G)wT|&zf=jq0D9X&YJ zOd}UZX>qcfo?RpQ+_hZ#*lImJy4p;iUaz9iYBwz|JwV>IQF5<M(x2VPpwGFD^qkK? zPi)%g3%+Ka?47Od#32wKr1<2PWrVQ3-r=sx%9}5W%|ma<@Efct at OJenW0ZSyiR}g z(J^}EQ-$<9kFC=49~-6@9=FjyK2b%FeB@#J#wT0o*~b^?w}0JD|Nc}3z4)0CpeJE z(!V^_PG9=8hz!rR_GH?{04pgH*e63PcG6kpS?+c{?rEj-S4l^-#+c4uRiUgFF*4b zed(Ex)61Xt(lby09)0tVAEDR2v_;>3{-gBu=RQSWeeOwm<uAPS-1A?gS6=ueee=tI zK;Lmv-Hnj$PKfx1OMvU;0z}d|MQeeI<e>AT<f6MEyHUZB5!5)-**S<h+y!tov zomXFS6+RU{KG9q__U#+w|J^UZdAu{{g-6{qN8_Z+?q@@L&H!KmOtC^xr at HPx}6w zKcaWuev^Lo&g=Bn+drkZe*8B5<o|w3KmYlU=qLaC3wrzApV7O&_?h&H*jr2kF%85t z5Ys?R12GN6G!WB3Oan0u#554oKuiNM4a77M(?CoEF%29k4PbRxRe)vRV<@WpBueQj zJ)ZETX{5h0tv{CV$@-LYVzVpzIKs!(RLuyn*?#gEPI$_0+7w=K{g}b4q at QO3$GXO z=99<C?UV9Bo5WKZXP$w$5q9VN)NMdvK%wF&rhc0_Dvztj~l!$O?B!@*zCv1@-ogP z<)6IZ4TR0Ez#oS^pP@%SSCv*>jd;A&0OtHLfKRGIj92ML#OC!KyKim=HqA#LKCUW( zDEZu_xk4b-4fXBIr_DIX)+~LT at kyv<^B<ePr@&>C{3q2H67ZAe*L=F+jA=J$QJkd zGeC<k)!Q~V*Z0G(1HOv2b0j5&mnu}Jy4JnxdqmO0ue7Cnxnyyl(<rmr8TYIg1)VX zRfbPGa_FiIepoBbpp#9Dw?kiFU%l?VT!o)<9xYK-r2y!pF1ZTmtE=0lURQQy3wBr6 zy;qu|ex}uADUzD1y_dD6D$wEf;!gp6RmxRmv;W<7)f{c2FA+k7<bQFm!Y6S2;y9<$ zH7&ZX?vkbO{*DIF;98G1*QrY;1MZCtx4%CJE8h2{=(vncs8Xr)W}q)FE-vhm#l>CP zxQc$eeI(k5r!EOO9HQi&#OB|eGd5CNwl3Rz)h at Zc8k=5<lolH^4e&$5l#eaNMH~ zpTM(R#i<QTleVSh1*RU~E8Mj02>bybm#1oUthPH!y2s%Nq~CGa2Qfe;t5hu0sB~4M z>r235?xCR}>yF^l__#z4caIMZjL(gq(MMCF?;CVV^2VpqSAAzlBS6pPOA?m{qu2 zAw%PH3rj2ubK^r+lNI=i3}F{;FgG_;r%$@G>9c&8 at 2MYzS>N-T8CB at k$<$U=V_R4P zIZQlswz746X)}n_<n#GL0U-iGmwnD^8j&x>w?Q2x_Q&*bS)e8X)4Ofk&>6LPR+~7 z$;-ok4P{|BCnqaMLph-hhu>1sZ|U#1><ad(^pf;Mj{RBbG6QI|n#A3rL6;g0yd~0T zF-V<-x5PX?QOWztm~nU@i^pm#rC^xMxR(>qr=l%D-Cm7Lil_e4{kij;@EIQ1;RVm zYPAkojaGZechhgThi={w8?E^#?n4S!M7tK*tDwkU9_0w9V*?75vXUcFh)Q^@XT_q z3Nc>+w^#{nxI7-0Q;N&!U(=Fy-tYIWH2|~1BPO9wVbL~tloR<aiQzN-5}ORp=A5YF z^>N8nJqt?<Y;>#jY at umggxnhrhuf!I#mDZffVf%OO35ogVifGe0HnRX!ZD<!gn^U zVBG6-yFFs1M4e@Ekn5;T0<h0tOVR{zoSCU>o_q$GPSdfq<|D>ndKQg~MUeq3fg z6)otF=m^_%Sz{8^OrOT44S8O><fQDtSxi1UGa#!M3;+^GOg(|aHzftM!!0H@#28B zwe|kOi$USW-MT~KqCVN+~StF>GpV>8=);@Wo4sRIQ=f8p|P>pimF98?$14O+V6G? zP(m7nC$JOO5^nT1Y0==l!5-NM2%XL=LbVS+O)#w at QC?_NicexPLDs3N2vS_l9r2 z!eZ&4hf+mqI=VdmiadaNFj~MxLIJnmnWaImOx7@@``-byO5N89?WSC%aZZgH6x2l zi?icl^jQ(|xIG|WA2J#n8!Iad4dYwF=K;W$v9NGifOF1(SlC#MeV^#RFSpq1^M^Bd z2n=&Z$$;G$q)zjfCxKist52D at L@g at fBB|PZ1DR$A-759DIaK2x?8g5P4aCxP}Fa zatLQ&#p2A;3jc;bpv?4iuiz8ijqI45@?rD%QeA1!%+<x&DQWe_*Y{u?|wfb+?>&9 zG9k^iHdYoIR~bGeOqplV9r9ZnTN at i23;WS3T!pz7pHIPLC|{Ue?LZ;VBsow=DB_<L z_~1z-3pP%rEl>DEKE;A7 at Z@kpP_2j(wG*SbAcQl)$QpGj9DtP}1#r4cZQciU8!W! zvPqRuWu8EddU<ws91h=jf94PeIiQP+M$^E+z|a8TTN?|D7ZLMAVkmPG-NMzXu(t*R zXgr(Q8VZEOee#YfU^>O_yV&8_k-((!U_hQ^w<~w9abcdzZuMGNTYRPp(Ew(g45QeY z*02S;UvUf!NW@f#1WtMB_j-%tRIIGa==lLWUY}fQ9$CD488UluU;w7fG<rpdMJySu z0~aCSH<llAu*S^j43BvMk5AS7M>08Gg^PjSq at X3$-I(Rf!%F(j#q4VNQ9l{!NXLr znqv1vj)QU+?8*^1h_nI31$aKk#ylJoX2-1OUWgiAVv&1Myy=xZ&UdKGCW=d|V)82z zed^+Xsj>0C%ynE0<RWM?G5VOKSKtx+#ZvAv1_-+mz5w?7Ioyg#h25g#68Dbm797#P zhuv?JEb$E9G#elW7z(%wlxRh8v?2<?9x?+LoY?Pp&Z!UWT_T=wky6FlC^CudnQ z4vdXWv5bwe<xP!+2IPFNA<S-srofJPgBwuTtta=|T?2a_V0Sj<{66-G&+phhjFjGw z_q?1gZe)9s3U#6{KXX3-btNws>wXf<TF5 at nPEVau)N)u6TSXIA98+@4)BwUiWU9 zmNY+jWPo;JEpQ?chM<pyIO{a{Auy^USe_T?0?wp6~nE;rtamDGu=YMa>YN<Mk$ z^5atSn>wbiz~l-!v%|E;%1k3JB4_(UEhbof7815RWuTujI at UN&g at 9_?DIS9dD2ol z?1*X#Nfx%-^Igk_?D2Uu7!GFFPAca_!aIOng9#V4-3dRJ!^2ul&4rPf%S;}YS(v at o zWHc0J&hcdDNcTYP0NA;Ic7oK%zoc!D9+8D563!Y&sAdG*_5*g^Wo&Q!!GTf1%;%u zf+DdF7y;zvU9s-=?3m{BGP30$)P!SQXgk(bpfT$Cj;~u1(n;DOz;$sfb$k+2RmGz z9U2k}UThg2ljyQr&iP(=hS5-rh=2*mcE<r$sfgU9O2CEhiSKAddO#%LiTx%(qVQr zR1*+^)ack#aoi-Is{{vy=X)T+j-(Jm!iY}dQVMFCdPb&h0S7wRJK5z6H-!&Y_le*@ z3#NNSJ<{!m2YN9E at OH2Zs{!nW+)0!rVluOGnSG@~-Uhp;pRG+?b)t$P?FyIRmQ;;8 zF$eCAeIzd~16)duqsiO(Jom7<WqzNOu?bXxsJLY=n*~0E5FxUMpw13}$!)DZFK} z;oeSmd4pH@P;i62m)RAkhiZ5T+hN71rxp%Y+|X%0Ca-~yRMW**cUY|7xZdah|P^h z)x;Gjah|jmJbmDlsL0k}Mm!V?KOWE~(W&HjwRQ!Hldg>_cyFxJATV<I!cy?CTp7z zp5@ePEzqSB--~#sPnFU>y?A+If(;#!nF)nUneKo9I&O5UQ(>Q)z&|NtfbZ=!wU~@W zsQf}=yr(ifUF?A#$>A<sgBSsaD;K^mL1IM_eZWrBt``H{rAVnprhhsVn&I6vFH zVqWe_C2+Yym8bo{yc5E11imK#qg%5Cz~rC at 7bs&F(lfp{i#F@L?QglKYI+0=uWQ z!YmPX%y*0gJ4W*hg8<*z(gJwS>h$>-nfiKCPP7HiAVS<ICDe5mc{cQf-sHcjDCFb zq~=L_8NE>LvN-wHLBS$J;eK{fb5LZlV63#eZ$5k?(SH}{DCJ7c6AZssKm~6GyHx~s zv5!jl at X)DI3E$aiGPM-7EXkS%L%k^7E>9D#KbkYZQio<CIGZTA0(>&w-9b3jj4~ za<JagU&1%6$;wI9YLz-xo2b=lB|06zj)P0EN@Gz9_f$?2T1}p1#WCM-x2s^P?DmnF zz2p<4qnPety9XjZUpG8Dx_jIxi?n=aXGsA(>PZ07B05b)|v+DO1Y at fHULG9XDx<> z?CkL;ZB#dUAUhu(5y{SaQp-o)NOP21Ra%p6FFcs~!t9NBau54_-Ebc|BJ>On>FZ;+ zhk&R4*y$PItMyyc&YPngloQtvmA6rt+e|=J<+u#HT6tPDJ+q9g}pe%5D0k?j@+TG z&bmHk-z$Am6nfSXJ>EkaPPUa=&l>hs1;;BnICU6IE$CAWLUh-fIBtEmm<lJj_l&< z>tmlU&Me-<>JlUrJb+yx55M>J^~$~B;R|vJ=uX#+s$bjS^?L&IsgY at O>p_}|4Zr98 zv6CvlePn7P3_mggSMF<*>=|~+?(zkPYtabpjG!A5Cf>gpzEE at L_4!*F4*r~oG{NBp z`SCXJ{FN>o<NeqjHGNvUZEONuib(ca6zeGq3i}OlsjQ9Rxqq~8a6fanWz5#Z&#i|d zl8oshPX_zWs?MtDM=|jJ*!jodJ<_OP8yo~%TU)Kckegx>ek_rD+~R>UO!z)@$zJTX zLBhaFE5DE0n)qA1!x1&U$WSEjHg at OhX!2x|d|#Kuq#qm|8I<UQ-Q8e^;Zt%qh0_HQ z*Q)E<y8F5ruv-BKdtG(?LI5?V{o*)iGQf^;S)@H8{nlddmTG{(yZ_>yD!*T*4B2u zTMC=J4pKIJ>C)7BsSkP7=%D!!L;SB)gQ^U3kAe=np9lMC7{18sXLhH!R8R+a7D--P zTU*q&6%^N+x8X+y%^%F8%)BA-QbN=-ogBJPbb;HvB?Wq_9glh>ZEEh at Ms9t=HD z&(0u^8tjovV82p(9pc5}^1Ez(gSIex-RaZCnQ7}nG5mA^>NZ7cPoFmAW?vDGjo>B8 z-fgoD4)z>cb~{9(yEv6v*M0$(x7paYVcjBl{nkyp%VqZjJ9HAhw(K;}GfrL-PP=cb zjoC3C=<SD<*ze+g4|ixvQ;!WW9UWk=D+7FTUC__)zO6H9hFVEpoSS^|vhd(bXN3Rr z=YekPzR(cFD?%EUJw0j at ulVt$$q}RuC}bGC^z|h@TT4Fvfte5$kr7V7w2ZAovd30 zI#S;Q<@FsM7;dw*A6{ZVbfoA{sM0C$%kj9ET5ZPe?8!|+wH#Km5%a)g0i~qE5V!G zun<BZv%UWt)u<JnbMfMU^y0)U#E>k-f~yNi?auLKy at DYhQEw))UkK&rxSzY**x zZ<grh%zbD1ur{#YZ^M_B6=mqoU)uY!0!)kK(KK+J@|D1s=exFhBxyM7LJOj3feEg z at ND_=@-ootvYV%Z3TmYfFJAi!Qd7=;L4@8>Uw7H;_oz%kffN+%wAt#T^^y=SKCIW zA$Zkb<|gv=IhIW-rU?(aD=!eN_=&D7@p}_0Yy4pc0_aq1qJ2M45J_3V#Ph9L&W=Y z_04Bs`RXt|J3vtpra&1~QC+Q|x0iqDYnp>pp3)@!{tVMg0dO_Hq?|c(239whA9Umq zXp74?p93N!0=&Idnt^^Kt<JW?bFEpSJox<xqk}%7noVDG3wq6&ni{knZFK%^g4rxl zL3 at jI9bJcy1gxZU?YBTHAG?lfn2Uh(R#nht-cNrl&_RzX?^gJ(vfb)A%KNGU^SM3r z=IH)3=1AxS54O8af25w=?rfmAqHWVR9iiv-JA=y+NoUMW?D%H$;eEp%<)uIPVKUd( zw4XZy%aXr at GULm;jzL9pJH@0NqX2(99mLvW8i;8irh%9SVj75PAf|zs24WhBX&|P7 Vm<D1Rh-o0EftUtj8hC#i_<uuVowxu1

literal 0
HcmV?d00001

Signature · 1 line
1.9.1
#22 lore raw

PATCH 7/14 arm: mx6: cm-fx6: display compulab logo

In reply to Nikita Kiryanov

Hi Nikita,

Quoted 16 lines · Nikita Kiryanov

Add compulab logo and display it on boot.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 include/configs/cm_fx6.h |   3 +++
 tools/logos/compulab.bmp | Bin 0 -> 31810 bytes
 2 files changed, 3 insertions(+)
 create mode 100644 tools/logos/compulab.bmp
include/configs/cm_fx6.h +0 -0
index a9f33a9..5d0d303 100644

include/configs/cm_fx6.h line 311

Quoted 6 lines
include/configs/cm_fx6.h +3 -0
@@ -306,4 +306,7 @@
 #define CONFIG_CONSOLE_MUX
 #define CONFIG_VIDEO_SW_CURSOR
 
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
+

This is a general question, not strictly related to the patch. You add with the series a way to get splash screen from multiple sources. I have often (I know we are talking about different things..) used splash screen as a way to add a logo, without the necessity to link the image to the code. I think also that the way with logo does not scale well, and we cannot merge in mainline tons of images - they have nothing to do with u-boot sources.

Why is not enough for you to use the splash screen functionality ? IMHO it is much more flexible as using the logo, and there is no need to link it against the code.

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#23 lore raw

PATCH 7/14 arm: mx6: cm-fx6: display compulab logo

Hi Stefano,

Quoted 23 lines · Stefano Babic

Hi Nikita,

Quoted 19 lines · Nikita Kiryanov

Add compulab logo and display it on boot.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
  include/configs/cm_fx6.h |   3 +++
  tools/logos/compulab.bmp | Bin 0 -> 31810 bytes
  2 files changed, 3 insertions(+)

create mode 100644 tools/logos/compulab.bmp

include/configs/cm_fx6.h +0 -0
index a9f33a9..5d0d303 100644
@@ -306,4 +306,7 @@
  #define CONFIG_CONSOLE_MUX
  #define CONFIG_VIDEO_SW_CURSOR
 
Quoted 9 lines

include/configs/cm_fx6.h line 311

Quoted 3 lines
include/configs/cm_fx6.h +3 -0
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
+

This is a general question, not strictly related to the patch. You add with the series a way to get splash screen from multiple sources. I have often (I know we are talking about different things..) used splash screen as a way to add a logo, without the necessity to link the image to the code. I think also that the way with logo does not scale well,

Why not?

Quoted 2 lines

and we cannot merge in mainline tons of images - they have nothing to do with u-boot sources.

Storing graphics that are part of a program in the program's repository is a common practice, why should U-Boot be different?

Quoted 4 lines

Why is not enough for you to use the splash screen functionality ? IMHO it is much more flexible as using the logo, and there is no need to link it against the code.

We are interested in the behavior that VIDEO_LOGO provides: that the logo remains visible on screen and coexists with the frame buffer console, and that no manual installation is required.

Quoted 4 lines

Best regards,
Stefano Babic

Signature · 2 lines
Regards,
Nikita Kiryanov
#24 lore raw

PATCH 7/14 arm: mx6: cm-fx6: display compulab logo

Hi Nikita,

Quoted 8 lines · Nikita Kiryanov
Quoted 6 lines

This is a general question, not strictly related to the patch. You add with the series a way to get splash screen from multiple sources. I have often (I know we are talking about different things..) used splash screen as a way to add a logo, without the necessity to link the image to the code. I think also that the way with logo does not scale well,

Why not?

Well, it happens if for each maintained board there is a corresponding logo and all logos should be maintain in U-Boot repository - that is quite a mess.

Logos has nothing to do with U-Boot development - they are blob data. The fact that they are linked together with U-Boot looks easy, but I do not think it is elegant.

Splash images are loaded on demand by u-boot code from a storage - this is IMHO a better solution.

Quoted 7 lines
Quoted 3 lines

and we cannot merge in mainline tons of images - they have nothing to do with u-boot sources.

Storing graphics that are part of a program in the program's repository is a
common practice, why should U-Boot be different?

Maybe due to the number of boards, and if each board wants to have its own logo. If all boards share the same logo I would not see any problem at all.

Quoted 8 lines
Quoted 3 lines

Why is not enough for you to use the splash screen functionality ? IMHO it is much more flexible as using the logo, and there is no need to link it against the code.

We are interested in the behavior that VIDEO_LOGO provides: that the logo remains visible on screen and coexists with the frame buffer console, and that
no manual installation is required.

ok, you like really the logo feature, I see ;-).

Added Anatolji to CC - we could let the question in background for the future. Maybe could we have a logo_load_image() near splash_load_from_*() ?

Besst regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#25 lore raw

PATCH 7/14 arm: mx6: cm-fx6: display compulab logo

Quoted 11 lines · Stefano Babic

Hi Nikita,

Quoted 7 lines · Nikita Kiryanov
Quoted 6 lines

This is a general question, not strictly related to the patch. You add with the series a way to get splash screen from multiple sources. I have often (I know we are talking about different things..) used splash screen as a way to add a logo, without the necessity to link the image to the code. I think also that the way with logo does not scale well,

Quoted 5 lines
Quoted 1 line

Why not?

Well, it happens if for each maintained board there is a corresponding logo and all logos should be maintain in U-Boot repository - that is quite a mess.

Right. I must agree it is a mess. Also, please understand correctly, this is not our intent...

Quoted 7 lines

Logos has nothing to do with U-Boot development - they are blob data. The fact that they are linked together with U-Boot looks easy, but I do not think it is elegant.

Splash images are loaded on demand by u-boot code from a storage - this is IMHO a better solution.

Yes, indeed, and also the only one that permits a board to have multiple customizable splash images - which is the case for many SoMs.

Quoted 5 lines
Quoted 5 lines
Quoted 4 lines

and we cannot merge in mainline tons of images - they have nothing to do with u-boot sources.

Quoted 7 lines
Quoted 3 lines

Storing graphics that are part of a program in the program's repository is a
common practice, why should U-Boot be different?

Maybe due to the number of boards, and if each board wants to have its own logo. If all boards share the same logo I would not see any problem at all.

And yes, this is our intent. We would like to have a single logo for all our boards (and we have some already - more to come). It is vendor oriented, not board oriented.

Quoted 11 lines
Quoted 9 lines
Quoted 4 lines

Why is not enough for you to use the splash screen functionality ? IMHO it is much more flexible as using the logo, and there is no need to link it against the code.

We are interested in the behavior that VIDEO_LOGO provides: that the logo remains visible on screen and coexists with the frame buffer console, and that
no manual installation is required.

ok, you like really the logo feature, I see ;-).

Yes, currently, it is used on Utilite computer (which is build around cm-fx6 SoM). So, it looks really good, for the Utilite users to have the HDMI with USB console and the vendor logo.

Quoted 3 lines

Added Anatolji to CC - we could let the question in background for the future. Maybe could we have a logo_load_image() near splash_load_from_*() ?

That would be perfect, I think, and also have it user customizable. Although, I would like to have an option to return to default one...

Signature · 2 lines
Regards,
Igor.
#26 lore raw

PATCH 7/14 arm: mx6: cm-fx6: display compulab logo

In reply to Nikita Kiryanov
Quoted 6 lines · Nikita Kiryanov

Add compulab logo and display it on boot.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#27 lore raw

PATCH 8/14 arm: mx6: cm-fx6: add support for usb keyboard

In reply to Nikita Kiryanov

Add support for usb keyboard for cm_fx6.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 include/configs/cm_fx6.h | 6 ++++++
 1 file changed, 6 insertions(+)
include/configs/cm_fx6.h +6 -0
index 5d0d303..49b1b00 100644
@@ -103,6 +103,7 @@
 #define CONFIG_ENV_OFFSET		(768 * 1024)
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	"stdin=serial,usbkbd\0" \
 	"stdout=serial,vga\0" \
 	"stderr=serial,vga\0" \
 	"panel=HDMI\0" \
@@ -193,6 +194,8 @@
 	"run setupnandboot;" \
 	"run nandboot;"
 
+#define CONFIG_PREBOOT		"usb start"
+
 /* SPI */
 #define CONFIG_SPI
 #define CONFIG_MXC_SPI
@@ -241,6 +244,9 @@
 #define CONFIG_MXC_USB_FLAGS		0
 #define CONFIG_USB_MAX_CONTROLLER_COUNT	2
 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET	/* For OTG port */
+#define CONFIG_USB_KEYBOARD
+#define CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP
+#define CONFIG_SYS_STDIO_DEREGISTER
 
 /* I2C */
 #define CONFIG_CMD_I2C
Signature · 1 line
1.9.1
#29 lore raw

PATCH 8/14 arm: mx6: cm-fx6: add support for usb keyboard

In reply to Nikita Kiryanov
Quoted 6 lines · Nikita Kiryanov

Add support for usb keyboard for cm_fx6.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#30 lore raw

PATCH 9/14 compulab: splash: use errno values

In reply to Nikita Kiryanov

Use errno values to improve return reporting.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/common/splash.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
board/compulab/common/splash.c +5 -4
index 49ed49b..33b2f9f 100644
@@ -8,6 +8,7 @@
 
 #include <common.h>
 #include <nand.h>
+#include <errno.h>
 #include <bmp_layout.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -44,12 +45,12 @@ splash_address_too_high:
 	printf("Error: splashimage address too high. Data overwrites U-Boot "
 		"and/or placed beyond DRAM boundaries.\n");
 
-	return -1;
+	return -EFAULT;
 }
 #else
 static inline int splash_load_from_nand(u32 bmp_load_addr, int nand_offset)
 {
-	return -1;
+	return -ENOSYS;
 }
 #endif /* CONFIG_CMD_NAND */
 
@@ -60,12 +61,12 @@ int cl_splash_screen_prepare(int nand_offset)
 
 	env_splashimage_value = getenv("splashimage");
 	if (env_splashimage_value == NULL)
-		return -1;
+		return -ENOENT;
 
 	bmp_load_addr = simple_strtoul(env_splashimage_value, 0, 16);
 	if (bmp_load_addr == 0) {
 		printf("Error: bad splashimage address specified\n");
-		return -1;
+		return -EFAULT;
 	}
 
 	return splash_load_from_nand(bmp_load_addr, nand_offset);
Signature · 1 line
1.9.1
#32 lore raw

PATCH 9/14 compulab: splash: use errno values

In reply to Nikita Kiryanov
Quoted 6 lines · Nikita Kiryanov

Use errno values to improve return reporting.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#33 lore raw

PATCH 10/14 compulab: splash: refactor splash.c

In reply to Nikita Kiryanov

Move storage device specific code into its own function instead of calling it directly from an otherwise storage device independent function (cl_splash_screen_prepare).

This is a preparation for supporting multiple splash locations.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/common/common.h |  4 ++--
 board/compulab/common/splash.c | 43 +++++++++++++++++++++++++-----------------
 2 files changed, 28 insertions(+), 19 deletions(-)
board/compulab/common/common.h +2 -2
index 68ffb11..80753b4 100644
@@ -25,9 +25,9 @@ static inline void cl_usb_hub_deinit(int gpio) {}
 #endif /* CONFIG_CMD_USB */
 
 #ifdef CONFIG_SPLASH_SCREEN
-int cl_splash_screen_prepare(int nand_offset);
+int cl_splash_screen_prepare(int offset);
 #else /* !CONFIG_SPLASH_SCREEN */
-static inline int cl_splash_screen_prepare(int nand_offset)
+static inline int cl_splash_screen_prepare(int offset)
 {
 	return -ENOSYS;
 }
board/compulab/common/splash.c +26 -17

76 lines not on this page · raw message

Signature · 1 line
1.9.1
#34 lore raw

PATCH 10/14 compulab: splash: refactor splash.c

Quoted 9 lines · Nikita Kiryanov

Move storage device specific code into its own function instead of calling it directly from an otherwise storage device independent function (cl_splash_screen_prepare).

This is a preparation for supporting multiple splash locations.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards,
Igor.
#35 lore raw

PATCH 10/14 compulab: splash: refactor splash.c

In reply to Nikita Kiryanov
Quoted 10 lines · Nikita Kiryanov

Move storage device specific code into its own function instead of calling it directly from an otherwise storage device independent function (cl_splash_screen_prepare).

This is a preparation for supporting multiple splash locations.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#36 lore raw

PATCH 11/14 compulab: splash: support multiple splash sources

In reply to Nikita Kiryanov

Define a generic way for boards to define splash image locations:
- introduce struct splash_location
- introduce enum splash_storage
- update cl_splash_screen_prepare() to take an array of above struct and select the appropriate one based on the splashsource environment variable (if it is not defined- use the first splash location as default).

cm-t35 is updated to work with the new interface.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/cm_t35/cm_t35.c | 11 +++++--
 board/compulab/common/common.h | 15 +++++++--
 board/compulab/common/splash.c | 70 +++++++++++++++++++++++++++++++++++++-----
 3 files changed, 85 insertions(+), 11 deletions(-)
board/compulab/cm_t35/cm_t35.c +9 -2
index 9a3b2ee..8143c05 100644
@@ -59,11 +59,18 @@ void get_board_mem_timings(struct board_sdrc_timings *timings)
 }
 #endif
 
-#define CM_T35_SPLASH_NAND_OFFSET 0x100000
+struct splash_location splash_locations[] = {
+	{
+		.name = "nand",
+		.storage = SPLASH_STORAGE_NAND,
+		.offset = 0x100000,
+	},
+};
 
 int splash_screen_prepare(void)
 {
-	return cl_splash_screen_prepare(CM_T35_SPLASH_NAND_OFFSET);
+	return cl_splash_screen_prepare(splash_locations,
+					ARRAY_SIZE(splash_locations));
 }
 
 /*
board/compulab/common/common.h +13 -2
index 80753b4..09b4de6 100644
@@ -24,10 +24,21 @@ static inline int cl_usb_hub_init(int gpio, const char *label)
 static inline void cl_usb_hub_deinit(int gpio) {}
 #endif /* CONFIG_CMD_USB */
 
+enum splash_storage {
+	SPLASH_STORAGE_NAND,
+};
+
+struct splash_location {
+	char *name;
+	enum splash_storage storage;
+	u32 offset;	/* offset from start of storage */
+};
+
 #ifdef CONFIG_SPLASH_SCREEN
-int cl_splash_screen_prepare(int offset);
+int cl_splash_screen_prepare(struct splash_location *locations, uint size);
 #else /* !CONFIG_SPLASH_SCREEN */
-static inline int cl_splash_screen_prepare(int offset)
+static inline int cl_splash_screen_prepare(struct splash_location *locations,
+					   uint size)
 {
 	return -ENOSYS;
 }
board/compulab/common/splash.c +63 -7

102 lines not on this page · raw message

Signature · 1 line
1.9.1
#37 lore raw

PATCH 11/14 compulab: splash: support multiple splash sources

Quoted 7 lines · Nikita Kiryanov

Define a generic way for boards to define splash image locations:
- introduce struct splash_location
- introduce enum splash_storage
- update cl_splash_screen_prepare() to take an array of above struct and select the appropriate one based on the splashsource environment variable (if it is not defined- use the first splash location as default).

Quoted 5 lines

cm-t35 is updated to work with the new interface.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards,
Igor.
#38 lore raw

PATCH 11/14 compulab: splash: support multiple splash sources

In reply to Nikita Kiryanov
Quoted 7 lines · Nikita Kiryanov

Define a generic way for boards to define splash image locations:
- introduce struct splash_location
- introduce enum splash_storage
- update cl_splash_screen_prepare() to take an array of above struct and select the appropriate one based on the splashsource environment variable (if it is not defined- use the first splash location as default).

Quoted 6 lines

cm-t35 is updated to work with the new interface.

Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#39 lore raw

PATCH 12/14 compulab: splash: support loading splash from sf

In reply to Nikita Kiryanov

Add support for loading splash from sf.

[grinberg at compulab.co.il: staticize the sf global variable]
Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/common/common.h |  1 +
 board/compulab/common/splash.c | 27 +++++++++++++++++++++++++++
 2 files changed, 28 insertions(+)
board/compulab/common/common.h +1 -0
index 09b4de6..b992965 100644
@@ -26,6 +26,7 @@ static inline void cl_usb_hub_deinit(int gpio) {}
 
 enum splash_storage {
 	SPLASH_STORAGE_NAND,
+	SPLASH_STORAGE_SF,
 };
 
 struct splash_location {
board/compulab/common/splash.c +27 -0
index f230d6d..16c315c 100644
@@ -9,11 +9,36 @@
 #include <common.h>
 #include <nand.h>
 #include <errno.h>
+#include <spi_flash.h>
+#include <spi.h>
 #include <bmp_layout.h>
 #include "common.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#ifdef CONFIG_SPI_FLASH
+static struct spi_flash *sf;
+static int splash_sf_read(u32 bmp_load_addr, int offset, size_t read_size)
+{
+	if (!sf) {
+		sf = spi_flash_probe(CONFIG_SF_DEFAULT_BUS,
+				     CONFIG_SF_DEFAULT_CS,
+				     CONFIG_SF_DEFAULT_SPEED,
+				     CONFIG_SF_DEFAULT_MODE);
+		if (!sf)
+			return -ENODEV;
+	}
+
+	return spi_flash_read(sf, offset, read_size, (void *)bmp_load_addr);
+}
+#else
+static int splash_sf_read(u32 bmp_load_addr, int offset, size_t read_size)
+{
+	debug("%s: sf support not available\n", __func__);
+	return -ENOSYS;
+}
+#endif
+
 #ifdef CONFIG_CMD_NAND
 static int splash_nand_read(u32 bmp_load_addr, int offset, size_t read_size)
 {
@@ -42,6 +67,8 @@ static int splash_storage_read(struct splash_location *location,
 	switch (location->storage) {
 	case SPLASH_STORAGE_NAND:
 		return splash_nand_read(bmp_load_addr, offset, read_size);
+	case SPLASH_STORAGE_SF:
+		return splash_sf_read(bmp_load_addr, offset, read_size);
 	default:
 		printf("Unknown splash location\n");
 	}
Signature · 1 line
1.9.1
#40 lore raw

PATCH 12/14 compulab: splash: support loading splash from sf

Quoted 8 lines · Nikita Kiryanov

Add support for loading splash from sf.

[grinberg at compulab.co.il: staticize the sf global variable]
Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#41 lore raw

PATCH 13/14 arm: mx6: cm-fx6: add splash screen support

In reply to Nikita Kiryanov

Add support for splash screen.
The splash screen is loaded from the SPI flash and is displayed on the HDMI display.

[grinberg at compulab.co.il: minor code and commit message updates]
Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c | 17 +++++++++++++++++
 include/configs/cm_fx6.h       |  4 ++++
 2 files changed, 21 insertions(+)
board/compulab/cm_fx6/cm_fx6.c +17 -0
index b31e1f5..b5c3ea1 100644
@@ -27,9 +27,26 @@
 #include <dm/platform_data/serial_mxc.h>
 #include "common.h"
 #include "../common/eeprom.h"
+#include "../common/common.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#ifdef CONFIG_SPLASH_SCREEN
+static struct splash_location cm_fx6_splash_locations[] = {
+	{
+		.name = "sf",
+		.storage = SPLASH_STORAGE_SF,
+		.offset = 0x100000,
+	},
+};
+
+int splash_screen_prepare(void)
+{
+	return cl_splash_screen_prepare(cm_fx6_splash_locations,
+					ARRAY_SIZE(cm_fx6_splash_locations));
+}
+#endif
+
 #ifdef CONFIG_IMX_HDMI
 static void cm_fx6_enable_hdmi(struct display_info_t const *dev)
 {
include/configs/cm_fx6.h +4 -0
index 49b1b00..b92ba97 100644
@@ -312,6 +312,10 @@
 #define CONFIG_CONSOLE_MUX
 #define CONFIG_VIDEO_SW_CURSOR
 
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_CMD_BMP
+#define CONFIG_VIDEO_BMP_RLE8
+
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_VIDEO_BMP_LOGO
 
Signature · 1 line
1.9.1
#42 lore raw

PATCH 13/14 arm: mx6: cm-fx6: add splash screen support

Quoted 10 lines · Nikita Kiryanov

Add support for splash screen.
The splash screen is loaded from the SPI flash and is displayed on the HDMI display.

[grinberg at compulab.co.il: minor code and commit message updates]
Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#43 lore raw

PATCH 14/14 common: convert compulab splash load code to common code

In reply to Nikita Kiryanov

Move board/compulab/common/splash.c code to common/splash_source.c to make it available for everybody. This move renames cl_splash_screen_prepare() to splash_source_load(), and the compilation of this code is conditional on CONFIG_SPLASH_SOURCE.

splash_source features:
* Provide a standardized way for declaring board specific splash screen locations
* Provide existing routines for auto loading the splash image from the locations as declared by the board
* Introduce the "splashsource" environment variable, which makes it possible to select the splash image source.

cm-t35 and cm-fx6 are updated to use the modified version.

Cc Stefano Babic <[email protected]>
Cc Tom Rini <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Anatolij Gustschin <[email protected]>
---
 board/compulab/cm_fx6/cm_fx6.c |   5 +-
 board/compulab/cm_t35/cm_t35.c |   5 +-
 board/compulab/common/Makefile |   1 -
 board/compulab/common/common.h |  21 -----
 board/compulab/common/splash.c | 165 --------------------------------------
 common/Makefile                |   1 +
 common/splash_source.c         | 176 +++++++++++++++++++++++++++++++++++++++++
 doc/README.splashprepare       |  13 +++
 include/configs/cm_fx6.h       |   1 +
 include/configs/cm_t35.h       |   1 +
 include/splash.h               |  11 +++
 11 files changed, 209 insertions(+), 191 deletions(-)
 delete mode 100644 board/compulab/common/splash.c
 create mode 100644 common/splash_source.c
board/compulab/cm_fx6/cm_fx6.c +3 -2
index b5c3ea1..ae6945b 100644
@@ -15,6 +15,7 @@
 #include <netdev.h>
 #include <fdt_support.h>
 #include <sata.h>
+#include <splash.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/iomux.h>
@@ -42,8 +43,8 @@ static struct splash_location cm_fx6_splash_locations[] = {
 
 int splash_screen_prepare(void)
 {
-	return cl_splash_screen_prepare(cm_fx6_splash_locations,
-					ARRAY_SIZE(cm_fx6_splash_locations));
+	return splash_source_load(cm_fx6_splash_locations,
+				  ARRAY_SIZE(cm_fx6_splash_locations));
 }
 #endif
 
board/compulab/cm_t35/cm_t35.c +3 -2
index 8143c05..c4ea8ea 100644
@@ -19,6 +19,7 @@
 #include <i2c.h>
 #include <usb.h>
 #include <mmc.h>
+#include <splash.h>
 #include <twl4030.h>
 #include <linux/compiler.h>
 
@@ -69,8 +70,8 @@ struct splash_location splash_locations[] = {
 
 int splash_screen_prepare(void)
 {
-	return cl_splash_screen_prepare(splash_locations,
-					ARRAY_SIZE(splash_locations));
+	return splash_source_load(splash_locations,
+				  ARRAY_SIZE(splash_locations));
 }
 
 /*
board/compulab/common/Makefile +0 -1
index dbf0009..286f327 100644
@@ -9,5 +9,4 @@
 obj-y				+= common.o
 obj-$(CONFIG_SYS_I2C)		+= eeprom.o
 obj-$(CONFIG_LCD)		+= omap3_display.o
-obj-$(CONFIG_SPLASH_SCREEN)	+= splash.o
 obj-$(CONFIG_SMC911X)		+= omap3_smc911x.o
board/compulab/common/common.h +0 -21
index b992965..8f38b79 100644
@@ -24,27 +24,6 @@ static inline int cl_usb_hub_init(int gpio, const char *label)
 static inline void cl_usb_hub_deinit(int gpio) {}
 #endif /* CONFIG_CMD_USB */
 
-enum splash_storage {
-	SPLASH_STORAGE_NAND,
-	SPLASH_STORAGE_SF,
-};
-
-struct splash_location {
-	char *name;
-	enum splash_storage storage;
-	u32 offset;	/* offset from start of storage */
-};
-
-#ifdef CONFIG_SPLASH_SCREEN
-int cl_splash_screen_prepare(struct splash_location *locations, uint size);
-#else /* !CONFIG_SPLASH_SCREEN */
-static inline int cl_splash_screen_prepare(struct splash_location *locations,
-					   uint size)
-{
-	return -ENOSYS;
-}
-#endif /* CONFIG_SPLASH_SCREEN */
-
 #ifdef CONFIG_SMC911X
 int cl_omap3_smc911x_init(int id, int cs, u32 base_addr,
 			  int (*reset)(int), int rst_gpio);
board/compulab/common/splash.c deleted +0 -165

165 lines not on this page · raw message

common/Makefile +1 -0
index c668a2f..e162847 100644
@@ -196,6 +196,7 @@ obj-$(CONFIG_CMD_KGDB) += kgdb.o kgdb_stubs.o
 obj-$(CONFIG_I2C_EDID) += edid.o
 obj-$(CONFIG_KALLSYMS) += kallsyms.o
 obj-y += splash.o
+obj-$(CONFIG_SPLASH_SOURCE) += splash_source.o
 obj-$(CONFIG_LCD) += lcd.o
 obj-$(CONFIG_LYNXKDI) += lynxkdi.o
 obj-$(CONFIG_MENU) += menu.o
common/splash_source.c new file +176 -0

176 lines not on this page · raw message

doc/README.splashprepare +13 -0
index 61b4ec5..a0f0f3c 100644
@@ -6,3 +6,16 @@ common/splash.c. It is called as part of the splash screen display
 sequence. It gives the board an opportunity to prepare the splash
 image data before it is processed and sent to the frame buffer by
 U-Boot.  Define your own version to use this feature.
+
+CONFIG_SPLASH_SOURCE
+
+Use the splash_source.c library. This library provides facilities to declare
+board specific splash image locations, routines for loading splash image from
+supported locations, and a way of controlling the selected splash location
+using the "splashsource" environment variable.
+
+splashsource works as follows:
+- If splashsource is set to a supported location name as defined by board code,
+  use that splash location.
+- If splashsource is undefined, use the first splash location as default.
+- If splashsource is set to an unsupported value, do not load a splash screen.
include/configs/cm_fx6.h +1 -0
index b92ba97..1f64495 100644
@@ -313,6 +313,7 @@
 #define CONFIG_VIDEO_SW_CURSOR
 
 #define CONFIG_SPLASH_SCREEN
+#define CONFIG_SPLASH_SOURCE
 #define CONFIG_CMD_BMP
 #define CONFIG_VIDEO_BMP_RLE8
 
include/configs/cm_t35.h +1 -0
index 9767512..b2a9f35 100644
@@ -310,6 +310,7 @@
 
 #define CONFIG_LCD
 #define CONFIG_SPLASH_SCREEN
+#define CONFIG_SPLASH_SOURCE
 #define CONFIG_CMD_BMP
 #define CONFIG_BMP_16BPP
 #define CONFIG_SCF0403_LCD
include/splash.h +11 -0
index 89ee7b2..a60e895 100644
@@ -22,7 +22,18 @@
 #ifndef _SPLASH_H_
 #define _SPLASH_H_
 
+enum splash_storage {
+	SPLASH_STORAGE_NAND,
+	SPLASH_STORAGE_SF,
+};
 
+struct splash_location {
+	char *name;
+	enum splash_storage storage;
+	u32 offset;	/* offset from start of storage */
+};
+
+int splash_source_load(struct splash_location *locations, uint size);
 int splash_screen_prepare(void);
 
 #ifdef CONFIG_SPLASH_SCREEN_ALIGN
Signature · 1 line
1.9.1
#44 lore raw

PATCH 14/14 common: convert compulab splash load code to common code

Quoted 13 lines · Nikita Kiryanov

Move board/compulab/common/splash.c code to common/splash_source.c to make it available for everybody. This move renames cl_splash_screen_prepare() to splash_source_load(), and the compilation of this code is conditional on CONFIG_SPLASH_SOURCE.

splash_source features:
* Provide a standardized way for declaring board specific splash screen locations
* Provide existing routines for auto loading the splash image from the locations as declared by the board
* Introduce the "splashsource" environment variable, which makes it possible to select the splash image source.

Quoted 7 lines

cm-t35 and cm-fx6 are updated to use the modified version.

Cc Stefano Babic <[email protected]>
Cc Tom Rini <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150114/37221942/attachment.pgp>
#45 lore raw

PATCH 14/14 common: convert compulab splash load code to common code

In reply to Nikita Kiryanov
Quoted 13 lines · Nikita Kiryanov

Move board/compulab/common/splash.c code to common/splash_source.c to make it available for everybody. This move renames cl_splash_screen_prepare() to splash_source_load(), and the compilation of this code is conditional on CONFIG_SPLASH_SOURCE.

splash_source features:
* Provide a standardized way for declaring board specific splash screen locations
* Provide existing routines for auto loading the splash image from the locations as declared by the board
* Introduce the "splashsource" environment variable, which makes it possible to select the splash image source.

Quoted 7 lines

cm-t35 and cm-fx6 are updated to use the modified version.

Cc Stefano Babic <[email protected]>
Cc Tom Rini <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Signature · 2 lines
Regards,
Igor.
#46 lore raw

PATCH 14/14 common: convert compulab splash load code to common code

In reply to Nikita Kiryanov
Quoted 13 lines · Nikita Kiryanov

Move board/compulab/common/splash.c code to common/splash_source.c to make it available for everybody. This move renames cl_splash_screen_prepare() to splash_source_load(), and the compilation of this code is conditional on CONFIG_SPLASH_SOURCE.

splash_source features:
* Provide a standardized way for declaring board specific splash screen locations
* Provide existing routines for auto loading the splash image from the locations as declared by the board
* Introduce the "splashsource" environment variable, which makes it possible to select the splash image source.

Quoted 8 lines

cm-t35 and cm-fx6 are updated to use the modified version.

Cc Stefano Babic <[email protected]>
Cc Tom Rini <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Anatolij Gustschin <[email protected]>

---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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
=====================================================================
#47 lore raw

cover cm-fx6 updates and a new splash screen feature

In reply to Nikita Kiryanov
Quoted 20 lines · Nikita Kiryanov

This series consists of updates for cm-fx6. Some of these updates (specifically:
compulab: splash: use errno values
compulab: splash: refactor splash.c
compulab: splash: support multiple splash sources
compulab: splash: support loading splash from sf)
produce an end result which is not really compulab specific and could be useful for other boards as well, so as a last step in the series this code is converted to common code (common: convert compulab splash load code to common code).

The new feature: CONFIG_SPLASH_SOURCE
This user option will enable splash_source.c, a module which implements a standard way for boards to define a collection of splash screen locations, as well as routines for loading the splash image into memory.

When invoked using splash_source_load(locations, size), the module will consult the environment variable "splashsource" and compare its value with the splash location names as provided by board code. If there's a match, that splash location is used. If there's no mach, no splash image will be loaded. If splashsource is left undefined, the first splash location is used as default.

Quoted 3 lines
Cc Stefano Babic <[email protected]>
Cc Igor Grinberg <[email protected]>
Cc Anatolij Gustschin <[email protected]>

FWIW, I'm fine with this coming either via the imx tree or the video tree, whichever you agree to, Stefano and Anatolij, assuming you're both fine with the code of course.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150114/74d0d87c/attachment.pgp>
#48 lore raw

cover cm-fx6 updates and a new splash screen feature

In reply to Nikita Kiryanov

Hi Nikita,

Quoted 14 lines · Nikita Kiryanov

This series consists of updates for cm-fx6. Some of these updates (specifically:
compulab: splash: use errno values
compulab: splash: refactor splash.c
compulab: splash: support multiple splash sources
compulab: splash: support loading splash from sf)
produce an end result which is not really compulab specific and could be useful for other boards as well, so as a last step in the series this code is converted to common code (common: convert compulab splash load code to common code).

The new feature: CONFIG_SPLASH_SOURCE
This user option will enable splash_source.c, a module which implements a standard way for boards to define a collection of splash screen locations, as well as routines for loading the splash image into memory.

Quoted 5 lines

When invoked using splash_source_load(locations, size), the module will consult the environment variable "splashsource" and compare its value with the splash location names as provided by board code. If there's a match, that splash location is used. If there's no mach, no splash image will be loaded. If splashsource is left undefined, the first splash location is used as default.

Are you planning to work on joining up video and lcd beyond this series?

Regards,
Simon

#49 lore raw

cover cm-fx6 updates and a new splash screen feature

Hi Simon,

Quoted 17 lines · Simon Glass

Hi Nikita,

Quoted 14 lines · Nikita Kiryanov

This series consists of updates for cm-fx6. Some of these updates (specifically:
compulab: splash: use errno values
compulab: splash: refactor splash.c
compulab: splash: support multiple splash sources
compulab: splash: support loading splash from sf)
produce an end result which is not really compulab specific and could be useful for other boards as well, so as a last step in the series this code is converted to common code (common: convert compulab splash load code to common code).

The new feature: CONFIG_SPLASH_SOURCE
This user option will enable splash_source.c, a module which implements a standard way for boards to define a collection of splash screen locations, as well as routines for loading the splash image into memory.

Quoted 7 lines
Quoted 5 lines

When invoked using splash_source_load(locations, size), the module will consult the environment variable "splashsource" and compare its value with the splash location names as provided by board code. If there's a match, that splash location is used. If there's no mach, no splash image will be loaded. If splashsource is left undefined, the first splash location is used as default.

Are you planning to work on joining up video and lcd beyond this series?

Yes. I already started working on the next step.

Quoted 4 lines

Regards,
Simon

Signature · 2 lines
Regards,
Nikita Kiryanov