cm-fx6 updates and a new splash screen feature
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.
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
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.
--- include/configs/cm_fx6.h | 127 +++++++++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 66 deletions(-)
include/configs/cm_fx6.h +61 -66
@@ -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
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.Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 1/14 arm: mx6: cm-fx6: expand boot sequence
In reply to Nikita KiryanovQuoted 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.Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 2/14 arm: mx6: cm-fx6: change dtb node for ethaddr
In reply to Nikita KiryanovWhen 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".
--- board/compulab/cm_fx6/cm_fx6.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
board/compulab/cm_fx6/cm_fx6.c +3 -2
@@ -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
PATCH 2/14 arm: mx6: cm-fx6: change dtb node for ethaddr
Quoted 7 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".
Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 2/14 arm: mx6: cm-fx6: change dtb node for ethaddr
In reply to Nikita KiryanovQuoted 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".
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 3/14 compulab: eeprom: allow reading mac address from multiple eeproms
In reply to Nikita KiryanovImplement the option to select the eeprom i2c bus when reading mac address.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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.
Signed-off-by Nikita Kiryanov <[email protected]>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.
PATCH 3/14 compulab: eeprom: allow reading mac address from multiple eeproms
In reply to Nikita KiryanovQuoted 9 lines · Nikita Kiryanov
Implement the option to select the eeprom i2c bus when reading mac address.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 4/14 arm: mx6: cm-fx6: pass 2nd nic mac addr to Linux
In reply to Nikita KiryanovObtain 2nd NIC MAC address from baseboard EEPROM and pass it to Linux.
--- board/compulab/cm_fx6/cm_fx6.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-)
board/compulab/cm_fx6/cm_fx6.c +16 -7
@@ -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
PATCH 4/14 arm: mx6: cm-fx6: pass 2nd nic mac addr to Linux
Quoted 5 lines · Nikita Kiryanov
Obtain 2nd NIC MAC address from baseboard EEPROM and pass it to Linux.
Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 4/14 arm: mx6: cm-fx6: pass 2nd nic mac addr to Linux
In reply to Nikita KiryanovQuoted 6 lines · Nikita Kiryanov
Obtain 2nd NIC MAC address from baseboard EEPROM and pass it to Linux.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 5/14 arm: mx6: cm-fx6: increase size of malloc area
In reply to Nikita KiryanovIncrease size of malloc area to make room for framebuffer and other such big allocations.
--- include/configs/cm_fx6.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/configs/cm_fx6.h +1 -1
@@ -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
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.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 6/14 arm: mx6: cm-fx6: add hdmi console support
In reply to Nikita KiryanovAdd support for hdmi console.
--- 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
@@ -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
@@ -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
PATCH 6/14 arm: mx6: cm-fx6: add hdmi console
Quoted 7 lines
Add support for hdmi console.
Signed-off-by Nikita Kiryanov <[email protected]>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
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.
Signed-off-by Nikita Kiryanov <[email protected]>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
PATCH 6/14 arm: mx6: cm-fx6: add hdmi console support
In reply to Nikita KiryanovQuoted 5 lines · Nikita Kiryanov
Add support for hdmi console.
Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 6/14 arm: mx6: cm-fx6: add hdmi console support
In reply to Nikita KiryanovQuoted 6 lines · Nikita Kiryanov
Add support for hdmi console.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 7/14 arm: mx6: cm-fx6: display compulab logo
In reply to Nikita KiryanovAdd compulab logo and display it on boot.
--- 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
@@ -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
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
PATCH 7/14 arm: mx6: cm-fx6: display compulab logo
Quoted 5 lines · Nikita Kiryanov
Add compulab logo and display it on boot.
Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 7/14 arm: mx6: cm-fx6: display compulab logo
In reply to Nikita KiryanovHi Nikita,
Quoted 16 lines · Nikita Kiryanov
Add compulab logo and display it on boot.
Signed-off-by Nikita Kiryanov <[email protected]>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.bmpinclude/configs/cm_fx6.h +0
-0
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 =====================================================================
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.
Signed-off-by Nikita Kiryanov <[email protected]>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.bmpinclude/configs/cm_fx6.h +0
-0@@ -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
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_LOGOprovides: 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 =====================================================================
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_LOGOprovides: 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.
PATCH 7/14 arm: mx6: cm-fx6: display compulab logo
In reply to Nikita KiryanovQuoted 6 lines · Nikita Kiryanov
Add compulab logo and display it on boot.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 8/14 arm: mx6: cm-fx6: add support for usb keyboard
In reply to Nikita KiryanovAdd support for usb keyboard for cm_fx6.
--- include/configs/cm_fx6.h | 6 ++++++ 1 file changed, 6 insertions(+)
include/configs/cm_fx6.h +6 -0
@@ -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
PATCH 8/14 arm: mx6: cm-fx6: add support for usb keyboard
Quoted 5 lines · Nikita Kiryanov
Add support for usb keyboard for
cm_fx6.Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 8/14 arm: mx6: cm-fx6: add support for usb keyboard
In reply to Nikita KiryanovQuoted 6 lines · Nikita Kiryanov
Add support for usb keyboard for
cm_fx6.Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 9/14 compulab: splash: use errno values
In reply to Nikita KiryanovUse errno values to improve return reporting.
--- board/compulab/common/splash.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
board/compulab/common/splash.c +5 -4
@@ -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
PATCH 9/14 compulab: splash: use errno values
Quoted 5 lines · Nikita Kiryanov
Use errno values to improve return reporting.
Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 9/14 compulab: splash: use errno values
In reply to Nikita KiryanovQuoted 6 lines · Nikita Kiryanov
Use errno values to improve return reporting.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 10/14 compulab: splash: refactor splash.c
In reply to Nikita KiryanovMove 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.
--- 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
@@ -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
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.
Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 10/14 compulab: splash: refactor splash.c
In reply to Nikita KiryanovQuoted 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.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 11/14 compulab: splash: support multiple splash sources
In reply to Nikita KiryanovDefine 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.
--- 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
@@ -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
@@ -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
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 structsplash_location
- introduce enumsplash_storage
- updatecl_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.
Signed-off-by Nikita Kiryanov <[email protected]>Cc Stefano Babic <[email protected]>Cc Igor Grinberg <[email protected]>
Signature · 2 lines
Regards, Igor.
PATCH 11/14 compulab: splash: support multiple splash sources
In reply to Nikita KiryanovQuoted 7 lines · Nikita Kiryanov
Define a generic way for boards to define splash image locations:
- introduce structsplash_location
- introduce enumsplash_storage
- updatecl_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.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
PATCH 12/14 compulab: splash: support loading splash from sf
In reply to Nikita KiryanovAdd support for loading splash from sf.
--- board/compulab/common/common.h | 1 + board/compulab/common/splash.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+)
board/compulab/common/common.h +1 -0
@@ -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
@@ -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
PATCH 12/14 compulab: splash: support loading splash from sf
Quoted 8 lines · Nikita Kiryanov
Add support for loading splash from sf.
Signed-off-by Nikita Kiryanov <[email protected]>[grinberg at compulab.co.il: staticize the sf global variable]Signed-off-by Igor Grinberg <[email protected]>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 =====================================================================
PATCH 13/14 arm: mx6: cm-fx6: add splash screen support
In reply to Nikita KiryanovAdd support for splash screen.
The splash screen is loaded from the SPI flash and is displayed on the HDMI display.
--- 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
@@ -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
@@ -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
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.Signed-off-by Nikita Kiryanov <[email protected]>[grinberg at compulab.co.il: minor code and commit message updates]Signed-off-by Igor Grinberg <[email protected]>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 =====================================================================
PATCH 14/14 common: convert compulab splash load code to common code
In reply to Nikita KiryanovMove 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.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 14/14 common: convert compulab splash load code to common code
Quoted 13 lines · Nikita Kiryanov
Move
board/compulab/common/splash.ccode tocommon/splash_source.cto make it available for everybody. This move renamescl_splash_screen_prepare()tosplash_source_load(), and the compilation of this code is conditional onCONFIG_SPLASH_SOURCE.
splash_sourcefeatures:
* 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.
Signed-off-by Nikita Kiryanov <[email protected]>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>
PATCH 14/14 common: convert compulab splash load code to common code
In reply to Nikita KiryanovQuoted 13 lines · Nikita Kiryanov
Move
board/compulab/common/splash.ccode tocommon/splash_source.cto make it available for everybody. This move renamescl_splash_screen_prepare()tosplash_source_load(), and the compilation of this code is conditional onCONFIG_SPLASH_SOURCE.
splash_sourcefeatures:
* 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.
Signed-off-by Nikita Kiryanov <[email protected]>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.
PATCH 14/14 common: convert compulab splash load code to common code
In reply to Nikita KiryanovQuoted 13 lines · Nikita Kiryanov
Move
board/compulab/common/splash.ccode tocommon/splash_source.cto make it available for everybody. This move renamescl_splash_screen_prepare()tosplash_source_load(), and the compilation of this code is conditional onCONFIG_SPLASH_SOURCE.
splash_sourcefeatures:
* 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.
Signed-off-by Nikita Kiryanov <[email protected]>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 =====================================================================
cover cm-fx6 updates and a new splash screen feature
In reply to Nikita KiryanovQuoted 20 lines · Nikita Kiryanov
This series consists of updates for cm-fx6. Some of these updates (specifically:
compulab: splash: use errno values
compulab: splash: refactorsplash.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 enablesplash_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>
cover cm-fx6 updates and a new splash screen feature
In reply to Nikita KiryanovHi 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: refactorsplash.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 enablesplash_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
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: refactorsplash.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 enablesplash_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