Nokia RX-51 support
Subsystems (3)
cover Nokia RX-51 support
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Pali Roh?r (14):
arm,omap3: Define save_boot_params in lowlevel_init.S for SPL only
arm: Optionally use existing atags in bootm.c
Add power bus message definitions in twl4030.h
Fix function readline in main.c
cfb_console: Fix function console_scrollup
cfb_console: Add function console_clear and console_clear_line
cfb_console: Add functions for moving with cursor
cfb_console: Add support for some ANSI terminal escape codes New command clear: Clear the ANSI terminal
New config variable CONFIG_MENUCMD
New config variable CONFIG_PREMONITOR
New board support: Nokia RX-51 aka N900
New command bootmenu: ANSI terminal Boot Menu support
RX-51: Add support for bootmenu
README | 2 + arch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 +- arch/arm/lib/bootm.c | 39 +++- board/nokia/rx51/Makefile | 46 ++++ board/nokia/rx51/lowlevel_init.S | 79 ++++++ board/nokia/rx51/rx51.c | 381 ++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378 +++++++++++++++++++++++++++++ boards.cfg | 1 + common/Makefile | 2 + common/cmd_bootmenu.c | 366 ++++++++++++++++++++++++++++ common/cmd_clear.c | 42 ++++ common/env_common.c | 3 + common/main.c | 89 ++++++- drivers/video/cfb_console.c | 346 +++++++++++++++++++++++++-- include/common.h | 20 ++ include/config_cmd_all.h | 2 + include/configs/nokia_rx51.h | 375 +++++++++++++++++++++++++++++ include/twl4030.h | 98 ++++++++ 18 files changed, 2233 insertions(+), 40 deletions(-) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 common/cmd_bootmenu.c create mode 100644 common/cmd_clear.c create mode 100644 include/configs/nokia_rx51.h
Signature · 1 line
1.7.5.4
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
* Hide function save_boot_params if CONFIG_SPL_BUILD is not defined (function do nothing)
* Same behaviour as in file arch/arm/cpu/armv7/omap4/lowlevel_init.S
* This allow to implement board specified function save_boot_params in board code
---
Changes since original version:
- Fixed commit message
arch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
arch/arm/cpu/armv7/omap3/lowlevel_init.S +2 -2
@@ -35,15 +35,15 @@ _TEXT_BASE: .word CONFIG_SYS_TEXT_BASE /* sdram load addr from config.mk */ +#ifdef CONFIG_SPL_BUILD .global save_boot_params save_boot_params: -#ifdef CONFIG_SPL_BUILD ldr r4, =omap3_boot_device ldr r5, [r0, #0x4] and r5, r5, #0xff str r5, [r4] -#endif bx lr +#endif .global omap3_gp_romcode_call omap3_gp_romcode_call:
Signature · 1 line
1.7.5.4
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
Quoted 2 lines
* Hide function
save_boot_paramsifCONFIG_SPL_BUILDis not defined (function do nothing)
What do you mean by this statement here ?
Quoted 2 lines
* Same behaviour as in file
arch/arm/cpu/armv7/omap4/lowlevel_init.S
Eh?
Quoted 2 lines
* This allow to implement board specified function
save_boot_paramsin board code
I see ... do you want to write overridable function? Make it a weak alias?
M
Quoted 17 lines
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagearch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)(quoted diff) +0
-0
b/arch/arm/cpu/armv7/omap3/lowlevel_init.Sindex 2f6930b..c42c5dd 100644arch/arm/cpu/armv7/omap3/lowlevel_init.S +0
-0@@ -35,15 +35,15 @@ _TEXT_BASE: .word CONFIG_SYS_TEXT_BASE /* sdram load addr from config.mk */
arch/arm/cpu/armv7/omap3/lowlevel_init.S line 45
Quoted 10 lines
arch/arm/cpu/armv7/omap3/lowlevel_init.S +1
-2+#ifdef CONFIG_SPL_BUILD .global save_boot_params save_boot_params: -#ifdef CONFIG_SPL_BUILD ldr r4, =omap3_boot_device ldr r5, [r0, #0x4] and r5, r5, #0xff str r5, [r4] -#endif bx lr
Wasn't this jump intentionally left out from the macro ifdef block?
Quoted 4 lines
arch/arm/cpu/armv7/omap3/lowlevel_init.S +1
-0+#endif .global omap3_gp_romcode_call omap3_gp_romcode_call:
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
Quoted 5 lines · Marek Vasut
Quoted 2 lines
* Hide function
save_boot_paramsifCONFIG_SPL_BUILDis not defined (function do nothing)What do you mean by this statement here ?
Quoted 1 line
Quoted 8 lines
Quoted 1 line
* Same behaviour as in file
arch/arm/cpu/armv7/omap4/lowlevel_init.SEh?
Quoted 2 lines
* This allow to implement board specified function
save_boot_paramsin board codeI see ... do you want to write overridable function? Make it a weak alias?
There is a weak one today, but we globally replace it for 'omap3' today. The N900 needs its own version however.
Signature · 1 line
Tom
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
In reply to Pali RohárQuoted 1 line · Pali Roh?r
* Hide function
save_boot_paramsifCONFIG_SPL_BUILDis not defined (function do nothing)
This is fine.
Quoted 1 line
* Same behaviour as in file
arch/arm/cpu/armv7/omap4/lowlevel_init.S
This isn't quite right. OMAP4/5 and AM33XX can re-use the same code here to determine boot device/mode but it's not the same as 'OMAP3.'
Quoted 1 line
* This allow to implement board specified function
save_boot_paramsin board code
This is fine.
Quoted 1 line
Signed-off-by Pali Roh?r <[email protected]>
So I will apply this, but modify the commit message slightly.
Signature · 1 line
Tom
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
In reply to Pali RohárQuoted 27 lines · On Tuesday 24 January 2012 15:27:58 Pali Roh?r wrote:
* Hide function
save_boot_paramsifCONFIG_SPL_BUILDis not defined (function do nothing)* Same behaviour as in file
arch/arm/cpu/armv7/omap4/lowlevel_init.S
* This allow to implement board specified functionsave_boot_paramsin board codeSigned-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagearch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)(quoted diff) +0
-0
b/arch/arm/cpu/armv7/omap3/lowlevel_init.Sindex 2f6930b..c42c5dd 100644arch/arm/cpu/armv7/omap3/lowlevel_init.S +1
-1@@ -35,15 +35,15 @@ _TEXT_BASE: .word CONFIG_SYS_TEXT_BASE /* sdram load addr from config.mk */ +#ifdef CONFIG_SPL_BUILD .global save_boot_params save_boot_params: -#ifdef CONFIG_SPL_BUILD
arch/arm/cpu/armv7/omap3/lowlevel_init.S line 49
Quoted 10 lines
arch/arm/cpu/armv7/omap3/lowlevel_init.S +1
-1ldr r4, =omap3_boot_device ldr r5, [r0, #0x4] and r5, r5, #0xff str r5, [r4] -#endif bx lr +#endif .global omap3_gp_romcode_call omap3_gp_romcode_call:
Now I see that somebody commited this patch to u-boot:
http://git.denx.de/?p=u-
boot.git;a=commit;h=204705111ca10f52f62e1a02ba567d8fc33a6d1e
So I will not include it in new version.
Please, can you inform me when somebody commit my patches to git master?
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120228/0d4fa9df/attachment.pgp>
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
Quoted 43 lines · Pali Roh?r
Quoted 35 lines · On Tuesday 24 January 2012 15:27:58 Pali Roh?r wrote:
* Hide function
save_boot_paramsifCONFIG_SPL_BUILDis not defined (function do nothing)* Same behaviour as in file
arch/arm/cpu/armv7/omap4/lowlevel_init.S
* This allow to implement board specified functionsave_boot_paramsin board codeSigned-off-by Pali Roh?r <[email protected]>---
Changes since original version:
? ?- Fixed commit message?arch/arm/cpu/armv7/omap3/lowlevel_init.S | ? ?4 ++-- ?1 files changed, 2 insertions(+), 2 deletions(-)
(quoted diff) +0
-0
b/arch/arm/cpu/armv7/omap3/lowlevel_init.Sindex 2f6930b..c42c5dd 100644arch/arm/cpu/armv7/omap3/lowlevel_init.S +0
-0@@ -35,15 +35,15 @@?_TEXT_BASE:
? ? ? .word ?CONFIG_SYS_TEXT_BASE? ?/* sdram load addr from config.mk */+#ifdef
CONFIG_SPL_BUILD
?.globalsave_boot_params
?save_boot_params:
-#ifdefCONFIG_SPL_BUILD
? ? ? ldr ? ? r4, =omap3_boot_device
? ? ? ldr ? ? r5, [r0, #0x4]
? ? ? and ? ? r5, r5, #0xff
? ? ? str ? ? r5, [r4]
-#endif
? ? ? bx ? ? ?lr
+#endifQuoted 2 lines
?.global
omap3_gp_romcode_call
?omap3_gp_romcode_call:Now I see that somebody commited this patch to u-boot:
http://git.denx.de/?p=u-
boot.git;a=commit;h=204705111ca10f52f62e1a02ba567d8fc33a6d1e
Quoted 3 lines
So I will not include it in new version.
Please, can you inform me when somebody commit my patches to git master?
I did: http://patchwork.ozlabs.org/patch/137559/ :)
Signature · 1 line
Tom
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
Quoted 45 lines · Pali Roh?r
Quoted 44 lines · On Tuesday 24 January 2012 15:27:58 Pali Roh?r wrote:
Quoted 38 lines
* Hide function
save_boot_paramsifCONFIG_SPL_BUILDis not defined (function do nothing)* Same behaviour as in file
arch/arm/cpu/armv7/omap4/lowlevel_init.S
* This allow to implement board specified functionsave_boot_paramsin board codeSigned-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagearch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)(quoted diff) +0
-0
b/arch/arm/cpu/armv7/omap3/lowlevel_init.Sindex 2f6930b..c42c5dd 100644arch/arm/cpu/armv7/omap3/lowlevel_init.S +2
-2@@ -35,15 +35,15 @@ _TEXT_BASE: .word CONFIG_SYS_TEXT_BASE /* sdram load addr from config.mk */ +#ifdef CONFIG_SPL_BUILD .global save_boot_params save_boot_params: -#ifdef CONFIG_SPL_BUILD ldr r4, =omap3_boot_device ldr r5, [r0, #0x4] and r5, r5, #0xff str r5, [r4] -#endif bx lr +#endif .global omap3_gp_romcode_callQuoted 1 line
omap3_gp_romcode_call:Now I see that somebody commited this patch to u-boot:
http://git.denx.de/?p=u-
boot.git;a=commit;h=204705111ca10f52f62e1a02ba567d8fc33a6d1e
Quoted 5 lines
Quoted 3 lines
So I will not include it in new version.
Please, can you inform me when somebody commit my patches to git master?
Do we really want this hack-around? Maybe generating such bootargs by uboot in the first place (or the ability to actually source bootargs and adjust env accordingly) won't be too bad of a solution?
M
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
Quoted 47 lines · Marek Vasut
Quoted 47 lines · Pali Roh?r
Quoted 46 lines · On Tuesday 24 January 2012 15:27:58 Pali Roh?r wrote:
Quoted 38 lines
* Hide function
save_boot_paramsifCONFIG_SPL_BUILDis not defined (function do nothing)* Same behaviour as in file
arch/arm/cpu/armv7/omap4/lowlevel_init.S
* This allow to implement board specified functionsave_boot_paramsin board codeSigned-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagearch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)(quoted diff) +0
-0
b/arch/arm/cpu/armv7/omap3/lowlevel_init.Sindex 2f6930b..c42c5dd 100644arch/arm/cpu/armv7/omap3/lowlevel_init.S +2
-2@@ -35,15 +35,15 @@ _TEXT_BASE: .word CONFIG_SYS_TEXT_BASE /* sdram load addr from config.mk */ +#ifdef CONFIG_SPL_BUILD .global save_boot_params save_boot_params: -#ifdef CONFIG_SPL_BUILD ldr r4, =omap3_boot_device ldr r5, [r0, #0x4] and r5, r5, #0xff str r5, [r4] -#endif bx lr +#endif .global omap3_gp_romcode_callQuoted 1 line
omap3_gp_romcode_call:Now I see that somebody commited this patch to u-boot:
http://git.denx.de/?p=u-
boot.git;a=commit;h=204705111ca10f52f62e1a02ba567d8fc33a6d1eSo I will not include it in new version.
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
Please, can you inform me when somebody commit my patches to git master?
Do we really want this hack-around? Maybe generating such bootargs by uboot in the first place (or the ability to actually source bootargs and adjust env accordingly) won't be too bad of a solution?
IMHO, yes. There is value in being able to use u-boot as a useful shim when we don't control 100% of the sequence.
Signature · 1 line
Tom
PATCH 1/14 arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only
Dear Tom Rini,
Quoted 61 lines · Marek Vasut
Quoted 60 lines
Quoted 60 lines · Pali Roh?r
Quoted 58 lines · On Tuesday 24 January 2012 15:27:58 Pali Roh?r wrote:
Quoted 40 lines
* Hide function
save_boot_paramsifCONFIG_SPL_BUILDis not defined (function do nothing)* Same behaviour as in file
arch/arm/cpu/armv7/omap4/lowlevel_init.S
* This allow to implement board specified functionsave_boot_paramsin board codeSigned-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagearch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)(quoted diff) +0
-0
b/arch/arm/cpu/armv7/omap3/lowlevel_init.Sindex 2f6930b..c42c5dd 100644 ---a/arch/arm/cpu/armv7/omap3/lowlevel_init.S+++b/arch/arm/cpu/armv7/omap3/lowlevel_init.S(quoted diff) +1
-1@@ -35,15 +35,15 @@ _TEXT_BASE: .word CONFIG_SYS_TEXT_BASE /* sdram load addr from config.mk */ +#ifdef CONFIG_SPL_BUILD .global save_boot_params save_boot_params: -#ifdef CONFIG_SPL_BUILD ldr r4, =omap3_boot_device ldr r5, [r0, #0x4]and r5, r5, #0xff str r5, [r4]arch/arm/cpu/armv7/omap3/lowlevel_init.S line 49
Quoted 9 lines
arch/arm/cpu/armv7/omap3/lowlevel_init.S +1
-1-#endif bx lr +#endif .global omap3_gp_romcode_call omap3_gp_romcode_call:Now I see that somebody commited this patch to u-boot:
http://git.denx.de/?p=u-
boot.git;a=commit;h=204705111ca10f52f62e1a02ba567d8fc33a6d1eSo I will not include it in new version.
Please, can you inform me when somebody commit my patches to git master?
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
Do we really want this hack-around? Maybe generating such bootargs by uboot in the first place (or the ability to actually source bootargs and adjust env accordingly) won't be too bad of a solution?
IMHO, yes. There is value in being able to use u-boot as a useful shim when we don't control 100% of the sequence.
Well ... I won't argue, it's your start.S that's gonne be bloated ;-)
Best regards,
Marek Vasut
PATCH 2/14 arm: Optionally use existing atags in bootm.c
In reply to Pali RohárThis patch adapts the bootm command so that it can use an existing atags command set up by a previous bootloader. If the environment variable "atagaddr" is unset, bootm behaves as normal. If "atagaddr" is set, bootm will use atags address from environment variable and also append new boot args (if specified in u-boot). For example, if a previous boot loader already set up the atags struct at 0x80000100:
setenv atagaddr 0x80000100; bootm 0x80008000
---
Changes since original version:
- Added info to README file
- Added local define CONFIG_SETUP_ANY_TAG
- Fixed compile warning
- Fixed commit message
- Check if atagaddr is not NULL
README | 2 ++ arch/arm/lib/bootm.c | 39 ++++++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 7 deletions(-)
README +2 -0
@@ -3584,6 +3584,8 @@ Some configuration options can be set using Environment Variables. List of environment variables (most likely not complete): + atagaddr - bootm will use ATAGs struct from specified address (arm only) + baudrate - see CONFIG_BAUDRATE bootdelay - see CONFIG_BOOTDELAY
arch/arm/lib/bootm.c +32 -7
@@ -93,6 +93,14 @@ static void announce_and_cleanup(void)cleanup_before_linux (); } +#if defined(CONFIG_SETUP_MEMORY_TAGS ) || \ +defined(CONFIG_CMDLINE_TAG ) || \ +defined(CONFIG_INITRD_TAG ) || \ +defined(CONFIG_SERIAL_TAG ) || \ +defined(CONFIG_REVISION_TAG ) +#define CONFIG_SETUP_ANY_TAG +#endif +int do_bootm_linux (int flag,int argc,char *argv[],bootm_headers_t *images) {bd_t *bd = gd->bd;
@@ -125,12 +133,22 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)debug ("## Transferring control to Linux (at address %08lx) ...\n" , (ulong ) kernel_entry); -#if defined (CONFIG_SETUP_MEMORY_TAGS ) || \ - defined (CONFIG_CMDLINE_TAG ) || \ - defined (CONFIG_INITRD_TAG ) || \ - defined (CONFIG_SERIAL_TAG ) || \ - defined (CONFIG_REVISION_TAG ) -setup_start_tag (bd); + s =getenv ("atagaddr" ); +if (s) + bd->bi_boot_params =simple_strtoul (s,NULL ,16 ); + +if (bd->bi_boot_params) { +printf ("Using existing atags at %#lx\n" , bd->bi_boot_params); + + params = (struct tag *) bd->bi_boot_params; +while (params->hdr.size >0 ) + params =tag_next (params); + }else { +#ifdef CONFIG_SETUP_ANY_TAG +setup_start_tag (bd); +#endif + } +#ifdef CONFIG_SERIAL_TAG setup_serial_tag (¶ms);#endif
@@ -147,8 +165,15 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)if (images->rd_start && images->rd_end)setup_initrd_tag (bd, images->rd_start, images->rd_end);#endif -setup_end_tag (bd); + +if (s) { +if (params->hdr.size >0 ) +setup_end_tag (bd); + }else { +#ifdef CONFIG_SETUP_ANY_TAG +setup_end_tag (bd);#endif + }announce_and_cleanup ();
Signature · 1 line
1.7.5.4
PATCH 2/14 arm: Optionally use existing atags in bootm.c
Quoted 2 lines
This patch adapts the bootm command so that it can use an existing atags command set up by a previous bootloader.
Why do you need it?
Quoted 7 lines
If the environment variable
"atagaddr" is unset, bootm behaves as normal. If "atagaddr" is set, bootm will use atags address from environment variable and also append new boot args (if specified in u-boot). For example, if a previous boot loader already set up the atags struct at0x80000100:setenv atagaddr
0x80000100; bootm0x80008000
Can't you set those atags correctly in uboot?
M
Quoted 92 lines
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Added info to README file
- Added local defineCONFIG_SETUP_ANY_TAG
- Fixed compile warning
- Fixed commit message
- Check if atagaddr is not NULLREADME | 2 ++ arch/arm/lib/bootm.c | 39 ++++++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 7 deletions(-)README +0
-0@@ -3584,6 +3584,8 @@ Some configuration options can be set usingEnvironment Variables.
List of environment variables (most likely not complete):
README +2
-0+ atagaddr - bootm will use ATAGs struct from specified address (arm only) + baudrate - see CONFIG_BAUDRATE bootdelay - see CONFIG_BOOTDELAYarch/arm/lib/bootm.c +8
-0@@ -93,6 +93,14 @@ static void announce_and_cleanup(void)cleanup_before_linux (); } +#if defined(CONFIG_SETUP_MEMORY_TAGS ) || \ +defined(CONFIG_CMDLINE_TAG ) || \ +defined(CONFIG_INITRD_TAG ) || \ +defined(CONFIG_SERIAL_TAG ) || \ +defined(CONFIG_REVISION_TAG ) +#define CONFIG_SETUP_ANY_TAG +#endif +int do_bootm_linux (int flag,int argc,char *argv[],bootm_headers_t *images) {bd_t *bd = gd->bd;@@ -125,12 +133,22 @@ int do_bootm_linux(int flag, int argc, char *argv[],
bootm_headers_t*images) debug ("## Transferring control to Linux (at address %08lx) ...\n", (ulong)kernel_entry);arch/arm/lib/bootm.c +24
-7-#if defined (CONFIG_SETUP_MEMORY_TAGS ) || \ - defined (CONFIG_CMDLINE_TAG ) || \ - defined (CONFIG_INITRD_TAG ) || \ - defined (CONFIG_SERIAL_TAG ) || \ - defined (CONFIG_REVISION_TAG ) -setup_start_tag (bd); + s =getenv ("atagaddr" ); +if (s) + bd->bi_boot_params =simple_strtoul (s,NULL ,16 ); + +if (bd->bi_boot_params) { +printf ("Using existing atags at %#lx\n" , bd->bi_boot_params); + + params = (struct tag *) bd->bi_boot_params; +while (params->hdr.size >0 ) + params =tag_next (params); + }else { +#ifdef CONFIG_SETUP_ANY_TAG +setup_start_tag (bd); +#endif + } +#ifdef CONFIG_SERIAL_TAG setup_serial_tag (¶ms);#endif @@ -147,8 +165,15 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) if (images->rd_start && images->rd_end)setup_initrd_tag (bd, images->rd_start, images->rd_end);#endif -setup_end_tag (bd); + +if (s) { +if (params->hdr.size >0 ) +setup_end_tag (bd); + }else { +#ifdef CONFIG_SETUP_ANY_TAG +setup_end_tag (bd);#endif + }announce_and_cleanup ();
PATCH 2/14 arm: Optionally use existing atags in bootm.c
Quoted 4 lines · On Wednesday 25 January 2012 19:02:45 Marek Vasut wrote:
Quoted 2 lines
This patch adapts the bootm command so that it can use an existing atags command set up by a previous bootloader.
Why do you need it?
Default Nokia kernel has patches which using non-standard atags for reporting bootmode, bootreason, hw-rev, NOLO version, boot count, ...
Closed-source Maemo application need to know these properties (read via /proc/bootreason, ...) and will restart device if there is error.
So U-Boot must can reuse old atags from NOLO and tell it new kernel.
Quoted 11 lines
Quoted 8 lines
If the environment variable
"atagaddr" is unset, bootm behaves as normal. If "atagaddr" is set, bootm will use atags address from environment variable and also append new boot args (if specified in u-boot). For example, if a previous boot loader already set up the atags struct at0x80000100:setenv atagaddr
0x80000100; bootm0x80008000Can't you set those atags correctly in uboot?
No, because atags are not static (e.g bootreason).
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/50c834c7/attachment.pgp>
PATCH 2/14 arm: Optionally use existing atags in bootm.c
Quoted 8 lines · On Wednesday 25 January 2012 19:02:45 Marek Vasut wrote:
Quoted 4 lines
Quoted 2 lines
This patch adapts the bootm command so that it can use an existing atags command set up by a previous bootloader.
Why do you need it?
Default Nokia kernel has patches which using non-standard atags for reporting bootmode, bootreason, hw-rev, NOLO version, boot count, ...
So what? Make u-boot pass arbitrary atags and specify them in your board file.
Quoted 3 lines
Closed-source Maemo application need to know these properties (read via
/proc/bootreason, ...) and will restart device if there is error.
Fine?
Quoted 2 lines
So U-Boot must can reuse old atags from NOLO and tell it new kernel.
must can reuse? Anyway, that's nonsense, why won't u-boot be able to craft those atags?
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
If the environment variable
"atagaddr" is unset, bootm behaves as normal. If "atagaddr" is set, bootm will use atags address from environment variable and also append new boot args (if specified in u-boot). For example, if a previous boot loader already set up the atags struct at0x80000100:
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
setenv atagaddr
0x80000100; bootm0x80008000Can't you set those atags correctly in uboot?
No, because atags are not static (e.g bootreason).
So? You craft them properly in u-boot?
M
PATCH 2/14 arm: Optionally use existing atags in bootm.c
Quoted 3 lines · On Wednesday 25 January 2012 21:55:53 Marek Vasut wrote:
must can reuse? Anyway, that's nonsense, why won't u-boot be able to craft those atags?
Maemo 5 (default OS in Nokia N900) cannot work if kernel does not have proper atags from NOLO. So if U-Boot does not reuse it, then Maemo will not boot...
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/dabf18f8/attachment.pgp>
PATCH 2/14 arm: Optionally use existing atags in bootm.c
Quoted 7 lines · On Wednesday 25 January 2012 21:55:53 Marek Vasut wrote:
Quoted 2 lines
must can reuse? Anyway, that's nonsense, why won't u-boot be able to craft those atags?
Maemo 5 (default OS in Nokia N900) cannot work if kernel does not have proper atags from NOLO. So if U-Boot does not reuse it, then Maemo will not boot...
U-Boot CAN GENERATE THEM
PATCH 2/14 arm: Optionally use existing atags in bootm.c
Quoted 9 lines · On Wednesday 25 January 2012 22:28:38 Marek Vasut wrote:
Quoted 7 lines · On Wednesday 25 January 2012 21:55:53 Marek Vasut wrote:
Quoted 2 lines
must can reuse? Anyway, that's nonsense, why won't u-boot be able to craft those atags?
Maemo 5 (default OS in Nokia N900) cannot work if kernel does not have proper atags from NOLO. So if U-Boot does not reuse it, then Maemo will not boot...
U-Boot CAN GENERATE THEM
Yes, you can parse atags from NOLO and then generate new from existing... But why? Better and easier is copy exising and use it.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/f2ef6172/attachment.pgp>
PATCH 2/14 arm: Optionally use existing atags in bootm.c
Quoted 5 lines · On Wednesday 25 January 2012 22:28:38 Marek Vasut wrote:
Quoted 4 lines
Quoted 4 lines · On Wednesday 25 January 2012 21:55:53 Marek Vasut wrote:
Quoted 2 lines
must can reuse? Anyway, that's nonsense, why won't u-boot be able to craft those atags?
Quoted 8 lines
Quoted 5 lines
Quoted 3 lines
Maemo 5 (default OS in Nokia N900) cannot work if kernel does not have proper atags from NOLO. So if U-Boot does not reuse it, then Maemo will not boot...
U-Boot CAN GENERATE THEM
Yes, you can parse atags from NOLO and then generate new from existing... But why? Better and easier is copy exising and use it.
Because eventually, someone will replace nolo with u-boot and what then?
M
PATCH 2/14 arm: Optionally use existing atags in bootm.c
Quoted 10 lines · On Wednesday 25 January 2012 22:55:25 Marek Vasut wrote:
Quoted 10 lines · On Wednesday 25 January 2012 22:28:38 Marek Vasut wrote:
Quoted 9 lines
Quoted 8 lines · On Wednesday 25 January 2012 21:55:53 Marek Vasut wrote:
Quoted 2 lines
must can reuse? Anyway, that's nonsense, why won't u-boot be able to craft those atags?
Maemo 5 (default OS in Nokia N900) cannot work if kernel does not have proper atags from NOLO. So if U-Boot does not reuse it, then Maemo will
not boot...
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
U-Boot CAN GENERATE THEM
Yes, you can parse atags from NOLO and then generate new from existing... But why? Better and easier is copy exising and use it.
Because eventually, someone will replace nolo with u-boot and what then?
Then we will know what is NOLO doing and how NOLO generating atags...
Temporary solution will be to dump atags for specified N900 HW revision and hard-code it into u-boot... But in one atag is stored boot reason (power key, watchdog reset, normal reset, alarm clock, charger connected, ...) - so we will do not have feature to know why was Maemo started.
Or if someone replace NOLO, he will use other system/kernel which do not depend on non standard atags... (Debian, Kubuntu, Mer or Android working without NOLO atags on N900).
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/d5f06a0f/attachment.pgp>
PATCH 3/14 Add power bus message definitions in twl4030.h
In reply to Pali Rohár* Code copied from linux kernel 3.0.0 from file include/linux/i2c/twl.h
---
Changes since original version:
- Fixed commit message
include/twl4030.h | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 98 insertions(+), 0 deletions(-)
include/twl4030.h +98 -0
@@ -151,6 +151,103 @@#define TWL4030_PM_MASTER_SW_EVENTS_DEVSLP (1 << 1)#define TWL4030_PM_MASTER_SW_EVENTS_DEVOFF (1 << 0) +/* Power bus message definitions */ + +/* The TWL4030/5030 splits its power-management resources (the various +* regulators, clock and reset lines) into 3 processor groups - P1, P2 and +* P3. These groups can then be configured to transition between sleep, wait-on +* and active states by sending messages to the power bus. See Section 5.4.2 +* Power Resources of TWL4030 TRM +*/ + +/* Processor groups */ +#define DEV_GRP_NULL 0x0 +#define DEV_GRP_P1 0x1/* P1: all OMAP devices */ +#define DEV_GRP_P2 0x2/* P2: all Modem devices */ +#define DEV_GRP_P3 0x4/* P3: all peripheral devices */ + +/* Resource groups */ +#define RES_GRP_RES 0x0/* Reserved */ +#define RES_GRP_PP 0x1/* Power providers */ +#define RES_GRP_RC 0x2/* Reset and control */ +#define RES_GRP_PP_RC 0x3 +#define RES_GRP_PR 0x4/* Power references */ +#define RES_GRP_PP_PR 0x5 +#define RES_GRP_RC_PR 0x6 +#define RES_GRP_ALL 0x7/* All resource groups */ + +#define RES_TYPE2_R0 0x0 + +#define RES_TYPE_ALL 0x7 + +/* Resource states */ +#define RES_STATE_WRST 0xF +#define RES_STATE_ACTIVE 0xE +#define RES_STATE_SLEEP 0x8 +#define RES_STATE_OFF 0x0 + +/* Power resources */ + +/* Power providers */ +#define RES_VAUX1 1 +#define RES_VAUX2 2 +#define RES_VAUX3 3 +#define RES_VAUX4 4 +#define RES_VMMC1 5 +#define RES_VMMC2 6 +#define RES_VPLL1 7 +#define RES_VPLL2 8 +#define RES_VSIM 9 +#define RES_VDAC 10 +#define RES_VINTANA1 11 +#define RES_VINTANA2 12 +#define RES_VINTDIG 13 +#define RES_VIO 14 +#define RES_VDD1 15 +#define RES_VDD2 16 +#define RES_VUSB_1V5 17 +#define RES_VUSB_1V8 18 +#define RES_VUSB_3V1 19 +#define RES_VUSBCP 20 +#define RES_REGEN 21 +/* Reset and control */ +#define RES_NRES_PWRON 22 +#define RES_CLKEN 23 +#define RES_SYSEN 24 +#define RES_HFCLKOUT 25 +#define RES_32KCLKOUT 26 +#define RES_RESET 27 +/* Power Reference */ +#define RES_Main_Ref 28 + +#define TOTAL_RESOURCES 28 +/* +* Power Bus Message Format ... these can be sent individually by Linux, +* but are usually part of downloaded scripts that are run when various +* power events are triggered. +* +* Broadcast Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_GRP[11:9] RES_TYPE2[8:7] RES_TYPE[6:4] +* RES_STATE[3:0] +* +* Singular Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_ID[11:4] RES_STATE[3:0] +*/ + +#define MSG_BROADCAST (devgrp, grp, type, type2, state) \ + ((devgrp) << 13 | 1 << 12 | (grp) << 9 | (type2) << 7 \ + | (type) << 4 | (state)) + +#define MSG_SINGULAR (devgrp, id, state) \ + ((devgrp) << 13 | 0 << 12 | (id) << 4 | (state)) + +#define MSG_BROADCAST_ALL (devgrp, state) \ + ((devgrp) << 5 | (state)) + +#define MSG_BROADCAST_REF MSG_BROADCAST_ALL +#define MSG_BROADCAST_PROV MSG_BROADCAST_ALL +#define MSG_BROADCAST__CLK_RST MSG_BROADCAST_ALL +/* Power Managment Receiver */ #define TWL4030_PM_RECEIVER_SC_CONFIG 0x5B#define TWL4030_PM_RECEIVER_SC_DETECT1 0x5C
@@ -311,6 +408,7 @@#define TWL4030_PM_RECEIVER_VDAC_VSEL_18 0x03#define TWL4030_PM_RECEIVER_VMMC1_VSEL_30 0x02#define TWL4030_PM_RECEIVER_VMMC1_VSEL_32 0x03 +#define TWL4030_PM_RECEIVER_VSIM_VSEL_18 0x03/* Device Selection in PM Receiver Module */ #define TWL4030_PM_RECEIVER_DEV_GRP_P1 0x20
Signature · 1 line
1.7.5.4
PATCH 3/14 Add power bus message definitions in twl4030.h
Quoted 1 line
* Code copied from linux kernel 3.0.0 from file
include/linux/i2c/twl.h
Do you need them?
Also, as in other patches, I noticed you don't CC Tom Rini. Also, Ccing Igor Grinberg. Please keep the Cc in next inkarnation of the series!
Guys, can you also help review the rest of the series ?
Quoted 126 lines
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messageinclude/twl4030.h | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 98 insertions(+), 0 deletions(-)
include/twl4030.h +5
-0@@ -151,6 +151,103 @@#define TWL4030_PM_MASTER_SW_EVENTS_DEVSLP (1 << 1)#define TWL4030_PM_MASTER_SW_EVENTS_DEVOFF (1 << 0) +/* Power bus message definitions */ + +/* The TWL4030/5030 splits its power-management resources (the various +* regulators, clock and reset lines) into 3 processor groups - P1, P2 and +* P3. These groups can then be configured to transition between sleep, wait-on + * and active states by sending messages to the power bus. See Section 5.4.2 + * Power Resources of TWL4030 TRM
+ */include/twl4030.h +90
-0+ +/* Processor groups */ +#define DEV_GRP_NULL 0x0 +#define DEV_GRP_P1 0x1/* P1: all OMAP devices */ +#define DEV_GRP_P2 0x2/* P2: all Modem devices */ +#define DEV_GRP_P3 0x4/* P3: all peripheral devices */ + +/* Resource groups */ +#define RES_GRP_RES 0x0/* Reserved */ +#define RES_GRP_PP 0x1/* Power providers */ +#define RES_GRP_RC 0x2/* Reset and control */ +#define RES_GRP_PP_RC 0x3 +#define RES_GRP_PR 0x4/* Power references */ +#define RES_GRP_PP_PR 0x5 +#define RES_GRP_RC_PR 0x6 +#define RES_GRP_ALL 0x7/* All resource groups */ + +#define RES_TYPE2_R0 0x0 + +#define RES_TYPE_ALL 0x7 + +/* Resource states */ +#define RES_STATE_WRST 0xF +#define RES_STATE_ACTIVE 0xE +#define RES_STATE_SLEEP 0x8 +#define RES_STATE_OFF 0x0 + +/* Power resources */ + +/* Power providers */ +#define RES_VAUX1 1 +#define RES_VAUX2 2 +#define RES_VAUX3 3 +#define RES_VAUX4 4 +#define RES_VMMC1 5 +#define RES_VMMC2 6 +#define RES_VPLL1 7 +#define RES_VPLL2 8 +#define RES_VSIM 9 +#define RES_VDAC 10 +#define RES_VINTANA1 11 +#define RES_VINTANA2 12 +#define RES_VINTDIG 13 +#define RES_VIO 14 +#define RES_VDD1 15 +#define RES_VDD2 16 +#define RES_VUSB_1V5 17 +#define RES_VUSB_1V8 18 +#define RES_VUSB_3V1 19 +#define RES_VUSBCP 20 +#define RES_REGEN 21 +/* Reset and control */ +#define RES_NRES_PWRON 22 +#define RES_CLKEN 23 +#define RES_SYSEN 24 +#define RES_HFCLKOUT 25 +#define RES_32KCLKOUT 26 +#define RES_RESET 27 +/* Power Reference */ +#define RES_Main_Ref 28 + +#define TOTAL_RESOURCES 28 +/* +* Power Bus Message Format ... these can be sent individually by Linux, +* but are usually part of downloaded scripts that are run when various +* power events are triggered. +* +* Broadcast Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_GRP[11:9] RES_TYPE2[8:7] RES_TYPE[6:4] +* RES_STATE[3:0] +* +* Singular Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_ID[11:4] RES_STATE[3:0] +*/ + +#define MSG_BROADCAST (devgrp, grp, type, type2, state) \ + ((devgrp) << 13 | 1 << 12 | (grp) << 9 | (type2) << 7 \ + | (type) << 4 | (state)) + +#define MSG_SINGULAR (devgrp, id, state) \ + ((devgrp) << 13 | 0 << 12 | (id) << 4 | (state)) + +#define MSG_BROADCAST_ALL (devgrp, state) \ + ((devgrp) << 5 | (state)) + +#define MSG_BROADCAST_REF MSG_BROADCAST_ALL +#define MSG_BROADCAST_PROV MSG_BROADCAST_ALL +#define MSG_BROADCAST__CLK_RST MSG_BROADCAST_ALL +/* Power Managment Receiver */ #define TWL4030_PM_RECEIVER_SC_CONFIG 0x5B#define TWL4030_PM_RECEIVER_SC_DETECT1 0x5C@@ -311,6 +408,7 @@#define TWL4030_PM_RECEIVER_VDAC_VSEL_18 0x03#define TWL4030_PM_RECEIVER_VMMC1_VSEL_30 0x02#define TWL4030_PM_RECEIVER_VMMC1_VSEL_32 0x03 +#define TWL4030_PM_RECEIVER_VSIM_VSEL_18 0x03/* Device Selection in PM Receiver Module */ #define TWL4030_PM_RECEIVER_DEV_GRP_P1 0x20
PATCH 3/14 Add power bus message definitions in twl4030.h
Quoted 4 lines · On Wednesday 25 January 2012 19:04:37 Marek Vasut wrote:
Quoted 1 line
* Code copied from linux kernel 3.0.0 from file
include/linux/i2c/twl.hDo you need them?
Yes, needed for twl regulator for enabling eMMC.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/316c10b5/attachment.pgp>
PATCH 3/14 Add power bus message definitions in twl4030.h
In reply to Marek VasutQuoted 8 lines · Marek Vasut
Quoted 1 line
* Code copied from linux kernel 3.0.0 from file
include/linux/i2c/twl.hDo you need them?
Also, as in other patches, I noticed you don't CC Tom Rini. Also, Ccing Igor Grinberg. Please keep the Cc in next inkarnation of the series!
Guys, can you also help review the rest of the series ?
I'm currently really busy, but I'll try to give it a quick glance.
Signature · 2 lines
Regards, Igor.
PATCH 4/14 Fix function readline in main.c
In reply to Pali Rohár* Ignore ANSI escape codes for moving cursor, which are generated by keyboard
---
Changes since original version:
- Fixed commit message
common/main.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 51 insertions(+), 0 deletions(-)
common/main.c +51 -0
@@ -958,6 +958,7 @@ int readline_into_buffer (const char *const prompt, char * buffer)int n =0 ;/* buffer index */ int plen =0 ;/* prompt length */ int col;/* output column cnt */ +int esc =0 ;/* ansi escape char */ char c;/* print prompt */
@@ -1024,7 +1025,57 @@ int readline_into_buffer (const char *const prompt, char * buffer) p=delete_char (p_buf, p, &col, &n, plen);continue ; +case '\e' :/* ANSI escape char */ + esc =1 ; +continue ; +default : + +/* +* Check for ANSI escape chars +*/ +if (esc ==0 && c =='\e' ) { + esc =1 ; +continue ; + }else if (esc ==1 ) { +if (c =='[' ) { + esc =2 ; +continue ; + } +if (n <CONFIG_SYS_CBSIZE -2 ) { + ++n; + *p++ ='\e' ; +putc ('\e' ); + } + esc =0 ; + }else if (esc ==2 || esc ==3 ) { +if (esc ==2 && c =='1' ) { + esc =3 ; +continue ; + } +/* Ignore ANSI escape sequences */ +/* generated by keyboard */ +/* \e [ 1 A-D and \e [ A-D */ +if (c >='A' && c <='D' ) { + esc =0 ; +continue ; + } +if (esc ==2 && n <CONFIG_SYS_CBSIZE -3 ) { + n +=2 ; + *p++ ='\e' ; + *p++ ='[' ; +puts ("\e[" ); + }else if (esc ==3 && + n <CONFIG_SYS_CBSIZE -4 ) { + n +=3 ; + *p++ ='\e' ; + *p++ ='[' ; + *p++ ='1' ; +puts ("\e[1" ); + } + esc =0 ; + } +/* * Must be a normal character then */
Signature · 1 line
1.7.5.4
PATCH 4/14 Fix function readline in main.c
Quoted 2 lines
* Ignore ANSI escape codes for moving cursor, which are generated by
keyboard
I think WD should comment on this one.
Quoted 14 lines
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagecommon/main.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 51 insertions(+), 0 deletions(-)common/main.c +0
-0@@ -958,6 +958,7 @@ int readline_into_buffer (const char *const prompt,
Quoted 1 line
char * buffer) int n = 0; /* buffer index
*/
Quoted 64 lines
common/main.c +51
-0int plen =0 ;/* prompt length */ int col;/* output column cnt */ +int esc =0 ;/* ansi escape char */ char c;/* print prompt */ @@ -1024,7 +1025,57 @@ int readline_into_buffer (const char *const prompt, char * buffer) p=delete_char(p_buf, p, &col, &n, plen);continue ; +case '\e' :/* ANSI escape char */ + esc =1 ; +continue ; +default : + +/* +* Check for ANSI escape chars +*/ +if (esc ==0 && c =='\e' ) { + esc =1 ; +continue ; + }else if (esc ==1 ) { +if (c =='[' ) { + esc =2 ; +continue ; + } +if (n <CONFIG_SYS_CBSIZE -2 ) { + ++n; + *p++ ='\e' ; +putc ('\e' ); + } + esc =0 ; + }else if (esc ==2 || esc ==3 ) { +if (esc ==2 && c =='1' ) { + esc =3 ; +continue ; + } +/* Ignore ANSI escape sequences */ +/* generated by keyboard */ +/* \e [ 1 A-D and \e [ A-D */ +if (c >='A' && c <='D' ) { + esc =0 ; +continue ; + } +if (esc ==2 && n <CONFIG_SYS_CBSIZE -3 ) { + n +=2 ; + *p++ ='\e' ; + *p++ ='[' ; +puts ("\e[" ); + }else if (esc ==3 && + n <CONFIG_SYS_CBSIZE -4 ) { + n +=3 ; + *p++ ='\e' ; + *p++ ='[' ; + *p++ ='1' ; +puts ("\e[1" ); + } + esc =0 ; + } +/* * Must be a normal character then */
PATCH 4/14 Fix function readline in main.c
Quoted 4 lines · On Wednesday 25 January 2012 13:05:31 Marek Vasut wrote:
Quoted 2 lines
* Ignore ANSI escape codes for moving cursor, which are generated by
keyboardI think WD should comment on this one.
no need ... see the previous thread on the previous version of this patch. Pali should be able to drop this.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120227/0a3df01d/attachment.pgp>
PATCH 5/14 cfb_console: Fix function console_scrollup
In reply to Pali Rohár* Use correct buffer size, do not damage screen output
---
Changes since original version:
- Fixed commit message
drivers/video/cfb_console.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/video/cfb_console.c +1 -1
@@ -701,7 +701,7 @@ static void console_scrollup(void) );#else memcpyl (CONSOLE_ROW_FIRST ,CONSOLE_ROW_SECOND , -CONSOLE_SCROLL_SIZE >>2 ); +CONSOLE_SCROLL_SIZE );#endif /* clear the last one */
Signature · 1 line
1.7.5.4
PATCH 5/14 cfb_console: Fix function console_scrollup
Quoted 1 line
* Use correct buffer size, do not damage screen output
What are the symptoms, how does this fix the issue?
Ccing Anatolij, I think he's the right one for this patch. Again, keep the correct CC!!!
Quoted 22 lines
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagedrivers/video/cfb_console.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)drivers/video/cfb_console.c +1
-1@@ -701,7 +701,7 @@ static void console_scrollup(void) );#else memcpyl (CONSOLE_ROW_FIRST ,CONSOLE_ROW_SECOND , -CONSOLE_SCROLL_SIZE >>2 ); +CONSOLE_SCROLL_SIZE );#endif /* clear the last one */
PATCH 5/14 cfb_console: Fix function console_scrollup
Quoted 7 lines · On Wednesday 25 January 2012 19:06:51 Marek Vasut wrote:
Quoted 1 line
* Use correct buffer size, do not damage screen output
What are the symptoms, how does this fix the issue?
Ccing Anatolij, I think he's the right one for this patch. Again, keep the correct CC!!!
Output on n900 screen is damged after function console_scrollup is called.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/83f433e7/attachment.pgp>
PATCH 5/14 cfb_console: Fix function console_scrollup
In reply to Pali RohárHi,
Quoted 15 lines · On Tue, 24 Jan 2012 15:28:02 +0100 Pali Roh?r <[email protected]> wrote:
* Use correct buffer size, do not damage screen output
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagedrivers/video/cfb_console.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)drivers/video/cfb_console.c +0
-0
drivers/video/cfb_console.c static void console_scrollup(void) · line 704
Quoted 5 lines
drivers/video/cfb_console.c +1
-1@@ -701,7 +701,7 @@ static void console_scrollup(void) );#else memcpyl (CONSOLE_ROW_FIRST ,CONSOLE_ROW_SECOND , -CONSOLE_SCROLL_SIZE >>2 ); +CONSOLE_SCROLL_SIZE );
NAK. This change is wrong. CONSOLE_SCROLL_SIZE is the size of the visible frame buffer - size of one row in bytes. We are using memcpyl() here, so the division by 4 (size >> 2) is correct. With your change we end up copying 4 times more data then needed.
Thanks,
Anatolij
PATCH 5/14 cfb_console: Fix function console_scrollup
Dear Anatolij Gustschin,
Quoted 28 lines
Hi,
On Tue, 24 Jan 2012 15:28:02 +0100
Quoted 23 lines · Pali Roh?r
* Use correct buffer size, do not damage screen output
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagedrivers/video/cfb_console.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)drivers/video/cfb_console.c +0
-0@@ -701,7 +701,7 @@ static void console_scrollup(void) );#else memcpyl(CONSOLE_ROW_FIRST, CONSOLE_ROW_SECOND,
Quoted 7 lines
drivers/video/cfb_console.c static void console_scrollup(void) · line 704
Quoted 2 lines
drivers/video/cfb_console.c +1
-1- CONSOLE_SCROLL_SIZE >> 2); + CONSOLE_SCROLL_SIZE);NAK. This change is wrong.
CONSOLE_SCROLL_SIZEis the size of the visible frame buffer - size of one row in bytes. We are usingmemcpyl()here, so the division by 4 (size >> 2) is correct. With your change we end up copying 4 times more data then needed.
What kind of a problem are we fixing here? And what are the symptoms of it?
Quoted 3 lines
Thanks,
Anatolij
Best regards,
Marek Vasut
PATCH 5/14 cfb_console: Fix function console_scrollup
Hi Marek,
Quoted 38 lines · On Wed, 21 Mar 2012 11:20:38 +0100 Marek Vasut <[email protected]> wrote:
Dear Anatolij Gustschin,
Quoted 28 lines
Hi,
On Tue, 24 Jan 2012 15:28:02 +0100
Quoted 23 lines · Pali Roh?r
* Use correct buffer size, do not damage screen output
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagedrivers/video/cfb_console.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)drivers/video/cfb_console.c +0
-0@@ -701,7 +701,7 @@ static void console_scrollup(void) );#else memcpyl(CONSOLE_ROW_FIRST, CONSOLE_ROW_SECOND,Quoted 7 lines
drivers/video/cfb_console.c static void console_scrollup(void) · line 704
Quoted 2 lines
drivers/video/cfb_console.c +1
-1- CONSOLE_SCROLL_SIZE >> 2); + CONSOLE_SCROLL_SIZE);NAK. This change is wrong.
CONSOLE_SCROLL_SIZEis the size of the visible frame buffer - size of one row in bytes. We are usingmemcpyl()here, so the division by 4 (size >> 2) is correct. With your change we end up copying 4 times more data then needed.
Quoted 1 line
What kind of a problem are we fixing here? And what are the symptoms of it?
Actually I'm not aware of any problem in current console_scrollup(). At least on two test setups with different framebuffer drivers and in one setup with HW accelerated scrolling I didn't see any problems with current code.
The description in the commit log of this patch:
"Use correct buffer size, do not damage screen output" doesn't say much about the problem. If the GraphicDevice structure returned by video_hw_init() is setup correctly, the scrolling should be working fine. From the other patch [1] I can see that the structure is setup as follows:
/* fill in Graphic Device */
gdev.frameAdrs = 0x8f9c0000;
gdev.winSizeX = 800;
gdev.winSizeY = 480;
gdev.gdfBytesPP = 2;
gdev.gdfIndex = GDF_16BIT_565RGB;
memset((void *)gdev.frameAdrs, 0, 0xbb800);
return (void *) &gdev;Most likely using 0x8f9c0000 as framebuffer address is the first _big_ problem. The framebuffer address range is not allocated properly and could be used by malloc area. The board has 256 MB of RAM starting at 0x80000000, if U-Boot relocated itself to the upper RAM, the problems should be expected.
AFAIK the N900 port doesn't use a framebuffer driver but probably uses pre-initialized display controller configuration. This should be fixed first.
Thanks,
Anatolij
PATCH 5/14 cfb_console: Fix function console_scrollup
On Wed, 21 Mar 2012 12:32:16 +0100
Anatolij Gustschin <[email protected]> wrote:
...
Quoted 3 lines
doesn't say much about the problem. If the GraphicDevice structure returned by
video_hw_init()is setup correctly, the scrolling should be working fine. From the other patch [1] I can see that the structure
I forgot to include a link [1] to the mentioned patch, sorry. Here it is:
[1] http://patchwork.ozlabs.org/patch/137567/
Thanks,
Anatolij
PATCH 5/14 cfb_console: Fix function console_scrollup
In reply to Anatolij GustschinQuoted 74 lines · On Wednesday 21 March 2012 12:32:16 Anatolij Gustschin wrote:
Hi Marek,
On Wed, 21 Mar 2012 11:20:38 +0100
Quoted 40 lines · Marek Vasut
Dear Anatolij Gustschin,
Quoted 28 lines
Hi,
On Tue, 24 Jan 2012 15:28:02 +0100
Quoted 23 lines · Pali Roh?r
* Use correct buffer size, do not damage screen output
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagedrivers/video/cfb_console.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)(quoted diff) +0
-0
b/drivers/video/cfb_console.cindex 904caf7..9092399 100644drivers/video/cfb_console.c +0
-0@@ -701,7 +701,7 @@ static void console_scrollup(void) );#else memcpyl(CONSOLE_ROW_FIRST, CONSOLE_ROW_SECOND,Quoted 9 lines
drivers/video/cfb_console.c static void console_scrollup(void) · line 704
Quoted 2 lines
drivers/video/cfb_console.c +1
-1- CONSOLE_SCROLL_SIZE >> 2); + CONSOLE_SCROLL_SIZE);NAK. This change is wrong.
CONSOLE_SCROLL_SIZEis the size of the
visible frame buffer - size of one row in bytes. We are usingmemcpyl()here, so the division by 4 (size >> 2) is correct. With your change we end up copying 4 times more data then needed.Quoted 2 lines
What kind of a problem are we fixing here? And what are the symptoms of it?
Actually I'm not aware of any problem in current
console_scrollup(). At least on two test setups with different framebuffer drivers and in one setup with HW accelerated scrolling I didn't see any problems with current code.The description in the commit log of this patch:
"Use correct buffer size, do not damage screen output" doesn't say much about the problem. If the GraphicDevice structure returned byvideo_hw_init()is setup correctly, the scrolling should be working fine. From the other patch [1] I can see that the structure is setup as follows:/* fill in Graphic Device */ gdev.frameAdrs = 0x8f9c0000; gdev.winSizeX = 800; gdev.winSizeY = 480; gdev.gdfBytesPP = 2; gdev.gdfIndex = GDF_16BIT_565RGB; memset((void *)gdev.frameAdrs, 0, 0xbb800); return (void *) &gdev;Most likely using
0x8f9c0000as framebuffer address is the first _big_ problem. The framebuffer address range is not allocated properly and could be used by malloc area. The board has 256 MB of RAM starting at0x80000000, if U-Boot relocated itself to the upper RAM, the problems should be expected.
Quoted 6 lines
AFAIK the N900 port doesn't use a framebuffer driver but probably uses pre-initialized display controller configuration. This should be fixed first.
Thanks,
Anatolij
Hi, can you show me how to fix this? How to correctly use framebuffer?
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120321/4d9b43da/attachment.pgp>
PATCH 5/14 cfb_console: Fix function console_scrollup
On Wed, 21 Mar 2012 19:50:34 +0100
Pali Roh?r <[email protected]> wrote:
...
Quoted 2 lines
Hi, can you show me how to fix this? How to correctly use framebuffer?
Hi,
Not really. This would be a new project to rewrite U-Boot driver for OMAP3 DSS. There is a driver under drivers/video/omap3_dss.c, but it doesn't do what we need here. You can try to set gdev.frameAdrs to point to another address range in RAM which is not used by U-Boot. Then get OMAP3430 TRM and read DSS documentation how to configure the display controller so that is displays frame buffer data from this address range. Currently I do not have time nor resources to rewrite the existing omap3_dss driver.
Thanks,
Anatolij
PATCH 5/14 cfb_console: Fix function console_scrollup
Quoted 19 lines · On Wednesday 21 March 2012 23:58:10 Anatolij Gustschin wrote:
On Wed, 21 Mar 2012 19:50:34 +0100
Pali Roh?r <[email protected]> wrote:
...Quoted 2 lines
Hi, can you show me how to fix this? How to correctly use framebuffer?
Hi,
Not really. This would be a new project to rewrite U-Boot driver for OMAP3 DSS. There is a driver under
drivers/video/omap3_dss.c, but it doesn't do what we need here. You can try to set gdev.frameAdrs to point to another address range in RAM which is not used by U-Boot. Then get OMAP3430 TRM and read DSS documentation how to configure the display controller so that is displays frame buffer data from this address range. Currently I do not have time nor resources to rewrite the existingomap3_dssdriver.
Quoted 2 lines
Thanks,
Anatolij
Do you think that mapped address of framebuffer is only problem? Why then framebuffer output on n900 screen working without problem if I do NOT read framebuffer memory? Problem with garbaged display output seems happends only for read operations (console_scrollup, negation of pixels for cursor,...) but not for write-only operations (clear console, clear line, set black/white cursror, render fonsts...). I think if there is problem with address space, then garbaged screen should be also for framebuffer write operations...
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120322/67b0f0ec/attachment.pgp>
PATCH 5/14 cfb_console: Fix function console_scrollup
Hi,
On Thu, 22 Mar 2012 01:58:02 -0700 (PDT)
Pali Roh?r <[email protected]> wrote:
...
Quoted 1 line
Do you think that mapped address of framebuffer is only problem?
I wrote that it could be a problem. I do not know much about your system and U-Boot port and do not know exactly what you meant by "damaged screen output" and when exactly it happens, so I can only speculate.
Quoted 8 lines
Why
then framebuffer output on n900 screen working without problem if I do NOT read framebuffer memory? Problem with garbaged display output seems happends only for read operations (console_scrollup, negation of pixels for cursor,...) but not for write-only operations (clear console, clear line, set black/white cursror, render fonsts...). I think if there is problem with address space, then garbaged screen should be also for framebuffer write operations...
This is another issue then. Can you test read/write access to the frame buffer area by available memory commands "cp", "md", "mm", "cmp"? Can you also verify that reading from frame buffer area by using these memory commands is not working?
Thanks,
Anatolij
PATCH 5/14 cfb_console: Fix function console_scrollup
In reply to Pali RohárHi,
Quoted 1 line · On Tue, 24 Jan 2012 15:28:02 +0100 Pali Roh?r <[email protected]> wrote:
* Use correct buffer size, do not damage screen output
It seems that I can reproduce similar problem on the beagleboard now. Will try to debug and find a solution for it.
Thanks,
Anatolij
PATCH 5/14 cfb_console: Fix function console_scrollup
Quoted 4 lines · On Thursday 26 April 2012 23:45:52 Anatolij Gustschin wrote:
Hi,
On Tue, 24 Jan 2012 15:28:02 +0100
Quoted 8 lines
Quoted 1 line · Pali Roh?r
* Use correct buffer size, do not damage screen output
It seems that I can reproduce similar problem on the beagleboard now. Will try to debug and find a solution for it.
Thanks,
Anatolij
Ok, thanks! I played a lot of with u-boot on nokia n900, but I did not find reason...
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120426/56d51386/attachment.pgp>
PATCH 5/14 cfb_console: Fix function console_scrollup
Quoted 5 lines · On Thu, 26 Apr 2012 23:50:57 +0200 Pali Roh?r <[email protected]> wrote:
Quoted 4 lines · On Thursday 26 April 2012 23:45:52 Anatolij Gustschin wrote:
Hi,
On Tue, 24 Jan 2012 15:28:02 +0100
Quoted 8 lines
Quoted 5 lines
Quoted 1 line · Pali Roh?r
* Use correct buffer size, do not damage screen output
It seems that I can reproduce similar problem on the beagleboard now. Will try to debug and find a solution for it.
Ok, thanks! I played a lot of with u-boot on nokia n900, but I did not find reason...
Probably the issue is caused by cached frame buffer data. This [1] patch is supposed to fix it. Could you please test it on N900? Additional cache flushing also needs to be added to your extensions for cfb_console to fix the menu output.
Thanks,
Anatolij
PATCH 5/14 cfb_console: Fix function console_scrollup
Quoted 24 lines · On Saturday 28 April 2012 17:11:51 Anatolij Gustschin wrote:
On Thu, 26 Apr 2012 23:50:57 +0200
Quoted 8 lines · Pali Roh?r
Quoted 7 lines · On Thursday 26 April 2012 23:45:52 Anatolij Gustschin wrote:
Hi,
On Tue, 24 Jan 2012 15:28:02 +0100
Quoted 1 line · Pali Roh?r
* Use correct buffer size, do not damage screen output
Quoted 7 lines
Quoted 3 lines
It seems that I can reproduce similar problem on the beagleboard now. Will try to debug and find a solution for it.
Ok, thanks! I played a lot of with u-boot on nokia n900, but I
did not find reason...Probably the issue is caused by cached frame buffer data. This
[1] patch is supposed to fix it. Could you please test it on N900? Additional cache flushing also needs to be added to your extensions forcfb_consoleto fix the menu output.
Quoted 4 lines
Thanks,
Anatolij
Hi, your patch fixing this problem. Thanks!
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120428/2c3c1bba/attachment.pgp>
PATCH 6/14 cfb_console: Add function console_clear and console_clear_line
In reply to Pali Rohár * console_clear - clear full console framebuffer output
* console_clear_line - clear part of specified line (or full)
---
Changes since original version:
- Fixed commit message
drivers/video/cfb_console.c | 64 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 12 deletions(-)
drivers/video/cfb_console.c +52 -12
@@ -683,6 +683,57 @@ static void memcpyl(int *d, int *s, int c) }#endif +static void console_clear (void ) +{ +#ifdef VIDEO_HW_RECTFILL +video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ +0 ,/* dest pos x */ + video_logo_height,/* dest pos y */ +VIDEO_VISIBLE_COLS ,/* frame width */ +VIDEO_VISIBLE_ROWS ,/* frame height */ + bgx/* fill color */ + ); +#else +memsetl (CONSOLE_ROW_FIRST ,CONSOLE_SIZE , bgx); +#endif +} + +static void console_clear_line (int line,int begin,int end) +{ +#ifdef VIDEO_HW_RECTFILL +video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ +/* FIXME: correct? */ +VIDEO_FONT_WIDTH * begin,/* dest pos x */ +/* FIXME: correct? */ + video_logo_height + +CONSOLE_ROW_SIZE * line,/* dest pos y */ +/* FIXME: correct? */ +VIDEO_FONT_WIDTH * (end - begin),/* frame width */ +VIDEO_FONT_HEIGHT ,/* frame height */ + bgx/* fill color */ + ); +#else +int i; +if (begin ==0 && end ==CONSOLE_COLS ) +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line,/* offset of row */ +CONSOLE_ROW_SIZE >>2 ,/* length of row */ + bgx/* fill color */ + ); +else +for (i =0 ; i <VIDEO_FONT_HEIGHT ; ++i) +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line +/* offset of row */ +VIDEO_FONT_WIDTH * +VIDEO_PIXEL_SIZE * begin +/* offset of col */ + i *VIDEO_LINE_LEN ,/* col offset of i line */ + (VIDEO_FONT_WIDTH *VIDEO_PIXEL_SIZE * + (end - begin +1 )) >>2 ,/* length to end */ + bgx/* fill color */ + ); +#endif +} +static void console_scrollup (void ) {/* copy up rows ignoring the first one */
@@ -705,18 +756,7 @@ static void console_scrollup(void)#endif /* clear the last one */ -#ifdef VIDEO_HW_RECTFILL -video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ -0 ,/* dest pos x */ -VIDEO_VISIBLE_ROWS - -VIDEO_FONT_HEIGHT ,/* dest pos y */ -VIDEO_VISIBLE_COLS ,/* frame width */ -VIDEO_FONT_HEIGHT ,/* frame height */ -CONSOLE_BG_COL /* fill color */ - ); -#else -memsetl (CONSOLE_ROW_LAST ,CONSOLE_ROW_SIZE >>2 ,CONSOLE_BG_COL ); -#endif +console_clear_line (CONSOLE_ROWS -1 ,0 ,CONSOLE_COLS ); }static void console_back (void )
Signature · 1 line
1.7.5.4
PATCH 6/14 cfb_console: Add function console_clear and console_clear_line
Quoted 17 lines
*
console_clear- clear full console framebuffer output
*console_clear_line- clear part of specified line (or full)Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagedrivers/video/cfb_console.c | 64+++++++++++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 12 deletions(-)
drivers/video/cfb_console.c +0
-0
drivers/video/cfb_console.c static void memcpyl(int *d, int *s, int c) · line 686
Quoted 4 lines
drivers/video/cfb_console.c +1
-0@@ -683,6 +683,57 @@ static void memcpyl(int *d, int *s, int c) }#endif +static void console_clear (void )
Do you use this function AT ALL?
Quoted 73 lines
drivers/video/cfb_console.c +51
-12+{ +#ifdef VIDEO_HW_RECTFILL +video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ +0 ,/* dest pos x */ + video_logo_height,/* dest pos y */ +VIDEO_VISIBLE_COLS ,/* frame width */ +VIDEO_VISIBLE_ROWS ,/* frame height */ + bgx/* fill color */ + ); +#else +memsetl (CONSOLE_ROW_FIRST ,CONSOLE_SIZE , bgx); +#endif +} + +static void console_clear_line (int line,int begin,int end) +{ +#ifdef VIDEO_HW_RECTFILL +video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ +/* FIXME: correct? */ +VIDEO_FONT_WIDTH * begin,/* dest pos x */ +/* FIXME: correct? */ + video_logo_height + +CONSOLE_ROW_SIZE * line,/* dest pos y */ +/* FIXME: correct? */ +VIDEO_FONT_WIDTH * (end - begin),/* frame width */ +VIDEO_FONT_HEIGHT ,/* frame height */ + bgx/* fill color */ + ); +#else +int i; +if (begin ==0 && end ==CONSOLE_COLS ) +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line,/* offset of row */ +CONSOLE_ROW_SIZE >>2 ,/* length of row */ + bgx/* fill color */ + ); +else +for (i =0 ; i <VIDEO_FONT_HEIGHT ; ++i) +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line +/* offset of row */ +VIDEO_FONT_WIDTH * +VIDEO_PIXEL_SIZE * begin +/* offset of col */ + i *VIDEO_LINE_LEN ,/* col offset of i line */ + (VIDEO_FONT_WIDTH *VIDEO_PIXEL_SIZE * + (end - begin +1 )) >>2 ,/* length to end */ + bgx/* fill color */ + ); +#endif +} +static void console_scrollup (void ) {/* copy up rows ignoring the first one */ @@ -705,18 +756,7 @@ static void console_scrollup(void)#endif /* clear the last one */ -#ifdef VIDEO_HW_RECTFILL -video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ -0 ,/* dest pos x */ -VIDEO_VISIBLE_ROWS - -VIDEO_FONT_HEIGHT ,/* dest pos y */ -VIDEO_VISIBLE_COLS ,/* frame width */ -VIDEO_FONT_HEIGHT ,/* frame height */ -CONSOLE_BG_COL /* fill color */ - ); -#else -memsetl (CONSOLE_ROW_LAST ,CONSOLE_ROW_SIZE >>2 ,CONSOLE_BG_COL ); -#endif +console_clear_line (CONSOLE_ROWS -1 ,0 ,CONSOLE_COLS ); }static void console_back (void )
PATCH 6/14 cfb_console: Add function console_clear and console_clear_line
Quoted 5 lines · On Wednesday 25 January 2012 19:08:31 Marek Vasut wrote:
Quoted 2 lines
+static void
console_clear(void)Do you use this function AT ALL?
Yes, in patch which add ANSI terminal support to cfb_console.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/1ac8296c/attachment.pgp>
PATCH 6/14 cfb_console: Add function console_clear and console_clear_line
Quoted 6 lines · On Wednesday 25 January 2012 19:08:31 Marek Vasut wrote:
Quoted 3 lines
Quoted 1 line
+static void
console_clear(void)Do you use this function AT ALL?
Yes, in patch which add ANSI terminal support to
cfb_console.
Why do you even need the support for ANSI terminal in the first place?
PATCH 7/14 cfb_console: Add functions for moving with cursor
In reply to Pali Rohár * console_cursor_fix - fix cursor position (check for out of screen)
* console_cursor_up, console_cursor_down, console_cursor_left, console_cursor_right, console_cursor_set_position for change cursor position
* console_newline - added param to specify count of creating new lines
* console_previewsline - opposite of console_newline
---
Changes since original version:
- Fixed commit message
drivers/video/cfb_console.c | 64 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 58 insertions(+), 6 deletions(-)
drivers/video/cfb_console.c +58 -6
@@ -773,9 +773,54 @@ static void console_back(void)CURSOR_SET ; } -static void console_newline (void ) +static void console_cursor_fix (void ) { - console_row++; +if (console_row <0 ) + console_row =0 ; +if (console_row >=CONSOLE_ROWS ) + console_row =CONSOLE_ROWS -1 ; +if (console_col <0 ) + console_col =0 ; +if (console_col >=CONSOLE_COLS ) + console_col =CONSOLE_COLS -1 ; +} + +static void console_cursor_up (int n) +{ + console_row -= n; +console_cursor_fix (); +} + +static void console_cursor_down (int n) +{ + console_row += n; +console_cursor_fix (); +} + +static void console_cursor_left (int n) +{ + console_col -= n; +console_cursor_fix (); +} + +static void console_cursor_right (int n) +{ + console_col += n; +console_cursor_fix (); +} + +static void console_cursor_set_position (int row,int col) +{ +if (console_row !=-1 ) + console_row = row; +if (console_col !=-1 ) + console_col = col; +console_cursor_fix (); +} + +static void console_newline (int n) +{ + console_row += n; console_col =0 ;/* Check if we need to scroll the terminal */
@@ -784,10 +829,17 @@ static void console_newline(void)console_scrollup ();/* Decrement row number */ - console_row--; + console_row =CONSOLE_ROWS -1 ; } } +static void console_previewsline (int n) +{ +/* FIXME: also scroll terminal ? */ + console_row -= n; +console_cursor_fix (); +} +static void console_cr (void ) { console_col =0 ;
@@ -806,7 +858,7 @@ void video_putc(const char c)case '\n' :/* next line */ if (console_col || (!console_col && nl)) -console_newline (); +console_newline (1 ); nl =1 ;break ;
@@ -815,7 +867,7 @@ void video_putc(const char c) console_col &= ~0x0007 ;if (console_col >=CONSOLE_COLS ) -console_newline (); +console_newline (1 );break ;case 8 :/* backspace */
@@ -829,7 +881,7 @@ void video_putc(const char c)/* check for newline */ if (console_col >=CONSOLE_COLS ) { -console_newline (); +console_newline (1 ); nl =0 ; } }
Signature · 1 line
1.7.5.4
PATCH 8/14 cfb_console: Add support for some ANSI terminal escape codes
In reply to Pali Rohár * This patch add support for move cursor and reverse colors via ANSI espace codes in cfb_console driver
* ANSI escape codes can be enabled/disabled via CONFIG_CFB_CONSOLE_ANSI
---
Changes since original version:
- Fixed commit message
drivers/video/cfb_console.c | 216 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 215 insertions(+), 1 deletions(-)
drivers/video/cfb_console.c +215 -1
@@ -377,6 +377,10 @@ static int console_row; /* cursor row */static u32 eorx, fgx, bgx;/* color pats */ +static char ansi_buf[10 ] = {0 , }; +static int ansi_buf_size; +static int ansi_colors_need_revert; +static const int video_font_draw_table8[] = {0x00000000 ,0x000000ff ,0x0000ff00 ,0x0000ffff ,0x00ff0000 ,0x00ff00ff ,0x00ffff00 ,0x00ffffff ,
@@ -602,6 +606,14 @@ static void video_putchar(int xx, int yy, unsigned char c)video_drawchars (xx, yy + video_logo_height, &c,1 ); } +static void console_swap_colors (void ) +{ + eorx = fgx; + fgx = bgx; + bgx = eorx; + eorx = fgx ^ bgx; +} +#if defined(CONFIG_CONSOLE_CURSOR ) || defined(CONFIG_VIDEO_SW_CURSOR )static void video_set_cursor (void ) {
@@ -845,7 +857,7 @@ static void console_cr(void) console_col =0 ; } -void video_putc (const char c) +static void parse_putc (const char c) {static int nl =1 ;
@@ -888,6 +900,208 @@ void video_putc(const char c)CURSOR_SET ; } +void video_putc (const char c) +{ +#ifdef CONFIG_CFB_CONSOLE_ANSI +int i; + +if (c ==27 ) { +for (i =0 ; i < ansi_buf_size; ++i) +parse_putc (ansi_buf[i]); + ansi_buf[0 ] =27 ; + ansi_buf_size =1 ; +return ; + } + +if (ansi_buf_size >0 ) { +/* +0 - ESC +1 - [ +2 - num1 +3 - .. +4 - ; +5 - num2 +6 - .. +7 - cchar +*/ +int next =0 ; + +int flush =0 ; +int fail =0 ; + +int num1 =0 ; +int num2 =0 ; +int cchar =0 ; + + ansi_buf[ansi_buf_size++] = c; + +if (ansi_buf_size >=sizeof (ansi_buf)) + fail =1 ; + +for (i =0 ; i < ansi_buf_size; ++i) { +if (fail) +break ; + +switch (next) { +case 0 : +if (ansi_buf[i] ==27 ) + next =1 ; +else + fail =1 ; +break ; + +case 1 : +if (ansi_buf[i] =='[' ) + next =2 ; +else + fail =1 ; +break ; + +case 2 : +if (ansi_buf[i] >='0' && ansi_buf[i] <='9' ) { + num1 = ansi_buf[i]-'0' ; + next =3 ; + }else { + --i; + num1 =1 ; + next =4 ; + } +break ; + +case 3 : +if (ansi_buf[i] >='0' && ansi_buf[i] <='9' ) { + num1 *=10 ; + num1 += ansi_buf[i]-'0' ; + }else { + --i; + next =4 ; + } +break ; + +case 4 : +if (ansi_buf[i] !=';' ) { + --i; + next =7 ; + }else + next =5 ; +break ; + +case 5 : +if (ansi_buf[i] >='0' && ansi_buf[i] <='9' ) { + num2 = ansi_buf[i]-'0' ; + next =6 ; + }else + fail =1 ; +break ; + +case 6 : +if (ansi_buf[i] >='0' && ansi_buf[i] <='9' ) { + num2 *=10 ; + num2 += ansi_buf[i]-'0' ; + }else { + --i; + next =7 ; + } +break ; + +case 7 : +if ((ansi_buf[i] >='A' && ansi_buf[i] <='H' ) + || ansi_buf[i] =='J' + || ansi_buf[i] =='K' + || ansi_buf[i] =='m' ) { + cchar = ansi_buf[i]; + flush =1 ; + }else + fail =1 ; +break ; + } + } + +if (fail) { +for (i =0 ; i < ansi_buf_size; ++i) +parse_putc (ansi_buf[i]); + ansi_buf_size =0 ; +return ; + } + +if (flush) { +CURSOR_OFF ; + ansi_buf_size =0 ; +switch (cchar) { +case 'A' : +/* move cursor num1 rows up */ +console_cursor_up (num1); +break ; +case 'B' : +/* move cursor num1 rows down */ +console_cursor_down (num1); +break ; +case 'C' : +/* move cursor num1 columns forward */ +console_cursor_right (num1); +break ; +case 'D' : +/* move cursor num1 columns back */ +console_cursor_left (num1); +break ; +case 'E' : +/* move cursor num1 rows up at begin of row */ +console_previewsline (num1); +break ; +case 'F' : +/* move cursor num1 rows down@begin of row */ +console_newline (num1); +break ; +case 'G' : +/* move cursor to column num1 */ +console_cursor_set_position (-1 , num1-1 ); +break ; +case 'H' : +/* move cursor to row num1, column num2 */ +console_cursor_set_position (num1-1 , num2-1 ); +break ; +case 'J' : +/* clear console and move cursor to 0, 0 */ +console_clear (); +console_cursor_set_position (0 ,0 ); +break ; +case 'K' : +/* clear line */ +if (num1 ==0 ) +console_clear_line (console_row, + console_col, +CONSOLE_COLS -1 ); +else if (num1 ==1 ) +console_clear_line (console_row, +0 , console_col); +else +console_clear_line (console_row, +0 ,CONSOLE_COLS -1 ); +break ; +case 'm' : +if (num1 ==0 ) {/* reset swapped colors */ +if (ansi_colors_need_revert) { +console_swap_colors (); + ansi_colors_need_revert =0 ; + } + }else if (num1 ==7 ) {/* once swap colors */ +if (!ansi_colors_need_revert) { +console_swap_colors (); + ansi_colors_need_revert =1 ; + } + } +break ; + } +CURSOR_SET ; + } + }else { +parse_putc (c); + } +#else +parse_putc (c); +#endif +} +void video_puts (const char *s) {int count =strlen (s);
Signature · 1 line
1.7.5.4
PATCH 9/14 New command clear: Clear the ANSI terminal
In reply to Pali Rohár * Command can be enabled by CONFIG_CMD_CLEAR
* Added some ANSI escape codes definitions in common.h
---
Changes since original version:
- Renamed command clr to clear
- Use puts instead printf
- Move cursor to pos1,1
- Merged parts of patch "Add some ANSI escape codes definitions in common.h"
common/Makefile | 1 + common/cmd_clear.c | 42 ++++++++++++++++++++++++++++++++++++++++++ include/common.h | 7 +++++++ include/config_cmd_all.h | 1 + 4 files changed, 51 insertions(+), 0 deletions(-) create mode 100644 common/cmd_clear.c
common/Makefile +1 -0
@@ -69,6 +69,7 @@ COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o +COBJS-$(CONFIG_CMD_CLEAR) += cmd_clear.o COBJS-$(CONFIG_CMD_CONSOLE) += cmd_console.o COBJS-$(CONFIG_CMD_CPLBINFO) += cmd_cplbinfo.o COBJS-$(CONFIG_DATAFLASH_MMC_SELECT) += cmd_dataflash_mmc_mux.o
common/cmd_clear.c new file +42 -0
42 lines not on this page · raw message
include/common.h +7 -0
@@ -751,6 +751,13 @@ void clear_ctrlc (void); /* clear the Control-C condition */int disable_ctrlc (int );/* 1 to disable, 0 to enable Control-C detect */ /* +* ANSI terminal +*/ + +#define ANSI_CURSOR_POSITION "\e[%d;%dH" +#define ANSI_CLEAR_CONSOLE "\e[2J" + +/* * STDIO based functions (can always be used) */ /* serial stuff */
include/config_cmd_all.h +1 -0
@@ -23,6 +23,7 @@#define CONFIG_CMD_BSP /* Board Specific functions */ #define CONFIG_CMD_CACHE /* icache, dcache */ #define CONFIG_CMD_CDP /* Cisco Discovery Protocol */ +#define CONFIG_CMD_CLEAR /* ANSI clear screen command */ #define CONFIG_CMD_CONSOLE /* coninfo */ #define CONFIG_CMD_DATE /* support for RTC, date/time...*/ #define CONFIG_CMD_DHCP /* DHCP Support */
Signature · 1 line
1.7.5.4
PATCH 9/14 New command clear: Clear the ANSI terminal
Quoted 5 lines
* Command can be enabled by
CONFIG_CMD_CLEAR
* Added some ANSI escape codes definitions incommon.hSigned-off-by Pali Roh?r <[email protected]>Cc Marcel Mol <[email protected]>
Do you seriously need a new command for such a simple operation?
M
Quoted 106 lines
---
Changes since original version:
- Renamed command clr to clear
- Use puts instead printf
- Move cursor to pos1,1
- Merged parts of patch "Add some ANSI escape codes definitions incommon.h"common/Makefile | 1 + common/cmd_clear.c | 42 ++++++++++++++++++++++++++++++++++++++++++ include/common.h | 7 +++++++ include/config_cmd_all.h | 1 + 4 files changed, 51 insertions(+), 0 deletions(-) create mode 100644 common/cmd_clear.ccommon/Makefile +1
-0@@ -69,6 +69,7 @@ COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o +COBJS-$(CONFIG_CMD_CLEAR) += cmd_clear.o COBJS-$(CONFIG_CMD_CONSOLE) += cmd_console.o COBJS-$(CONFIG_CMD_CPLBINFO) += cmd_cplbinfo.o COBJS-$(CONFIG_DATAFLASH_MMC_SELECT) += cmd_dataflash_mmc_mux.ocommon/cmd_clear.c new file +30
-0@@ -0,0 +1,42 @@ +/* +* Copyright 2011 +* Marcel Mol, MESA Consulting, marcel at mesa.nl +* +* Copyright 2011 +* Pali Roh?r, pali.rohar at gmail.com +* +* See file CREDITS for list of people who contributed to this +* project. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +#include <common.h> +#include <command.h> + +static int do_clear(cmd_tbl_t *cmdtp, int flag, int argc, char * constargv[]) +{
common/cmd_clear.c new file +11
-0+puts (ANSI_CLEAR_CONSOLE ); +printf (ANSI_CURSOR_POSITION ,1 ,1 ); +return 0 ; +} + +U_BOOT_CMD ( + clear,CONFIG_SYS_MAXARGS ,1 , do_clear, +"clear" , +"\n" +" - clear screen and move cursor to top of screen" +);include/common.h +0
-0@@ -751,6 +751,13 @@ void clear_ctrlc (void); /* clear the Control-Ccondition */ int
disable_ctrlc(int); /* 1 to disable, 0 to enable
Control-C detect *//*
+ * ANSI terminal
+ */include/common.h +5
-0+ +#define ANSI_CURSOR_POSITION "\e[%d;%dH" +#define ANSI_CLEAR_CONSOLE "\e[2J" + +/* * STDIO based functions (can always be used) */ /* serial stuff */ include/config_cmd_all.h +1
-0@@ -23,6 +23,7 @@#define CONFIG_CMD_BSP /* Board Specific functions */ #define CONFIG_CMD_CACHE /* icache, dcache */ #define CONFIG_CMD_CDP /* Cisco Discovery Protocol */ +#define CONFIG_CMD_CLEAR /* ANSI clear screen command */ #define CONFIG_CMD_CONSOLE /* coninfo */ #define CONFIG_CMD_DATE /* support for RTC, date/time...*/ #define CONFIG_CMD_DHCP /* DHCP Support */
PATCH 9/14 New command clear: Clear the ANSI terminal
Quoted 2 lines · On Wednesday 25 January 2012 19:10:03 Marek Vasut wrote:
Do you seriously need a new command for such a simple operation?
Yes, command clear is really usefull for debugging framebuffer output on n900.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/aa83d174/attachment.pgp>
PATCH 9/14 New command clear: Clear the ANSI terminal
Quoted 5 lines · On Wednesday 25 January 2012 19:10:03 Marek Vasut wrote:
Quoted 1 line
Do you seriously need a new command for such a simple operation?
Yes, command clear is really usefull for debugging framebuffer output on n900.
Ok, let's see what the other people think, I'm opposed tho
PATCH 9/14 New command clear: Clear the ANSI terminal
Quoted 7 lines · On Wednesday 25 January 2012 15:53:51 Marek Vasut wrote:
Quoted 5 lines · On Wednesday 25 January 2012 19:10:03 Marek Vasut wrote:
Quoted 1 line
Do you seriously need a new command for such a simple operation?
Yes, command clear is really usefull for debugging framebuffer output on n900.
Ok, let's see what the other people think, I'm opposed tho
it's a CONFIG option, so it's fine by me
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120214/d3144797/attachment.pgp>
PATCH 10/14 New config variable CONFIG_MENUCMD
In reply to Pali Rohár * If not defined CONFIG_MENUCMD do nothing
* If CONFIG_MENUKEY is 0 and was pressed any key run env "menu_cmd"
* If pressed key was CONFIG_MENUKEY run env "menu_cmd"
* If CONFIG_MENUKEY is not defined run env "menu_cmd" always
* CONFIG_MENUKEY working if defined CONFIG_MENUCMD and CONFIG_BOOTDELAY >= 0
---
Changes since original version:
- Fixed commit message
common/main.c | 34 +++++++++++++++++++++++----------- 1 files changed, 23 insertions(+), 11 deletions(-)
common/main.c +23 -11
@@ -82,6 +82,20 @@ int do_mdm_init = 0;extern void mdm_init (void );/* defined in board.c */ #endif +#if defined(CONFIG_MENUKEY ) && !defined(CONFIG_MENUCMD ) && \ +(!defined(CONFIG_BOOTDELAY ) ||CONFIG_BOOTDELAY <0 ) +#error CONFIG_MENUKEY defined, but not CONFIG_MENUCMD or CONFIG_BOOTDELAY >= 0 +#error define CONFIG_MENUCMD and CONFIG_BOOTDELAY too +#endif + +#ifdef CONFIG_MENUCMD +# ifdef CONFIG_MENUKEY +static int menucmd; +# else +static int menucmd =1 ; +# endif +#endif +/*************************************************************************** * Watch for 'delay' seconds for autoboot stop or autoboot delay string. * returns: 0 - no key string, allow autoboot 1 - got key string, abort
@@ -201,10 +215,6 @@ int abortboot(int bootdelay)# else /* !defined(CONFIG_AUTOBOOT_KEYED) */ -#ifdef CONFIG_MENUKEY -static int menukey =0 ; -#endif -#ifndef CONFIG_MENU static inline#endif
@@ -241,8 +251,10 @@ int abortboot(int bootdelay)if (tstc ()) {/* we got a key press */ abort =1 ;/* don't auto boot */ bootdelay =0 ;/* no more delay */ -# ifdef CONFIG_MENUKEY - menukey =getc (); +# if defined(CONFIG_MENUCMD ) && defined(CONFIG_MENUKEY ) +if (CONFIG_MENUKEY ==0 || +CONFIG_MENUKEY ==getc ()) + menucmd =1 ;# else (void )getc ();/* consume input */ # endif
@@ -292,6 +304,7 @@ int run_command2(const char *cmd, int flag)void main_loop (void ) { +char *s;#ifndef CONFIG_SYS_HUSH_PARSER static char lastcommand[CONFIG_SYS_CBSIZE ] = {0 , };int len;
@@ -300,7 +313,6 @@ void main_loop (void)#endif #if defined(CONFIG_BOOTDELAY ) && (CONFIG_BOOTDELAY >=0 ) -char *s;int bootdelay;#endif #ifdef CONFIG_PREBOOT
@@ -405,15 +417,15 @@ void main_loop (void)disable_ctrlc (prev);/* restore Control C checking */ # endif } +#endif /* CONFIG_BOOTDELAY */ -# ifdef CONFIG_MENUKEY -if (menukey ==CONFIG_MENUKEY ) { +#ifdef CONFIG_MENUCMD +if (menucmd ==1 ) { s =getenv ("menucmd" );if (s)run_command2 (s,0 ); } -#endif /* CONFIG_MENUKEY */ -#endif /* CONFIG_BOOTDELAY */ +#endif /* * Main Loop for Monitor Command Processing
Signature · 1 line
1.7.5.4
PATCH 10/14 New config variable CONFIG_MENUCMD
Quoted 10 lines
* If not defined
CONFIG_MENUCMDdo nothing* If
CONFIG_MENUKEYis 0 and was pressed any key run env "menu_cmd"
* If pressed key wasCONFIG_MENUKEYrun env "menu_cmd"
* IfCONFIG_MENUKEYis not defined run env "menu_cmd" always*
CONFIG_MENUKEYworking if definedCONFIG_MENUCMDandCONFIG_BOOTDELAY>=
0Signed-off-by Pali Roh?r <[email protected]>
So this is just to interrupt autoboot? Why not just report the "menukey" as any other keypress and do it that way?
M
Quoted 92 lines
---
Changes since original version:
- Fixed commit messagecommon/main.c | 34 +++++++++++++++++++++++----------- 1 files changed, 23 insertions(+), 11 deletions(-)common/main.c +3
-0@@ -82,6 +82,20 @@ int do_mdm_init = 0;extern void mdm_init (void );/* defined in board.c */ #endif +#if defined(CONFIG_MENUKEY ) && !defined(CONFIG_MENUCMD ) && \ +(!defined(CONFIG_BOOTDELAY ) ||CONFIG_BOOTDELAY <0 ) +#error CONFIG_MENUKEY defined, but not CONFIG_MENUCMD or CONFIG_BOOTDELAYQuoted 1 line
= 0 +#error define
CONFIG_MENUCMDandCONFIG_BOOTDELAYtoocommon/main.c +10
-0+#endif + +#ifdef CONFIG_MENUCMD +# ifdef CONFIG_MENUKEY +static int menucmd; +# else +static int menucmd =1 ; +# endif +#endif +/************************************************************************* ** * Watch for 'delay' seconds for autoboot stop or autoboot delay string.
* returns: 0 - no key string, allow autoboot 1 - got key string, abort @@ -201,10 +215,6 @@ int abortboot(int bootdelay)# else /* !defined(CONFIG_AUTOBOOT_KEYED) */
common/main.c +9
-11-#ifdef CONFIG_MENUKEY -static int menukey =0 ; -#endif -#ifndef CONFIG_MENU static inline#endif @@ -241,8 +251,10 @@ int abortboot(int bootdelay)if (tstc ()) {/* we got a key press */ abort =1 ;/* don't auto boot */ bootdelay =0 ;/* no more delay */ -# ifdef CONFIG_MENUKEY - menukey =getc (); +# if defined(CONFIG_MENUCMD ) && defined(CONFIG_MENUKEY ) +if (CONFIG_MENUKEY ==0 || +CONFIG_MENUKEY ==getc ()) + menucmd =1 ;# else (void )getc ();/* consume input */ # endif @@ -292,6 +304,7 @@ int run_command2(const char *cmd, int flag)void main_loop (void ) { +char *s;#ifndef CONFIG_SYS_HUSH_PARSER static char lastcommand[CONFIG_SYS_CBSIZE ] = {0 , };int len;@@ -300,7 +313,6 @@ void main_loop (void)#endif #if defined(CONFIG_BOOTDELAY ) && (CONFIG_BOOTDELAY >=0 ) -char *s;int bootdelay;#endif #ifdef CONFIG_PREBOOT @@ -405,15 +417,15 @@ void main_loop (void)disable_ctrlc (prev);/* restore Control C checking */ # endif } +#endif /* CONFIG_BOOTDELAY */ -# ifdef CONFIG_MENUKEY -if (menukey ==CONFIG_MENUKEY ) { +#ifdef CONFIG_MENUCMD +if (menucmd ==1 ) { s =getenv ("menucmd" );if (s)run_command2 (s,0 ); } -#endif /* CONFIG_MENUKEY */ -#endif /* CONFIG_BOOTDELAY */ +#endif /* * Main Loop for Monitor Command Processing
PATCH 10/14 New config variable CONFIG_MENUCMD
Quoted 3 lines · On Wednesday 25 January 2012 19:12:29 Marek Vasut wrote:
So this is just to interrupt autoboot? Why not just report the "menukey" as any other keypress and do it that way?
Usefull for interrupt autoboot and run some menu (script/booting) only with specific key (for example with key M on device keyboard).
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/52e165c2/attachment.pgp>
PATCH 10/14 New config variable CONFIG_MENUCMD
Quoted 6 lines · On Wednesday 25 January 2012 19:12:29 Marek Vasut wrote:
Quoted 2 lines
So this is just to interrupt autoboot? Why not just report the "menukey" as any other keypress and do it that way?
Usefull for interrupt autoboot and run some menu (script/booting) only with specific key (for example with key M on device keyboard).
what's the difference between this and CONFIG_MENUKEY?
PATCH 10/14 New config variable CONFIG_MENUCMD
Quoted 9 lines · On Wednesday 25 January 2012 21:53:02 Marek Vasut wrote:
Quoted 7 lines · On Wednesday 25 January 2012 19:12:29 Marek Vasut wrote:
Quoted 2 lines
So this is just to interrupt autoboot? Why not just report the "menukey" as any other keypress and do it that way?
Usefull for interrupt autoboot and run some menu (script/booting) only with
specific key (for example with key M on device keyboard).what's the difference between this and
CONFIG_MENUKEY?
See commit message
CONFIG_MENUCMD define if U-Boot will run env variable "menucmd" CONFIG_MENUKEY define if some key must be pressed (and which) to run "menucmd"
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120126/9d718572/attachment.pgp>
PATCH 10/14 New config variable CONFIG_MENUCMD
In reply to Pali Rohársame as before, this needs integration with existing menu code, so NAK this for now
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120214/f9c522b3/attachment.pgp>
PATCH 11/14 New config variable CONFIG_PREMONITOR
In reply to Pali Rohár* if defined run env "premonitor" before Main Loop for Monitor Processing
---
Changes since original version:
- removed #ifdef CONFIG_PREMONITOR in main.c
common/env_common.c | 3 +++ common/main.c | 4 ++++ 2 files changed, 7 insertions(+), 0 deletions(-)
common/env_common.c +3 -0
@@ -92,6 +92,9 @@ const uchar default_environment[] = {#ifdef CONFIG_PREBOOT "preboot=" CONFIG_PREBOOT "\0"#endif +#ifdef CONFIG_PREMONITOR + "premonitor=" CONFIG_PREMONITOR "\0" +#endif #ifdef CONFIG_ROOTPATH "rootpath=" CONFIG_ROOTPATH "\0"#endif
common/main.c +4 -0
@@ -427,6 +427,10 @@ void main_loop (void) }#endif + s =getenv ("premonitor" ); +if (s) +run_command2 (s,0 ); +/* * Main Loop for Monitor Command Processing */
Signature · 1 line
1.7.5.4
PATCH 11/14 New config variable CONFIG_PREMONITOR
Quoted 1 line
* if defined run env "premonitor" before Main Loop for Monitor Processing
What is this good for?
Quoted 39 lines
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- removed #ifdefCONFIG_PREMONITORinmain.ccommon/env_common.c | 3 +++ common/main.c | 4 ++++ 2 files changed, 7 insertions(+), 0 deletions(-)common/env_common.c +3
-0@@ -92,6 +92,9 @@ const uchar default_environment[] = {#ifdef CONFIG_PREBOOT "preboot=" CONFIG_PREBOOT "\0"#endif +#ifdef CONFIG_PREMONITOR + "premonitor=" CONFIG_PREMONITOR "\0" +#endif #ifdef CONFIG_ROOTPATH "rootpath=" CONFIG_ROOTPATH "\0"#endif common/main.c +4
-0@@ -427,6 +427,10 @@ void main_loop (void) }#endif + s =getenv ("premonitor" ); +if (s) +run_command2 (s,0 ); +/* * Main Loop for Monitor Command Processing */
PATCH 11/14 New config variable CONFIG_PREMONITOR
Quoted 4 lines · On Wednesday 25 January 2012 19:12:51 Marek Vasut wrote:
Quoted 1 line
* if defined run env "premonitor" before Main Loop for Monitor Processing
What is this good for?
before running monitor loop I'd like write some info to console (specific board info, board commands, board macros). but if these info will be written in preboot it can be deleted by menu section.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/3028a077/attachment.pgp>
PATCH 11/14 New config variable CONFIG_PREMONITOR
Quoted 9 lines · On Wednesday 25 January 2012 19:12:51 Marek Vasut wrote:
Quoted 4 lines
Quoted 2 lines
* if defined run env "premonitor" before Main Loop for Monitor Processing
What is this good for?
before running monitor loop I'd like write some info to console (specific board info, board commands, board macros). but if these info will be written in preboot it can be deleted by menu section.
The "menu" here, you refer to the thing you implemented? So fix that instead of introducing broken code and a pile of workarounds.
PATCH 11/14 New config variable CONFIG_PREMONITOR
Quoted 4 lines · On Wednesday 25 January 2012 21:51:38 Marek Vasut wrote:
Quoted 4 lines · On Wednesday 25 January 2012 19:12:51 Marek Vasut wrote:
Quoted 3 lines
Quoted 2 lines
* if defined run env "premonitor" before Main Loop for Monitor Processing
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
What is this good for?
before running monitor loop I'd like write some info to console (specific board info, board commands, board macros). but if these info will be written in preboot it can be deleted by menu section.
The "menu" here, you refer to the thing you implemented? So fix that instead of introducing broken code and a pile of workarounds.
With "menu" I mean env menucmd. U-Boot run command stored in env menucmd after preboot and before monitor loop. For example in menucmd can be my bootmenu, but there are no problems - no broken code! My bootmenu clear screan and show menu, so anything printed before menu entries will be deleted. This is not bug
- Also in Grub or LILO is debug/output log cleaned when showing menu entries.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/21fd2585/attachment.pgp>
PATCH 11/14 New config variable CONFIG_PREMONITOR
Quoted 14 lines · On Wednesday 25 January 2012 21:51:38 Marek Vasut wrote:
Quoted 4 lines
Quoted 4 lines · On Wednesday 25 January 2012 19:12:51 Marek Vasut wrote:
Quoted 3 lines
Quoted 2 lines
* if defined run env "premonitor" before Main Loop for Monitor Processing
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
What is this good for?
before running monitor loop I'd like write some info to console (specific board info, board commands, board macros). but if these info will be written in preboot it can be deleted by menu section.
The "menu" here, you refer to the thing you implemented? So fix that instead of introducing broken code and a pile of workarounds.
Quoted 6 lines
With "menu" I mean env menucmd. U-Boot run command stored in env menucmd after preboot and before monitor loop. For example in menucmd can be my bootmenu, but there are no problems - no broken code! My bootmenu clear screan and show menu, so anything printed before menu entries will be deleted. This is not bug - Also in Grub or LILO is debug/output log cleaned when showing menu entries.
Ok anyway, but you implemented custom menu system anyway ... so let's clear this first, is common/menu.c useless for your application?
M
PATCH 11/14 New config variable CONFIG_PREMONITOR
Quoted 21 lines · On Wednesday 25 January 2012 22:28:17 Marek Vasut wrote:
Quoted 14 lines · On Wednesday 25 January 2012 21:51:38 Marek Vasut wrote:
Quoted 4 lines
Quoted 4 lines · On Wednesday 25 January 2012 19:12:51 Marek Vasut wrote:
Quoted 3 lines
Quoted 2 lines
* if defined run env "premonitor" before Main Loop for Monitor Processing
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
What is this good for?
before running monitor loop I'd like write some info to console (specific board info, board commands, board macros). but if these info will be written in preboot it can be deleted by menu section.
The "menu" here, you refer to the thing you implemented? So fix that instead of introducing broken code and a pile of workarounds.
Quoted 6 lines
With "menu" I mean env menucmd. U-Boot run command stored in env menucmd after preboot and before monitor loop. For example in menucmd can be my bootmenu, but there are no problems - no broken code! My bootmenu clear screan and show menu, so anything printed before menu entries will be deleted. This is not bug - Also in Grub or LILO is debug/output log cleaned when showing menu entries.
Quoted 3 lines
Ok anyway, but you implemented custom menu system anyway ... so let's clear this first, is
common/menu.cuseless for your application?
I do not know. I created my bootmenu before menu.c was integrated into u-boot. I did not looked at menu.c yet - I do not know what is in menu.c implemented.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/abd5ce54/attachment.pgp>
PATCH 11/14 New config variable CONFIG_PREMONITOR
Quoted 22 lines · On Wednesday 25 January 2012 22:28:17 Marek Vasut wrote:
Quoted 21 lines
Quoted 20 lines · On Wednesday 25 January 2012 21:51:38 Marek Vasut wrote:
Quoted 4 lines
Quoted 4 lines · On Wednesday 25 January 2012 19:12:51 Marek Vasut wrote:
Quoted 3 lines
Quoted 2 lines
* if defined run env "premonitor" before Main Loop for Monitor Processing
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
What is this good for?
before running monitor loop I'd like write some info to console (specific board info, board commands, board macros). but if these info will be written in preboot it can be deleted by menu section.
The "menu" here, you refer to the thing you implemented? So fix that instead of introducing broken code and a pile of workarounds.
With "menu" I mean env menucmd. U-Boot run command stored in env menucmd after preboot and before monitor loop. For example in menucmd can be my bootmenu, but there are no problems - no broken code! My bootmenu clear screan and show menu, so anything printed before menu entries will be deleted. This is not bug - Also in Grub or LILO is debug/output log cleaned when showing menu entries.
Quoted 6 lines
Quoted 2 lines
Ok anyway, but you implemented custom menu system anyway ... so let's clear this first, is
common/menu.cuseless for your application?I do not know. I created my bootmenu before
menu.cwas integrated into u-boot. I did not looked atmenu.cyet - I do not know what is inmenu.cimplemented.
Please go through it, we don't need two separate implementations of the same thing. If you can't use it as it, just augment it and submit a patch for it.
PATCH 11/14 New config variable CONFIG_PREMONITOR
In reply to Pali Rohár-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120214/629e4a4e/attachment.pgp>
PATCH 12/14 New board support: Nokia RX-51 aka N900
In reply to Pali RohárThis board definition results in a u-boot.bin which can be chainloaded from NOLO in qemu or on a real N900. It does very little hardware config because NOLO has already configured the board. Only needed is enabling internal eMMC memory via twl4030 regulator which is not enabled by NOLO.
NOLO is expecting a kernel image and will treat any image it finds in onenand as such. This u-boot is intended to be flashed to the N900 like a kernel. In order to transparently boot the original kernel, it will be appended to u-boot.bin at 0x40000. NOLO will load the entire image into memory and execute u-boot, which saves the ATAGs set by NOLO. Then the bootscripts will attempt to load uImage or boot.scr from a fat or ext2 filesystem in external SD card or internal eMMC memory. If this fails or keyboard is closed the appended kernel image will be booted using the stored ATAGs (see boot order).
There is support for hardware watchdog. It is started by NOLO so u-boot must kick watchdog to prevent reboot device (but not very often, max every 2 seconds). There is also support for framebuffer display output with ANSI espace codes and the N900 HW keyboard input. USB tty works but is disabled because it prevents the current Maemo kernel from booting.
Based on previous work by: Alistair Buxton <[email protected]>
Default boot order:
* 0. if keyboard is closed boot automatically NOLO kernel image
* 1. try boot from external SD card
* 2. try boot from internal eMMC memory
* 3. try boot from attached NOLO kernel image
Boot from SD or eMMC in this order:
* find boot.scr on first fat partition
* find uImage on first fat parition
* same order for 2. - 4. fat partition
* find boot.scr on first ext2 partition
* find uImage on first ext2 parition
* same order for 2. - 4. ext2 partition
Available additional commands/variables:
* run sercon - Use serial port for control
* run usbcon - Use usbtty for control
* run vgacon - Use framebuffer and HW keyboard for control (default)
* run sdboot - Boot from external SD card (see boot order)
* run emmcboot - Boot from internal eMMC memory (see boot order)
* run noloboot - Boot NOLO kernel image (attached to U-Boot binary)
* run scriptload - Load boot script ${mmcscriptfile}
* run scriptboot - Run loaded boot script
* run kernload - Load kernel image ${mmckernfile}
* run initrdload - Load initrd image ${mmcinitrdfile}
* run kernboot - Boot loaded kernel image
* run kerninitrdboot - Boot loaded kernel image with loaded initrd image
* run trymmcscriptboot - Try to load and boot script ${mmcscriptfile}
* run trymmckernboot - Try to load and boot kernel image ${mmckernfile}
* run trymmckerninitrdboot - Try to load and boot kernel image ${mmckernfile}
with initrd image ${mmcinitrdfile}Variables for loading files from mmc:
* mmc ${mmcnum} (0 - external, 1 - internal)
* partition number ${mmcpart} (1 - 4)
* parition type ${mmctype} (fat, ext2)
---
Changes since original version:
- Removed Makefile targets: clean and distclean
- Rewrited bootcommand and env variables in nokia_rx51.h
- Removed useless CONFIG defines in nokia_rx51.h
- Disable L2 cache with CONFIG_SYS_L2CACHE_OFF - fixed battery draining
- Added onenand support (default disabled due to big u-boot size)
- Moved inlined asm code to new file lowlevel_init.S
- Fixed commit message
board/nokia/rx51/Makefile | 46 +++++ board/nokia/rx51/lowlevel_init.S | 79 ++++++++ board/nokia/rx51/rx51.c | 381 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378 +++++++++++++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/nokia_rx51.h | 362 ++++++++++++++++++++++++++++++++++++ 6 files changed, 1247 insertions(+), 0 deletions(-) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 include/configs/nokia_rx51.h
board/nokia/rx51/Makefile new file +46 -0
@@ -0,0 +1,46 @@ +# +# (C) Copyright 2000, 2001, 2002 +# Wolfgang Denk, DENX Software Engineering, wd at denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(BOARD).o + +COBJS-y := $(BOARD).o +SOBJS-y := lowlevel_init.o + +COBJS := $(sort $(COBJS-y)) +SOBJS := $(sort $(SOBJS-y)) +SRCS := $(COBJS:.o=.c) $(SOBJS:.o=.S) +OBJS := $(addprefix $(obj),$(COBJS)) $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) + $(call cmd_link_o_target, $(OBJS)) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################
board/nokia/rx51/lowlevel_init.S new file +79 -0
79 lines not on this page · raw message
board/nokia/rx51/rx51.c new file +381 -0
381 lines not on this page · raw message
board/nokia/rx51/rx51.h new file +378 -0
378 lines not on this page · raw message
boards.cfg +1 -0
@@ -214,6 +214,7 @@ omap3_evm_quick_nand arm armv7 evm ti omap3_sdp3430 arm armv7 sdp3430 ti omap3 devkit8000 arm armv7 devkit8000 timll omap3 twister arm armv7 twister technexion omap3 +nokia_rx51 arm armv7 rx51 nokia omap3 omap4_panda arm armv7 panda ti omap4 omap4_sdp4430 arm armv7 sdp4430 ti omap4 omap5_evm arm armv7 omap5_evm ti omap5
include/configs/nokia_rx51.h new file +362 -0
362 lines not on this page · raw message
Signature · 1 line
1.7.5.4
PATCH 13/14 New command bootmenu: ANSI terminal Boot Menu support
In reply to Pali Rohár * Added some ANSI escape codes definitions in common.h
* Configuration is done via env variables bootmenu_delay and bootmenu_<num>:
bootmenu_delay=<delay>
bootmenu_<num>="<title>=<commands>"
(title and commands are separated by first char '=')
<delay> is delay in seconds of autobooting first entry
<num> is boot menu entry, starting from zero
<title> is text shown in boot screen
<commands> are commands which will be executed when menu entry is selected
* First argument of bootmenu command override bootmenu_delay env
* If env bootmenu_delay or bootmenu arg is not specified, delay is 10 seconds
* If delay is 0, no entry will be shown on screen and first will be called
* If delay is less then 0, no autoboot delay will be used
* Boot Menu will stop finding next menu entry if last was not defined
* Boot Menu always add menu entry "U-Boot console" at end of all entries
* Example using:
setenv bootmenu_0 Boot 1. kernel=bootm 0x82000000 # Set first menu entry
setenv bootmenu_1 Boot 2. kernel=bootm 0x83000000 # Set second menu entry
setenv bootmenu_2 Reset board=reset # Set third menu entry
setenv bootmenu_3 U-Boot boot order=boot # Set fourth menu entry setenv bootmenu_4 # Empty string is end of all bootmenu entries
bootmenu 20 # Run bootmenu with autoboot delay 20s
---
Changes since original version:
- ANSI bootmenu command: use puts instead printf
- Merged parts of patch "Add some ANSI escape codes definitions in common.h"
common/Makefile | 1 + common/cmd_bootmenu.c | 366 ++++++++++++++++++++++++++++++++++++++++++++++ include/common.h | 13 ++ include/config_cmd_all.h | 1 + 4 files changed, 381 insertions(+), 0 deletions(-) create mode 100644 common/cmd_bootmenu.c
common/Makefile +1 -0
@@ -67,6 +67,7 @@ COBJS-$(CONFIG_CMD_SOURCE) += cmd_source.o COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o +COBJS-$(CONFIG_CMD_BOOTMENU) += cmd_bootmenu.o COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o COBJS-$(CONFIG_CMD_CLEAR) += cmd_clear.o
common/cmd_bootmenu.c new file +366 -0
366 lines not on this page · raw message
include/common.h +13 -0
@@ -754,8 +754,21 @@ int disable_ctrlc (int); /* 1 to disable, 0 to enable Control-C detect */* ANSI terminal */ +#define ANSI_CURSOR_UP "\e[%dA" +#define ANSI_CURSOR_DOWN "\e[%dB" +#define ANSI_CURSOR_FORWARD "\e[%dC" +#define ANSI_CURSOR_BACK "\e[%dD" +#define ANSI_CURSOR_NEXTLINE "\e[%dE" +#define ANSI_CURSOR_PREVIOUSLINE "\e[%dF" +#define ANSI_CURSOR_COLUMN "\e[%dG"#define ANSI_CURSOR_POSITION "\e[%d;%dH" +#define ANSI_CURSOR_SHOW "\e[?25h" +#define ANSI_CURSOR_HIDE "\e[?25l"#define ANSI_CLEAR_CONSOLE "\e[2J" +#define ANSI_CLEAR_LINE_TO_END "\e[0K" +#define ANSI_CLEAR_LINE "\e[2K" +#define ANSI_COLOR_RESET "\e[0m" +#define ANSI_COLOR_REVERSE "\e[7m"/* * STDIO based functions (can always be used)
include/config_cmd_all.h +1 -0
@@ -20,6 +20,7 @@#define CONFIG_CMD_BEDBUG /* Include BedBug Debugger */ #define CONFIG_CMD_BMP /* BMP support */ #define CONFIG_CMD_BOOTD /* bootd */ +#define CONFIG_CMD_BOOTMENU /* ANSI terminal Boot Menu */ #define CONFIG_CMD_BSP /* Board Specific functions */ #define CONFIG_CMD_CACHE /* icache, dcache */ #define CONFIG_CMD_CDP /* Cisco Discovery Protocol */
Signature · 1 line
1.7.5.4
PATCH 13/14 New command bootmenu: ANSI terminal Boot Menu support
Quoted 7 lines
* Added some ANSI escape codes definitions in
common.h
* Configuration is done via env variablesbootmenu_delayand
bootmenu_<num>:bootmenu_delay=<delay>
bootmenu_<num>="<title>=<commands>"
Quoted 7 lines
(title and commands are separated by first char '=')
<delay> is delay in seconds of autobooting first entry <num> is boot menu entry, starting from zero
<title> is text shown in boot screen
<commands> are commands which will be executed when menu entry is
selected
Do you need this command if you already have common/menu.c?
M
include/common.h int disable_ctrlc (int); /* 1 to disable, 0 to
Quoted 421 lines
* First argument of bootmenu command override
bootmenu_delayenv
* If envbootmenu_delayor bootmenu arg is not specified, delay is 10
seconds * If delay is 0, no entry will be shown on screen and first will be called * If delay is less then 0, no autoboot delay will be used
* Boot Menu will stop finding next menu entry if last was not defined
* Boot Menu always add menu entry "U-Boot console" at end of all entries* Example using:
setenv bootmenu_0 Boot 1. kernel=bootm 0x82000000 # Set first menu entry setenv bootmenu_1 Boot 2. kernel=bootm 0x83000000 # Set second menu entry setenv bootmenu_2 Reset board=reset # Set third menu entry setenv bootmenu_3 U-Boot boot order=boot # Set fourth menuentry setenv
bootmenu_4# Empty string is end of all bootmenu entries
bootmenu 20 # Run bootmenu with autoboot delay 20sSigned-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- ANSI bootmenu command: use puts instead printf
- Merged parts of patch "Add some ANSI escape codes definitions incommon.h"common/Makefile | 1 + common/cmd_bootmenu.c | 366 ++++++++++++++++++++++++++++++++++++++++++++++ include/common.h | 13 ++ include/config_cmd_all.h | 1 + 4 files changed, 381 insertions(+), 0 deletions(-) create mode 100644 common/cmd_bootmenu.ccommon/Makefile +1
-0@@ -67,6 +67,7 @@ COBJS-$(CONFIG_CMD_SOURCE) += cmd_source.o COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o +COBJS-$(CONFIG_CMD_BOOTMENU) += cmd_bootmenu.o COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o COBJS-$(CONFIG_CMD_CLEAR) += cmd_clear.ocommon/cmd_bootmenu.c new file +366
-0@@ -0,0 +1,366 @@ +/* +* (C) Copyright 2011 Pali Roh?r <[email protected]> +* +* See file CREDITS for list of people who contributed to this +* project. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +#include <common.h> +#include <command.h> +#include <watchdog.h> +#include <linux/string.h> + +#ifdef CONFIG_SYS_HUSH_PARSER +#include <hush.h> +#endif + +static char *get_option (int n) +{ + +char name[] ="bootmenu_\0\0" ; + +if (n <0 || n >99 ) +return NULL ; + +sprintf (name+9 ,"%d" , n); + +return getenv (name); + +} + +static char *get_end_of_title (char *str) +{ + +if (!str) +return NULL ; + +return strchr (str,'=' ); + +} + +static int print_title (char *begin,char *end) +{ + +if (!begin || !end || end < begin) +return 1 ; + +while (begin != end) +putc (*(begin++)); + +return 0 ; + +} + +static int print_entry (int n,int reverse) +{ + +char *str =get_option (n); +char *end =get_end_of_title (str); + +if (!end) +return 1 ; + +printf (ANSI_CURSOR_POSITION , n+4 ,1 ); + +if (reverse) +puts (ANSI_COLOR_REVERSE ); + +puts (" " ); +print_title (str, end); +puts (ANSI_CLEAR_LINE_TO_END ); + +if (reverse) +puts (ANSI_COLOR_RESET ); + +return 0 ; + +} + +static int print_menu (int active) +{ + +int n =0 ; + +printf (ANSI_CURSOR_POSITION ,1 ,1 ); +puts (ANSI_CLEAR_LINE ); +printf (ANSI_CURSOR_POSITION ,2 ,1 ); +puts (" *** U-Boot BOOT MENU ***" ); +puts (ANSI_CLEAR_LINE_TO_END ); +printf (ANSI_CURSOR_POSITION ,3 ,1 ); +puts (ANSI_CLEAR_LINE ); + +while (1 ) { + +int ret =print_entry (n, n == active ?1 :0 ); + +if (ret ==1 ) +break ; + + ++n; + + } + +printf (ANSI_CURSOR_POSITION , n+4 ,1 ); + +if (n == active) +puts (ANSI_COLOR_REVERSE ); + +puts (" U-Boot console" ); +puts (ANSI_CLEAR_LINE_TO_END ); + +if (n == active) +puts (ANSI_COLOR_RESET ); + +printf (ANSI_CURSOR_POSITION , n+5 ,1 ); +puts (ANSI_CLEAR_LINE ); +printf (ANSI_CURSOR_POSITION , n+6 ,1 ); +puts (" Press UP/DOWN to move, ENTER to select" ); +puts (ANSI_CLEAR_LINE_TO_END ); +printf (ANSI_CURSOR_POSITION , n+7 ,1 ); +puts (ANSI_CLEAR_LINE ); + +return n; + +} + +int do_bootmenu (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) +{ + +int active =0 ; +int abort =0 ; +int key =0 ;/* 0 - NONE, 1 - UP, 2 - DOWN, 3 - SELECT */ +int esc =0 ; +int count =0 ; +int delay =10 ; +int instant =0 ; +char *delay_str =NULL ; + +if (argc >=2 ) + delay_str = argv[1 ]; + +if (!delay_str) + delay_str =getenv ("bootmenu_delay" ); + +if (delay_str) + delay = (int )simple_strtol (delay_str,NULL ,10 ); + +if (delay ==0 ) { + +/* prevent setting U-Boot console as first menu entry */ +if (get_end_of_title (get_option (0 ))) + count =1 ; + + instant =1 ; + + } + +if (delay <0 ) + abort =1 ; + +if (!instant) { + +puts (ANSI_CURSOR_HIDE ); +puts (ANSI_CLEAR_CONSOLE ); +printf (ANSI_CURSOR_POSITION ,1 ,1 ); + + } + +while (1 ) { + +if (abort || delay >0 ) + count =print_menu (active); + +if (!abort) { + +if (delay >0 ) +printf (" Hit any key to stop autoboot: %2d " , + delay); + +while (delay >0 ) { + +int i; + +for (i =0 ; i <100 ; ++i) { + +if (tstc ()) { + + abort =1 ; + key =getc (); + +if (key =='\e' ) { + esc =1 ; + key =0 ; + }else if (key =='\r' ) + key =3 ; +else + key =0 ; + +break ; + + } + +WATCHDOG_RESET (); +udelay (10000 ); + + } + +if (abort) +break ; + + --delay; +printf ("\b\b\b%2d " , delay); + + } + +if (delay <=0 ) + key =3 ; + + }else { + +while (!tstc ()) { + +WATCHDOG_RESET (); +udelay (10000 ); + + } + + key =getc (); + +if (esc ==0 ) { + +if (key =='\e' ) { + esc =1 ; + key =0 ; + } + + }else if (esc ==1 ) { + +if (key =='[' ) { + esc =2 ; + key =0 ; + }else + esc =0 ; + + }else if (esc ==2 || esc ==3 ) { + +if (esc ==2 && key =='1' ) { + esc =3 ; + key =0 ; + }else + esc =0 ; + +if (key =='A' ) + key =1 ; +else if (key =='B' ) + key =2 ; +else + key =0 ; + + } + +if (key =='\r' ) + key =3 ; + + } + +if (key ==1 ) { + +if (active >0 ) + --active; + + }else if (key ==2 ) { + +if (active < count) + ++active; + + }else if (key ==3 ) { + +char *str; +char *end; + +putc ('\n' ); + +if (!instant) { + +puts (ANSI_CURSOR_SHOW ); +puts (ANSI_CLEAR_CONSOLE ); +printf (ANSI_CURSOR_POSITION ,1 ,1 ); + + } + +WATCHDOG_RESET (); + +/* last entry is always U-Boot console */ +if (active == count) { + +puts ("Starting U-Boot console\n\n" ); +return 0 ; + + } + + str =get_option (active); + end =get_end_of_title (str); + +if (!end) { + +printf ("Invalid Boot Menu entry %d\n" , active); +puts ("Starting U-Boot console\n\n" ); +return 0 ; + + } + +if (!end[1 ]) { + +printf ("Invalid Boot Menu entry %d: " , active); +print_title (str, end); +puts ("\nStarting U-Boot console\n\n" ); +return 0 ; + + } + +printf ("Booting Boot Menu entry %d: " , active); +print_title (str, end); +puts (" ...\n\n" ); + +#ifndef CONFIG_SYS_HUSH_PARSER +run_command (end+1 ,0 ); +#else +parse_string_outer (end+1 ,FLAG_PARSE_SEMICOLON | +FLAG_EXIT_FROM_LOOP ); +#endif + +printf ("\nFailed booting Boot Menu entry %d: " , active); +print_title (str, end); +puts ("\nStarting U-Boot console\n\n" ); +return 0 ; + + } + + } + +/* never happends */ +return 1 ; + +} + +U_BOOT_CMD ( + bootmenu,2 ,1 , do_bootmenu, +"ANSI terminal bootmenu" , +"[delay]\n" +" - show ANSI terminal bootmenu with autoboot delay (default 10s)" +);include/common.h +0
-0@@ -754,8 +754,21 @@ int disable_ctrlc (int); /* 1 to disable, 0 to
enable
Quoted 33 lines
Control-C detect */ * ANSI terminal
*/include/common.h +13
-0+#define ANSI_CURSOR_UP "\e[%dA" +#define ANSI_CURSOR_DOWN "\e[%dB" +#define ANSI_CURSOR_FORWARD "\e[%dC" +#define ANSI_CURSOR_BACK "\e[%dD" +#define ANSI_CURSOR_NEXTLINE "\e[%dE" +#define ANSI_CURSOR_PREVIOUSLINE "\e[%dF" +#define ANSI_CURSOR_COLUMN "\e[%dG"#define ANSI_CURSOR_POSITION "\e[%d;%dH" +#define ANSI_CURSOR_SHOW "\e[?25h" +#define ANSI_CURSOR_HIDE "\e[?25l"#define ANSI_CLEAR_CONSOLE "\e[2J" +#define ANSI_CLEAR_LINE_TO_END "\e[0K" +#define ANSI_CLEAR_LINE "\e[2K" +#define ANSI_COLOR_RESET "\e[0m" +#define ANSI_COLOR_REVERSE "\e[7m"/* * STDIO based functions (can always be used) include/config_cmd_all.h +1
-0@@ -20,6 +20,7 @@#define CONFIG_CMD_BEDBUG /* Include BedBug Debugger */ #define CONFIG_CMD_BMP /* BMP support */ #define CONFIG_CMD_BOOTD /* bootd */ +#define CONFIG_CMD_BOOTMENU /* ANSI terminal Boot Menu */ #define CONFIG_CMD_BSP /* Board Specific functions */ #define CONFIG_CMD_CACHE /* icache, dcache */ #define CONFIG_CMD_CDP /* Cisco Discovery Protocol */
PATCH 13/14 New command bootmenu: ANSI terminal Boot Menu support
Quoted 2 lines · On Wednesday 25 January 2012 19:18:50 Marek Vasut wrote:
Do you need this command if you already have
common/menu.c?
I need menu which can work with ANSI terminal and framebuffer on device screen. Something which can easy choose booting system...
I can look at menu.c if it can replace my bootmenu (or change bootmenu code to use menu.c)...
Anyway this patch [13] and next [14] can be reviewed separatly. Nokia RX-51 support is in patches 1-12. Patch 14 is additional for rx51, which only add this bootmenu support. U-Boot rx51 port working fine without 13 and 14.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/0b52d6aa/attachment.pgp>
PATCH 13/14 New command bootmenu: ANSI terminal Boot Menu support
Quoted 7 lines · Pali Roh?r
Quoted 2 lines · On Wednesday 25 January 2012 19:18:50 Marek Vasut wrote:
Do you need this command if you already have
common/menu.c?I need menu which can work with ANSI terminal and framebuffer on device screen. Something which can easy choose booting system...
Quoted 6 lines
I can look at
menu.cif it can replace my bootmenu (or change bootmenu code to usemenu.c)...Anyway this patch [13] and next [14] can be reviewed separatly. Nokia RX-51 support is in patches 1-12. Patch 14 is additional for rx51, which only add this bootmenu support. U-Boot rx51 port working fine without 13 and 14.
Regardless of whatever when you add new commands it might be useful to add some documentation in doc directory.
S.
PATCH 13/14 New command bootmenu: ANSI terminal Boot Menu support
In reply to Pali RohárQuoted 8 lines · On Wednesday 25 January 2012 14:57:19 Pali Roh?r wrote:
Quoted 1 line · On Wednesday 25 January 2012 19:18:50 Marek Vasut wrote:
Do you need this command if you already have
common/menu.c?I need menu which can work with ANSI terminal and framebuffer on device screen. Something which can easy choose booting system...
I can look at
menu.cif it can replace my bootmenu (or change bootmenu code to usemenu.c)...
yes, as i suggested before, you should be merging with the existing menu code and not proposing parallel implementations
so NAK this for now
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120214/69840c06/attachment.pgp>
PATCH 14/14 RX-51: Add support for bootmenu
In reply to Pali Rohár * default bootmenu entries:
NOLO kernel, internal eMMC memory, external SD card, u-boot boot order
* when keyboard slide is closed always boot NOLO kernel
* when keyborad slide is open in CONFIG_PREBOOT try load bootmenu.scr from first FAT partition of internal eMMC memory (also known as MyDocs) which (should) overwrite default bootmenu entries
---
Changes since original version:
- Fixed name of env variables
include/configs/nokia_rx51.h | 21 +++++++++++++++++---- 1 files changed, 17 insertions(+), 4 deletions(-)
include/configs/nokia_rx51.h +17 -4
@@ -137,6 +137,7 @@#define CONFIG_CMD_I2C /* I2C serial bus support */ #define CONFIG_CMD_MMC /* MMC support */ +#define CONFIG_CMD_BOOTMENU /* ANSI terminal Boot Menu */ #define CONFIG_CMD_CLEAR /* ANSI terminal clear screen command */ #ifdef ONENAND_SUPPORT
@@ -212,8 +213,6 @@ int rx51_kp_getc(void);#endif /* Environment information */ -#define CONFIG_BOOTDELAY 3 -#define CONFIG_EXTRA_ENV_SETTINGS \ "mtdparts=" MTDPARTS_DEFAULT "\0" \ "usbtty=cdc_acm\0" \
@@ -280,10 +279,22 @@ int rx51_kp_getc(void);"run trymmcallpartboot;" \"fi\0" \"emmcboot=setenv mmcnum 1; run trymmcboot\0" \ - "sdboot=setenv mmcnum 0; run trymmcboot\0" +"sdboot=setenv mmcnum 0; run trymmcboot\0" \ +"menucmd=bootmenu\0" \ +"bootmenu_0=Internal flash=run noloboot\0" \ +"bootmenu_1=Internal eMMC=run immcboot\0" \ +"bootmenu_2=External SD card=run emmcboot\0" \ +"bootmenu_3=U-Boot boot order=boot\0" \ + "bootmenu_delay=3\0"#define CONFIG_PREBOOT \ - "if test $slide_sw != open; then run noloboot; fi;" + "if test $slide_sw = open; then " \ + "setenv mmcnum 1; setenv mmcpart 1; setenv mmctype fat;" \ + "setenv mmcscriptfile bootmenu.scr;" \ + "run trymmcscriptboot;" \ + "else " \ + "setenv bootmenu_delay 0;" \ + "fi"#define CONFIG_PREMONITOR \ "echo Extra commands:;" \
@@ -301,6 +312,8 @@ int rx51_kp_getc(void);"run noloboot;" \ "echo" +#define CONFIG_MENUCMD +#define CONFIG_AUTO_COMPLETE /*
Signature · 1 line
1.7.5.4
cover Nokia RX-51 support
In reply to Pali RohárWolfgang,
Quoted 4 lines · Pali Roh?r
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Just to let you know, I went through this submission off-list with Pali sorting out the revisions etc and in the end it all got too complicated, so I suggested it should be submitted again from scratch (although it does have rudimentary change logs from the previously posted version)
Regards,
Graeme
cover Nokia RX-51 support
In reply to Pali RohárQuoted 4 lines · Pali Roh?r
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
A quick offtopic question - how do you replace boot loader on N900?
Thanks a lot,
S.
cover Nokia RX-51 support
Quoted 10 lines · On Wednesday 25 January 2012 04:48:00 Sergey Lapin wrote:
Quoted 4 lines · Pali Roh?r
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
A quick offtopic question - how do you replace boot loader on N900?
Thanks a lot,
S.
See commit message in: [PATCH 12/14] New board support: Nokia RX-51 aka N900
Bootloader is not replacing (yet). Instead U-Boot is flashed into kernel area and loaded by proprietary NOLO bootloader. NOLO can load only one image and only from kernel area - so it does not support dualbooting.
Kernel image can be attached into U-Boot binary (at pos. 0x40000) and flashed into nand kernel area (2MB is enought for U-Boot with kernel). And then U-Boot can boot attached kernel image or load/boot it from SD/eMMC.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/b2fc13aa/attachment.pgp>
cover Nokia RX-51 support
Quoted 12 lines · On Wednesday 25 January 2012 04:48:00 Sergey Lapin wrote:
Quoted 10 lines · Pali Roh?r
Quoted 4 lines
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
A quick offtopic question - how do you replace boot loader on N900?
Thanks a lot,
S.
Quoted 6 lines
See commit message in: [PATCH 12/14] New board support: Nokia RX-51 aka N900
Bootloader is not replacing (yet). Instead U-Boot is flashed into kernel area and loaded by proprietary NOLO bootloader. NOLO can load only one image and only from kernel area - so it does not support dualbooting.
So why not just replace the bootloader right away?
Quoted 4 lines
Kernel image can be attached into U-Boot binary (at pos.
0x40000) and flashed into nand kernel area (2MB is enought for U-Boot with kernel). And then U-Boot can boot attached kernel image or load/boot it from SD/eMMC.
cover Nokia RX-51 support
Quoted 2 lines · On Wednesday 25 January 2012 19:20:01 Marek Vasut wrote:
So why not just replace the bootloader right away?
Booting process on n900:
1. Omap bootrom
2. Nokia X-Loader
3. Nokia NOLO Bootloader
4. Linux kernel
...
Nokia X-Loader and NOLO are stored in first nand part. It has size 128kB. Nokia X-Loader is signed (size 14.5kB), so cannot be replaced. NOLO bootloader is not signed (so theoretically can be replaced), but size is limited to 113kB. I do not know how to compile U-Boot binary with size < 113kB...
Size of part where is stored linux kernel has 2MB and it is enought for U-Boot with kernel image (~200kB + ~1.6MB). Also U-Boot can boot kernel from eMMC/SD.
Signature · 9 lines
Pali Roh?r [email protected] -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/a77b6859/attachment.pgp>
cover Nokia RX-51 support
Quoted 9 lines · On Wednesday 25 January 2012 19:20:01 Marek Vasut wrote:
Quoted 1 line
So why not just replace the bootloader right away?
Booting process on n900:
1. Omap bootrom
2. Nokia X-Loader
3. Nokia NOLO Bootloader
4. Linux kernel
...
To make it clear, I own N900 myself ;-)
Quoted 10 lines
Nokia X-Loader and NOLO are stored in first nand part. It has size 128kB. Nokia X-Loader is signed (size 14.5kB), so cannot be replaced. NOLO bootloader is not signed (so theoretically can be replaced), but size is limited to 113kB. I do not know how to compile U-Boot binary with size < 113kB...
Size of part where is stored linux kernel has 2MB and it is enought for U-Boot with kernel image (~200kB + ~1.6MB). Also U-Boot can boot kernel from eMMC/SD.
You didn't answer my question, so again ... why can't you replace NOLO? Because there's the 113kb limit? Use SPL then.
M
cover Nokia RX-51 support
Quoted 18 lines · On Wednesday 25 January 2012 21:56:37 Marek Vasut wrote:
Quoted 9 lines · On Wednesday 25 January 2012 19:20:01 Marek Vasut wrote:
Quoted 1 line
So why not just replace the bootloader right away?
Booting process on n900:
1. Omap bootrom
2. Nokia X-Loader
3. Nokia NOLO Bootloader
4. Linux kernel
...To make it clear, I own N900 myself ;-)
Quoted 6 lines
Nokia X-Loader and NOLO are stored in first nand part. It has size 128kB. Nokia X-Loader is signed (size 14.5kB), so cannot be replaced. NOLO bootloader is not signed (so theoretically can be replaced), but size is limited to 113kB. I do not know how to compile U-Boot binary with size < 113kB...
Quoted 7 lines
Quoted 3 lines
Size of part where is stored linux kernel has 2MB and it is enought for U-Boot with kernel image (~200kB + ~1.6MB). Also U-Boot can boot kernel from eMMC/SD.
You didn't answer my question, so again ... why can't you replace NOLO? Because there's the 113kb limit? Use SPL then.
I only tried to boot U-Boot in qemu wich increased boot part - but not worked. (NOLO in qemu can boot u-boot without problems). So NOLO do some extra work - which I do not know... Also limit is problem to test on real n900.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/508fc344/attachment.pgp>
cover Nokia RX-51 support
Quoted 23 lines · On Wednesday 25 January 2012 21:56:37 Marek Vasut wrote:
Quoted 22 lines
Quoted 9 lines · On Wednesday 25 January 2012 19:20:01 Marek Vasut wrote:
Quoted 1 line
So why not just replace the bootloader right away?
Booting process on n900:
1. Omap bootrom
2. Nokia X-Loader
3. Nokia NOLO Bootloader
4. Linux kernel
...To make it clear, I own N900 myself ;-)
Quoted 9 lines
Nokia X-Loader and NOLO are stored in first nand part. It has size 128kB. Nokia X-Loader is signed (size 14.5kB), so cannot be replaced. NOLO bootloader is not signed (so theoretically can be replaced), but size is limited to 113kB. I do not know how to compile U-Boot binary with size < 113kB...
Size of part where is stored linux kernel has 2MB and it is enought for U-Boot with kernel image (~200kB + ~1.6MB). Also U-Boot can boot kernel from eMMC/SD.
Quoted 7 lines
Quoted 2 lines
You didn't answer my question, so again ... why can't you replace NOLO? Because there's the 113kb limit? Use SPL then.
I only tried to boot U-Boot in qemu wich increased boot part - but not worked. (NOLO in qemu can boot u-boot without problems). So NOLO do some extra work - which I do not know... Also limit is problem to test on real n900.
What do you mean? Did you crack yours open? Can you connect JTAG to the device? I didn't check on mine.
cover Nokia RX-51 support
Quoted 28 lines · On Wednesday 25 January 2012 22:29:16 Marek Vasut wrote:
Quoted 28 lines · On Wednesday 25 January 2012 21:56:37 Marek Vasut wrote:
Quoted 26 lines
Quoted 9 lines · On Wednesday 25 January 2012 19:20:01 Marek Vasut wrote:
Quoted 1 line
So why not just replace the bootloader right away?
Booting process on n900:
1. Omap bootrom
2. Nokia X-Loader
3. Nokia NOLO Bootloader
4. Linux kernel
...To make it clear, I own N900 myself ;-)
Quoted 11 lines
Nokia X-Loader and NOLO are stored in first nand part. It has size 128kB. Nokia X-Loader is signed (size 14.5kB), so cannot be replaced. NOLO bootloader is not signed (so theoretically can be replaced), but size is limited to 113kB. I do not know how to compile U-Boot binary with size < 113kB...
Size of part where is stored linux kernel has 2MB and it is enought for
U-Boot with kernel image (~200kB + ~1.6MB). Also U-Boot can boot kernel
from eMMC/SD.You didn't answer my question, so again ... why can't you replace NOLO? Because there's the 113kb limit? Use SPL then.
Quoted 7 lines
Quoted 4 lines
I only tried to boot U-Boot in qemu wich increased boot part - but not worked. (NOLO in qemu can boot u-boot without problems). So NOLO do some extra work - which I do not know... Also limit is problem to test on real n900.
What do you mean? Did you crack yours open? Can you connect JTAG to the device? I didn't check on mine.
I have no idea if N900 has JTAG. And I think that nobody cracked X-Loader yet.
NOLO bootloader can be replaced/flashed via flasher-3.5 app throw USB. Also when NOLO is damaged (or cleared/replaced) it can restored - coldflashed again via flasher-3.5.
What I tried:
I created mtd image where was X-Loader, NOLO and U-Boot. QEmu RX51 successfull booted this image and I got serial console and video screen output.
But when I created mtd image where was only X-Loader an U-Boot, QEmu RX51 was unable to boot (it freezed).
So NOLO executing some code which inilialize board or someting else which must be done in U-Boot board code. There is no documentation or info about NOLO, so I cannot create working NOLO replacement.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120125/a989df45/attachment.pgp>
cover Nokia RX-51 support
Quoted 34 lines · On Wednesday 25 January 2012 22:29:16 Marek Vasut wrote:
Quoted 33 lines
Quoted 32 lines · On Wednesday 25 January 2012 21:56:37 Marek Vasut wrote:
Quoted 18 lines
Quoted 9 lines · On Wednesday 25 January 2012 19:20:01 Marek Vasut wrote:
Quoted 1 line
So why not just replace the bootloader right away?
Booting process on n900:
1. Omap bootrom
2. Nokia X-Loader
3. Nokia NOLO Bootloader
4. Linux kernel
...To make it clear, I own N900 myself ;-)
Quoted 6 lines
Nokia X-Loader and NOLO are stored in first nand part. It has size 128kB. Nokia X-Loader is signed (size 14.5kB), so cannot be replaced. NOLO bootloader is not signed (so theoretically can be replaced), but size is limited to 113kB. I do not know how to compile U-Boot binary with size < 113kB...
Quoted 8 lines
Quoted 5 lines
Size of part where is stored linux kernel has 2MB and it is enought for
U-Boot with kernel image (~200kB + ~1.6MB). Also U-Boot can boot kernel
from eMMC/SD.You didn't answer my question, so again ... why can't you replace NOLO? Because there's the 113kb limit? Use SPL then.
I only tried to boot U-Boot in qemu wich increased boot part - but not worked. (NOLO in qemu can boot u-boot without problems). So NOLO do some extra work - which I do not know... Also limit is problem to test on real n900.
Quoted 5 lines
Quoted 2 lines
What do you mean? Did you crack yours open? Can you connect JTAG to the device? I didn't check on mine.
I have no idea if N900 has JTAG. And I think that nobody cracked X-Loader yet.
What do you mean, you don't need xloader, u-boot SPL can replace it.
Quoted 4 lines
NOLO bootloader can be replaced/flashed via flasher-3.5 app throw USB. Also when NOLO is damaged (or cleared/replaced) it can restored - coldflashed again via flasher-3.5.
I know. So ... ? Basically you can use the TI flashes too since it all goes through the bootrom, right?
Quoted 8 lines
What I tried:
I created mtd image where was X-Loader, NOLO and U-Boot. QEmu RX51 successfull booted this image and I got serial console and video screen output.But when I created mtd image where was only X-Loader an U-Boot, QEmu RX51 was unable to boot (it freezed).
Why? Where? You know you can debug U-Boot in QEMU with GDB and diag the problem properly?
Quoted 4 lines
So NOLO executing some code which inilialize board or someting else which must be done in U-Boot board code. There is no documentation or info about NOLO, so I cannot create working NOLO replacement.
Yes you can, either observe it or disas it.
M
cover Nokia RX-51 support
Quoted 34 lines · Marek Vasut
Quoted 34 lines · On Wednesday 25 January 2012 22:29:16 Marek Vasut wrote:
Quoted 33 lines
Quoted 32 lines · On Wednesday 25 January 2012 21:56:37 Marek Vasut wrote:
Quoted 18 lines
Quoted 9 lines · On Wednesday 25 January 2012 19:20:01 Marek Vasut wrote:
Quoted 1 line
So why not just replace the bootloader right away?
Booting process on n900:
1. Omap bootrom
2. Nokia X-Loader
3. Nokia NOLO Bootloader
4. Linux kernel
...To make it clear, I own N900 myself ;-)
Quoted 6 lines
Nokia X-Loader and NOLO are stored in first nand part. It has size 128kB. Nokia X-Loader is signed (size 14.5kB), so cannot be replaced. NOLO bootloader is not signed (so theoretically can be replaced), but size is limited to 113kB. I do not know how to compile U-Boot binary with size < 113kB...
Quoted 8 lines
Quoted 5 lines
Size of part where is stored linux kernel has 2MB and it is enought for
U-Boot with kernel image (~200kB + ~1.6MB). Also U-Boot can boot kernel
from eMMC/SD.You didn't answer my question, so again ... why can't you replace NOLO? Because there's the 113kb limit? Use SPL then.
I only tried to boot U-Boot in qemu wich increased boot part - but not worked. (NOLO in qemu can boot u-boot without problems). So NOLO do some extra work - which I do not know... Also limit is problem to test on real n900.
Quoted 7 lines
Quoted 5 lines
Quoted 2 lines
What do you mean? Did you crack yours open? Can you connect JTAG to the device? I didn't check on mine.
I have no idea if N900 has JTAG. And I think that nobody cracked X-Loader yet.
What do you mean, you don't need xloader, u-boot SPL can replace it.
Yes and no. No, becaue you nor I have no Nokia's signing key(s) to sign SPL binary for OMAP's secure boot ROM. IIRC N950/N9 is even more strict regarding that, am I right?
Quoted 7 lines
Quoted 4 lines
NOLO bootloader can be replaced/flashed via flasher-3.5 app throw USB. Also when NOLO is damaged (or cleared/replaced) it can restored - coldflashed again via flasher-3.5.
I know. So ... ? Basically you can use the TI flashes too since it all goes through the bootrom, right?
Butrom requires signed binary.
Quoted 11 lines
Quoted 8 lines
What I tried:
I created mtd image where was X-Loader, NOLO and U-Boot. QEmu RX51 successfull booted this image and I got serial console and video screen output.But when I created mtd image where was only X-Loader an U-Boot, QEmu RX51 was unable to boot (it freezed).
Why? Where? You know you can debug U-Boot in QEMU with GDB and diag the problem properly?
Any volunteers? (I own N900 too, ah, I own 3 of tham, damnit)
Quoted 9 lines
Quoted 5 lines
So NOLO executing some code which inilialize board or someting else which must be done in U-Boot board code. There is no documentation or info about NOLO, so I cannot create working NOLO replacement.
Yes you can, either observe it or disas it.
M
All the best,
S.
cover Nokia RX-51 support
Quoted 7 lines · On Thursday 26 January 2012 11:25:59 Sergey Lapin wrote:
Quoted 2 lines · Marek Vasut
What do you mean, you don't need xloader, u-boot SPL can replace it.
Yes and no. No, becaue you nor I have no Nokia's signing key(s) to sign SPL binary for OMAP's secure boot ROM. IIRC N950/N9 is even more strict regarding that, am I right?
You are right, we cannot sign SPL binary for N900 because we do not have key. Signing key has only somebody in Nokia (or in TI). I do not have N950/N9 so I do not know anything about new devices.
Quoted 7 lines
Quoted 4 lines
I know. So ... ? Basically you can use the TI flashes too since it all goes
through the bootrom, right?Butrom requires signed binary.
Yes and format of signed binary is not published by TI (there are only some RE info about Motorola Omap devices).
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
What I tried:
I created mtd image where was X-Loader, NOLO and U-Boot. QEmu RX51 successfull booted this image and I got serial console and video screen output.
Quoted 9 lines
Quoted 6 lines
Quoted 3 lines
But when I created mtd image where was only X-Loader an U-Boot, QEmu RX51
was unable to boot (it freezed).Why? Where? You know you can debug U-Boot in QEMU with GDB and diag the problem properly?
Any volunteers? (I own N900 too, ah, I own 3 of tham, damnit)
I can try to play with SPL U-Boot binary and X-Loader in qemu. But this and next month I do not have time for it...
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120126/227a57cd/attachment.pgp>
cover Nokia RX-51 support
Quoted 30 lines · On Thursday 26 January 2012 11:25:59 Sergey Lapin wrote:
Quoted 6 lines · Marek Vasut
Quoted 1 line
What do you mean, you don't need xloader, u-boot SPL can replace it.
Yes and no. No, becaue you nor I have no Nokia's signing key(s) to sign SPL binary for OMAP's secure boot ROM. IIRC N950/N9 is even more strict regarding that, am I right?
You are right, we cannot sign SPL binary for N900 because we do not have key. Signing key has only somebody in Nokia (or in TI). I do not have N950/N9 so I do not know anything about new devices.
Quoted 5 lines
Quoted 3 lines
I know. So ... ? Basically you can use the TI flashes too since it all goes
through the bootrom, right?Butrom requires signed binary.
Yes and format of signed binary is not published by TI (there are only some RE info about Motorola Omap devices).
Quoted 9 lines
Quoted 9 lines
Quoted 8 lines
What I tried:
I created mtd image where was X-Loader, NOLO and U-Boot. QEmu RX51 successfull booted this image and I got serial console and video screen output.But when I created mtd image where was only X-Loader an U-Boot, QEmu RX51
was unable to boot (it freezed).
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
Why? Where? You know you can debug U-Boot in QEMU with GDB and diag the problem properly?
Any volunteers? (I own N900 too, ah, I own 3 of tham, damnit)
I can try to play with SPL U-Boot binary and X-Loader in qemu. But this and next month I do not have time for it...
You're just lazy ... what exam can take you so much time ? :-p
cover Nokia RX-51 support
In reply to Pali RohárQuoted 5 lines · Pali Roh?r
Quoted 4 lines · On Thursday 26 January 2012 11:25:59 Sergey Lapin wrote:
Quoted 2 lines · Marek Vasut
What do you mean, you don't need xloader, u-boot SPL can replace it.
Quoted 7 lines
Quoted 3 lines
Yes and no. No, becaue you nor I have no Nokia's signing key(s) to sign SPL binary for OMAP's secure boot ROM. IIRC N950/N9 is even more strict regarding that, am I right?
You are right, we cannot sign SPL binary for N900 because we do not have key. Signing key has only somebody in Nokia (or in TI). I do not have N950/N9 so I do not know anything about new devices.
Probably autobuilder does have a key, but the question is if key is different for each device or not.
Quoted 11 lines
Quoted 8 lines
Quoted 5 lines
I know. So ... ? Basically you can use the TI flashes too since it all goes
through the bootrom, right?Butrom requires signed binary.
Yes and format of signed binary is not published by TI (there are only some RE info about Motorola Omap devices).
Well, format is somewhat documented in public TI specifications, but that won't help anyway becase of OMAP's little OTP memory...
Quoted 3 lines
I can try to play with SPL U-Boot binary and X-Loader in qemu. But this and next month I do not have time for it...
Me neither.
All the best,
S.
cover Nokia RX-51 support
Quoted 9 lines · On Friday 27 January 2012 03:59:41 Sergey Lapin wrote:
Quoted 8 lines · Pali Roh?r
Quoted 6 lines · On Thursday 26 January 2012 11:25:59 Sergey Lapin wrote:
Quoted 1 line · Marek Vasut
What do you mean, you don't need xloader, u-boot SPL can replace it.
Yes and no. No, becaue you nor I have no Nokia's signing key(s) to sign SPL binary for OMAP's secure boot ROM. IIRC N950/N9 is even more strict regarding that, am I right?
Quoted 6 lines
Quoted 3 lines
You are right, we cannot sign SPL binary for N900 because we do not have key. Signing key has only somebody in Nokia (or in TI). I do not have N950/N9 so I do not know anything about new devices.
Probably autobuilder does have a key, but the question is if key is different for each device or not.
There are more (about 80) HW revisions of Nokia N900. And only 5 different X- Loader images (which are part of public Nokia N900 firmware).
So max. 5 different keys for all N900 devices. (or maybe in one X-Loader image are more signatures?)
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 4 lines
I know. So ... ? Basically you can use the TI flashes too since it all goes
through the bootrom, right?
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
Butrom requires signed binary.
Yes and format of signed binary is not published by TI (there are only some RE info about Motorola Omap devices).
Well, format is somewhat documented in public TI specifications, but that won't help anyway becase of OMAP's little OTP memory...
If you find can you write link for that specification?
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120127/812e0e7b/attachment.pgp>
cover Nokia RX-51 support
In reply to Sergey LapinQuoted 38 lines · Marek Vasut
Quoted 37 lines
Quoted 37 lines · On Wednesday 25 January 2012 22:29:16 Marek Vasut wrote:
Quoted 35 lines
Quoted 25 lines · On Wednesday 25 January 2012 21:56:37 Marek Vasut wrote:
Quoted 24 lines
Quoted 9 lines · On Wednesday 25 January 2012 19:20:01 Marek Vasut wrote:
Quoted 1 line
So why not just replace the bootloader right away?
Booting process on n900:
1. Omap bootrom
2. Nokia X-Loader
3. Nokia NOLO Bootloader
4. Linux kernel
...To make it clear, I own N900 myself ;-)
Quoted 11 lines
Nokia X-Loader and NOLO are stored in first nand part. It has size 128kB. Nokia X-Loader is signed (size 14.5kB), so cannot be replaced. NOLO bootloader is not signed (so theoretically can be replaced), but size is limited to 113kB. I do not know how to compile U-Boot binary with size < 113kB...
Size of part where is stored linux kernel has 2MB and it is enought for
U-Boot with kernel image (~200kB + ~1.6MB). Also U-Boot can boot kernel
from eMMC/SD.Quoted 7 lines
Quoted 2 lines
You didn't answer my question, so again ... why can't you replace NOLO? Because there's the 113kb limit? Use SPL then.
I only tried to boot U-Boot in qemu wich increased boot part - but not worked. (NOLO in qemu can boot u-boot without problems). So NOLO do some extra work - which I do not know... Also limit is problem to test on real n900.
What do you mean? Did you crack yours open? Can you connect JTAG to the device? I didn't check on mine.
Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
I have no idea if N900 has JTAG. And I think that nobody cracked X-Loader yet.
What do you mean, you don't need xloader, u-boot SPL can replace it.
Yes and no. No, becaue you nor I have no Nokia's signing key(s) to sign SPL binary for OMAP's secure boot ROM. IIRC N950/N9 is even more strict regarding that, am I right?
Yea ... I was explained later how messed up it is ... so it'd probably be for the best now to replace NOLO with U-Boot SPL.
M
Quoted 33 lines
Quoted 7 lines
Quoted 4 lines
NOLO bootloader can be replaced/flashed via flasher-3.5 app throw USB. Also when NOLO is damaged (or cleared/replaced) it can restored - coldflashed again via flasher-3.5.
I know. So ... ? Basically you can use the TI flashes too since it all goes through the bootrom, right?
Butrom requires signed binary.
Quoted 10 lines
Quoted 7 lines
What I tried:
I created mtd image where was X-Loader, NOLO and U-Boot. QEmu RX51 successfull booted this image and I got serial console and video screen output.But when I created mtd image where was only X-Loader an U-Boot, QEmu RX51 was unable to boot (it freezed).
Why? Where? You know you can debug U-Boot in QEMU with GDB and diag the problem properly?
Any volunteers? (I own N900 too, ah, I own 3 of tham, damnit)
Quoted 7 lines
Quoted 3 lines
So NOLO executing some code which inilialize board or someting else which must be done in U-Boot board code. There is no documentation or info about NOLO, so I cannot create working NOLO replacement.
Yes you can, either observe it or disas it.
M
All the best,
S.
cover Nokia RX-51 support
In reply to Pali RohárQuoted 2 lines
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
Isn't on-screen bootmenu already supported by common/menu.c stuff ?
Quoted 2 lines
This series supersedes the last sent version.
So ... this is V2? What are the changes from previous version of the series? Please read Submitting patches on the wiki next time.
Quoted 47 lines
Pali Roh?r (14):
arm,omap3: Definesave_boot_paramsinlowlevel_init.Sfor SPL only
arm: Optionally use existing atags inbootm.c
Add power bus message definitions intwl4030.h
Fix function readline inmain.c
cfb_console: Fix functionconsole_scrollup
cfb_console: Add functionconsole_clearandconsole_clear_line
cfb_console: Add functions for moving with cursor
cfb_console: Add support for some ANSI terminal escape codes New command clear: Clear the ANSI terminal
New config variableCONFIG_MENUCMD
New config variableCONFIG_PREMONITOR
New board support: Nokia RX-51 aka N900
New command bootmenu: ANSI terminal Boot Menu support
RX-51: Add support for bootmenuREADME | 2 + arch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 +- arch/arm/lib/bootm.c | 39 +++- board/nokia/rx51/Makefile | 46 ++++ board/nokia/rx51/lowlevel_init.S | 79 ++++++ board/nokia/rx51/rx51.c | 381 ++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378 +++++++++++++++++++++++++++++ boards.cfg | 1 + common/Makefile | 2 + common/cmd_bootmenu.c | 366 ++++++++++++++++++++++++++++ common/cmd_clear.c | 42 ++++ common/env_common.c | 3 + common/main.c | 89 ++++++- drivers/video/cfb_console.c | 346 +++++++++++++++++++++++++-- include/common.h | 20 ++ include/config_cmd_all.h | 2 + include/configs/nokia_rx51.h | 375 +++++++++++++++++++++++++++++ include/twl4030.h | 98 ++++++++ 18 files changed, 2233 insertions(+), 40 deletions(-) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 common/cmd_bootmenu.c create mode 100644 common/cmd_clear.c create mode 100644 include/configs/nokia_rx51.h
cover Nokia RX-51 support
Hi Marek,
Quoted 9 lines · Marek Vasut
Quoted 2 lines
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
Isn't on-screen bootmenu already supported by
common/menu.cstuff ?Quoted 2 lines
This series supersedes the last sent version.
So ... this is V2? What are the changes from previous version of the series? Please read Submitting patches on the wiki next time.
I've been through the revision/submission for this series extensively off-list with Pali in order to attempt to fix-up the initial revision non-compliance issues (as well as commit messages, trivial style issues etc)
It got to the point were maintaining the revision history consistent with the previous series was a bit of a 'train wreck' so let's all forget about it (call the last lot an RFC) and move on :)
Regards,
Graeme
cover Nokia RX-51 support
In reply to Pali RohárQuoted 42 lines · On Tuesday 24 January 2012 15:27:57 you wrote:
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Pali Roh?r (14):
arm,omap3: Definesave_boot_paramsinlowlevel_init.Sfor SPL only
arm: Optionally use existing atags inbootm.c
Add power bus message definitions intwl4030.h
Fix function readline inmain.c
cfb_console: Fix functionconsole_scrollup
cfb_console: Add functionconsole_clearandconsole_clear_line
cfb_console: Add functions for moving with cursor
cfb_console: Add support for some ANSI terminal escape codes New command clear: Clear the ANSI terminal
New config variableCONFIG_MENUCMD
New config variableCONFIG_PREMONITOR
New board support: Nokia RX-51 aka N900
New command bootmenu: ANSI terminal Boot Menu support
RX-51: Add support for bootmenuREADME | 2 + arch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 +- arch/arm/lib/bootm.c | 39 +++- board/nokia/rx51/Makefile | 46 ++++ board/nokia/rx51/lowlevel_init.S | 79 ++++++ board/nokia/rx51/rx51.c | 381 ++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378 +++++++++++++++++++++++++++++ boards.cfg | 1 + common/Makefile | 2 + common/cmd_bootmenu.c | 366 ++++++++++++++++++++++++++++ common/cmd_clear.c | 42 ++++ common/env_common.c | 3 + common/main.c | 89 ++++++- drivers/video/cfb_console.c | 346 +++++++++++++++++++++++++-- include/common.h | 20 ++ include/config_cmd_all.h | 2 + include/configs/nokia_rx51.h | 375+++++++++++++++++++++++++++++
include/twl4030.h|
98 ++++++++
Quoted 8 lines
18 files changed, 2233 insertions(+), 40 deletions(-) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 common/cmd_bootmenu.c create mode 100644 common/cmd_clear.c create mode 100644 include/configs/nokia_rx51.h
Please look at my post:
http://lists.denx.de/pipermail/u-boot/2012-January/115778.html
After that commit, framebuffer output on Nokia RX51 not working...
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120204/a79e647e/attachment.pgp>
cover Nokia RX-51 support
Quoted 62 lines · On Tuesday 24 January 2012 15:27:57 you wrote:
Quoted 52 lines
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Pali Roh?r (14):
arm,omap3: Definesave_boot_paramsinlowlevel_init.Sfor SPL only
arm: Optionally use existing atags inbootm.c
Add power bus message definitions intwl4030.h
Fix function readline inmain.c
cfb_console: Fix functionconsole_scrollup
cfb_console: Add functionconsole_clearandconsole_clear_line
cfb_console: Add functions for moving with cursor
cfb_console: Add support for some ANSI terminal escape codes New command clear: Clear the ANSI terminal
New config variableCONFIG_MENUCMD
New config variableCONFIG_PREMONITOR
New board support: Nokia RX-51 aka N900
New command bootmenu: ANSI terminal Boot Menu support
RX-51: Add support for bootmenuREADME | 2 + arch/arm/cpu/armv7/omap3/lowlevel_init.S | 4 +- arch/arm/lib/bootm.c | 39 +++- board/nokia/rx51/Makefile | 46 ++++ board/nokia/rx51/lowlevel_init.S | 79 ++++++ board/nokia/rx51/rx51.c | 381++++++++++++++++++++++++++++++
board/nokia/rx51/rx51.h|
378 +++++++++++++++++++++++++++++ boards.cfg| 1 +
common/Makefile | 2 + common/cmd_bootmenu.c | 366++++++++++++++++++++++++++++
common/cmd_clear.c|
42 ++++common/env_common.c | 3 + common/main.c | 89 ++++++- drivers/video/cfb_console.c | 346+++++++++++++++++++++++++--
include/common.h| 20 ++include/config_cmd_all.h | 2 + include/configs/nokia_rx51.h | 375+++++++++++++++++++++++++++++
include/twl4030.h|
98 ++++++++Quoted 8 lines
18 files changed, 2233 insertions(+), 40 deletions(-) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 common/cmd_bootmenu.c create mode 100644 common/cmd_clear.c create mode 100644 include/configs/nokia_rx51.h
Quoted 4 lines
Please look at my post:
http://lists.denx.de/pipermail/u-boot/2012-January/115778.htmlAfter that commit, framebuffer output on Nokia RX51 not working...
Can you PLEASE keep the involved parties in Cc? Otherwise people just won't notice your damn mail because they usually ignore emails not addressed to them!
M
cover Nokia RX-51 support
In reply to Pali RohárQuoted 5 lines · On Tuesday 24 January 2012 15:27:57 Pali Roh?r wrote:
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Hi, what is state of this patch series? From our discussion is only problematic bootmenu part, but other could be OK.
So what is needed for including this patches (without bootmenu support) to uboot master?
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120226/41b7af55/attachment.pgp>
cover Nokia RX-51 support
Quoted 11 lines · On Tuesday 24 January 2012 15:27:57 Pali Roh?r wrote:
Quoted 4 lines
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Hi, what is state of this patch series? From our discussion is only problematic bootmenu part, but other could be OK.
So what is needed for including this patches (without bootmenu support) to uboot master?
You should probably split the patches into smaller series and resubmit individually.
M
cover Nokia RX-51 support
Quoted 6 lines · On Sunday 26 February 2012 17:08:04 Marek Vasut wrote:
Quoted 6 lines · On Tuesday 24 January 2012 15:27:57 Pali Roh?r wrote:
Quoted 4 lines
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Quoted 8 lines
Quoted 5 lines
Hi, what is state of this patch series? From our discussion is only problematic bootmenu part, but other could be OK.
So what is needed for including this patches (without bootmenu support) to uboot master?
You should probably split the patches into smaller series and resubmit individually.
yeah, we aren't keen on manually trying to pick things out of a patchset since it's hard for us to know what is required to be together. a patchset, by nature, should be merged as a group.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120226/54fbf852/attachment.pgp>
cover Nokia RX-51 support
Quoted 13 lines · On Sunday 26 February 2012 23:10:18 Mike Frysinger wrote:
Quoted 12 lines · On Sunday 26 February 2012 17:08:04 Marek Vasut wrote:
Quoted 11 lines · On Tuesday 24 January 2012 15:27:57 Pali Roh?r wrote:
Quoted 4 lines
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Hi, what is state of this patch series? From our discussion is only problematic bootmenu part, but other could be OK.
So what is needed for including this patches (without bootmenu support) to uboot master?
Quoted 7 lines
Quoted 2 lines
You should probably split the patches into smaller series and resubmit individually.
yeah, we aren't keen on manually trying to pick things out of a patchset since it's hard for us to know what is required to be together. a patchset, by nature, should be merged as a group.
-mike
Ok, I will create new patchset and fix known problems (CONFIG_CMDLINE_EDITING)
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120227/354266b0/attachment.pgp>
cover Nokia RX-51 support
Quoted 17 lines · On Sunday 26 February 2012 23:10:18 Mike Frysinger wrote:
Quoted 16 lines · On Sunday 26 February 2012 17:08:04 Marek Vasut wrote:
Quoted 14 lines
Quoted 11 lines · On Tuesday 24 January 2012 15:27:57 Pali Roh?r wrote:
Quoted 4 lines
This patch series add support for new board Nokia RX-51 (aka N900). Last two patches adding on screen bootmenu support.
This series supersedes the last sent version.
Hi, what is state of this patch series? From our discussion is only problematic bootmenu part, but other could be OK.
So what is needed for including this patches (without bootmenu support) to uboot master?
You should probably split the patches into smaller series and resubmit individually.
Quoted 7 lines
Quoted 4 lines
yeah, we aren't keen on manually trying to pick things out of a patchset since it's hard for us to know what is required to be together. a patchset, by nature, should be merged as a group.
-mikeOk, I will create new patchset and fix known problems (
CONFIG_CMDLINE_EDITING)
Thanks
cover Nokia RX-51 support
Quoted 23 lines · On Monday 27 February 2012 21:55:31 Marek Vasut wrote:
Quoted 23 lines · On Sunday 26 February 2012 23:10:18 Mike Frysinger wrote:
Quoted 21 lines · On Sunday 26 February 2012 17:08:04 Marek Vasut wrote:
Quoted 7 lines
Quoted 7 lines · On Tuesday 24 January 2012 15:27:57 Pali Roh?r wrote:
Quoted 5 lines
This patch series add support for new board Nokia RX-51 (aka N900).
Last two patches adding on screen bootmenu support.This series supersedes the last sent version.
Quoted 8 lines
Quoted 5 lines
Hi, what is state of this patch series? From our discussion is only problematic bootmenu part, but other could be OK.
So what is needed for including this patches (without bootmenu support) to uboot master?
You should probably split the patches into smaller series and resubmit individually.
yeah, we aren't keen on manually trying to pick things out of a patchset since it's hard for us to know what is required to be together. a patchset, by nature, should be merged as a group.
-mike
Quoted 4 lines
Quoted 2 lines
Ok, I will create new patchset and fix known problems (
CONFIG_CMDLINE_EDITING)Thanks
U-Boot on Nokia N900 is broken due to bug in MMC and framebuffer driver. See:
http://lists.denx.de/pipermail/u-boot/2012-January/115778.html
http://lists.denx.de/pipermail/u-boot/2012-March/119330.html
Until now *nobody* responce to the first reported problem (2 months old). I will not do anything with Nokia N900 U-Boot code until both problem will be fixed!
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120304/e0ccdc8a/attachment.pgp>
cover Nokia RX-51 support
Dear Pali Rohar,
I suggest you to read through this whole mail properly, do not get angry by the first few lines.
Quoted 7 lines
U-Boot on Nokia N900 is broken due to bug in MMC and framebuffer driver.
See: http://lists.denx.de/pipermail/u-boot/2012-January/115778.html
http://lists.denx.de/pipermail/u-boot/2012-March/119330.htmlUntil now *nobody* responce to the first reported problem (2 months old). I will not do anything with Nokia N900 U-Boot code until both problem will be fixed!
Firstly, we are very grateful for properly reported bugs!
Yet you probably misunderstood how whole this free software/open source thing works.
If you found a bug noone else noticed, you are not ever supposed to expect people on the mailing list to fall on their backs, drop everything they are doing and start fixing your problem. This is because they didn't observe any trouble and so this has no priority for them.
And this is especially true for out-of-tree ports. N900 is good example of such category.
Now if you actually report a bug to the mailing list and this bug goes unnoticed for an extended period of time, you're supposed to send subsequent email in order to alarm the people on the mailing list the bug report is still relevant.
In case of U-Boot and Linux kernel, there is a list of maintainers in the MAINTAINERS file in the source tree, you are supposed to put these people in the Cc of such reports, this will greatly improve your chance of getting response and help. In case of U-Boot, there is also a list of custodians available here:
http://www.denx.de/wiki/U-Boot/Custodians
But considering you are yourself a software engineer, the best approach to the problem you're observing is to actually debug the issue you're seeing and submit a patch for it. Next, fix your patches for N900 and submit them. It'd be a good idea to put a note in the patchset cover message that this depends on your previous fix.
Now, to the problems you're observing:
1) Video; check if you have the following defined in your board config:
#define CONFIG_VIDEO
#define CONFIG_VIDEO_SW_CURSOR
#define CONFIG_CFB_CONSOLE
#define CONFIG_VGA_AS_SINGLE_DEVICE
#define CONFIG_SYS_WHITE_ON_BLACK
I understand that you probably want to second and the last define from the list above, which solves your "invert" problem and swcursor problem.
2) MMC; I believe Tom can comment on this one.
On a final note, I believe you should adjust your behaviour towards the mailing list. The U-Boot project, as well as many other FOSS projects, is a collective effort to achieve the best possible result for everyone. But for such model to work, everyone must first give and take only afterwards and never too much.
Best regards
Marek Vasut
cover Nokia RX-51 support
Quoted 62 lines · On Sunday 04 March 2012 21:57:23 Marek Vasut wrote:
Dear Pali Rohar,
I suggest you to read through this whole mail properly, do not get angry by the first few lines.
Quoted 9 lines
U-Boot on Nokia N900 is broken due to bug in MMC and framebuffer driver.
See: http://lists.denx.de/pipermail/u-boot/2012-January/115778.html
http://lists.denx.de/pipermail/u-boot/2012-March/119330.htmlUntil now *nobody* responce to the first reported problem (2 months old). I
will not do anything with Nokia N900 U-Boot code until both problem will be
fixed!Firstly, we are very grateful for properly reported bugs!
Yet you probably misunderstood how whole this free software/open source thing works.
If you found a bug noone else noticed, you are not ever supposed to expect people on the mailing list to fall on their backs, drop everything they are doing and start fixing your problem. This is because they didn't observe any trouble and so this has no priority for them.
And this is especially true for out-of-tree ports. N900 is good example of such category.
Now if you actually report a bug to the mailing list and this bug goes unnoticed for an extended period of time, you're supposed to send subsequent email in order to alarm the people on the mailing list the bug report is still relevant.
In case of U-Boot and Linux kernel, there is a list of maintainers in the
MAINTAINERSfile in the source tree, you are supposed to put these people in the Cc of such reports, this will greatly improve your chance of getting response and help. In case of U-Boot, there is also a list of custodians available here:http://www.denx.de/wiki/U-Boot/Custodians
But considering you are yourself a software engineer, the best approach to the problem you're observing is to actually debug the issue you're seeing and submit a patch for it. Next, fix your patches for N900 and submit them. It'd be a good idea to put a note in the patchset cover message that this depends on your previous fix.
Now, to the problems you're observing:
1) Video; check if you have the following defined in your board config:
#define
CONFIG_VIDEO
#defineCONFIG_VIDEO_SW_CURSOR
#defineCONFIG_CFB_CONSOLE
#defineCONFIG_VGA_AS_SINGLE_DEVICE
#defineCONFIG_SYS_WHITE_ON_BLACKI understand that you probably want to second and the last define from the list above, which solves your "invert" problem and swcursor problem.
2) MMC; I believe Tom can comment on this one.
Quoted 8 lines
On a final note, I believe you should adjust your behaviour towards the mailing list. The U-Boot project, as well as many other FOSS projects, is a collective effort to achieve the best possible result for everyone. But for such model to work, everyone must first give and take only afterwards and never too much.
Best regards
Marek Vasut
Ok. I already sent mail about problem 1) to video maintainer and also sent bug remainder to this list. Now I sent some more info about that problem, so maybe someone could help me.
I understand you, but mails without response look like ignored. Also now with U-Boot master Nokia port does not working, so it cannot be merged to master. I belive that you do not want/need not working code.
I'm not angry, but now I'm stucked, because I (and nobody other) was not able to fix problem 1) and problem 1) must be fixed before pushing rx51 patches to master. So I cannot work on rx51 patches...
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120304/65427850/attachment.pgp>
cover Nokia RX-51 support
Quoted 65 lines · On Sunday 04 March 2012 21:57:23 Marek Vasut wrote:
Quoted 64 lines
Dear Pali Rohar,
I suggest you to read through this whole mail properly, do not get angry by the first few lines.
Quoted 10 lines
U-Boot on Nokia N900 is broken due to bug in MMC and framebuffer driver. See:
http://lists.denx.de/pipermail/u-boot/2012-January/115778.html
http://lists.denx.de/pipermail/u-boot/2012-March/119330.htmlUntil now *nobody* responce to the first reported problem (2 months old). I
will not do anything with Nokia N900 U-Boot code until both problem will be
fixed!Firstly, we are very grateful for properly reported bugs!
Yet you probably misunderstood how whole this free software/open source thing works.
If you found a bug noone else noticed, you are not ever supposed to expect people on the mailing list to fall on their backs, drop everything they are doing and start fixing your problem. This is because they didn't observe any trouble and so this has no priority for them.
And this is especially true for out-of-tree ports. N900 is good example of such category.
Now if you actually report a bug to the mailing list and this bug goes unnoticed for an extended period of time, you're supposed to send subsequent email in order to alarm the people on the mailing list the bug report is still relevant.
In case of U-Boot and Linux kernel, there is a list of maintainers in the
MAINTAINERSfile in the source tree, you are supposed to put these people in the Cc of such reports, this will greatly improve your chance of getting response and help. In case of U-Boot, there is also a list of custodiansavailable here:
http://www.denx.de/wiki/U-Boot/CustodiansBut considering you are yourself a software engineer, the best approach to the problem you're observing is to actually debug the issue you're seeing and submit a patch for it. Next, fix your patches for N900 and submit them. It'd be a good idea to put a note in the patchset cover message that this depends on your previous fix.
Now, to the problems you're observing:
1) Video; check if you have the following defined in your board config:
#define
CONFIG_VIDEO
#defineCONFIG_VIDEO_SW_CURSOR
#defineCONFIG_CFB_CONSOLE
#defineCONFIG_VGA_AS_SINGLE_DEVICE
#defineCONFIG_SYS_WHITE_ON_BLACKI understand that you probably want to second and the last define from the list above, which solves your "invert" problem and swcursor problem.
2) MMC; I believe Tom can comment on this one.
Quoted 9 lines
Quoted 8 lines
On a final note, I believe you should adjust your behaviour towards the mailing list. The U-Boot project, as well as many other FOSS projects, is a collective effort to achieve the best possible result for everyone. But for such model to work, everyone must first give and take only afterwards and never too much.
Best regards
Marek Vasut
Dear Pali Rohar,
Quoted 3 lines
Ok. I already sent mail about problem 1) to video maintainer and also sent bug remainder to this list. Now I sent some more info about that problem, so maybe someone could help me.
Did you try the above solution for the video issues?
Quoted 2 lines
I understand you, but mails without response look like ignored.
That's why you need to prod, prod and prod ... in a sane way ;-)
Quoted 3 lines
Also now
with U-Boot master Nokia port does not working, so it cannot be merged to master. I belive that you do not want/need not working code.
That's true, but you can always fix your issues locally and submit those fixed upstream, followed by your newly working code.
Quoted 4 lines
I'm not angry, but now I'm stucked, because I (and nobody other) was not able to fix problem 1) and problem 1) must be fixed before pushing rx51 patches to master. So I cannot work on rx51 patches...
So why don't YOU fix the problem? Maybe we should try diagnosing it?
I might have some time after NSWI075 on tuesday, ending 19:00, you might want to catch me afterwards and we can look into it for a bit?
Best regards
Marek Vasut
cover Nokia RX-51 support
Quoted 2 lines · On Sunday 04 March 2012 22:50:53 Marek Vasut wrote:
Did you try the above solution for the video issues?
Not yet. I will try it.
Quoted 6 lines
So why don't YOU fix the problem? Maybe we should try diagnosing it?
I might have some time after NSWI075 on tuesday, ending 19:00, you might want to catch me afterwards and we can look into it for a bit?
Sorry but in tuesday at that time I have NJAZ090 (which I really need)...
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120305/a0726bf6/attachment.pgp>
cover Nokia RX-51 support
In reply to Pali RohárDear Pali,
Quoted 11 lines · In message <2426868.sD2XDEqcqE@pali> you wrote:
Quoted 11 lines
1) Video; check if you have the following defined in your board config:
#define
CONFIG_VIDEO
#defineCONFIG_VIDEO_SW_CURSOR
#defineCONFIG_CFB_CONSOLE
#defineCONFIG_VGA_AS_SINGLE_DEVICE
#defineCONFIG_SYS_WHITE_ON_BLACKI understand that you probably want to second and the last define from the list above, which solves your "invert" problem and swcursor problem.
...
Quoted 3 lines
I'm not angry, but now I'm stucked, because I (and nobody other) was not able to fix problem 1) and problem 1) must be fixed before pushing rx51 patches to master. So I cannot work on rx51 patches...
Did you actually read what Marek wrote?
Did you check your configuration, and//or try changing it as suggested? What was the result?
Best regards,
Wolfgang Denk
Signature · 8 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Repeat after me:
Usenet is not a word processor; it's a medium where aesthetics count.
Mozilla is not a newsreader; it's a web browser.
Windows is not an operating system; it's a GUI on a program loader.
-- Tom Christiansen in <[email protected]>cover Nokia RX-51 support
Quoted 21 lines · On Sunday 04 March 2012 23:09:38 Wolfgang Denk wrote:
Dear Pali,
Quoted 11 lines · In message <2426868.sD2XDEqcqE@pali> you wrote:
Quoted 11 lines
1) Video; check if you have the following defined in your board config:
#define
CONFIG_VIDEO
#defineCONFIG_VIDEO_SW_CURSOR
#defineCONFIG_CFB_CONSOLE
#defineCONFIG_VGA_AS_SINGLE_DEVICE
#defineCONFIG_SYS_WHITE_ON_BLACKI understand that you probably want to second and the last define from the
list above, which solves your "invert" problem and swcursor problem....
Quoted 3 lines
I'm not angry, but now I'm stucked, because I (and nobody other) was not able to fix problem 1) and problem 1) must be fixed before pushing rx51 patches to master. So I cannot work on rx51 patches...
Quoted 8 lines
Did you actually read what Marek wrote?
Did you check your configuration, and//or try changing it as suggested? What was the result?
Best regards,
Wolfgang Denk
Hi, I did not tried what Marek suggested yet. I will write if it worked or not
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120305/5fca5561/attachment.pgp>
cover Nokia RX-51 support
In reply to Pali RohárQuoted 3 lines · On Sunday 04 March 2012 16:35:44 Pali Roh?r wrote:
I'm not angry, but now I'm stucked, because I (and nobody other) was not able to fix problem 1) and problem 1) must be fixed before pushing rx51 patches to master. So I cannot work on rx51 patches...
i don't think these things are true. you can push your patches even though there are known bugs in other pieces of the tree. i'm sure other people have done this before (i know i have).
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120304/c3ec69a6/attachment.pgp>
cover Nokia RX-51 support
Quoted 9 lines · On Sunday 04 March 2012 23:26:29 Mike Frysinger wrote:
Quoted 3 lines · On Sunday 04 March 2012 16:35:44 Pali Roh?r wrote:
I'm not angry, but now I'm stucked, because I (and nobody other) was not able to fix problem 1) and problem 1) must be fixed before pushing rx51 patches to master. So I cannot work on rx51 patches...
i don't think these things are true. you can push your patches even though there are known bugs in other pieces of the tree. i'm sure other people have done this before (i know i have).
-mike
Ok, I can create new rx51 patch series, which fix known problmes in board code, but it will work only with reverted some commits.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120305/172d77dc/attachment.pgp>
cover Nokia RX-51 support
Quoted 6 lines · On Monday 05 March 2012 16:58:47 Pali Roh?r wrote:
Quoted 5 lines · On Sunday 04 March 2012 23:26:29 Mike Frysinger wrote:
Quoted 3 lines · On Sunday 04 March 2012 16:35:44 Pali Roh?r wrote:
I'm not angry, but now I'm stucked, because I (and nobody other) was not able to fix problem 1) and problem 1) must be fixed before pushing rx51 patches to master. So I cannot work on rx51 patches...
Quoted 6 lines
Quoted 3 lines
i don't think these things are true. you can push your patches even though there are known bugs in other pieces of the tree. i'm sure other people have done this before (i know i have).
Ok, I can create new rx51 patch series, which fix known problmes in board code, but it will work only with reverted some commits.
presumably you're talking about mmc and video misbehavior in which case that's OK ... after all, nothing is stopping people from adding new changes which would break your board at runtime even after you merge.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120305/596e7140/attachment.pgp>
cover Nokia RX-51 support
In reply to Marek VasutQuoted 6 lines · On Sunday 04 March 2012 21:57:23 Marek Vasut wrote:
1) Video; check if you have the following defined in your board config:
#define
CONFIG_VIDEO
#defineCONFIG_VIDEO_SW_CURSOR
#defineCONFIG_CFB_CONSOLE
Above options was already enabled.
Quoted 1 line
#define
CONFIG_VGA_AS_SINGLE_DEVICE
When I enabled this option U-Boot freezed. No idea why. So I did not enabled it again.
Quoted 1 line
#define
CONFIG_SYS_WHITE_ON_BLACK
This option has no effect on video output problem.
So adding these new definitions not helped me. But Anatolij Gustschin already sent patch which fixed this problem.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120310/4da43966/attachment.pgp>
cover Nokia RX-51 support
In reply to Pali RohárQuoted 7 lines · On Sunday 04 March 2012 15:21:23 Pali Roh?r wrote:
U-Boot on Nokia N900 is broken due to bug in MMC and framebuffer driver.
See: http://lists.denx.de/pipermail/u-boot/2012-January/115778.html
http://lists.denx.de/pipermail/u-boot/2012-March/119330.htmlUntil now *nobody* responce to the first reported problem (2 months old). I will not do anything with Nokia N900 U-Boot code until both problem will be fixed!
this is an open source project. bugs don't get fixed just because you ask for them. there's a bit of give & take here. support for this board would be great, but it's not like other devs on this project need it in the tree. -mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120304/5deb11b0/attachment.pgp>
v2 cover Nokia RX-51 support
In reply to Pali RohárThis patch series add support for new board Nokia RX-51 (aka N900). This patch series supersedes version v1. It was rebased on top of u-boot master and in this version was dropped BootMenu support.
Patch details:
Already commited (dropped) patches:
arm,omap3: Define save_boot_params in lowlevel_init.S for SPL only
Dropped patches:
Fix function readline in main.c
cfb_console: Fix function console_scrollup New config variable CONFIG_MENUCMD
New command bootmenu: ANSI terminal Boot Menu support
RX-51: Add support for bootmenu
New patches:
cfb_console: Fix function console_back
cfb_console: Ignore bell character
video: cfb_console: flush dcache for frame buffer in DRAM
Anatolij Gustschin (1):
video: cfb_console: flush dcache for frame buffer in DRAM
Pali Roh?r (10):
arm: Optionally use existing atags in bootm.c
Add power bus message definitions in twl4030.h
cfb_console: Fix function console_back
cfb_console: Add function console_clear and console_clear_line
cfb_console: Add functions for moving with cursor
cfb_console: Add support for some ANSI terminal escape codes
cfb_console: Ignore bell character
New command clear: Clear the ANSI terminal
New config variable CONFIG_PREMONITOR
New board support: Nokia RX-51 aka N900
README | 5 + arch/arm/lib/bootm.c | 60 +++--- board/nokia/rx51/Makefile | 46 +++++ board/nokia/rx51/lowlevel_init.S | 71 +++++++ board/nokia/rx51/rx51.c | 380 +++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378 +++++++++++++++++++++++++++++++++++ boards.cfg | 1 + common/Makefile | 1 + common/cmd_clear.c | 42 ++++ common/env_common.c | 3 + common/main.c | 4 + drivers/video/cfb_console.c | 404 +++++++++++++++++++++++++++++++++++--- include/common.h | 7 + include/config_cmd_all.h | 1 + include/configs/nokia_rx51.h | 373 +++++++++++++++++++++++++++++++++++ include/twl4030.h | 98 +++++++++ 16 files changed, 1829 insertions(+), 45 deletions(-) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 common/cmd_clear.c create mode 100644 include/configs/nokia_rx51.h
Signature · 1 line
1.7.9.5
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
This patch adapts the bootm command so that it can use an existing atags command set up by a previous bootloader. If the environment variable "atagaddr" is unset, bootm behaves as normal. If "atagaddr" is set, bootm will use atags address from environment variable and also append new boot args (if specified in u-boot). For example, if a previous boot loader already set up the atags struct at 0x80000100:
setenv atagaddr 0x80000100; bootm 0x80008000
---
Changes since v1:
- Rebased on u-boot master
Changes since original version:
- Added info to README file
- Added local define CONFIG_SETUP_ANY_TAG
- Fixed compile warning
- Fixed commit message
- Check if atagaddr is not NULL
README | 2 ++ arch/arm/lib/bootm.c | 60 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 40 insertions(+), 22 deletions(-)
README +2 -0
@@ -3687,6 +3687,8 @@ Some configuration options can be set using Environment Variables. List of environment variables (most likely not complete): + atagaddr - bootm will use ATAGs struct from specified address (arm only) + baudrate - see CONFIG_BAUDRATE bootdelay - see CONFIG_BOOTDELAY
arch/arm/lib/bootm.c +38 -22
97 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Dear =?UTF-8?q?Pali=20Roh=C3=A1r?=,
Quoted 5 lines · In message <[email protected]> you wrote:
VGhpcyBwYXRjaCBhZGFwdHMgdGhlIGJvb3RtIGNvbW1hbmQgc28gdGhhdCBpdCBjYW4gdXNlIGFu IGV4aXN0aW5nIGF0YWdzIGNvbW1hbmQKc2V0IHVwIGJ5IGEgcHJldmlvdXMgYm9vdGxvYWRlci4g SWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlICJhdGFnYWRkciIgaXMgdW5zZXQsCmJvb3RtIGJl aGF2ZXMgYXMgbm9ybWFsLiBJZiAiYXRhZ2FkZHIiIGlzIHNldCwgYm9vdG0gd2lsbCB1c2UgYXRh Z3MgYWRkcmVzcyBmcm9tCmVudmlyb25tZW50IHZhcmlhYmxlIGFuZCBhbHNvIGFwcGVuZCBuZXcg
...
Please stop posting your patches with base64 Content-transfer-encoding; thanks.
Please also run all your patches through checkpatch _before_ posting, and fix warnings and errors.
For example, this patch has a number of too long lines which cause
WARNING: line over 80 characters
Please fix all such issues, and resubmit.
Thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de The biggest difference between time and space is that you can't reuse time. - Merrick Furst
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Quoted 2 lines · On Saturday 28 April 2012 23:20:04 Wolfgang Denk wrote:
Please stop posting your patches with base64
Content-transfer-encoding; thanks.
How can I tell this to git format-patch and git send-email? Also I looked in my mailbox and all emails have no base64 header, but
Content-Transfer-Encoding: 8bit
Quoted 3 lines
Please also run all your patches through checkpatch _before_ posting, and fix warnings and errors.
Ok, I forgot to run checkpatch on this patch. But I ran checkpatch on all other patches and checkpatch did not show any other warnings or errors.
Quoted 11 lines
For example, this patch has a number of too long lines which cause WARNING: line over 80 characters
Please fix all such issues, and resubmit.
Thanks.
Best regards,
Wolfgang Denk
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/b414c4df/attachment.pgp>
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Dear Pali =?ISO-8859-1?Q?Roh=E1r?=,
Quoted 8 lines · In message <2099459.BqkWJMp2Uq@pali> you wrote:
Quoted 2 lines · On Saturday 28 April 2012 23:20:04 Wolfgang Denk wrote:
Please stop posting your patches with base64
Content-transfer-encoding; thanks.How can I tell this to git format-patch and git send-email? Also I looked in my mailbox and all emails have no base64 header, but
Content-Transfer-Encoding: 8bit
Do not use funny characters in the commit message.
Try sending a patch to yourself first and verify that git-send-email does not need to base64 encode it.
Such patches are also all undigestable by patchwork.
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "Free markets select for winning solutions." - Eric S. Raymond
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
In reply to Pali RohárDear Pali Roh?r,
Quoted 6 lines
This patch adapts the bootm command so that it can use an existing atags command set up by a previous bootloader. If the environment variable "atagaddr" is unset, bootm behaves as normal. If "atagaddr" is set, bootm will use atags address from environment variable and also append new boot args (if specified in u-boot). For example, if a previous boot loader already set up the atags struct at
0x80000100:
Won't it be easier to create a preprocessing function that'd fill gd properly, so uboot can generate the atags through standard means then?
Quoted 80 lines
setenv atagaddr
0x80000100; bootm0x80008000Signed-off-by Pali Roh?r <[email protected]>---
Changes since v1:
- Rebased on u-boot masterChanges since original version:
- Added info to README file
- Added local defineCONFIG_SETUP_ANY_TAG
- Fixed compile warning
- Fixed commit message
- Check if atagaddr is not NULLREADME | 2 ++ arch/arm/lib/bootm.c | 60++++++++++++++++++++++++++++++++------------------ 2 files changed, 40 insertions(+), 22 deletions(-)
README +0
-0@@ -3687,6 +3687,8 @@ Some configuration options can be set usingEnvironment Variables.
List of environment variables (most likely not complete):
README +2
-0+ atagaddr - bootm will use ATAGs struct from specified address (arm only) + baudrate - see CONFIG_BAUDRATE bootdelay - see CONFIG_BOOTDELAYarch/arm/lib/bootm.c +6
-11@@ -42,6 +42,10 @@ DECLARE_GLOBAL_DATA_PTR;defined (CONFIG_INITRD_TAG ) || \defined (CONFIG_SERIAL_TAG ) || \ defined(CONFIG_REVISION_TAG) +#define CONFIG_SETUP_ANY_TAG +#endif + +#ifdef CONFIG_SETUP_ANY_TAG static struct tag *params;#endif @@ -106,11 +110,7 @@ static void announce_and_cleanup(void)cleanup_before_linux (); } -#if defined(CONFIG_SETUP_MEMORY_TAGS ) || \ - defined(CONFIG_CMDLINE_TAG ) || \ - defined(CONFIG_INITRD_TAG ) || \ - defined(CONFIG_SERIAL_TAG ) || \ - defined(CONFIG_REVISION_TAG ) +#ifdef CONFIG_SETUP_ANY_TAG static void setup_start_tag (bd_t *bd) { params = (struct tag *)bd->bi_boot_params;@@ -217,11 +217,7 @@ void setup_revision_tag(struct tag **in_params) }#endif -#if defined(CONFIG_SETUP_MEMORY_TAGS ) || \ - defined(CONFIG_CMDLINE_TAG ) || \ - defined(CONFIG_INITRD_TAG ) || \ - defined(CONFIG_SERIAL_TAG ) || \ - defined(CONFIG_REVISION_TAG ) +#ifdef CONFIG_SETUP_ANY_TAG static void setup_end_tag (bd_t *bd) { params->hdr.tag =ATAG_NONE ;@@ -280,13 +276,23 @@ static void boot_prep_linux(bootm_headers_t *images) } else#endif { -#if defined(CONFIG_SETUP_MEMORY_TAGS) || \
arch/arm/lib/bootm.c static void boot_prep_linux(bootm_headers_t *images) · line 283
Quoted 10 lines
arch/arm/lib/bootm.c +4
-5-defined (CONFIG_CMDLINE_TAG ) || \ -defined (CONFIG_INITRD_TAG ) || \ -defined (CONFIG_SERIAL_TAG ) || \ - defined(CONFIG_REVISION_TAG) +char *atagaddr =getenv ("atagaddr" );debug ("using: ATAGS\n" ); -setup_start_tag (gd->bd); + +if (atagaddr) + gd->bd->bi_boot_params = simple_strtoul(atagaddr, NULL,
16);
Quoted 35 lines
arch/arm/lib/bootm.c +12
-0+ +if (gd->bd->bi_boot_params) { +printf ("Using existing atags at %#lx\n" , gd->bd- bi_boot_params); + + params = (struct tag *) gd->bd->bi_boot_params; +while (params->hdr.size >0 ) + params =tag_next (params); + }else { +#ifdef CONFIG_SETUP_ANY_TAG +setup_start_tag (gd->bd); +#endif + }#ifdef CONFIG_SERIAL_TAG setup_serial_tag (¶ms);#endif
arch/arm/lib/bootm.c +3
-6@@ -297,18 +303,28 @@ static void boot_prep_linux(bootm_headers_t *images)setup_revision_tag (¶ms);#endif #ifdef CONFIG_SETUP_MEMORY_TAGS -setup_memory_tags (gd->bd); +if (!atagaddr) +setup_memory_tags (gd->bd);#endif #ifdef CONFIG_INITRD_TAG if (images->rd_start && images->rd_end)setup_initrd_tag (gd->bd, images->rd_start, images->rd_end);#endif -setup_end_tag (gd->bd); -#else /* all tags */ -printf ("FDT and ATAGS support not compiled in - hanging\n" ); -hang (); -#endif /* all tags */ +if (atagaddr) {
arch/arm/lib/bootm.c static void boot_prep_linux(bootm_headers_t *images) · line 324
Quoted 10 lines
arch/arm/lib/bootm.c +10
-0+if (params->hdr.size >0 ) +setup_end_tag (gd->bd); + }else { +#ifdef CONFIG_SETUP_ANY_TAG +setup_end_tag (gd->bd); +#endif + } +#ifndef CONFIG_SETUP_ANY_TAG +if (!atagaddr) { + printf("FDT and ATAGS support not compiled in -
hanging\n");
Quoted 5 lines
arch/arm/lib/bootm.c +3
-0+ hang(); + } +#endif } }
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Quoted 3 lines · On Sunday 29 April 2012 00:15:23 Marek Vasut wrote:
Won't it be easier to create a preprocessing function that'd fill gd properly, so uboot can generate the atags through standard means then?
Do you mean to generate/copy other atags in board code? This will not work because u-boot (in bootm.c) always passing ATAG_CORE in function setup_start_tag. And I do not want to pass ATAG_CORE two times to kernel (once which I copy from other bootloader and once which generate u-boot).
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/6033f58c/attachment.pgp>
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Dear Pali Roh?r,
Quoted 10 lines · On Sunday 29 April 2012 00:15:23 Marek Vasut wrote:
Quoted 3 lines
Won't it be easier to create a preprocessing function that'd fill gd properly, so uboot can generate the atags through standard means then?
Do you mean to generate/copy other atags in board code? This will not work because u-boot (in
bootm.c) always passingATAG_COREin functionsetup_start_tag. And I do not want to passATAG_COREtwo times to kernel (once which I copy from other bootloader and once which generate u-boot).
No, I mean parse the old ATAGS from nolo and fill u-boot's internal structures with that. Then let uboot generate the ATAGS from it's internal structures as usual.
Best regards,
Marek Vasut
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Quoted 14 lines · On Sunday 29 April 2012 11:10:42 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 11 lines · On Sunday 29 April 2012 00:15:23 Marek Vasut wrote:
Quoted 4 lines
Won't it be easier to create a preprocessing function that'd
fill gd properly, so uboot can generate the atags through standard means then?Do you mean to generate/copy other atags in board code? This will not work because u-boot (in
bootm.c) always passingATAG_COREin functionsetup_start_tag. And I do not want to passATAG_COREtwo times to kernel (once which I copy from other bootloader and once which generate u-boot).
Quoted 6 lines
No, I mean parse the old ATAGS from nolo and fill u-boot's internal structures with that. Then let uboot generate the ATAGS from it's internal structures as usual.
Best regards,
Marek Vasut
Ok, but what to do with non-standard omap/maemo atags which is used only for maemo (atag for bootreason, atag for bootmode ...)? U-Boot does not have internal structures for these non-standrad atags and also does not support passing it.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/08e9f9f9/attachment.pgp>
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Dear Pali Roh?r,
Quoted 19 lines · On Sunday 29 April 2012 11:10:42 Marek Vasut wrote:
Quoted 18 lines
Dear Pali Roh?r,
Quoted 11 lines · On Sunday 29 April 2012 00:15:23 Marek Vasut wrote:
Quoted 4 lines
Won't it be easier to create a preprocessing function that'd
fill gd properly, so uboot can generate the atags through standard means then?Do you mean to generate/copy other atags in board code? This will not work because u-boot (in
bootm.c) always passingATAG_COREin functionsetup_start_tag. And I do not want to passATAG_COREtwo times to kernel (once which I copy from other bootloader and once which generate u-boot).No, I mean parse the old ATAGS from nolo and fill u-boot's internal structures with that. Then let uboot generate the ATAGS from it's internal structures as usual.
Quoted 7 lines
Quoted 2 lines
Best regards,
Marek VasutOk, but what to do with non-standard omap/maemo atags which is used only for maemo (atag for bootreason, atag for bootmode ...)? U-Boot does not have internal structures for these non-standrad atags and also does not support passing it.
Implement support for passing ad-hoc additional non-standard atags then?
Best regards,
Marek Vasut
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Quoted 34 lines · On Sunday 29 April 2012 15:08:00 you wrote:
Dear Pali Roh?r,
Quoted 23 lines · On Sunday 29 April 2012 11:10:42 Marek Vasut wrote:
Quoted 22 lines
Dear Pali Roh?r,
Quoted 7 lines · On Sunday 29 April 2012 00:15:23 Marek Vasut wrote:
Quoted 5 lines
Won't it be easier to create a preprocessing function that'd
fill gd properly, so uboot can generate the atags through
standard means then?Quoted 8 lines
Do you mean to generate/copy other atags in board code? This
will not work because u-boot (inbootm.c) always passingATAG_COREin functionsetup_start_tag. And I do not want to
passATAG_COREtwo times to kernel (once which I copy from
other bootloader and once which generate u-boot).No, I mean parse the old ATAGS from nolo and fill u-boot's internal structures with that. Then let uboot generate the ATAGS from it's internal structures as usual.
Quoted 8 lines
Quoted 2 lines
Best regards,
Marek VasutOk, but what to do with non-standard omap/maemo atags which is
used only for maemo (atag for bootreason, atag for bootmode ...)? U-Boot does not have internal structures for these non-standrad atags and also does not support passing it.
Quoted 5 lines
Implement support for passing ad-hoc additional non-standard atags then?
Best regards,
Marek Vasut
Hi, what do you think about adding function setup_board_tags which will be implemented in board code?
arch/arm/include/asm/setup.h +7 -0
@@ -267,3 +267,10 @@ struct meminfo {extern struct meminfo meminfo;#endif + +/* +* Board specified tags +*/ +#ifdef CONFIG_SETUP_BOARD_TAGS +void setup_board_tags (struct tag **in_params); +#endif
arch/arm/lib/bootm.c +15 -3
@@ -111,6 +111,15 @@ static void announce_and_cleanup(void)defined (CONFIG_INITRD_TAG ) || \defined (CONFIG_SERIAL_TAG ) || \ defined(CONFIG_REVISION_TAG) +#ifndef CONFIG_ATAG_CORE_FLAGS +#define CONFIG_ATAG_CORE_FLAGS 0 +#endif +#ifndef CONFIG_ATAG_CORE_PAGESIZE +#define CONFIG_ATAG_CORE_PAGESIZE 0 +#endif +#ifndef CONFIG_ATAG_CORE_ROOTDEV +#define CONFIG_ATAG_CORE_ROOTDEV 0 +#endif static void setup_start_tag (bd_t *bd) { params = (struct tag *)bd->bi_boot_params;
@@ -118,9 +127,9 @@ static void setup_start_tag (bd_t *bd) params->hdr.tag =ATAG_CORE ; params->hdr.size =tag_size (tag_core); - params->u.core.flags =0 ; - params->u.core.pagesize =0 ; - params->u.core.rootdev =0 ; + params->u.core.flags =CONFIG_ATAG_CORE_FLAGS ; + params->u.core.pagesize =CONFIG_ATAG_CORE_PAGESIZE ; + params->u.core.rootdev =CONFIG_ATAG_CORE_ROOTDEV ; params =tag_next (params); }
@@ -304,6 +313,9 @@ static void boot_prep_linux(bootm_headers_t *images)setup_initrd_tag (gd->bd, images->rd_start, images->rd_end);#endif +#ifdef CONFIG_SETUP_BOARD_TAGS +setup_board_tags (¶ms); +#endif setup_end_tag (gd->bd);#else /* all tags */ printf ("FDT and ATAGS support not compiled in - hanging\n" );
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120601/b5ba772a/attachment.pgp>
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
In reply to Pali Rohárarch/arm/lib/bootm.c DECLARE_GLOBAL_DATA_PTR; · line 45
Quoted 4 lines · On Saturday 28 April 2012 13:26:41 Pali Roh?r wrote:
arch/arm/lib/bootm.c +1
-0defined (CONFIG_INITRD_TAG ) || \defined (CONFIG_SERIAL_TAG ) || \ defined(CONFIG_REVISION_TAG) +#define CONFIG_SETUP_ANY_TAG
don't indent the "#"
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120428/58d72243/attachment.pgp>
PATCH v2 1/11 arm: Optionally use existing atags in bootm.c
Quoted 9 lines · On Saturday 28 April 2012 19:22:38 Mike Frysinger wrote:
arch/arm/lib/bootm.c DECLARE_GLOBAL_DATA_PTR;
Quoted 5 lines · On Saturday 28 April 2012 13:26:41 Pali Roh?r wrote:
arch/arm/lib/bootm.c +1
-0defined (CONFIG_INITRD_TAG ) || \defined (CONFIG_SERIAL_TAG ) || \ defined(CONFIG_REVISION_TAG) +#define CONFIG_SETUP_ANY_TAG don't indent the "#"
-mike
Ok.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/80374cae/attachment.pgp>
PATCH v2 2/11 Add power bus message definitions in twl4030.h
In reply to Pali Rohár* Code copied from linux kernel 3.0.0 from file include/linux/i2c/twl.h
---
Changes since original version:
- Fixed commit message
include/twl4030.h | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+)
include/twl4030.h +98 -0
@@ -151,6 +151,103 @@#define TWL4030_PM_MASTER_SW_EVENTS_DEVSLP (1 << 1)#define TWL4030_PM_MASTER_SW_EVENTS_DEVOFF (1 << 0) +/* Power bus message definitions */ + +/* The TWL4030/5030 splits its power-management resources (the various +* regulators, clock and reset lines) into 3 processor groups - P1, P2 and +* P3. These groups can then be configured to transition between sleep, wait-on +* and active states by sending messages to the power bus. See Section 5.4.2 +* Power Resources of TWL4030 TRM +*/ + +/* Processor groups */ +#define DEV_GRP_NULL 0x0 +#define DEV_GRP_P1 0x1/* P1: all OMAP devices */ +#define DEV_GRP_P2 0x2/* P2: all Modem devices */ +#define DEV_GRP_P3 0x4/* P3: all peripheral devices */ + +/* Resource groups */ +#define RES_GRP_RES 0x0/* Reserved */ +#define RES_GRP_PP 0x1/* Power providers */ +#define RES_GRP_RC 0x2/* Reset and control */ +#define RES_GRP_PP_RC 0x3 +#define RES_GRP_PR 0x4/* Power references */ +#define RES_GRP_PP_PR 0x5 +#define RES_GRP_RC_PR 0x6 +#define RES_GRP_ALL 0x7/* All resource groups */ + +#define RES_TYPE2_R0 0x0 + +#define RES_TYPE_ALL 0x7 + +/* Resource states */ +#define RES_STATE_WRST 0xF +#define RES_STATE_ACTIVE 0xE +#define RES_STATE_SLEEP 0x8 +#define RES_STATE_OFF 0x0 + +/* Power resources */ + +/* Power providers */ +#define RES_VAUX1 1 +#define RES_VAUX2 2 +#define RES_VAUX3 3 +#define RES_VAUX4 4 +#define RES_VMMC1 5 +#define RES_VMMC2 6 +#define RES_VPLL1 7 +#define RES_VPLL2 8 +#define RES_VSIM 9 +#define RES_VDAC 10 +#define RES_VINTANA1 11 +#define RES_VINTANA2 12 +#define RES_VINTDIG 13 +#define RES_VIO 14 +#define RES_VDD1 15 +#define RES_VDD2 16 +#define RES_VUSB_1V5 17 +#define RES_VUSB_1V8 18 +#define RES_VUSB_3V1 19 +#define RES_VUSBCP 20 +#define RES_REGEN 21 +/* Reset and control */ +#define RES_NRES_PWRON 22 +#define RES_CLKEN 23 +#define RES_SYSEN 24 +#define RES_HFCLKOUT 25 +#define RES_32KCLKOUT 26 +#define RES_RESET 27 +/* Power Reference */ +#define RES_Main_Ref 28 + +#define TOTAL_RESOURCES 28 +/* +* Power Bus Message Format ... these can be sent individually by Linux, +* but are usually part of downloaded scripts that are run when various +* power events are triggered. +* +* Broadcast Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_GRP[11:9] RES_TYPE2[8:7] RES_TYPE[6:4] +* RES_STATE[3:0] +* +* Singular Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_ID[11:4] RES_STATE[3:0] +*/ + +#define MSG_BROADCAST (devgrp, grp, type, type2, state) \ + ((devgrp) << 13 | 1 << 12 | (grp) << 9 | (type2) << 7 \ + | (type) << 4 | (state)) + +#define MSG_SINGULAR (devgrp, id, state) \ + ((devgrp) << 13 | 0 << 12 | (id) << 4 | (state)) + +#define MSG_BROADCAST_ALL (devgrp, state) \ + ((devgrp) << 5 | (state)) + +#define MSG_BROADCAST_REF MSG_BROADCAST_ALL +#define MSG_BROADCAST_PROV MSG_BROADCAST_ALL +#define MSG_BROADCAST__CLK_RST MSG_BROADCAST_ALL +/* Power Managment Receiver */ #define TWL4030_PM_RECEIVER_SC_CONFIG 0x5B#define TWL4030_PM_RECEIVER_SC_DETECT1 0x5C
@@ -311,6 +408,7 @@#define TWL4030_PM_RECEIVER_VDAC_VSEL_18 0x03#define TWL4030_PM_RECEIVER_VMMC1_VSEL_30 0x02#define TWL4030_PM_RECEIVER_VMMC1_VSEL_32 0x03 +#define TWL4030_PM_RECEIVER_VSIM_VSEL_18 0x03/* Device Selection in PM Receiver Module */ #define TWL4030_PM_RECEIVER_DEV_GRP_P1 0x20
Signature · 1 line
1.7.9.5
PATCH v2 3/11 cfb_console: Fix function console_back
In reply to Pali Rohár* Do not disable and enable cursor again
--- drivers/video/cfb_console.c | 2 -- 1 file changed, 2 deletions(-)
drivers/video/cfb_console.c +0 -2
@@ -721,7 +721,6 @@ static void console_scrollup(void)static void console_back (void ) { -CURSOR_OFF ; console_col--;if (console_col <0 ) {
@@ -730,7 +729,6 @@ static void console_back(void)if (console_row <0 ) console_row =0 ; } -CURSOR_SET ; }static void console_newline (void )
Signature · 1 line
1.7.9.5
PATCH v2 3/11 cfb_console: Fix function console_back
Dear Pali Roh?r,
Quoted 1 line
* Do not disable and enable cursor again
Can you elaborate please?
Quoted 19 lines
Signed-off-by Pali Roh?r <[email protected]>--- drivers/video/cfb_console.c | 2 -- 1 file changed, 2 deletions(-)drivers/video/cfb_console.c +0
-1@@ -721,7 +721,6 @@ static void console_scrollup(void)static void console_back (void ) { -CURSOR_OFF ; console_col--;if (console_col <0 ) {
drivers/video/cfb_console.c static void console_back(void) · line 734
Quoted 7 lines
drivers/video/cfb_console.c +0
-1@@ -730,7 +729,6 @@ static void console_back(void)if (console_row <0 ) console_row =0 ; } -CURSOR_SET ; }static void console_newline (void )
Best regards,
Marek Vasut
PATCH v2 3/11 cfb_console: Fix function console_back
Quoted 6 lines · On Sunday 29 April 2012 00:15:58 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 1 line
* Do not disable and enable cursor again
Can you elaborate please?
console_back is called only from cfb putc function which already turn off cursor at begin and turn on at the end of call.
So function console_back will have always disabled cursor and is not needed to call turning it off again.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/bff89063/attachment.pgp>
PATCH v2 3/11 cfb_console: Fix function console_back
Dear Pali =?ISO-8859-1?Q?Roh=E1r?=,
Quoted 8 lines · In message <1581447.hx3godgTju@pali> you wrote:
Quoted 2 lines
Can you elaborate please?
console_backis called only from cfb putc function which already turn off cursor at begin and turn on at the end of call.So function
console_backwill have always disabled cursor and is not needed to call turning it off again.
Such assumptions need to be documented, then.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "If a computer can't directly address all the RAM you can use, it's just a toy." - anonymous comp.sys.amiga posting, non-sequitir
PATCH v2 3/11 cfb_console: Fix function console_back
In reply to Pali RohárHi,
Quoted 6 lines · On Sat, 28 Apr 2012 19:26:43 +0200 Pali Roh?r <[email protected]> wrote:
* Do not disable and enable cursor again
Signed-off-by Pali Roh?r <[email protected]>--- drivers/video/cfb_console.c | 2 -- 1 file changed, 2 deletions(-)
Applied to u-boot-video/master after extending the commit log.
Thanks,
Anatolij
PATCH v2 3/11 cfb_console: Fix function console_back
Quoted 10 lines · On Saturday 19 May 2012 21:16:13 Anatolij Gustschin wrote:
Hi,
On Sat, 28 Apr 2012 19:26:43 +0200
Quoted 5 lines · Pali Roh?r
* Do not disable and enable cursor again
Signed-off-by Pali Roh?r <[email protected]>---
Quoted 7 lines
Quoted 2 lines
drivers/video/cfb_console.c | 2 -- 1 file changed, 2 deletions(-)Applied to u-boot-video/master after extending the commit log.
Thanks,
Anatolij
Ok, when this patch will be in u-boot master?
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120601/2a12692f/attachment.pgp>
PATCH v2 3/11 cfb_console: Fix function console_back
Hi,
On Fri, 01 Jun 2012 20:42:29 +0200
Pali Roh?r <[email protected]> wrote:
...
Quoted 1 line
Ok, when this patch will be in u-boot master?
I'm going to submit my pull request soon. It will be in master when Wolfgang pulls my tree.
Thanks,
Anatolij
PATCH v2 4/11 cfb_console: Add function console_clear and console_clear_line
In reply to Pali Rohár * console_clear - clear full console framebuffer output
* console_clear_line - clear part of specified line (or full)
---
Changes since original version:
- Fixed commit message
drivers/video/cfb_console.c | 64 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 12 deletions(-)
drivers/video/cfb_console.c +52 -12
@@ -683,6 +683,57 @@ static void memcpyl(int *d, int *s, int c) }#endif +static void console_clear (void ) +{ +#ifdef VIDEO_HW_RECTFILL +video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ +0 ,/* dest pos x */ + video_logo_height,/* dest pos y */ +VIDEO_VISIBLE_COLS ,/* frame width */ +VIDEO_VISIBLE_ROWS ,/* frame height */ + bgx/* fill color */ + ); +#else +memsetl (CONSOLE_ROW_FIRST ,CONSOLE_SIZE , bgx); +#endif +} + +static void console_clear_line (int line,int begin,int end) +{ +#ifdef VIDEO_HW_RECTFILL +video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ +/* FIXME: correct? */ +VIDEO_FONT_WIDTH * begin,/* dest pos x */ +/* FIXME: correct? */ + video_logo_height + +CONSOLE_ROW_SIZE * line,/* dest pos y */ +/* FIXME: correct? */ +VIDEO_FONT_WIDTH * (end - begin),/* frame width */ +VIDEO_FONT_HEIGHT ,/* frame height */ + bgx/* fill color */ + ); +#else +int i; +if (begin ==0 && end ==CONSOLE_COLS ) +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line,/* offset of row */ +CONSOLE_ROW_SIZE >>2 ,/* length of row */ + bgx/* fill color */ + ); +else +for (i =0 ; i <VIDEO_FONT_HEIGHT ; ++i) +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line +/* offset of row */ +VIDEO_FONT_WIDTH * +VIDEO_PIXEL_SIZE * begin +/* offset of col */ + i *VIDEO_LINE_LEN ,/* col offset of i line */ + (VIDEO_FONT_WIDTH *VIDEO_PIXEL_SIZE * + (end - begin +1 )) >>2 ,/* length to end */ + bgx/* fill color */ + ); +#endif +} +static void console_scrollup (void ) {/* copy up rows ignoring the first one */
@@ -705,18 +756,7 @@ static void console_scrollup(void)#endif /* clear the last one */ -#ifdef VIDEO_HW_RECTFILL -video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ -0 ,/* dest pos x */ -VIDEO_VISIBLE_ROWS - -VIDEO_FONT_HEIGHT ,/* dest pos y */ -VIDEO_VISIBLE_COLS ,/* frame width */ -VIDEO_FONT_HEIGHT ,/* frame height */ -CONSOLE_BG_COL /* fill color */ - ); -#else -memsetl (CONSOLE_ROW_LAST ,CONSOLE_ROW_SIZE >>2 ,CONSOLE_BG_COL ); -#endif +console_clear_line (CONSOLE_ROWS -1 ,0 ,CONSOLE_COLS ); }static void console_back (void )
Signature · 1 line
1.7.9.5
PATCH v2 4/11 cfb_console: Add function console_clear and console_clear_line
Dear Pali Roh?r,
Quoted 31 lines
*
console_clear- clear full console framebuffer output
*console_clear_line- clear part of specified line (or full)Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagedrivers/video/cfb_console.c | 64+++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 12 deletions(-)
drivers/video/cfb_console.c +11
-0@@ -683,6 +683,57 @@ static void memcpyl(int *d, int *s, int c) }#endif +static void console_clear (void ) +{ +#ifdef VIDEO_HW_RECTFILL +video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ +0 ,/* dest pos x */ + video_logo_height,/* dest pos y */ +VIDEO_VISIBLE_COLS ,/* frame width */ +VIDEO_VISIBLE_ROWS ,/* frame height */ + bgx/* fill color */ + ); +#else
drivers/video/cfb_console.c static void memcpyl(int *d, int *s, int c) · line 706
Quoted 10 lines
drivers/video/cfb_console.c +10
-0+memsetl (CONSOLE_ROW_FIRST ,CONSOLE_SIZE , bgx); +#endif +} + +static void console_clear_line (int line,int begin,int end) +{ +#ifdef VIDEO_HW_RECTFILL + video_hw_rectfill(VIDEO_PIXEL_SIZE, /* bytes per pixel */ + /* FIXME: correct? */ + VIDEO_FONT_WIDTH * begin, /* dest pos x */
Maybe you want to prepare these parameters into some variables at the begining of this function? Also, your comments make no sense.
drivers/video/cfb_console.c static void memcpyl(int *d, int *s, int c) · line 710
Quoted 4 lines
drivers/video/cfb_console.c +4
-0+/* FIXME: correct? */ + video_logo_height + + CONSOLE_ROW_SIZE * line, /* dest pos y */ +/* FIXME: correct? */
Uh ... fixme ;-)
Quoted 49 lines
drivers/video/cfb_console.c +27
-12+VIDEO_FONT_WIDTH * (end - begin),/* frame width */ +VIDEO_FONT_HEIGHT ,/* frame height */ + bgx/* fill color */ + ); +#else +int i; +if (begin ==0 && end ==CONSOLE_COLS ) +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line,/* offset of row */ +CONSOLE_ROW_SIZE >>2 ,/* length of row */ + bgx/* fill color */ + ); +else +for (i =0 ; i <VIDEO_FONT_HEIGHT ; ++i) +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line +/* offset of row */ +VIDEO_FONT_WIDTH * +VIDEO_PIXEL_SIZE * begin +/* offset of col */ + i *VIDEO_LINE_LEN ,/* col offset of i line */ + (VIDEO_FONT_WIDTH *VIDEO_PIXEL_SIZE * + (end - begin +1 )) >>2 ,/* length to end */ + bgx/* fill color */ + ); +#endif +} +static void console_scrollup (void ) {/* copy up rows ignoring the first one */ @@ -705,18 +756,7 @@ static void console_scrollup(void)#endif /* clear the last one */ -#ifdef VIDEO_HW_RECTFILL -video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ -0 ,/* dest pos x */ -VIDEO_VISIBLE_ROWS - -VIDEO_FONT_HEIGHT ,/* dest pos y */ -VIDEO_VISIBLE_COLS ,/* frame width */ -VIDEO_FONT_HEIGHT ,/* frame height */ -CONSOLE_BG_COL /* fill color */ - ); -#else -memsetl (CONSOLE_ROW_LAST ,CONSOLE_ROW_SIZE >>2 ,CONSOLE_BG_COL ); -#endif +console_clear_line (CONSOLE_ROWS -1 ,0 ,CONSOLE_COLS ); }static void console_back (void )
PATCH v2 5/11 cfb_console: Add functions for moving with cursor
In reply to Pali Rohár * console_cursor_fix - fix cursor position (check for out of screen)
* console_cursor_up, console_cursor_down, console_cursor_left, console_cursor_right, console_cursor_set_position for change cursor position
* console_newline - added param to specify count of creating new lines
* console_previewsline - opposite of console_newline
---
Changes since original version:
- Fixed commit message
drivers/video/cfb_console.c | 64 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 6 deletions(-)
drivers/video/cfb_console.c +58 -6
@@ -771,9 +771,54 @@ static void console_back(void) } } -static void console_newline (void ) +static void console_cursor_fix (void ) { - console_row++; +if (console_row <0 ) + console_row =0 ; +if (console_row >=CONSOLE_ROWS ) + console_row =CONSOLE_ROWS -1 ; +if (console_col <0 ) + console_col =0 ; +if (console_col >=CONSOLE_COLS ) + console_col =CONSOLE_COLS -1 ; +} + +static void console_cursor_up (int n) +{ + console_row -= n; +console_cursor_fix (); +} + +static void console_cursor_down (int n) +{ + console_row += n; +console_cursor_fix (); +} + +static void console_cursor_left (int n) +{ + console_col -= n; +console_cursor_fix (); +} + +static void console_cursor_right (int n) +{ + console_col += n; +console_cursor_fix (); +} + +static void console_cursor_set_position (int row,int col) +{ +if (console_row !=-1 ) + console_row = row; +if (console_col !=-1 ) + console_col = col; +console_cursor_fix (); +} + +static void console_newline (int n) +{ + console_row += n; console_col =0 ;/* Check if we need to scroll the terminal */
@@ -782,10 +827,17 @@ static void console_newline(void)console_scrollup ();/* Decrement row number */ - console_row--; + console_row =CONSOLE_ROWS -1 ; } } +static void console_previewsline (int n) +{ +/* FIXME: also scroll terminal ? */ + console_row -= n; +console_cursor_fix (); +} +static void console_cr (void ) { console_col =0 ;
@@ -804,7 +856,7 @@ void video_putc(const char c)case '\n' :/* next line */ if (console_col || (!console_col && nl)) -console_newline (); +console_newline (1 ); nl =1 ;break ;
@@ -813,7 +865,7 @@ void video_putc(const char c) console_col &= ~0x0007 ;if (console_col >=CONSOLE_COLS ) -console_newline (); +console_newline (1 );break ;case 8 :/* backspace */
@@ -827,7 +879,7 @@ void video_putc(const char c)/* check for newline */ if (console_col >=CONSOLE_COLS ) { -console_newline (); +console_newline (1 ); nl =0 ; } }
Signature · 1 line
1.7.9.5
PATCH v2 5/11 cfb_console: Add functions for moving with cursor
Dear Pali Roh?r,
Quoted 5 lines
*
console_cursor_fix- fix cursor position (check for out of screen)
*console_cursor_up,console_cursor_down,console_cursor_left,console_cursor_right,console_cursor_set_positionfor change cursor
position *console_newline- added param to specify count of creating new lines *console_previewsline- opposite ofconsole_newline
How/where do you use these? Documentation entry is missing and there're no comments in the code.
Quoted 116 lines
Signed-off-by Pali Roh?r <[email protected]>---
Changes since original version:
- Fixed commit messagedrivers/video/cfb_console.c | 64+++++++++++++++++++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 6 deletions(-)
drivers/video/cfb_console.c +58
-6@@ -771,9 +771,54 @@ static void console_back(void) } } -static void console_newline (void ) +static void console_cursor_fix (void ) { - console_row++; +if (console_row <0 ) + console_row =0 ; +if (console_row >=CONSOLE_ROWS ) + console_row =CONSOLE_ROWS -1 ; +if (console_col <0 ) + console_col =0 ; +if (console_col >=CONSOLE_COLS ) + console_col =CONSOLE_COLS -1 ; +} + +static void console_cursor_up (int n) +{ + console_row -= n; +console_cursor_fix (); +} + +static void console_cursor_down (int n) +{ + console_row += n; +console_cursor_fix (); +} + +static void console_cursor_left (int n) +{ + console_col -= n; +console_cursor_fix (); +} + +static void console_cursor_right (int n) +{ + console_col += n; +console_cursor_fix (); +} + +static void console_cursor_set_position (int row,int col) +{ +if (console_row !=-1 ) + console_row = row; +if (console_col !=-1 ) + console_col = col; +console_cursor_fix (); +} + +static void console_newline (int n) +{ + console_row += n; console_col =0 ;/* Check if we need to scroll the terminal */ @@ -782,10 +827,17 @@ static void console_newline(void)console_scrollup ();/* Decrement row number */ - console_row--; + console_row =CONSOLE_ROWS -1 ; } } +static void console_previewsline (int n) +{ +/* FIXME: also scroll terminal ? */ + console_row -= n; +console_cursor_fix (); +} +static void console_cr (void ) { console_col =0 ;@@ -804,7 +856,7 @@ void video_putc(const char c)case '\n' :/* next line */ if (console_col || (!console_col && nl)) -console_newline (); +console_newline (1 ); nl =1 ;break ;@@ -813,7 +865,7 @@ void video_putc(const char c) console_col &= ~0x0007 ;if (console_col >=CONSOLE_COLS ) -console_newline (); +console_newline (1 );break ;case 8 :/* backspace */ @@ -827,7 +879,7 @@ void video_putc(const char c)/* check for newline */ if (console_col >=CONSOLE_COLS ) { -console_newline (); +console_newline (1 ); nl =0 ; } }
PATCH v2 5/11 cfb_console: Add functions for moving with cursor
Quoted 10 lines · On Sunday 29 April 2012 00:18:21 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 8 lines
*
console_cursor_fix- fix cursor position (check for out of screen) *console_cursor_up,console_cursor_down,console_cursor_left,>
console_cursor_right,console_cursor_set_positionfor change cursor>
position *console_newline- added param to specify count of creating new lines *console_previewsline- opposite ofconsole_newline
Quoted 3 lines
How/where do you use these? Documentation entry is missing and there're no comments in the code.
In ansi terminal.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/8f5ae7f2/attachment.pgp>
PATCH v2 5/11 cfb_console: Add functions for moving with cursor
Dear Pali Roh?r,
Quoted 10 lines · On Sunday 29 April 2012 00:18:21 Marek Vasut wrote:
Quoted 9 lines
Dear Pali Roh?r,
Quoted 7 lines
*
console_cursor_fix- fix cursor position (check for out of screen) *console_cursor_up,console_cursor_down,console_cursor_left,>
console_cursor_right,console_cursor_set_positionfor change cursor>
Quoted 8 lines
Quoted 6 lines
Quoted 3 lines
position *
console_newline- added param to specify count of creating new lines *console_previewsline- opposite ofconsole_newlineHow/where do you use these? Documentation entry is missing and there're no comments in the code.
In ansi terminal.
Mailing list isn't really the proper place for documentation ;-)
Best regards,
Marek Vasut
PATCH v2 5/11 cfb_console: Add functions for moving with cursor
In reply to Pali RohárDear Pali =?ISO-8859-1?Q?Roh=E1r?=,
Quoted 5 lines · In message <1704132.kQI9AKOLjq@pali> you wrote:
Quoted 3 lines
How/where do you use these? Documentation entry is missing and there're no comments in the code.
In ansi terminal.
I cannot parse this. Where is the documentation?
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de A direct quote from the Boss: "We passed over a lot of good people to get the ones we hired."
PATCH v3 5/11 cfb_console: Add console_clear_line function
In reply to Pali RohárFrom: Pali Roh?r <[email protected]>
console_clear_line() clears part of specified line or the full line.
---
Changes since v2:
- remove console_clear() from this patch, it should be added in another patch which uses this function
- fix arguments for hw accelerated fill and drop FIXME comments
- fix console_clear_line() end argument, as we start counting columns from zero
- fix coding style
- extend comments
- tested the code with hw accelerated fill
drivers/video/cfb_console.c | 49 +++++++++++++++++++++++++++++++----------- 1 files changed, 36 insertions(+), 13 deletions(-)
drivers/video/cfb_console.c +36 -13
@@ -683,6 +683,41 @@ static void memcpyl(int *d, int *s, int c) }#endif +static void console_clear_line (int line,int begin,int end) +{ +#ifdef VIDEO_HW_RECTFILL +video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ +VIDEO_FONT_WIDTH * begin,/* dest pos x */ + video_logo_height + +VIDEO_FONT_HEIGHT * line,/* dest pos y */ +VIDEO_FONT_WIDTH * (end - begin +1 ),/* fr. width */ +VIDEO_FONT_HEIGHT ,/* frame height */ + bgx/* fill color */ + ); +#else +if (begin ==0 && (end +1 ) ==CONSOLE_COLS ) { +memsetl (CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line,/* offset of row */ +CONSOLE_ROW_SIZE >>2 ,/* length of row */ + bgx/* fill color */ + ); + }else { +void *offset; +int i, size; + + offset =CONSOLE_ROW_FIRST + +CONSOLE_ROW_SIZE * line +/* offset of row */ +VIDEO_FONT_WIDTH * +VIDEO_PIXEL_SIZE * begin;/* offset of col */ + size =VIDEO_FONT_WIDTH *VIDEO_PIXEL_SIZE * (end - begin +1 ); + size >>=2 ;/* length to end for memsetl() */ +/* fill at col offset of i'th line using bgx as fill color */ +for (i =0 ; i <VIDEO_FONT_HEIGHT ; i++) +memsetl (offset + i *VIDEO_LINE_LEN , size, bgx); + } +#endif +} +static void console_scrollup (void ) {/* copy up rows ignoring the first one */
@@ -703,20 +738,8 @@ static void console_scrollup(void)memcpyl (CONSOLE_ROW_FIRST ,CONSOLE_ROW_SECOND ,CONSOLE_SCROLL_SIZE >>2 );#endif -/* clear the last one */ -#ifdef VIDEO_HW_RECTFILL -video_hw_rectfill (VIDEO_PIXEL_SIZE ,/* bytes per pixel */ -0 ,/* dest pos x */ -VIDEO_VISIBLE_ROWS - -VIDEO_FONT_HEIGHT ,/* dest pos y */ -VIDEO_VISIBLE_COLS ,/* frame width */ -VIDEO_FONT_HEIGHT ,/* frame height */ -CONSOLE_BG_COL /* fill color */ - ); -#else -memsetl (CONSOLE_ROW_LAST ,CONSOLE_ROW_SIZE >>2 ,CONSOLE_BG_COL ); -#endif +console_clear_line (CONSOLE_ROWS -1 ,0 ,CONSOLE_COLS -1 ); }static void console_back (void )
Signature · 1 line
1.7.1
PATCH v3 5/11 cfb_console: Add console_clear_line function
Quoted 3 lines · On Sun, 20 May 2012 22:38:08 +0200 Anatolij Gustschin <[email protected]> wrote:
From: Pali Roh?r <[email protected]>
console_clear_line()clears part of specified line or the full line.
The patch numbering is wrong, actually it should be [PATCH v3 04/11]. Sorry about that.
Thanks,
Anatolij
PATCH v3 5/11 cfb_console: Add console_clear_line function
In reply to Anatolij GustschinQuoted 17 lines · On Sun, 20 May 2012 22:38:08 +0200 Anatolij Gustschin <[email protected]> wrote:
From: Pali Roh?r <[email protected]>
console_clear_line()clears part of specified line or the full line.Signed-off-by Pali Roh?r <[email protected]>Signed-off-by Anatolij Gustschin <[email protected]>---
Changes since v2:
- removeconsole_clear()from this patch, it should be added in another patch which uses this function
- fix arguments for hw accelerated fill and drop FIXME comments
- fixconsole_clear_line()end argument, as we start counting columns from zero
- fix coding style
- extend comments
- tested the code with hw accelerated fill
Quoted 2 lines
drivers/video/cfb_console.c | 49 +++++++++++++++++++++++++++++++----------- 1 files changed, 36 insertions(+), 13 deletions(-)
Applied to u-boot-video/master. Thanks!
Anatolij
PATCH v2 6/11 cfb_console: Add support for some ANSI terminal escape codes
In reply to Pali Rohár * This patch add support for move cursor and reverse colors via ANSI espace codes in cfb_console driver
* ANSI escape codes can be enabled/disabled via CONFIG_CFB_CONSOLE_ANSI
---
Changes since v1:
- Added support ANSI code show/hide cursor
- Added info to README
Changes since original version:
- Fixed commit message
README | 3 + drivers/video/cfb_console.c | 234 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 234 insertions(+), 3 deletions(-)
README +3 -0
@@ -613,6 +613,9 @@ The following options need to be configured: additional board info beside the logo + When CONFIG_CFB_CONSOLE_ANSI is defined, console will have + ANSI terminal support. Needed for CONFIG_CMDLINE_EDITING. + When CONFIG_CFB_CONSOLE is defined, video console is default i/o. Serial console can be forced with environment 'console=serial'.
drivers/video/cfb_console.c +231 -3
261 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v2 6/11 cfb_console: Add support for some ANSI terminal escape codes
Dear Pali Roh?r,
Quoted 101 lines
* This patch add support for move cursor and reverse colors via ANSI espace codes in
cfb_consoledriver
* ANSI escape codes can be enabled/disabled viaCONFIG_CFB_CONSOLE_ANSISigned-off-by Pali Roh?r <[email protected]>---
Changes since v1:
- Added support ANSI code show/hide cursor
- Added info to READMEChanges since original version:
- Fixed commit messageREADME | 3 + drivers/video/cfb_console.c | 234++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 234 insertions(+), 3 deletions(-)
README +3
-0@@ -613,6 +613,9 @@ The following options need to be configured: additional board info beside the logo + When CONFIG_CFB_CONSOLE_ANSI is defined, console will have + ANSI terminal support. Needed for CONFIG_CMDLINE_EDITING. + When CONFIG_CFB_CONSOLE is defined, video console is default i/o. Serial console can be forced with environment 'console=serial'.drivers/video/cfb_console.c +34
-3@@ -377,6 +377,11 @@ static int console_row; /* cursor row */static u32 eorx, fgx, bgx;/* color pats */ +static char ansi_buf[10 ] = {0 , }; +static int ansi_buf_size; +static int ansi_colors_need_revert; +static int ansi_cursor_hidden; +static const int video_font_draw_table8[] = {0x00000000 ,0x000000ff ,0x0000ff00 ,0x0000ffff ,0x00ff0000 ,0x00ff00ff ,0x00ffff00 ,0x00ffffff ,@@ -602,6 +607,14 @@ static void video_putchar(int xx, int yy, unsigned char c) video_drawchars(xx, yy + video_logo_height, &c, 1); } +static void console_swap_colors(void) +{ + eorx = fgx; + fgx = bgx; + bgx = eorx; + eorx = fgx ^ bgx; +} +#if defined(CONFIG_CONSOLE_CURSOR ) || defined(CONFIG_VIDEO_SW_CURSOR )static void video_set_cursor (void ) {@@ -843,11 +856,12 @@ static void console_cr(void) console_col =0 ; } -void video_putc (const char c) +static void parse_putc (const char c) {static int nl =1 ; -CURSOR_OFF ; +if (!ansi_cursor_hidden) +CURSOR_OFF ;switch (c) {case 13 :/* back to first column */ @@ -883,7 +897,221 @@ void video_putc(const char c) nl =0 ; } } -CURSOR_SET ; + +if (!ansi_cursor_hidden) +CURSOR_SET ; +} + +void video_putc (const char c) +{ +#ifdef CONFIG_CFB_CONSOLE_ANSI +int i; + +if (c ==27 ) { +for (i =0 ; i < ansi_buf_size; ++i) +parse_putc (ansi_buf[i]); + ansi_buf[0 ] =27 ; + ansi_buf_size =1 ; +return ; + } +
drivers/video/cfb_console.c void video_putc(const char c) · line 927
Quoted 10 lines
drivers/video/cfb_console.c +10
-0+if (ansi_buf_size >0 ) { +/* +0 - ESC +1 - [ +2 - num1 +3 - .. +4 - ; +5 - num2 +6 - .. +7 - cchar
wrong comment ... did you even run these patches through checkpatch? Run them and resubmit please, I'm ending my review here.
Quoted 190 lines
drivers/video/cfb_console.c +187
-0+*/ +int next =0 ; + +int flush =0 ; +int fail =0 ; + +int num1 =0 ; +int num2 =0 ; +int cchar =0 ; + + ansi_buf[ansi_buf_size++] = c; + +if (ansi_buf_size >=sizeof (ansi_buf)) + fail =1 ; + +for (i =0 ; i < ansi_buf_size; ++i) { +if (fail) +break ; + +switch (next) { +case 0 : +if (ansi_buf[i] ==27 ) + next =1 ; +else + fail =1 ; +break ; + +case 1 : +if (ansi_buf[i] =='[' ) + next =2 ; +else + fail =1 ; +break ; + +case 2 : +if (ansi_buf[i] >='0' && ansi_buf[i] <='9' ) { + num1 = ansi_buf[i]-'0' ; + next =3 ; + }else if (ansi_buf[i] !='?' ) { + --i; + num1 =1 ; + next =4 ; + } +break ; + +case 3 : +if (ansi_buf[i] >='0' && ansi_buf[i] <='9' ) { + num1 *=10 ; + num1 += ansi_buf[i]-'0' ; + }else { + --i; + next =4 ; + } +break ; + +case 4 : +if (ansi_buf[i] !=';' ) { + --i; + next =7 ; + }else + next =5 ; +break ; + +case 5 : +if (ansi_buf[i] >='0' && ansi_buf[i] <='9' ) { + num2 = ansi_buf[i]-'0' ; + next =6 ; + }else + fail =1 ; +break ; + +case 6 : +if (ansi_buf[i] >='0' && ansi_buf[i] <='9' ) { + num2 *=10 ; + num2 += ansi_buf[i]-'0' ; + }else { + --i; + next =7 ; + } +break ; + +case 7 : +if ((ansi_buf[i] >='A' && ansi_buf[i] <='H' ) + || ansi_buf[i] =='J' + || ansi_buf[i] =='K' + || ansi_buf[i] =='h' + || ansi_buf[i] =='l' + || ansi_buf[i] =='m' ) { + cchar = ansi_buf[i]; + flush =1 ; + }else + fail =1 ; +break ; + } + } + +if (fail) { +for (i =0 ; i < ansi_buf_size; ++i) +parse_putc (ansi_buf[i]); + ansi_buf_size =0 ; +return ; + } + +if (flush) { +if (!ansi_cursor_hidden) +CURSOR_OFF ; + ansi_buf_size =0 ; +switch (cchar) { +case 'A' : +/* move cursor num1 rows up */ +console_cursor_up (num1); +break ; +case 'B' : +/* move cursor num1 rows down */ +console_cursor_down (num1); +break ; +case 'C' : +/* move cursor num1 columns forward */ +console_cursor_right (num1); +break ; +case 'D' : +/* move cursor num1 columns back */ +console_cursor_left (num1); +break ; +case 'E' : +/* move cursor num1 rows up at begin of row */ +console_previewsline (num1); +break ; +case 'F' : +/* move cursor num1 rows down at begin of row */ +console_newline (num1); +break ; +case 'G' : +/* move cursor to column num1 */ +console_cursor_set_position (-1 , num1-1 ); +break ; +case 'H' : +/* move cursor to row num1, column num2 */ +console_cursor_set_position (num1-1 , num2-1 ); +break ; +case 'J' : +/* clear console and move cursor to 0, 0 */ +console_clear (); +console_cursor_set_position (0 ,0 ); +break ; +case 'K' : +/* clear line */ +if (num1 ==0 ) +console_clear_line (console_row, + console_col, +CONSOLE_COLS -1 ); +else if (num1 ==1 ) +console_clear_line (console_row, +0 , console_col); +else +console_clear_line (console_row, +0 ,CONSOLE_COLS -1 ); +break ; +case 'h' : + ansi_cursor_hidden =0 ; +break ; +case 'l' : + ansi_cursor_hidden =1 ; +break ; +case 'm' : +if (num1 ==0 ) {/* reset swapped colors */ +if (ansi_colors_need_revert) { +console_swap_colors (); + ansi_colors_need_revert =0 ; + } + }else if (num1 ==7 ) {/* once swap colors */ +if (!ansi_colors_need_revert) { +console_swap_colors (); + ansi_colors_need_revert =1 ; + } + } +break ; + } +if (!ansi_cursor_hidden) +CURSOR_SET ; + } + }else { +parse_putc (c); + } +#else +parse_putc (c); +#endif }void video_puts (const char *s)
PATCH v2 6/11 cfb_console: Add support for some ANSI terminal escape codes
Quoted 7 lines · On Sunday 29 April 2012 00:19:03 Marek Vasut wrote:
Quoted 7 lines
drivers/video/cfb_console.c +7
-0+ +if (ansi_buf_size >0 ) { +/* +0 - ESC +1 - [ +2 - num1 +3 - ..
Quoted 9 lines
drivers/video/cfb_console.c void video_putc(const char c) · line 927
Quoted 4 lines
drivers/video/cfb_console.c +4
-0+ 4 - ; +5 - num2 + 6 - .. + 7 - ccharwrong comment ... did you even run these patches through checkpatch? Run them and resubmit please, I'm ending my review here.
Yes, I all patches except first is OK for checkpatch. It show no errors and no warnings.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/b81516de/attachment.pgp>
PATCH v2 6/11 cfb_console: Add support for some ANSI terminal escape codes
Dear Pali =?ISO-8859-1?Q?Roh=E1r?=,
Quoted 16 lines · In message <3284404.3VX1zBQJtc@pali> you wrote:
Quoted 15 lines
drivers/video/cfb_console.c void video_putc(const char c) · line 927
Quoted 11 lines
drivers/video/cfb_console.c +10
-0+if (ansi_buf_size >0 ) { +/* +0 - ESC +1 - [ +2 - num1 +3 - .. +4 - ; +5 - num2 +6 - .. +7 - cchar wrong comment ... did you even run these patches through checkpatch? Run them and resubmit please, I'm ending my review here.
Quoted 2 lines
Yes, I all patches except first is OK for checkpatch. It show no errors and no warnings.
Nevertheless, this violates the CodingStyle (see entry for multiline comments); please fix globally.
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Two wrongs don't make a right, but three rights make a left.
PATCH v2 7/11 cfb_console: Ignore bell character
In reply to Pali Rohár--- drivers/video/cfb_console.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/video/cfb_console.c +3 -0
@@ -886,6 +886,9 @@ static void parse_putc(const char c)console_back ();break ; +case 7 :/* bell */ +break ;/* ignored */ +default :/* draw the char */ video_putchar (console_col *VIDEO_FONT_WIDTH , console_row *VIDEO_FONT_HEIGHT , c);
Signature · 1 line
1.7.9.5
PATCH v2 7/11 cfb_console: Ignore bell character
Hi,
Quoted 4 lines · On Sat, 28 Apr 2012 19:26:47 +0200 Pali Roh?r <[email protected]> wrote:
Signed-off-by Pali Roh?r <[email protected]>--- drivers/video/cfb_console.c | 3 +++ 1 file changed, 3 insertions(+)
Applied to u-boot-video/master. Thanks!
Anatolij
PATCH v2 8/11 video: cfb_console: flush dcache for frame buffer in DRAM
In reply to Pali RohárFrom: Anatolij Gustschin <[email protected]>
Data cache flushing is required for frame buffer in RAM to fix the distorted console text output. Currently this text distortion is observed with cfb on beageboard and N900 when running with data cache enabled.
---
Changes since original version:
- Rebased on Nokia RX-51 patch series
- Call flush_cache in console_clear too
drivers/video/cfb_console.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+)
drivers/video/cfb_console.c +37 -0
@@ -360,6 +360,8 @@ void console_cursor(int state);extern void video_get_info_str (int line_number,char *info);#endif +DECLARE_GLOBAL_DATA_PTR ; +/* Locals */ static GraphicDevice *pGD;/* Pointer to Graphic array */
@@ -382,6 +384,8 @@ static int ansi_buf_size;static int ansi_colors_need_revert;static int ansi_cursor_hidden; +static int cfb_do_flush_cache; +static const int video_font_draw_table8[] = {0x00000000 ,0x000000ff ,0x0000ff00 ,0x0000ffff ,0x00ff0000 ,0x00ff00ff ,0x00ffff00 ,0x00ffffff ,
@@ -558,6 +562,8 @@ static void video_drawchars(int xx, int yy, unsigned char *s, int count)SWAP32 ((video_font_draw_table32 [bits &15 ][3 ] & eorx) ^ bgx); } +if (cfb_do_flush_cache) +flush_cache ((ulong )dest0,32 ); dest0 +=VIDEO_FONT_WIDTH *VIDEO_PIXEL_SIZE ; s++; }
@@ -634,6 +640,8 @@ static void video_invertchar(int xx, int yy)for (x = firstx; x < lastx; x++) {u8 *dest = (u8 *)(video_fb_address) + x + y; *dest = ~*dest; +if (cfb_do_flush_cache) +flush_cache ((ulong )dest,4 ); } } }
@@ -709,6 +717,8 @@ static void console_clear(void)#else memsetl (CONSOLE_ROW_FIRST ,CONSOLE_SIZE , bgx);#endif +if (cfb_do_flush_cache) +flush_cache ((ulong )CONSOLE_ROW_FIRST ,CONSOLE_SIZE ); }static void console_clear_line (int line,int begin,int end)
@@ -745,6 +755,8 @@ static void console_clear_line(int line, int begin, int end)bgx /* fill color */ );#endif +if (cfb_do_flush_cache) +flush_cache ((ulong )CONSOLE_ROW_FIRST ,CONSOLE_SIZE ); }static void console_scrollup (void )
@@ -1972,6 +1984,29 @@ static void *video_logo(void) }#endif +static int cfb_fb_is_in_dram (void ) +{ +bd_t *bd = gd->bd; +ulong start, end; +int i; + +for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; ++i) { +#if defined(CONFIG_ARM ) || defined(CONFIG_AVR32 ) || defined(COFNIG_NDS32 ) || \ +defined(CONFIG_SANDBOX ) || defined(CONFIG_X86 ) + start = bd->bi_dram[i].start; + end = bd->bi_dram[i].start + bd->bi_dram[i].size -1 ; +#else + start = bd->bi_memstart; + end = bd->bi_memsize; +#endif + +if ((ulong )video_fb_address >= start && + (ulong )video_fb_address < end) +return 1 ; + } +return 0 ; +} +static int video_init (void ) {unsigned char color8;
@@ -1985,6 +2020,8 @@ static int video_init(void)video_init_hw_cursor (VIDEO_FONT_WIDTH ,VIDEO_FONT_HEIGHT );#endif + cfb_do_flush_cache =cfb_fb_is_in_dram () &&dcache_status (); +/* Init drawing pats */ switch (VIDEO_DATA_FORMAT ) {case GDF__8BIT_INDEX :
Signature · 1 line
1.7.9.5
PATCH v2 9/11 New command clear: Clear the ANSI terminal
In reply to Pali Rohár * Command can be enabled by CONFIG_CMD_CLEAR
* Added some ANSI escape codes definitions in common.h
---
Changes since original version:
- Renamed command clr to clear
- Use puts instead printf
- Move cursor to pos1,1
- Merged parts of patch "Add some ANSI escape codes definitions in common.h"
common/Makefile | 1 + common/cmd_clear.c | 42 ++++++++++++++++++++++++++++++++++++++++++ include/common.h | 7 +++++++ include/config_cmd_all.h | 1 + 4 files changed, 51 insertions(+) create mode 100644 common/cmd_clear.c
common/Makefile +1 -0
@@ -70,6 +70,7 @@ COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o +COBJS-$(CONFIG_CMD_CLEAR) += cmd_clear.o COBJS-$(CONFIG_CMD_CONSOLE) += cmd_console.o COBJS-$(CONFIG_CMD_CPLBINFO) += cmd_cplbinfo.o COBJS-$(CONFIG_DATAFLASH_MMC_SELECT) += cmd_dataflash_mmc_mux.o
common/cmd_clear.c new file +42 -0
42 lines not on this page · raw message
include/common.h +7 -0
@@ -743,6 +743,13 @@ void clear_ctrlc (void); /* clear the Control-C condition */int disable_ctrlc (int );/* 1 to disable, 0 to enable Control-C detect */ /* +* ANSI terminal +*/ + +#define ANSI_CURSOR_POSITION "\e[%d;%dH" +#define ANSI_CLEAR_CONSOLE "\e[2J" + +/* * STDIO based functions (can always be used) */ /* serial stuff */
include/config_cmd_all.h +1 -0
@@ -24,6 +24,7 @@#define CONFIG_CMD_BSP /* Board Specific functions */ #define CONFIG_CMD_CACHE /* icache, dcache */ #define CONFIG_CMD_CDP /* Cisco Discovery Protocol */ +#define CONFIG_CMD_CLEAR /* ANSI clear screen command */ #define CONFIG_CMD_CONSOLE /* coninfo */ #define CONFIG_CMD_DATE /* support for RTC, date/time...*/ #define CONFIG_CMD_DHCP /* DHCP Support */
Signature · 1 line
1.7.9.5
PATCH v2 9/11 New command clear: Clear the ANSI terminal
Dear =?UTF-8?q?Pali=20Roh=C3=A1r?=,
Quoted 12 lines · In message <[email protected]> you wrote:
* Command can be enabled by
CONFIG_CMD_CLEAR
* Added some ANSI escape codes definitions incommon.hSigned-off-by Pali Roh?r <[email protected]>Cc Marcel Mol <[email protected]>---
Changes since original version:
- Renamed command clr to clear
- Use puts instead printf
- Move cursor to pos1,1
- Merged parts of patch "Add some ANSI escape codes definitions incommon.h"
Quoted 6 lines
common/Makefile | 1 + common/cmd_clear.c | 42 ++++++++++++++++++++++++++++++++++++++++++ include/common.h | 7 +++++++ include/config_cmd_all.h | 1 + 4 files changed, 51 insertions(+) create mode 100644 common/cmd_clear.c
Adding this to the config_cmd_all settings changes a _real_lot_ of board, most of which have zero interest in this function as they don't have any graphics display at all.
Also, the ANSI control sequences should go into a separate header file, not into common.h .
Thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense. - E. W. Dijkstra
PATCH v2 10/11 New config variable CONFIG_PREMONITOR
In reply to Pali Rohár* if defined run env "premonitor" before Main Loop for Monitor Processing
---
Changes since v1:
- use run_command instead run_command2
Changes since original version:
- removed #ifdef CONFIG_PREMONITOR in main.c
common/env_common.c | 3 +++ common/main.c | 4 ++++ 2 files changed, 7 insertions(+)
common/env_common.c +3 -0
@@ -92,6 +92,9 @@ const uchar default_environment[] = {#ifdef CONFIG_PREBOOT "preboot=" CONFIG_PREBOOT "\0"#endif +#ifdef CONFIG_PREMONITOR + "premonitor=" CONFIG_PREMONITOR "\0" +#endif #ifdef CONFIG_ROOTPATH "rootpath=" CONFIG_ROOTPATH "\0"#endif
common/main.c +4 -0
@@ -397,6 +397,10 @@ void main_loop (void)#endif /* CONFIG_MENUKEY */ #endif /* CONFIG_BOOTDELAY */ + s =getenv ("premonitor" ); +if (s) +run_command (s,0 ); +/* * Main Loop for Monitor Command Processing */
Signature · 1 line
1.7.9.5
PATCH v2 10/11 New config variable CONFIG_PREMONITOR
Dear =?UTF-8?q?Pali=20Roh=C3=A1r?=,
Quoted 1 line · In message <[email protected]> you wrote:
* if defined run env "premonitor" before Main Loop for Monitor Processing
What would be the difference compared to "preboot" ?
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
There are bugs and then there are bugs. And then there are bugs.
- Karl LehenbauerPATCH v2 10/11 New config variable CONFIG_PREMONITOR
Quoted 3 lines · On Saturday 28 April 2012 22:39:51 Wolfgang Denk wrote:
Dear =?UTF-8?q?Pali=20Roh=C3=A1r?=,
In message <1335634011-9104-11-git-send-email-
Quoted 4 lines · [email protected]> you wrote:
Quoted 2 lines
* if defined run env "premonitor" before Main Loop for Monitor Processing
What would be the difference compared to "preboot" ?
I need to run some script before monitor code but after menucmd. And preboot is called before bootdelay and also before menucmd. So I added premonitor which is called before monitor, but after bootdelay and menucmd.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/10a79b53/attachment.pgp>
PATCH v2 10/11 New config variable CONFIG_PREMONITOR
Dear Pali =?ISO-8859-1?Q?Roh=E1r?=,
Quoted 5 lines · In message <1886523.MLHYlDJPrM@pali> you wrote:
I need to run some script before monitor code but after menucmd. And preboot is called before bootdelay and also before menucmd. So I added premonitor which is called before monitor, but after bootdelay and menucmd.
What do you mean "after menucmd"? If you use a menu, why not run thse actions as part of the menu selected commands?
I do not want to add a growing list of locations in common code just because single boards feel they ned to run commands here or there.
Best regards,
Wolfgang Denk
Signature · 6 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
As far as the laws of mathematics refer to reality, they are not cer-
tain, and as far as they are certain, they do not refer to reality.
-- Albert EinsteinPATCH v2 11/11 New board support: Nokia RX-51 aka N900
In reply to Pali RohárThis board definition results in a u-boot.bin which can be chainloaded from NOLO in qemu or on a real N900. It does very little hardware config because NOLO has already configured the board. Only needed is enabling internal eMMC memory via twl4030 regulator which is not enabled by NOLO.
NOLO is expecting a kernel image and will treat any image it finds in onenand as such. This u-boot is intended to be flashed to the N900 like a kernel. In order to transparently boot the original kernel, it will be appended to u-boot.bin at 0x40000. NOLO will load the entire image into memory and execute u-boot, which saves the ATAGs set by NOLO. Then the bootscripts will attempt to load uImage or boot.scr from a fat or ext2 filesystem in external SD card or internal eMMC memory. If this fails or keyboard is closed the appended kernel image will be booted using the stored ATAGs (see boot order).
There is support for hardware watchdog. It is started by NOLO so u-boot must kick watchdog to prevent reboot device (but not very often, max every 2 seconds). There is also support for framebuffer display output with ANSI espace codes and the N900 HW keyboard input. USB tty works but is disabled because it prevents the current Maemo kernel from booting.
Based on previous work by: Alistair Buxton <[email protected]>
Default boot order:
* 0. if keyboard is closed boot automatically attached kernel image
* 1. try boot from external SD card
* 2. try boot from internal eMMC memory
* 3. try boot from attached kernel image
Boot from SD or eMMC in this order:
* find boot.scr on first fat partition
* find uImage on first fat parition
* same order for 2. - 4. fat partition
* find boot.scr on first ext2 partition
* find uImage on first ext2 parition
* same order for 2. - 4. ext2 partition
Available additional commands/variables:
* run sercon - Use serial port for control
* run usbcon - Use usbtty for control
* run vgacon - Use framebuffer and HW keyboard for control (default)
* run sdboot - Boot from external SD card (see boot order)
* run emmcboot - Boot from internal eMMC memory (see boot order)
* run attachboot - Boot attached kernel image (attached to U-Boot binary)
* run scriptload - Load boot script ${mmcscriptfile}
* run scriptboot - Run loaded boot script
* run kernload - Load kernel image ${mmckernfile}
* run initrdload - Load initrd image ${mmcinitrdfile}
* run kernboot - Boot loaded kernel image
* run kerninitrdboot - Boot loaded kernel image with loaded initrd image
* run trymmcscriptboot - Try to load and boot script ${mmcscriptfile}
* run trymmckernboot - Try to load and boot kernel image ${mmckernfile}
* run trymmckerninitrdboot - Try to load and boot kernel image ${mmckernfile}
with initrd image ${mmcinitrdfile}Variables for loading files from mmc:
* mmc ${mmcnum} (0 - external, 1 - internal)
* partition number ${mmcpart} (1 - 4)
* parition type ${mmctype} (fat, ext2)
---
Changes since v1:
- Set correct configs for Memory Map
- Enable passing memory tag to kernel atags
- Use gpio input command for detecting keyboard slide
- Restore powerbus state after calling twl4030 regulator code
- Renamed command noloboot to attachboot
- Atag address must be always 0x80000100, removed code from lowlevel
- Added usb vendor, product id and product name
- Enabled command line editing
- Fixed keymap and cursor keys
Changes since original version:
- Removed Makefile targets: clean and distclean
- Rewrited bootcommand and env variables in nokia_rx51.h
- Removed useless CONFIG defines in nokia_rx51.h
- Disable L2 cache with CONFIG_SYS_L2CACHE_OFF - fixed battery draining
- Added onenand support (default disabled due to big u-boot size)
- Moved inlined asm code to new file lowlevel_init.S
- Fixed commit message
board/nokia/rx51/Makefile | 46 +++++ board/nokia/rx51/lowlevel_init.S | 71 +++++++ board/nokia/rx51/rx51.c | 380 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378 +++++++++++++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/nokia_rx51.h | 373 +++++++++++++++++++++++++++++++++++++ 6 files changed, 1249 insertions(+) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 include/configs/nokia_rx51.h
board/nokia/rx51/Makefile new file +46 -0
@@ -0,0 +1,46 @@ +# +# (C) Copyright 2000, 2001, 2002 +# Wolfgang Denk, DENX Software Engineering, wd at denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(BOARD).o + +COBJS-y := $(BOARD).o +SOBJS-y := lowlevel_init.o + +COBJS := $(sort $(COBJS-y)) +SOBJS := $(sort $(SOBJS-y)) +SRCS := $(COBJS:.o=.c) $(SOBJS:.o=.S) +OBJS := $(addprefix $(obj),$(COBJS)) $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) + $(call cmd_link_o_target, $(OBJS)) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################
board/nokia/rx51/lowlevel_init.S new file +71 -0
71 lines not on this page · raw message
board/nokia/rx51/rx51.c new file +380 -0
380 lines not on this page · raw message
board/nokia/rx51/rx51.h new file +378 -0
378 lines not on this page · raw message
boards.cfg +1 -0
@@ -214,6 +214,7 @@ devkit8000 arm armv7 devkit8000 timll mcx arm armv7 mcx htkw omap3 tricorder arm armv7 tricorder corscience omap3 twister arm armv7 twister technexion omap3 +nokia_rx51 arm armv7 rx51 nokia omap3 omap4_panda arm armv7 panda ti omap4 omap4_sdp4430 arm armv7 sdp4430 ti omap4 omap5_evm arm armv7 omap5_evm ti omap5
include/configs/nokia_rx51.h new file +373 -0
373 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Dear =?UTF-8?q?Pali=20Roh=C3=A1r?=,
Quoted 4 lines · In message <[email protected]> you wrote:
VGhpcyBib2FyZCBkZWZpbml0aW9uIHJlc3VsdHMgaW4gYSB1LWJvb3QuYmluIHdoaWNoIGNhbiBi ZSBjaGFpbmxvYWRlZApmcm9tIE5PTE8gaW4gcWVtdSBvciBvbiBhIHJlYWwgTjkwMC4gSXQgZG9l cyB2ZXJ5IGxpdHRsZSBoYXJkd2FyZSBjb25maWcKYmVjYXVzZSBOT0xPIGhhcyBhbHJlYWR5IGNv bmZpZ3VyZWQgdGhlIGJvYXJkLiBPbmx5IG5lZWRlZCBpcyBlbmFibGluZwppbnRlcm5hbCBlTU1D
...
Please stop sending base64 encoded patches! Send plain text only!
Quoted 60 lines
This board definition results in a u-boot.bin which can be chainloaded from NOLO in qemu or on a real N900. It does very little hardware config because NOLO has already configured the board. Only needed is enabling internal eMMC memory via twl4030 regulator which is not enabled by NOLO.
NOLO is expecting a kernel image and will treat any image it finds in onenand as such. This u-boot is intended to be flashed to the N900 like a kernel. In order to transparently boot the original kernel, it will be appended to u-boot.bin at
0x40000. NOLO will load the entire image into memory and execute u-boot, which saves the ATAGs set by NOLO. Then the bootscripts will attempt to load uImage or boot.scr from a fat or ext2 filesystem in external SD card or internal eMMC memory. If this fails or keyboard is closed the appended kernel image will be booted using the stored ATAGs (see boot order).There is support for hardware watchdog. It is started by NOLO so u-boot must kick watchdog to prevent reboot device (but not very often, max every 2 seconds). There is also support for framebuffer display output with ANSI espace codes and the N900 HW keyboard input. USB tty works but is disabled because it prevents the current Maemo kernel from booting.
Based on previous work by: Alistair Buxton <[email protected]>
Default boot order:
* 0. if keyboard is closed boot automatically attached kernel image
* 1. try boot from external SD card
* 2. try boot from internal eMMC memory
* 3. try boot from attached kernel imageBoot from SD or eMMC in this order:
* find boot.scr on first fat partition
* find uImage on first fat parition
* same order for 2. - 4. fat partition* find boot.scr on first ext2 partition
* find uImage on first ext2 parition
* same order for 2. - 4. ext2 partitionAvailable additional commands/variables:
* run sercon - Use serial port for control
* run usbcon - Use usbtty for control
* run vgacon - Use framebuffer and HW keyboard for control (default)* run sdboot - Boot from external SD card (see boot order)
* run emmcboot - Boot from internal eMMC memory (see boot order)
* run attachboot - Boot attached kernel image (attached to U-Boot binary)* run scriptload - Load boot script ${mmcscriptfile}
* run scriptboot - Run loaded boot script
* run kernload - Load kernel image ${mmckernfile}
* run initrdload - Load initrd image ${mmcinitrdfile}
* run kernboot - Boot loaded kernel image
* run kerninitrdboot - Boot loaded kernel image with loaded initrd image* run trymmcscriptboot - Try to load and boot script ${mmcscriptfile}
* run trymmckernboot - Try to load and boot kernel image ${mmckernfile}
* run trymmckerninitrdboot - Try to load and boot kernel image ${mmckernfile}
Quoted 7 lines
with initrd image ${mmcinitrdfile}Variables for loading files from mmc:
* mmc ${mmcnum} (0 - external, 1 - internal)
* partition number ${mmcpart} (1 - 4)
* parition type ${mmctype} (fat, ext2)
While it is a good idea to provide documentation, this is the wrong place for it. Here in the commit message is about the last place where most of the users will search for it. Please provide a README for this board - either in the board directory, or in doc/
BUt also keep in mind that this is a maintenance problem - who will make sure that this documentation gets updated when someone changes to code?
Quoted 4 lines
board/nokia/rx51/Makefile | 46 +++++ board/nokia/rx51/lowlevel_init.S | 71 +++++++ board/nokia/rx51/rx51.c | 380 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378 +++++++++++++++++++++++++++++++++++++
Quoted 8 lines
boards.cfg | 1 + include/configs/nokia_rx51.h | 373 +++++++++++++++++++++++++++++++++++++ 6 files changed, 1249 insertions(+) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 include/configs/nokia_rx51.h
Entry in MAINTAINERS missing.
include/configs/nokia_rx51.h line 83
Quoted 7 lines
include/configs/nokia_rx51.h new file +7
-0+/* +* Size of malloc() pool +*/ +#define CONFIG_ENV_SIZE (128 << 10)/* 128 KiB Sector */ +#define CONFIG_UBI_SIZE (512 << 10)/* 512 KiB Sector */ +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + CONFIG_UBI_SIZE + \ + (128 << 10))
Comment appears to be misplaced.
include/configs/nokia_rx51.h line 126
Quoted 4 lines
include/configs/nokia_rx51.h new file +4
-0+/* Maemo kernel 2.6.28 will crash if u-boot enable usb tty */ +/* +#define CONFIG_USB_TTY +*/
Please remove dead code.
include/configs/nokia_rx51.h line 137
Quoted 3 lines
include/configs/nokia_rx51.h new file +3
-0+/* OneNand support is disabled, because U-Boot image is too big */ +/* Uncomment next line to enable it */ +/* #define ONENAND_SUPPORT */
Incorrect multiline comment / please remove dead code.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de A year spent in artificial intelligence is enough to make one believe in God.
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Quoted 3 lines · On Saturday 28 April 2012 23:32:25 Wolfgang Denk wrote:
Please stop sending base64 encoded patches! Send plain text
only!
I used git format-patch and git send-email. Is there easy way how to tell this to git?
Quoted 6 lines
While it is a good idea to provide documentation, this is the wrong place for it. Here in the commit message is about the last place where most of the users will search for it. Please provide a README for this board - either in the board directory, or in doc/
Is doc/README.nokia_rx51 correct place?
Quoted 21 lines
BUt also keep in mind that this is a maintenance problem - who will make sure that this documentation gets updated when someone changes to code?
Quoted 7 lines
board/nokia/rx51/Makefile | 46 +++++ board/nokia/rx51/lowlevel_init.S | 71 +++++++ board/nokia/rx51/rx51.c | 380 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378 +++++++++++++++++++++++++++++++++++++ boards.cfg | 1 +Quoted 8 lines
include/configs/nokia_rx51.h | 373 +++++++++++++++++++++++++++++++++++++ 6 files changed, 1249 insertions(+) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 include/configs/nokia_rx51.h
Quoted 1 line
Entry in
MAINTAINERSmissing.
Ok, I will add myself to MAINTAINERS.
Quoted 5 lines
include/configs/nokia_rx51.h
Quoted 5 lines
include/configs/nokia_rx51.h new file +4
-0+/* +* Size of malloc() pool +*/ +#define CONFIG_ENV_SIZE (128 << 10)/* 128 KiB
Sector */
Quoted 1 line
Quoted 1 line
+#define
CONFIG_UBI_SIZE(512 << 10) /* 512 KiB
Sector */
Quoted 4 lines
Quoted 2 lines
+#define
CONFIG_SYS_MALLOC_LEN(CONFIG_ENV_SIZE+CONFIG_UBI_SIZE+ \ + (128 << 10))Comment appears to be misplaced.
Ok, comment will be removed.
Quoted 8 lines
include/configs/nokia_rx51.h line 126
Quoted 6 lines
+/* Maemo kernel 2.6.28 will crash if u-boot enable usb tty */
include/configs/nokia_rx51.h new file +3
-0+/* +#define CONFIG_USB_TTY +*/ Please remove dead code.
usb tty is usefull for debuging u-boot. because this device does not have easy access to serial console, usb tty is only option how to connect u-boot terminal to pc. but default (and still only one working on this device) kernel crash when u-boot enable usb tty. I want to have usb tty option in u-boot and belive that one day will be some upstream linux kernel with fixed usb drivers working on nokia n900.
Quoted 7 lines
Quoted 4 lines
+/* OneNand support is disabled, because U-Boot image is too big */ +/* Uncomment next line to enable it */
+/* #defineONENAND_SUPPORT*/Incorrect multiline comment / please remove dead code.
How to write correct comment?
Also onenand code working fine, but when is enabled u-boot binary is too big and cannot be flashed into this device. But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.
Is there way how to decrease u-boot binary size?
Quoted 4 lines
Best regards,
Wolfgang Denk
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120429/16f3ebf8/attachment.pgp>
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Dear Pali Roh?r,
Quoted 75 lines · On Saturday 28 April 2012 23:32:25 Wolfgang Denk wrote:
Quoted 2 lines
Please stop sending base64 encoded patches! Send plain text
only!I used git format-patch and git send-email. Is there easy way how to tell this to git?
Quoted 5 lines
While it is a good idea to provide documentation, this is the wrong place for it. Here in the commit message is about the last place where most of the users will search for it. Please provide a README for this board - either in the board directory, or in doc/
Is doc/README.nokia_rx51 correct place?
Quoted 22 lines
BUt also keep in mind that this is a maintenance problem - who will make sure that this documentation gets updated when someone changes to code?
Quoted 9 lines
board/nokia/rx51/Makefile | 46 +++++ board/nokia/rx51/lowlevel_init.S | 71 +++++++ board/nokia/rx51/rx51.c | 380 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 378+++++++++++++++++++++++++++++++++++++ boards.cfg
| 1 +Quoted 8 lines
include/configs/nokia_rx51.h | 373 +++++++++++++++++++++++++++++++++++++ 6 files changed, 1249 insertions(+) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 include/configs/nokia_rx51.hQuoted 1 line
Entry in
MAINTAINERSmissing.Ok, I will add myself to
MAINTAINERS.Quoted 4 lines
include/configs/nokia_rx51.h
Quoted 4 lines
include/configs/nokia_rx51.h new file +4
-0+/* +* Size of malloc() pool +*/ +#define CONFIG_ENV_SIZE (128 << 10)/* 128 KiB Sector */
Quoted 1 line
Quoted 1 line
+#define
CONFIG_UBI_SIZE(512 << 10) /* 512 KiBSector */
Quoted 4 lines
Quoted 2 lines
+#define
CONFIG_SYS_MALLOC_LEN(CONFIG_ENV_SIZE+CONFIG_UBI_SIZE+ \ + (128 << 10))Comment appears to be misplaced.
Ok, comment will be removed.
Quoted 7 lines
include/configs/nokia_rx51.h line 126
Quoted 5 lines
+/* Maemo kernel 2.6.28 will crash if u-boot enable usb tty */
include/configs/nokia_rx51.h new file +3
-0+/* +#define CONFIG_USB_TTY +*/ Please remove dead code.
usb tty is usefull for debuging u-boot. because this device does not have easy access to serial console, usb tty is only option how to connect u-boot terminal to pc. but default (and still only one working on this device) kernel crash when u-boot enable usb tty. I want to have usb tty option in u-boot and belive that one day will be some upstream linux kernel with fixed usb drivers working on nokia n900.
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
+/* OneNand support is disabled, because U-Boot image is too big */ +/* Uncomment next line to enable it */
+/* #defineONENAND_SUPPORT*/Incorrect multiline comment / please remove dead code.
How to write correct comment?
/*
* BLURB blurb BLurB ...
* Blurb, hardware on fire
* foo bar it doesn't work.
*/
Quoted 8 lines
Also onenand code working fine, but when is enabled u-boot binary is too big and cannot be flashed into this device. But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.
Is there way how to decrease u-boot binary size?
Try compiling it in thumb mode? I think Tom Rini added support for that and tested it on omap.
Quoted 4 lines
Quoted 4 lines
Best regards,
Wolfgang Denk
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Quoted 1 line · Marek Vasut
Dear Pali Roh?r,
[snip]
Quoted 10 lines
Quoted 7 lines
Also onenand code working fine, but when is enabled u-boot binary is too big and cannot be flashed into this device. But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.
Is there way how to decrease u-boot binary size?
Try compiling it in thumb mode? I think Tom Rini added support for that and tested it on omap.
Aneesh V did the real work for thumb mode for omap4/5, I just picked it up and addressed some comments. It's currently in u-boot-arm/master.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120430/43d1d75c/attachment.pgp>
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Dear Tom Rini,
Quoted 11 lines · Marek Vasut
Quoted 1 line
Dear Pali Roh?r,
[snip]
Quoted 6 lines
Quoted 6 lines
Also onenand code working fine, but when is enabled u-boot binary is too big and cannot be flashed into this device. But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
Is there way how to decrease u-boot binary size?
Try compiling it in thumb mode? I think Tom Rini added support for that and tested it on omap.
Aneesh V did the real work for thumb mode for omap4/5, I just picked it up and addressed some comments. It's currently in u-boot-arm/master.
Since all omap3+ are cortexA, they have thumb2 support, so it should work, correct?
Best regards,
Marek Vasut
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Quoted 15 lines · Marek Vasut
Dear Tom Rini,
Quoted 13 lines · Marek Vasut
Quoted 1 line
Dear Pali Roh?r,
[snip]
Quoted 8 lines
Quoted 7 lines
Also onenand code working fine, but when is enabled u-boot binary is too big and cannot be flashed into this device. But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.
Is there way how to decrease u-boot binary size?
Quoted 8 lines
Quoted 5 lines
Quoted 2 lines
Try compiling it in thumb mode? I think Tom Rini added support for that and tested it on omap.
Aneesh V did the real work for thumb mode for omap4/5, I just picked it up and addressed some comments. It's currently in u-boot-arm/master.
Since all omap3+ are cortexA, they have thumb2 support, so it should work, correct?
Correct. It is opt-in per-board.
Signature · 1 line
Tom
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
In reply to Tom RiniQuoted 11 lines · On Monday 30 April 2012 16:37:55 Tom Rini wrote:
Quoted 1 line · Marek Vasut
Dear Pali Roh?r,
[snip]
Quoted 6 lines
Quoted 6 lines
Also onenand code working fine, but when is enabled u-boot binary is too big and cannot be flashed into this device. But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
Is there way how to decrease u-boot binary size?
Try compiling it in thumb mode? I think Tom Rini added support for that and tested it on omap.
Aneesh V did the real work for thumb mode for omap4/5, I just picked it up and addressed some comments. It's currently in u-boot-arm/master.
But N900 is omap3. Has u-boot thumb support for omap3 boards too?
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120601/8a97b6c2/attachment.pgp>
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Dear Pali Roh?r,
Quoted 14 lines · On Monday 30 April 2012 16:37:55 Tom Rini wrote:
Quoted 13 lines · Marek Vasut
Quoted 1 line
Dear Pali Roh?r,
[snip]
Quoted 8 lines
Quoted 7 lines
Also onenand code working fine, but when is enabled u-boot binary is too big and cannot be flashed into this device. But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.
Is there way how to decrease u-boot binary size?
Quoted 8 lines
Quoted 6 lines
Quoted 2 lines
Try compiling it in thumb mode? I think Tom Rini added support for that and tested it on omap.
Aneesh V did the real work for thumb mode for omap4/5, I just picked it up and addressed some comments. It's currently in u-boot-arm/master.
But N900 is omap3. Has u-boot thumb support for omap3 boards too?
OMAP3 has the same (CortexA8) core, it will work on it too. Dunno if it's enabled for OMAP3 now, but it shouldn't be hard to do so.
Best regards,
Marek Vasut
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Quoted 4 lines · On Friday 01 June 2012 20:48:15 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 2 lines · On Monday 30 April 2012 16:37:55 Tom Rini wrote:
Quoted 1 line
On Sun, Apr 29, 2012 at 11:18:48AM +0200, Marek Vasut
Quoted 23 lines · wrote:
Quoted 23 lines
Quoted 22 lines
Quoted 1 line
Dear Pali Roh?r,
[snip]
Quoted 8 lines
Quoted 8 lines
Also onenand code working fine, but when is enabled u-boot
binary is too big and cannot be flashed into this device.
But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.Quoted 4 lines
Quoted 1 line
Is there way how to decrease u-boot binary size?
Try compiling it in thumb mode? I think Tom Rini added support for that and tested it on omap.
Aneesh V did the real work for thumb mode for omap4/5, I just
picked it up and addressed some comments. It's currently in
u-boot-arm/master.
Quoted 8 lines
Quoted 2 lines
But N900 is omap3. Has u-boot thumb support for omap3 boards too?
OMAP3 has the same (CortexA8) core, it will work on it too. Dunno if it's enabled for OMAP3 now, but it shouldn't be hard to do so.
Best regards,
Marek Vasut
There is one HW problem with thumb on N900: thumb mode is buggy and thumb compiled applications crashing. But finaly last month we found solution for this problem. Errata 430973 workaround, calling uboot function omap3_emu_romcode_call for setting IBE bit in AUX CR. So now Ubuntu (which is thumb compiled) booting and working.
So for using thumb mode on N900 we first need to call first that function. It is possible to build u-boot in some mixed mode (some parts in arm and some in thumb)? Now omap3_emu_romcode_call is called from misc_init_r rx51 board code.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120601/ad66258e/attachment.pgp>
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
Dear Pali Roh?r,
Quoted 37 lines · On Friday 01 June 2012 20:48:15 Marek Vasut wrote:
Quoted 4 lines
Dear Pali Roh?r,
Quoted 2 lines · On Monday 30 April 2012 16:37:55 Tom Rini wrote:
Quoted 1 line
On Sun, Apr 29, 2012 at 11:18:48AM +0200, Marek Vasut
Quoted 30 lines · wrote:
Quoted 17 lines
Quoted 17 lines
Quoted 1 line
Dear Pali Roh?r,
[snip]
Quoted 12 lines
Quoted 9 lines
Also onenand code working fine, but when is enabled u-boot
binary is too big and cannot be flashed into this device.
But for testing in qemu or booting u-boot with enabled onenand support stored in mmc via flashed u-boot (with disabled onenand support) working too.Is there way how to decrease u-boot binary size?
Try compiling it in thumb mode? I think Tom Rini added support for that and tested it on omap.
Quoted 8 lines
Quoted 5 lines
Aneesh V did the real work for thumb mode for omap4/5, I just
picked it up and addressed some comments. It's currently in
u-boot-arm/master.But N900 is omap3. Has u-boot thumb support for omap3 boards too?
OMAP3 has the same (CortexA8) core, it will work on it too. Dunno if it's enabled for OMAP3 now, but it shouldn't be hard to do so.
Quoted 5 lines
Quoted 2 lines
Best regards,
Marek VasutThere is one HW problem with thumb on N900: thumb mode is buggy and thumb compiled applications crashing.
What? Is it the CPU being buggy?
Quoted 2 lines
But finaly last month
we found solution for this problem. Errata 430973 workaround,
Errata of what?
Quoted 2 lines
calling uboot function
omap3_emu_romcode_callfor setting IBE bit in AUX CR.
What exactly does it do?
Quoted 2 lines
So now Ubuntu (which is thumb compiled) booting and working.
Urh.
Quoted 3 lines
So for using thumb mode on N900 we first need to call first that function. It is possible to build u-boot in some mixed mode (some parts in arm and some in thumb)?
That's what you usually do -- you always start in ARM mode, then you switch to thumb mode. It's possible to mix thumb and arm of course, that's what normally happens.
Quoted 2 lines
Now
omap3_emu_romcode_callis
called frommisc_init_rrx51 board code.
So this problem isn't present on all omap3s ?
Best regards,
Marek Vasut
PATCH v2 11/11 New board support: Nokia RX-51 aka N900
In reply to Pali RohárDear Pali =?ISO-8859-1?Q?Roh=E1r?=,
Quoted 6 lines · In message <2499233.2JzaJFJkCD@pali> you wrote:
Quoted 3 lines
Please stop sending base64 encoded patches! Send plain text
only!I used git format-patch and git send-email. Is there easy way how to tell this to git?
Yes: do not use characters that cause problems.
Quoted 7 lines
Quoted 5 lines
While it is a good idea to provide documentation, this is the wrong place for it. Here in the commit message is about the last place where most of the users will search for it. Please provide a README for this board - either in the board directory, or in doc/
Is doc/README.nokia_rx51 correct place?
It ist what many other boards used, so it would be fine.
Personally, I don;t like this ever growing list of board specific documentation in doc; my personal preference would be something like board/nokia/rx51/README instead... Feel free to chose.
Quoted 3 lines
Quoted 1 line
Comment appears to be misplaced.
Ok, comment will be removed.
Rather fix it.
Quoted 8 lines
Quoted 7 lines
include/configs/nokia_rx51.h line 126
Quoted 5 lines
+/* Maemo kernel 2.6.28 will crash if u-boot enable usb tty */
include/configs/nokia_rx51.h new file +3
-0+/* +#define CONFIG_USB_TTY +*/ Please remove dead code.
Quoted 7 lines
usb tty is usefull for debuging u-boot. because this device does not have easy access to serial console, usb tty is only option how to connect u-boot terminal to pc. but default (and still only one working on this device) kernel crash when u-boot enable usb tty. I want to have usb tty option in u-boot and belive that one day will be some upstream linux kernel with fixed usb drivers working on nokia n900.
As is, it is dead code and should be removed (not to mention that this is another case of incorrect multi-line comment style).
Please feel free to add such a description to the documentation.
Quoted 3 lines
Quoted 1 line
Incorrect multiline comment / please remove dead code.
How to write correct comment?
Quoted 1 line
Is there way how to decrease u-boot binary size?
Omit features ...
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de To the systems programmer, users and applications serve only to provide a test load.
v3 cover Nokia RX-51 support
In reply to Pali RohárThis patch series add support for new board Nokia RX-51 (aka N900). This patch series supersedes version v2.
Patch details:
Already commited (dropped) patches:
cfb_console: Fix function console_back
cfb_console: Add function console_clear and console_clear_line
cfb_console: Add functions for moving with cursor
cfb_console: Ignore bell character
Dropped patches:
arm: Optionally use existing atags in bootm.c
New command clear: Clear the ANSI terminal
New config variable CONFIG_PREMONITOR
New patches:
arm bootm: Allow to pass board specified atags
arm bootm: Do not append zero ATAG_MEM
Pali Roh?r (5):
arm bootm: Allow to pass board specified atags
arm bootm: Do not append zero ATAG_MEM
Add power bus message definitions in twl4030.h
cfb_console: Add support for some ANSI terminal escape codes New board support: Nokia RX-51 aka N900
MAINTAINERS | 4 + README | 3 + arch/arm/include/asm/setup.h | 5 + arch/arm/lib/bootm.c | 8 + board/nokia/rx51/Makefile | 46 +++ board/nokia/rx51/lowlevel_init.S | 209 ++++++++++++ board/nokia/rx51/rx51.c | 673 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 389 ++++++++++++++++++++++ board/nokia/rx51/tag_omap.h | 311 ++++++++++++++++++ boards.cfg | 1 + doc/README.nokia_rx51 | 104 ++++++ drivers/video/cfb_console.c | 313 +++++++++++++++++- include/configs/nokia_rx51.h | 452 +++++++++++++++++++++++++ include/twl4030.h | 98 ++++++ 14 files changed, 2607 insertions(+), 9 deletions(-) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 board/nokia/rx51/tag_omap.h create mode 100644 doc/README.nokia_rx51 create mode 100644 include/configs/nokia_rx51.h
Signature · 1 line
1.7.9.5
PATCH v3 1/5 arm bootm: Allow to pass board specified atags
--- arch/arm/include/asm/setup.h | 5 +++++ arch/arm/lib/bootm.c | 5 +++++ 2 files changed, 10 insertions(+)
arch/arm/include/asm/setup.h +5 -0
@@ -267,3 +267,8 @@ struct meminfo {extern struct meminfo meminfo;#endif + +/* +* Board specified tags +*/ +void setup_board_tags (struct tag **in_params);
arch/arm/lib/bootm.c +5 -0
@@ -266,6 +266,10 @@ static int create_fdt(bootm_headers_t *images) }#endif +void __setup_board_tags (void ) {} +void setup_board_tags (struct tag **in_params) + __attribute__((weak,alias ("__setup_board_tags" ))); +/* Subcommand: PREP */ static void boot_prep_linux (bootm_headers_t *images) {
@@ -307,6 +311,7 @@ static void boot_prep_linux(bootm_headers_t *images)setup_initrd_tag (gd->bd, images->rd_start, images->rd_end);#endif +setup_board_tags (¶ms);setup_end_tag (gd->bd);#else /* all tags */ printf ("FDT and ATAGS support not compiled in - hanging\n" );
Signature · 1 line
1.7.9.5
PATCH v3 1/5 arm bootm: Allow to pass board specified atags
Dear Pali Roh?r,
... missing commit message ...
Quoted 5 lines
Signed-off-by Pali Roh?r <[email protected]>--- arch/arm/include/asm/setup.h | 5 +++++ arch/arm/lib/bootm.c | 5 +++++ 2 files changed, 10 insertions(+)
... missing changelog ...
arch/arm/include/asm/setup.h struct meminfo { · line 273
Quoted 12 lines
arch/arm/include/asm/setup.h +4
-0@@ -267,3 +267,8 @@ struct meminfo {extern struct meminfo meminfo;#endif + +/* +* Board specified tags +*/
What's this ?
arch/arm/lib/bootm.c static int create_fdt(bootm_headers_t *images) · line 271
Quoted 12 lines
arch/arm/include/asm/setup.h +1
-0+void setup_board_tags (struct tag **in_params);arch/arm/lib/bootm.c +3
-0@@ -266,6 +266,10 @@ static int create_fdt(bootm_headers_t *images) }#endif +void __setup_board_tags (void ) {} +void setup_board_tags (struct tag **in_params) + __attribute__((weak,alias ("__setup_board_tags" )));
__weak void setup...(...) {} works just fine. Include linux/compiler.h
arch/arm/lib/bootm.c static void boot_prep_linux(bootm_headers_t *images) · line 317
Quoted 11 lines
arch/arm/lib/bootm.c +1
-0/* Subcommand: PREP */ static void boot_prep_linux (bootm_headers_t *images) {@@ -307,6 +311,7 @@ static void boot_prep_linux(bootm_headers_t *images)setup_initrd_tag (gd->bd, images->rd_start, images->rd_end);#endif +setup_board_tags (¶ms);setup_end_tag (gd->bd);#else /* all tags */ printf ("FDT and ATAGS support not compiled in - hanging\n" );
Best regards,
Marek Vasut
PATCH v3 1/5 arm bootm: Allow to pass board specified atags
Quoted 4 lines · On Sunday 14 October 2012 01:43:25 Marek Vasut wrote:
Dear Pali Roh?r,
... missing commit message ...
Is not subject enought?
Quoted 9 lines
Quoted 6 lines
Signed-off-by Pali Roh?r <[email protected]>---
arch/arm/include/asm/setup.h | 5 +++++ arch/arm/lib/bootm.c | 5 +++++ 2 files changed, 10 insertions(+)... missing changelog ...
There is no changelog. This patch is new in v3. I wrote it in mail [PATCH v3 0/5].
Quoted 8 lines
Quoted 8 lines
(quoted diff) +0
-0
b/arch/arm/include/asm/setup.hindex 89df4dc..78a7fac 100644arch/arm/include/asm/setup.h +0
-0@@ -267,3 +267,8 @@ struct meminfo {extern struct meminfo meminfo;
Quoted 9 lines
arch/arm/include/asm/setup.h struct meminfo { · line 273
Quoted 6 lines
arch/arm/include/asm/setup.h +4
-0#endif + +/* +* Board specified tags +*/ What's this ?
Function which allow to pass board specified (non standard) atags. It is what you suggested:
http://www.mail-archive.com/u-boot at lists.denx.de/msg82803.html
Quoted 10 lines
Quoted 10 lines
arch/arm/include/asm/setup.h +1
-0+void setup_board_tags (struct tag **in_params);arch/arm/lib/bootm.c +0
-0@@ -266,6 +266,10 @@ static int create_fdt(bootm_headers_t *images)> } #endif
Quoted 6 lines
arch/arm/lib/bootm.c static int create_fdt(bootm_headers_t *images) · line 271
Quoted 3 lines
arch/arm/lib/bootm.c +3
-0+void __setup_board_tags (void ) {} +void setup_board_tags (struct tag **in_params) + __attribute__((weak,alias ("__setup_board_tags" )));
__weakvoid setup...(...) {} works just fine. Includelinux/compiler.h
I did not know about __weak. I will change it.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121014/af760316/attachment.pgp>
PATCH v3 1/5 arm bootm: Allow to pass board specified atags
Dear Pali Roh?r,
Quoted 6 lines · On Sunday 14 October 2012 01:43:25 Marek Vasut wrote:
Quoted 3 lines
Dear Pali Roh?r,
... missing commit message ...
Is not subject enought?
Sorry, but no.
Quoted 11 lines
Quoted 8 lines
Quoted 6 lines
Signed-off-by Pali Roh?r <[email protected]>---
arch/arm/include/asm/setup.h | 5 +++++ arch/arm/lib/bootm.c | 5 +++++ 2 files changed, 10 insertions(+)... missing changelog ...
There is no changelog. This patch is new in v3. I wrote it in mail [PATCH v3 0/5].
Good
Quoted 17 lines
Quoted 8 lines
Quoted 8 lines
(quoted diff) +0
-0
b/arch/arm/include/asm/setup.hindex 89df4dc..78a7fac 100644arch/arm/include/asm/setup.h +0
-0@@ -267,3 +267,8 @@ struct meminfo {extern struct meminfo meminfo;Quoted 8 lines
arch/arm/include/asm/setup.h struct meminfo { · line 273
Quoted 6 lines
arch/arm/include/asm/setup.h +4
-0#endif + +/* +* Board specified tags +*/ What's this ?
Quoted 3 lines
Function which allow to pass board specified (non standard) atags.It is what you suggested:
http://www.mail-archive.com/u-boot at lists.denx.de/msg82803.html
Oh, there's one more line below. OK.
Quoted 11 lines
Quoted 11 lines
Quoted 11 lines
arch/arm/include/asm/setup.h +1
-0+void setup_board_tags (struct tag **in_params);arch/arm/lib/bootm.c +0
-0@@ -266,6 +266,10 @@ static int create_fdt(bootm_headers_t *images)> } #endif
Quoted 8 lines
Quoted 6 lines
arch/arm/lib/bootm.c static int create_fdt(bootm_headers_t *images) · line 271
Quoted 3 lines
arch/arm/lib/bootm.c +3
-0+void __setup_board_tags (void ) {} +void setup_board_tags (struct tag **in_params) + __attribute__((weak,alias ("__setup_board_tags" )));
__weakvoid setup...(...) {} works just fine. Includelinux/compiler.hI did not know about
__weak. I will change it.
Best regards,
Marek Vasut
PATCH v3 1/5 arm bootm: Allow to pass board specified atags
Quoted 11 lines · On Sunday 14 October 2012 02:18:02 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 6 lines · On Sunday 14 October 2012 01:43:25 Marek Vasut wrote:
Quoted 3 lines
Dear Pali Roh?r,
... missing commit message ...
Is not subject enought?
Sorry, but no.
Commit message: With this patch is possible to pass board specified atags. Board can implement function setup_board_tags which could append or change atags before booting kernel.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121014/57726789/attachment.pgp>
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
In reply to Pali RohárIf dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in ATAG_MEM.
--- arch/arm/lib/bootm.c | 3 +++ 1 file changed, 3 insertions(+)
arch/arm/lib/bootm.c +3 -0
@@ -132,6 +132,9 @@ static void setup_memory_tags(bd_t *bd)int i;for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ; + params->hdr.tag =ATAG_MEM ; params->hdr.size =tag_size (tag_mem32);
Signature · 1 line
1.7.9.5
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
Dear Pali Roh?r,
Quoted 13 lines
If dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in
ATAG_MEM.Signed-off-by Pali Roh?r <[email protected]>--- arch/arm/lib/bootm.c | 3 +++ 1 file changed, 3 insertions(+)arch/arm/lib/bootm.c +0
-0
arch/arm/lib/bootm.c static void setup_memory_tags(bd_t *bd) · line 136
Quoted 5 lines
arch/arm/lib/bootm.c +2
-0@@ -132,6 +132,9 @@ static void setup_memory_tags(bd_t *bd)int i;for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ;
This doesn't look right at all, your board is misconfigured if bd->bi_dram[i] ==
0. Did you misconfigure CONFIG_NR_DRAM_BANKS ?
arch/arm/lib/bootm.c static void setup_memory_tags(bd_t *bd) · line 139
Quoted 2 lines
arch/arm/lib/bootm.c +0
-0params->hdr.tag =ATAG_MEM ; params->hdr.size =tag_size (tag_mem32);
Best regards,
Marek Vasut
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
Quoted 9 lines · On Sunday 14 October 2012 01:45:06 Marek Vasut wrote:
arch/arm/lib/bootm.c static void setup_memory_tags(bd_t *bd) · line 136
Quoted 5 lines
arch/arm/lib/bootm.c +2
-0for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ;This doesn't look right at all, your board is misconfigured if bd->bi_dram[i] == 0. Did you misconfigure
CONFIG_NR_DRAM_BANKS?
On some N900 devices there are two banks and on some only one. If there is only one it has size 256 MB and if there are two both has 128 MB. CONFIG_NR_DRAM_BANKS must be specified at compile time, but for N900 I need runtime detection.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121014/fbaaba8e/attachment.pgp>
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
Dear Pali Roh?r,
Quoted 10 lines · On Sunday 14 October 2012 01:45:06 Marek Vasut wrote:
Quoted 8 lines
arch/arm/lib/bootm.c static void setup_memory_tags(bd_t *bd) · line 136
Quoted 4 lines
arch/arm/lib/bootm.c +2
-0for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ;This doesn't look right at all, your board is misconfigured if bd->bi_dram[i] == 0. Did you misconfigure
CONFIG_NR_DRAM_BANKS?
Quoted 4 lines
On some N900 devices there are two banks and on some only one. If there is only one it has size 256 MB and if there are two both has 128 MB.
CONFIG_NR_DRAM_BANKSmust be specified at compile time, but for N900 I need runtime detection.
How can that be? Are these two banks contiguous?
Best regards,
Marek Vasut
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
Quoted 14 lines · On Sunday 14 October 2012 02:17:01 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 12 lines · On Sunday 14 October 2012 01:45:06 Marek Vasut wrote:
Quoted 10 lines
arch/arm/lib/bootm.c static void setup_memory_tags(bd_t *bd) · line 136
Quoted 4 lines
arch/arm/lib/bootm.c +2
-0for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ;This doesn't look right at all, your board is misconfigured if
bd->bi_dram[i] == 0. Did you misconfigureCONFIG_NR_DRAM_BANKS
?
Quoted 8 lines
Quoted 5 lines
On some N900 devices there are two banks and on some only one. If there is only one it has size 256 MB and if there are two both has 128 MB.
CONFIG_NR_DRAM_BANKSmust be specified at compile time, but for N900 I need runtime detection.How can that be? Are these two banks contiguous?
Yes.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121014/4eb10436/attachment.pgp>
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
Dear Pali Roh?r,
Quoted 21 lines · On Sunday 14 October 2012 02:17:01 Marek Vasut wrote:
Quoted 20 lines
Dear Pali Roh?r,
Quoted 17 lines · On Sunday 14 October 2012 01:45:06 Marek Vasut wrote:
Quoted 10 lines
arch/arm/lib/bootm.c static void setup_memory_tags(bd_t *bd) · line 136
Quoted 4 lines
arch/arm/lib/bootm.c +2
-0for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ;This doesn't look right at all, your board is misconfigured if
bd->bi_dram[i] == 0. Did you misconfigureCONFIG_NR_DRAM_BANKS
?On some N900 devices there are two banks and on some only one. If there is only one it has size 256 MB and if there are two both has 128 MB.
CONFIG_NR_DRAM_BANKSmust be specified at compile time, but for N900 I need runtime detection.
Quoted 3 lines
Quoted 1 line
How can that be? Are these two banks contiguous?
Yes.
And how does the memory map differ in case of device with one 256MB block then ?
Best regards,
Marek Vasut
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
Quoted 24 lines · On Sunday 14 October 2012 02:27:05 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 22 lines · On Sunday 14 October 2012 02:17:01 Marek Vasut wrote:
Quoted 21 lines
Dear Pali Roh?r,
Quoted 18 lines · On Sunday 14 October 2012 01:45:06 Marek Vasut wrote:
Quoted 11 lines
arch/arm/lib/bootm.c static void setup_memory_tags(bd_t *bd) · line 136
Quoted 4 lines
arch/arm/lib/bootm.c +2
-0for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ;This doesn't look right at all, your board is
misconfigured
if
bd->bi_dram[i] == 0. Did you misconfigureCONFIG_NR_DRAM_BANKS
?On some N900 devices there are two banks and on some only one. If there is only one it has size 256 MB and if there are two both has 128 MB.
CONFIG_NR_DRAM_BANKSmust be specified at compile time, but for N900 I need runtime detection.
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
How can that be? Are these two banks contiguous?
Yes.
And how does the memory map differ in case of device with one 256MB block then ?
Memory map is same, from 0x80000000 to 0x90000000.
For two bank devices uboot reports:
size=08000000 start=80000000
size=08000000 start=88000000
And for one:
size=10000000 start=80000000
size=00000000 start=90000000
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121014/d65419a7/attachment.pgp>
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
Dear Pali Roh?r,
Quoted 34 lines · On Sunday 14 October 2012 02:27:05 Marek Vasut wrote:
Quoted 24 lines
Dear Pali Roh?r,
Quoted 22 lines · On Sunday 14 October 2012 02:17:01 Marek Vasut wrote:
Quoted 21 lines
Dear Pali Roh?r,
Quoted 18 lines · On Sunday 14 October 2012 01:45:06 Marek Vasut wrote:
Quoted 11 lines
Review
Quoted 4 lines
(quoted diff) +2
-0for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { + if (bd->bi_dram[i].size == 0) + continue;This doesn't look right at all, your board is
misconfigured
if
bd->bi_dram[i] == 0. Did you misconfigureCONFIG_NR_DRAM_BANKS
?On some N900 devices there are two banks and on some only one. If there is only one it has size 256 MB and if there are two both has 128 MB.
CONFIG_NR_DRAM_BANKSmust be specified at compile time, but for N900 I need runtime detection.Quoted 6 lines
Quoted 3 lines
Quoted 1 line
How can that be? Are these two banks contiguous?
Yes.
And how does the memory map differ in case of device with one 256MB block then ?
Memory map is same, from
0x80000000to0x90000000.
Quoted 7 lines
For two bank devices uboot reports:
size=08000000 start=80000000
size=08000000 start=88000000And for one:
size=10000000 start=80000000
size=00000000 start=90000000
Tom, can this not be handled as a single area? How does the omap memory layout look?
Best regards,
Marek Vasut
PATCH v3 2/5 arm bootm: Do not append zero ATAG_MEM
Quoted 40 lines · Marek Vasut
Dear Pali Roh?r,
Quoted 38 lines · On Sunday 14 October 2012 02:27:05 Marek Vasut wrote:
Quoted 24 lines
Dear Pali Roh?r,
Quoted 22 lines · On Sunday 14 October 2012 02:17:01 Marek Vasut wrote:
Quoted 21 lines
Dear Pali Roh?r,
Quoted 18 lines · On Sunday 14 October 2012 01:45:06 Marek Vasut wrote:
Quoted 11 lines
Review
Quoted 4 lines
(quoted diff) +2
-0for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { + if (bd->bi_dram[i].size == 0) + continue;This doesn't look right at all, your board is
misconfigured
if
bd->bi_dram[i] == 0. Did you misconfigureCONFIG_NR_DRAM_BANKS
?On some N900 devices there are two banks and on some only one. If there is only one it has size 256 MB and if there are two both has 128 MB.
CONFIG_NR_DRAM_BANKSmust be specified at compile time, but for N900 I need runtime detection.Quoted 6 lines
Quoted 3 lines
Quoted 1 line
How can that be? Are these two banks contiguous?
Yes.
And how does the memory map differ in case of device with one 256MB block then ?
Memory map is same, from
0x80000000to0x90000000.For two bank devices uboot reports:
size=08000000 start=80000000
size=08000000 start=88000000
Quoted 6 lines
Quoted 3 lines
And for one:
size=10000000 start=80000000
size=00000000 start=90000000Tom, can this not be handled as a single area? How does the omap memory layout look?
On other platforms we simply lie about the number of banks as at least today nothing is re-using the number of banks and re-reconfiguring DDR. Making n900 also just claim one bank and then reporting the correct total memory size as the size of that one bank will put it into good company at least.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121016/8c0be8c3/attachment.pgp>
PATCH v3 3/5 Add power bus message definitions in twl4030.h
In reply to Pali Rohár* Code copied from linux kernel 3.0.0 from file include/linux/i2c/twl.h
--- include/twl4030.h | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+)
include/twl4030.h +98 -0
@@ -151,6 +151,103 @@#define TWL4030_PM_MASTER_SW_EVENTS_DEVSLP (1 << 1)#define TWL4030_PM_MASTER_SW_EVENTS_DEVOFF (1 << 0) +/* Power bus message definitions */ + +/* The TWL4030/5030 splits its power-management resources (the various +* regulators, clock and reset lines) into 3 processor groups - P1, P2 and +* P3. These groups can then be configured to transition between sleep, wait-on +* and active states by sending messages to the power bus. See Section 5.4.2 +* Power Resources of TWL4030 TRM +*/ + +/* Processor groups */ +#define DEV_GRP_NULL 0x0 +#define DEV_GRP_P1 0x1/* P1: all OMAP devices */ +#define DEV_GRP_P2 0x2/* P2: all Modem devices */ +#define DEV_GRP_P3 0x4/* P3: all peripheral devices */ + +/* Resource groups */ +#define RES_GRP_RES 0x0/* Reserved */ +#define RES_GRP_PP 0x1/* Power providers */ +#define RES_GRP_RC 0x2/* Reset and control */ +#define RES_GRP_PP_RC 0x3 +#define RES_GRP_PR 0x4/* Power references */ +#define RES_GRP_PP_PR 0x5 +#define RES_GRP_RC_PR 0x6 +#define RES_GRP_ALL 0x7/* All resource groups */ + +#define RES_TYPE2_R0 0x0 + +#define RES_TYPE_ALL 0x7 + +/* Resource states */ +#define RES_STATE_WRST 0xF +#define RES_STATE_ACTIVE 0xE +#define RES_STATE_SLEEP 0x8 +#define RES_STATE_OFF 0x0 + +/* Power resources */ + +/* Power providers */ +#define RES_VAUX1 1 +#define RES_VAUX2 2 +#define RES_VAUX3 3 +#define RES_VAUX4 4 +#define RES_VMMC1 5 +#define RES_VMMC2 6 +#define RES_VPLL1 7 +#define RES_VPLL2 8 +#define RES_VSIM 9 +#define RES_VDAC 10 +#define RES_VINTANA1 11 +#define RES_VINTANA2 12 +#define RES_VINTDIG 13 +#define RES_VIO 14 +#define RES_VDD1 15 +#define RES_VDD2 16 +#define RES_VUSB_1V5 17 +#define RES_VUSB_1V8 18 +#define RES_VUSB_3V1 19 +#define RES_VUSBCP 20 +#define RES_REGEN 21 +/* Reset and control */ +#define RES_NRES_PWRON 22 +#define RES_CLKEN 23 +#define RES_SYSEN 24 +#define RES_HFCLKOUT 25 +#define RES_32KCLKOUT 26 +#define RES_RESET 27 +/* Power Reference */ +#define RES_Main_Ref 28 + +#define TOTAL_RESOURCES 28 +/* +* Power Bus Message Format ... these can be sent individually by Linux, +* but are usually part of downloaded scripts that are run when various +* power events are triggered. +* +* Broadcast Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_GRP[11:9] RES_TYPE2[8:7] RES_TYPE[6:4] +* RES_STATE[3:0] +* +* Singular Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_ID[11:4] RES_STATE[3:0] +*/ + +#define MSG_BROADCAST (devgrp, grp, type, type2, state) \ + ((devgrp) << 13 | 1 << 12 | (grp) << 9 | (type2) << 7 \ + | (type) << 4 | (state)) + +#define MSG_SINGULAR (devgrp, id, state) \ + ((devgrp) << 13 | 0 << 12 | (id) << 4 | (state)) + +#define MSG_BROADCAST_ALL (devgrp, state) \ + ((devgrp) << 5 | (state)) + +#define MSG_BROADCAST_REF MSG_BROADCAST_ALL +#define MSG_BROADCAST_PROV MSG_BROADCAST_ALL +#define MSG_BROADCAST__CLK_RST MSG_BROADCAST_ALL +/* Power Managment Receiver */ #define TWL4030_PM_RECEIVER_SC_CONFIG 0x5B#define TWL4030_PM_RECEIVER_SC_DETECT1 0x5C
@@ -311,6 +408,7 @@#define TWL4030_PM_RECEIVER_VDAC_VSEL_18 0x03#define TWL4030_PM_RECEIVER_VMMC1_VSEL_30 0x02#define TWL4030_PM_RECEIVER_VMMC1_VSEL_32 0x03 +#define TWL4030_PM_RECEIVER_VSIM_VSEL_18 0x03/* Device Selection in PM Receiver Module */ #define TWL4030_PM_RECEIVER_DEV_GRP_P1 0x20
Signature · 1 line
1.7.9.5
PATCH v3 3/5 Add power bus message definitions in twl4030.h
Dear Pali Roh?r,
Quoted 1 line
* Code copied from linux kernel 3.0.0 from file
include/linux/i2c/twl.h
Missing commit ... see
http://www.denx.de/wiki/U-Boot/Patches#Attributing_Code_Copyrights_Sign
[...]
Missing changelog
[...]
Best regards,
Marek Vasut
PATCH v3 3/5 Add power bus message definitions in twl4030.h
Quoted 7 lines · On Sunday 14 October 2012 01:46:30 you wrote:
Dear Pali Roh?r,
Quoted 2 lines
* Code copied from linux kernel 3.0.0 from file
include/linux/i2c/twl.hMissing commit ... see
http://www.denx.de/wiki/U-Boot/Patches#Attributing_Code_Copyrights_Sign
"... provide terse but precise information which exact version or even commit ID was used ..."
I copied code from 3.0.0 tarball, so I do not know commit ID. But 3.0.0 is exact version.
Quoted 4 lines
[...]
Missing changelog
Nothing was changed.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121014/ee23d4c4/attachment.pgp>
PATCH v3 3/5 Add power bus message definitions in twl4030.h
Dear Pali Roh?r,
Quoted 10 lines · On Sunday 14 October 2012 01:46:30 you wrote:
Quoted 8 lines
Dear Pali Roh?r,
Quoted 2 lines
* Code copied from linux kernel 3.0.0 from file
include/linux/i2c/twl.hMissing commit ... see
http://www.denx.de/wiki/U-Boot/Patches#Attributing_Code_Copyrights_Sign
Quoted 5 lines
"... provide terse but precise information which exact version or even commit ID was used ..."
I copied code from 3.0.0 tarball, so I do not know commit ID. But 3.0.0 is exact version.
Look here:
http://git.kernel.org/?p=linux/kernel/git/marex/linux-2.6.git;a=summary
Quoted 5 lines
Quoted 3 lines
[...]
Missing changelog
Nothing was changed.
It'd be good to state that.
Best regards,
Marek Vasut
PATCH v3 3/5 Add power bus message definitions in twl4030.h
Quoted 15 lines · On Sunday 14 October 2012 02:16:10 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 13 lines · On Sunday 14 October 2012 01:46:30 you wrote:
Quoted 8 lines
Dear Pali Roh?r,
Quoted 2 lines
* Code copied from linux kernel 3.0.0 from file
include/linux/i2c/twl.hMissing commit ... see
http://www.denx.de/wiki/U-Boot/Patches#Attributing_Code_Cop
yrights_Sign"... provide terse but precise information which exact version or even commit ID was used ..."
Quoted 7 lines
Quoted 2 lines
I copied code from 3.0.0 tarball, so I do not know commit ID. But 3.0.0 is exact version.
Look here:
http://git.kernel.org/?p=linux/kernel/git/marex/linux-2.6.git;a
=summary
Ok, last commit before 3.0.0 release was6523b148b44be38d89c2ee9865d34da30d9f5f1c
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121014/58583c10/attachment.pgp>
PATCH v3 3/5 Add power bus message definitions in twl4030.h
Dear Pali Roh?r,
Quoted 19 lines · On Sunday 14 October 2012 02:16:10 Marek Vasut wrote:
Quoted 18 lines
Dear Pali Roh?r,
Quoted 15 lines · On Sunday 14 October 2012 01:46:30 you wrote:
Quoted 8 lines
Dear Pali Roh?r,
Quoted 2 lines
* Code copied from linux kernel 3.0.0 from file
include/linux/i2c/twl.hMissing commit ... see
http://www.denx.de/wiki/U-Boot/Patches#Attributing_Code_Cop
yrights_Sign"... provide terse but precise information which exact version or even commit ID was used ..."
I copied code from 3.0.0 tarball, so I do not know commit ID. But 3.0.0 is exact version.
Quoted 7 lines
Quoted 4 lines
Look here:
http://git.kernel.org/?p=linux/kernel/git/marex/linux-2.6.git;a
=summaryOk, last commit before 3.0.0 release was
6523b148b44be38d89c2ee9865d34da30d9f5f1c
Please put it into the commit message.
Best regards,
Marek Vasut
PATCH v3 4/5 cfb_console: Add support for some ANSI terminal escape codes
In reply to Pali Rohár * This patch add support for move cursor, reverse colors and clear console via ANSI espace codes in cfb_console driver
* ANSI escape codes can be enabled/disabled via CONFIG_CFB_CONSOLE_ANSI
---
Changes since v2:
- Fixed multiline comments
Changes since v1:
- Added support ANSI code show/hide cursor
- Added info to README
Changes since original version:
- Fixed commit message
README | 3 + drivers/video/cfb_console.c | 313 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 307 insertions(+), 9 deletions(-)
README +3 -0
@@ -655,6 +655,9 @@ The following options need to be configured: additional board info beside the logo + When CONFIG_CFB_CONSOLE_ANSI is defined, console will have + ANSI terminal support. Needed for CONFIG_CMDLINE_EDITING. + When CONFIG_CFB_CONSOLE is defined, video console is default i/o. Serial console can be forced with environment 'console=serial'.
drivers/video/cfb_console.c +304 -9
376 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v3 4/5 cfb_console: Add support for some ANSI terminal escape codes
Dear Pali Roh?r,
Quoted 6 lines
* This patch add support for move cursor, reverse colors and clear console via ANSI espace codes in
cfb_consoledriver
* ANSI escape codes can be enabled/disabled viaCONFIG_CFB_CONSOLE_ANSISigned-off-by Pali Roh?r <[email protected]>---
Missing v3?
Quoted 6 lines
Changes since v2:
- Fixed multiline commentsChanges since v1:
- Added support ANSI code show/hide cursor
- Added info to README
[...]
I'll leave the rest of the patch up to Anatolij, he's The Expert.
Best regards,
Marek Vasut
PATCH v3 4/5 cfb_console: Add support for some ANSI terminal escape codes
Quoted 6 lines · On Sunday 14 October 2012 01:48:20 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 4 lines
* This patch add support for move cursor, reverse colors and clear console>
via ANSI espace codes incfb_consoledriver
Quoted 7 lines
Quoted 4 lines
* ANSI escape codes can be enabled/disabled via
CONFIG_CFB_CONSOLE_ANSI>Signed-off-by Pali Roh?r <[email protected]>---
Missing v3?
In "Changes since v2" I wrote what was changed in open interval between v2 and v3. So it is not missing :-)
Quoted 14 lines
Quoted 6 lines
Changes since v2:
- Fixed multiline commentsChanges since v1:
- Added support ANSI code show/hide cursor
- Added info to README[...]
I'll leave the rest of the patch up to Anatolij, he's The Expert.
Best regards,
Marek Vasut
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121014/4681aa63/attachment.pgp>
PATCH v3 4/5 cfb_console: Add support for some ANSI terminal escape codes
Dear Pali Roh?r,
Quoted 11 lines · On Sunday 14 October 2012 01:48:20 Marek Vasut wrote:
Quoted 10 lines
Dear Pali Roh?r,
Quoted 8 lines
* This patch add support for move cursor, reverse colors and clear console>
via ANSI espace codes in
cfb_consoledriver* ANSI escape codes can be enabled/disabled via
CONFIG_CFB_CONSOLE_ANSI>
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
Signed-off-by Pali Roh?r <[email protected]>---
Missing v3?
In "Changes since v2" I wrote what was changed in open interval between v2 and v3. So it is not missing :-)
Please stop inventing new ways of writing changelog and obey:
http://www.denx.de/wiki/U-Boot/Patches
Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
Changes since v2:
- Fixed multiline commentsChanges since v1:
- Added support ANSI code show/hide cursor
- Added info to README
Quoted 7 lines
Quoted 7 lines
[...]
I'll leave the rest of the patch up to Anatolij, he's The Expert.
Best regards,
Marek Vasut
Best regards,
Marek Vasut
PATCH v3 5/5 New board support: Nokia RX-51 aka N900
In reply to Pali RohárBased on previous work by: Alistair Buxton <[email protected]>
---
Changes since v2:
- Added documentation in doc/README.nokia_rx51
- Updated MAINTAINERS
- Fixed Fix omap_mmc_init
- Code for errata 430973 workaround
- Added board specified atag support
- Generate omap atag table instead reusing from NOLO
- Load bootmenu.src always
- Enabled ext4 support
- Fixed comments
- Reserve protected RAM for attached kernel
- Rewritten assembler code in lowlevel_init.S
- Reset lp5523 led on init
Changes since v1:
- Set correct configs for Memory Map
- Enable passing memory tag to kernel atags
- Use gpio input command for detecting keyboard slide
- Restore powerbus state after calling twl4030 regulator code
- Renamed command noloboot to attachboot
- Atag address must be always 0x80000100, removed code from lowlevel
- Added usb vendor, product id and product name
- Enabled command line editing
- Fixed keymap and cursor keys
Changes since original version:
- Removed Makefile targets: clean and distclean
- Rewrited bootcommand and env variables in nokia_rx51.h
- Removed useless CONFIG defines in nokia_rx51.h
- Disable L2 cache with CONFIG_SYS_L2CACHE_OFF - fixed battery draining
- Added onenand support (default disabled due to big u-boot size)
- Moved inlined asm code to new file lowlevel_init.S
- Fixed commit message
MAINTAINERS | 4 + board/nokia/rx51/Makefile | 46 +++ board/nokia/rx51/lowlevel_init.S | 209 ++++++++++++ board/nokia/rx51/rx51.c | 673 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 389 ++++++++++++++++++++++ board/nokia/rx51/tag_omap.h | 311 ++++++++++++++++++ boards.cfg | 1 + doc/README.nokia_rx51 | 104 ++++++ include/configs/nokia_rx51.h | 452 +++++++++++++++++++++++++ 9 files changed, 2189 insertions(+) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 board/nokia/rx51/tag_omap.h create mode 100644 doc/README.nokia_rx51 create mode 100644 include/configs/nokia_rx51.h
MAINTAINERS +4 -0
@@ -1009,6 +1009,10 @@ Nobuhiro Iwamatsu <[email protected]> armadillo-800eva R8A7740 (RMOBILE SoC) +Pali Roh?r <[email protected]> + + nokia_rx51 ARM ARMV7 (OMAP3xx SoC) + ------------------------------------------------------------------------- Unknown / orphaned boards:
board/nokia/rx51/Makefile new file +46 -0
46 lines not on this page · raw message
board/nokia/rx51/lowlevel_init.S new file +209 -0
209 lines not on this page · raw message
board/nokia/rx51/rx51.c new file +673 -0
673 lines not on this page · raw message
board/nokia/rx51/rx51.h new file +389 -0
389 lines not on this page · raw message
board/nokia/rx51/tag_omap.h new file +311 -0
311 lines not on this page · raw message
boards.cfg +1 -0
@@ -264,6 +264,7 @@ devkit8000 arm armv7 devkit8000 timll mcx arm armv7 mcx htkw omap3 tricorder arm armv7 tricorder corscience omap3 twister arm armv7 twister technexion omap3 +nokia_rx51 arm armv7 rx51 nokia omap3 omap4_panda arm armv7 panda ti omap4 omap4_sdp4430 arm armv7 sdp4430 ti omap4 omap5_evm arm armv7 omap5_evm ti omap5
doc/README.nokia_rx51 new file +104 -0
104 lines not on this page · raw message
include/configs/nokia_rx51.h new file +452 -0
452 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v3 5/5 New board support: Nokia RX-51 aka N900
Dear Pali Roh?r,
Quoted 4 lines
Based on previous work by: Alistair Buxton <[email protected]>
Signed-off-by Pali Roh?r <[email protected]>Cc ?????? ???????? <[email protected]>
Can we please stick to ASCII instead of UTF8?
Quoted 59 lines
---
Changes since v2:
- Added documentation in doc/README.nokia_rx51
- UpdatedMAINTAINERS
- Fixed Fixomap_mmc_init
- Code for errata 430973 workaround
- Added board specified atag support
- Generate omap atag table instead reusing from NOLO
- Load bootmenu.src always
- Enabled ext4 support
- Fixed comments
- Reserve protected RAM for attached kernel
- Rewritten assembler code inlowlevel_init.S
- Reset lp5523 led on initChanges since v1:
- Set correct configs for Memory Map
- Enable passing memory tag to kernel atags
- Use gpio input command for detecting keyboard slide
- Restore powerbus state after calling twl4030 regulator code
- Renamed command noloboot to attachboot
- Atag address must be always0x80000100, removed code from lowlevel
- Added usb vendor, product id and product name
- Enabled command line editing
- Fixed keymap and cursor keysChanges since original version:
- RemovedMakefiletargets: clean and distclean
- Rewrited bootcommand and env variables innokia_rx51.h
- Removed useless CONFIG defines innokia_rx51.h
- Disable L2 cache withCONFIG_SYS_L2CACHE_OFF- fixed battery draining
- Added onenand support (default disabled due to big u-boot size)
- Moved inlined asm code to new filelowlevel_init.S
- Fixed commit messageMAINTAINERS | 4 + board/nokia/rx51/Makefile | 46 +++ board/nokia/rx51/lowlevel_init.S | 209 ++++++++++++ board/nokia/rx51/rx51.c | 673 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 389 ++++++++++++++++++++++ board/nokia/rx51/tag_omap.h | 311 ++++++++++++++++++ boards.cfg | 1 + doc/README.nokia_rx51 | 104 ++++++ include/configs/nokia_rx51.h | 452 +++++++++++++++++++++++++ 9 files changed, 2189 insertions(+) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 board/nokia/rx51/tag_omap.h create mode 100644 doc/README.nokia_rx51 create mode 100644 include/configs/nokia_rx51.hMAINTAINERS +0
-0
MAINTAINERS Nobuhiro Iwamatsu <[email protected]> · line 1014
Quoted 6 lines
MAINTAINERS +3
-0@@ -1009,6 +1009,10 @@ Nobuhiro Iwamatsu <[email protected]> armadillo-800eva R8A7740 (RMOBILE SoC) +Pali Roh?r <[email protected]> + + nokia_rx51 ARM ARMV7 (OMAP3xx SoC)
OMAP3xxx or OMAP34xx
Quoted 3 lines
MAINTAINERS +1
-0+ -------------------------------------------------------------------------
[..]
Quoted 12 lines
MAINTAINERS +12
-0+relocaddr: /* address of this relocaddr section after coping */ + .word . /* address of section (calculated at compile time) */ + +startaddr: /* address of u-boot after copying */ + .word CONFIG_SYS_TEXT_BASE + +kernaddr: /* address of kernel after copying */ + .word KERNEL_ADDRESS + +kernsize: /* maximal size of kernel image */ + .word KERNEL_MAXSIZE +
MAINTAINERS
Quoted 10 lines
MAINTAINERS +10
-0+kernoffs: /* offset of kernel image in loaded u-boot */ + .word KERNEL_OFFSET + +imagesize: /* maximal size of image */ + .word IMAGE_MAXSIZE + +ih_magic: /* IH_MAGIC in big endian from include/image.h */ + .word 0x56190527 + +/*
Try using the new kerneldoc style, the tools are now in.
See eg. here about the annotations:
http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/144173
Also see:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/kernel-
doc-nano-HOWTO.txt
MAINTAINERS
Quoted 8 lines
+ * Routine:
save_boot_params(called after reset fromstart.S)
+ * Description: Copy attached kernel to addressKERNEL_ADDRESS
+ * Copy u-boot to addressCONFIG_SYS_TEXT_BASE
+ * Return to copied u-boot address
+ */MAINTAINERS +3
-0+ +.global save_boot_params +save_boot_params:
[...]
How much of the assembler crap can be made C?
[...]
Quoted 19 lines
MAINTAINERS +19
-0+static char *boot_reason_ptr; +static char *hw_build_ptr; +static char *nolo_version_ptr; +static char *boot_mode_ptr; + +/* + * Routine: init_omap_tags + * Description: Initialize pointers to values in tag_omap + */ +static void init_omap_tags(void) +{ + char *component; + char *version; + int i = 0; + while (omap[i].hdr.tag) { + switch (omap[i].hdr.tag) { + case OMAP_TAG_BOOT_REASON: + boot_reason_ptr = omap[i].u.boot_reason.reason_str; + break;
MAINTAINERS
Quoted 10 lines
MAINTAINERS +10
-0+ case OMAP_TAG_VERSION_STR: + component = omap[i].u.version.component; + version = omap[i].u.version.version; + if (strcmp(component, "hw-build") == 0) + hw_build_ptr = version; + else if (strcmp(component, "nolo") == 0) + nolo_version_ptr = version; + else if (strcmp(component, "boot-mode") == 0) + boot_mode_ptr = version; + break;
default: missing.
MAINTAINERS
Quoted 2 lines
MAINTAINERS +2
-0+ } + ++i;
i++;
Quoted 2 lines
MAINTAINERS +2
-0+ } +}
[...]
MAINTAINERS
Quoted 3 lines
MAINTAINERS +3
-0+ /* append omap atag only if env setup_omap_atag is set to 1 */ + str = getenv("setup_omap_atag"); + if (!str || strcmp(str, "1") != 0)
str[0] == '1' ? But still, you only want to check if it's defined, no?
[...]
MAINTAINERS
Quoted 11 lines
MAINTAINERS +11
-0+/* + * Routine: twl4030_regulator_set_mode + * Description: Set twl4030 regulator mode over i2c powerbus. + */ +static void twl4030_regulator_set_mode(u8 id, u8 mode) +{ + u16 msg = MSG_SINGULAR(DEV_GRP_P1, id, mode); + twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, msg >> 8, + TWL4030_PM_MASTER_PB_WORD_MSB); + twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, msg & 0xff, + TWL4030_PM_MASTER_PB_WORD_LSB);
Uh, is this somehow special that you can't do longer transfer?
MAINTAINERS
Quoted 11 lines
MAINTAINERS +11
-0+} + +static void omap3_emu_romcode_call(u32 service_id, u32 *parameters) +{ + u32 i, num_params = *parameters; + u32 *sram_scratch_space = (u32 *)OMAP3_PUBLIC_SRAM_SCRATCH_AREA; + + /* + * copy the parameters to an un-cached area to avoid coherency + * issues + */
_WHAT_ ?!
Use dcache_flush(). The Omap3 rom won't cope with cache memory? Actually -- why do you even do call into ROM ?
Quoted 10 lines
MAINTAINERS +10
-0+ for (i = 0; i < num_params; i++) { + __raw_writel(*parameters, sram_scratch_space); + parameters++; + sram_scratch_space++; + } + + /* Now make the PPA call */ + do_omap3_emu_romcode_call(service_id, OMAP3_PUBLIC_SRAM_SCRATCH_AREA); +} +
[...]
MAINTAINERS
Quoted 3 lines
MAINTAINERS +3
-0+ /* set env variable attkernaddr for relocated kernel */ + sprintf(buf, "%#x", KERNEL_ADDRESS); + setenv("attkernaddr", buf);
Uhhh ? This definitelly isn't right! What are you trying to achieve here?
Quoted 22 lines
MAINTAINERS +22
-0+ + /* initialize omap tags */ + init_omap_tags(); + + /* reuse atags from previous bootloader */ + reuse_atags(); + + dieid_num_r(); + print_cpuinfo(); + + /* + * Cortex-A8(r1p0..r1p2) errata 430973 workaround + * Set IBE bit in Auxiliary Control Register + */ + omap3_update_aux_cr_secure_rx51(1 << 6, 0); + + return 0; +} + +/* + * Routine: set_muxconf_regs + * Description: Setting up the configuration Mux registers specific to the
MAINTAINERS
Quoted 10 lines
MAINTAINERS +10
-0+ * hardware. Many pins need to be moved from protect to primary + * mode. + */ +void set_muxconf_regs(void) +{ + MUX_RX51(); +} + +static unsigned long int twl_wd_time; /* last time of watchdog reset */ +static unsigned long int twl_i2c_lock;
Are you sure you want to use global vars for these? These won't work before reloc!
[..]
MAINTAINERS
Quoted 7 lines
MAINTAINERS +7
-0+ +static u8 keys[8]; +static u8 old_keys[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +#define KEYBUF_SIZE 32 +static u8 keybuf[KEYBUF_SIZE]; +static u8 keybuf_head; +static u8 keybuf_tail;
How much of this can be made const ?
MAINTAINERS
Quoted 11 lines
MAINTAINERS +11
-0+/* + * Routine: rx51_kp_init + * Description: Initialize HW keyboard. + */ +int rx51_kp_init(void) +{ + int ret = 0; + u8 ctrl; + ret = twl4030_i2c_read_u8(TWL4030_CHIP_KEYPAD, &ctrl, + TWL4030_KEYPAD_KEYP_CTRL_REG); +
if (ret)
return;
... do the rest here without additional indent ...
Quoted 3 lines
MAINTAINERS +3
-0+ if (!ret) { + /* turn on keyboard and use hardware scanning */ + ctrl |= TWL4030_KEYPAD_CTRL_KBD_ON;
[...]
MAINTAINERS
Quoted 2 lines
MAINTAINERS +2
-0+static void rx51_kp_fill(u8 k, u8 mods) +{
This magic needs at least _some_ documentation.
Quoted 3 lines
MAINTAINERS +3
-0+ if (!(mods & 2) && (k == 18 || k == 31 || k == 33 || k == 34)) { + /* cursor keys, without fn */ + keybuf[keybuf_tail++] = '\e';
[...]
Quoted 8 lines
MAINTAINERS +8
-0+int rx51_kp_tstc(void) +{ + u8 c, r, dk, i; + u8 intr; + u8 mods; + + /* localy lock twl4030 i2c bus */ + if (test_and_set_bit(0, &twl_i2c_lock))
MAINTAINERS
Quoted 10 lines
MAINTAINERS +10
-0+ return 0; + + /* twl4030 remembers up to 2 events */ + for (i = 0; i < 2; i++) { + + /* check interrupt register for events */ + twl4030_i2c_read_u8(TWL4030_CHIP_KEYPAD, &intr, + TWL4030_KEYPAD_KEYP_ISR1+(2*i)); + + if (intr&1) { /* got an event */
I will let you think about how to optimize the indent depth here ...
Quoted 17 lines
MAINTAINERS +17
-0+ /* read the key state */ + i2c_read(TWL4030_CHIP_KEYPAD, + TWL4030_KEYPAD_FULL_CODE_7_0, 1, keys, 8); + + /* cut out modifier keys from the keystate */ + mods = keys[4] >> 4; + keys[4] &= 0x0f; + + for (c = 0; c < 8; c++) { + + /* get newly pressed keys only */ + dk = ((keys[c] ^ old_keys[c])&keys[c]); + old_keys[c] = keys[c]; + + /* fill the keybuf */ + for (r = 0; r < 8; r++) { + if (dk&1)
[...]
MAINTAINERS
Quoted 10 lines
MAINTAINERS +10
-0+/* + * Routine: rx51_kp_getc + * Description: Get last pressed key (from buffer). + */ +int rx51_kp_getc(void) +{ + keybuf_head %= KEYBUF_SIZE; + while (!rx51_kp_tstc()) { + udelay(1); + hw_watchdog_reset();
WATCHDOG_RESET() and drop the udelay();
Quoted 14 lines
MAINTAINERS +14
-0+ } + return keybuf[keybuf_head++]; +} + +/* + * Routine: board_mmc_init + * Description: Initialize mmc devices. + */ +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0, 0, 0); + omap_mmc_init(1, 0, 0); + return 0; +}
[...]
MAINTAINERS
Quoted 2 lines
MAINTAINERS +2
-0+#define tostring(s) #s +#define stringify(s) tostring(s)
We do have __stringify(), use that!
[...]
PATCH v3 5/5 New board support: Nokia RX-51 aka N900
Hi Marek,
Quoted 8 lines · Marek Vasut
Dear Pali Roh?r,
Quoted 4 lines
Based on previous work by: Alistair Buxton <[email protected]>
Signed-off-by Pali Roh?r <[email protected]>Cc ?????? ???????? <[email protected]>Can we please stick to ASCII instead of UTF8?
(cc:ing Wolfgang)
Not to nitpick too much here since for this particular contributor it will not make a difference, but UTF-8 in e-mail addresses is fine to me
[1] and is useful for people whose roman-alphabet-based names include diacritics not available in ASCII.
Thus, as far as constraints on e-mail addresses are concerned, I'd rather allow UTF-8 but impose the use of the roman alphabet (if needed, by transliterating) as opposed to e.g. using the cyrillic alphabet, or ideograms, because the common language here is English, so everyone posting here is at least used to roman, but not necessarily to other alphabets or writing systems.
[1] if not always to 'pwclient git-am', but then 'pwclient get' + 'git am' works fine.
Amicalement,
Signature · 1 line
Albert.
PATCH v3 5/5 New board support: Nokia RX-51 aka N900
In reply to Marek VasutQuoted 9 lines · On Sunday 14 October 2012 02:06:49 Marek Vasut wrote:
Quoted 9 lines
MAINTAINERS +0
-0@@ -1009,6 +1009,10 @@ Nobuhiro Iwamatsu<[email protected]>>
armadillo-800eva R8A7740 (RMOBILE SoC)
Quoted 6 lines
MAINTAINERS Nobuhiro Iwamatsu <[email protected]> · line 1014
Quoted 3 lines
MAINTAINERS +3
-0+Pali Roh?r <[email protected]> + + nokia_rx51 ARM ARMV7 (OMAP3xx SoC)OMAP3xxx or OMAP34xx
Ok.
Quoted 3 lines
Quoted 3 lines
+relocaddr: /* address of this relocaddr section after
coping */ + .word . /* address of section (calculated
at
Quoted 11 lines
MAINTAINERS
Quoted 11 lines
compile time) */ +
MAINTAINERS +10
-0+startaddr: /* address of u-boot after copying */ + .word CONFIG_SYS_TEXT_BASE + +kernaddr: /* address of kernel after copying */ + .word KERNEL_ADDRESS + +kernsize: /* maximal size of kernel image */ + .word KERNEL_MAXSIZE + +kernoffs: /* offset of kernel image in loaded u-boot
*/
Quoted 6 lines
MAINTAINERS
Quoted 6 lines
MAINTAINERS +6
-0+ .word KERNEL_OFFSET + +imagesize: /* maximal size of image */ + .word IMAGE_MAXSIZE + +ih_magic: /* IH_MAGIC in big endian from
include/image.h */
Quoted 6 lines
MAINTAINERS
Quoted 3 lines
MAINTAINERS +3
-0+ .word 0x56190527 + +/*Try using the new kerneldoc style, the tools are now in.
Quoted 8 lines
See eg. here about the annotations:
http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/14417
3Also see:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.gi
t;a=blob;f=Documentation/kernel- doc-nano-HOWTO.txt
Ok.
Quoted 9 lines
Quoted 8 lines
+ * Routine:
save_boot_params(called after reset fromstart.S) + * Description: Copy attached kernel to addressKERNEL_ADDRESS+ * Copy u-boot to addressCONFIG_SYS_TEXT_BASE+ * Return to copied
u-boot address
+ */
+
+.globalsave_boot_params
Quoted 5 lines
Quoted 1 line
+save_boot_params:
[...]
How much of the assembler crap can be made C?
Nothing. This code must be in assembler because stack is not initialized. Also we must be sure that U-Boot will not overwrite attached kernel (with can be in U-Boot malloc/monitor area...)
Quoted 11 lines
Quoted 11 lines
MAINTAINERS +10
-0+static char *boot_reason_ptr; +static char *hw_build_ptr; +static char *nolo_version_ptr; +static char *boot_mode_ptr; + +/* + * Routine: init_omap_tags + * Description: Initialize pointers to values in tag_omap + */ +static void init_omap_tags(void)
Quoted 8 lines
MAINTAINERS
Quoted 8 lines
MAINTAINERS +8
-0+{ + char *component; + char *version; + int i = 0; + while (omap[i].hdr.tag) { + switch (omap[i].hdr.tag) { + case OMAP_TAG_BOOT_REASON: + boot_reason_ptr =
omap[i].u.boot_reason.reason_str;
Quoted 5 lines
Quoted 5 lines
MAINTAINERS +5
-0+ break; + case OMAP_TAG_VERSION_STR: + component = omap[i].u.version.component; + version = omap[i].u.version.version; + if (strcmp(component, "hw-build") == 0)
Quoted 9 lines
MAINTAINERS
Quoted 6 lines
MAINTAINERS +6
-0+ hw_build_ptr = version; + else if (strcmp(component, "nolo") == 0) + nolo_version_ptr = version; + else if (strcmp(component, "boot-mode") == 0) + boot_mode_ptr = version; + break;default: missing.
Is really needed? (if yes, I can add default: break;)
Quoted 5 lines
MAINTAINERS
Quoted 2 lines
MAINTAINERS +2
-0+ } + ++i;i++;
Reason? ++i and i++ are same (for this situation).
Quoted 1 line
MAINTAINERS
Quoted 1 line
MAINTAINERS +1
-0+ /* append omap atag only if env setup_omap_atag is set to
1
Quoted 6 lines
MAINTAINERS
Quoted 2 lines
*/ + str =
getenv("setup_omap_atag");MAINTAINERS +1
-0+ if (!str || strcmp(str, "1") != 0)str[0] == '1' ? But still, you only want to check if it's defined, no?
Hm, I'm checking if setup_omap_atag is 1. But is it problem?
Quoted 16 lines
MAINTAINERS
Quoted 13 lines
+/*
+ * Routine:twl4030_regulator_set_mode
+ * Description: Set twl4030 regulator mode over i2c powerbus.
+ */MAINTAINERS +7
-0+static void twl4030_regulator_set_mode(u8 id, u8 mode) +{ + u16 msg = MSG_SINGULAR(DEV_GRP_P1, id, mode); + twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, msg >> 8, + TWL4030_PM_MASTER_PB_WORD_MSB); + twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, msg & 0xff, + TWL4030_PM_MASTER_PB_WORD_LSB);Uh, is this somehow special that you can't do longer transfer?
I do not know how, because registers are different (MSB and LSB).
Quoted 7 lines
MAINTAINERS
Quoted 4 lines
MAINTAINERS +3
-0+ /* set env variable attkernaddr for relocated kernel */ + sprintf(buf, "%#x", KERNEL_ADDRESS); + setenv("attkernaddr", buf);Uhhh ? This definitelly isn't right! What are you trying to achieve here?
I think it is right. I want to store address of kernel (in hex with leading 0x) to env attkernaddr. And %#x is doing it.
Quoted 7 lines
Quoted 3 lines
MAINTAINERS +2
-0+ +static unsigned long int twl_wd_time; /* last time ofwatchdog reset */ +static unsigned long int
twl_i2c_lock;Are you sure you want to use global vars for these? These won't work before reloc!
Why it does not work before reloc? U-Boot is on n900 always started from RAM.
Quoted 11 lines
MAINTAINERS
Quoted 8 lines
MAINTAINERS +7
-0+ +static u8 keys[8]; +static u8 old_keys[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +#define KEYBUF_SIZE 32 +static u8 keybuf[KEYBUF_SIZE]; +static u8 keybuf_head; +static u8 keybuf_tail;How much of this can be made const ?
Nothing. All is for keyboard and is changed by keyboard functions (tstc, getc)
Quoted 7 lines
This magic needs at least _some_ documentation.
MAINTAINERS
Quoted 3 lines
MAINTAINERS +1
-0+ if (!(mods & 2) && (k == 18 || k == 31 || k == 33 || k ==34)) { + /* cursor keys, without fn */
MAINTAINERS +1
-0+ keybuf[keybuf_tail++] = '\e';
there is "cursor keys without fn" (fn is "meta" key on n900). So this condition check if some cursor key (without fn) was pressed.
Quoted 14 lines
Quoted 14 lines
MAINTAINERS +13
-0+int rx51_kp_tstc(void) +{ + u8 c, r, dk, i; + u8 intr; + u8 mods; + + /* localy lock twl4030 i2c bus */ + if (test_and_set_bit(0, &twl_i2c_lock)) + return 0; + + /* twl4030 remembers up to 2 events */ + for (i = 0; i < 2; i++) { +
Quoted 8 lines
MAINTAINERS
Quoted 5 lines
MAINTAINERS +5
-0+ /* check interrupt register for events */ + twl4030_i2c_read_u8(TWL4030_CHIP_KEYPAD, &intr, + TWL4030_KEYPAD_KEYP_ISR1+(2*i)); + + if (intr&1) { /* got an event */I will let you think about how to optimize the indent depth here ...
Ok, I will optimize indentation. This code (keyboard support) was written by Alistair Buxton and I reused it with minimal changes.
Quoted 5 lines
MAINTAINERS
Quoted 3 lines
MAINTAINERS +2
-0+#define tostring(s) #s +#define stringify(s) tostring(s)We do have
__stringify(), use that!
Ok, in April (when I wrote this part of code) __stringify was not in U-Boot (I checked it).
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121016/cc3cdeb0/attachment.pgp>
PATCH v3 5/5 New board support: Nokia RX-51 aka N900
Dear Pali Roh?r,
[...]
Quoted 4 lines
Nothing. This code must be in assembler because stack is not initialized. Also we must be sure that U-Boot will not overwrite attached kernel (with can be in U-Boot malloc/monitor area...)
Don't we have something that can reserve a memory area?
Quoted 35 lines
Quoted 10 lines
Quoted 10 lines
board/nokia/rx51/rx51.c new file +10
-0+static char *boot_reason_ptr; +static char *hw_build_ptr; +static char *nolo_version_ptr; +static char *boot_mode_ptr; + +/* +* Routine: init_omap_tags +* Description: Initialize pointers to values in tag_omap +*/ +static void init_omap_tags (void )Quoted 8 lines
board/nokia/rx51/rx51.c
Quoted 8 lines
board/nokia/rx51/rx51.c new file +8
-0+{ +char *component; +char *version; +int i =0 ; +while (omap[i].hdr.tag) { +switch (omap[i].hdr.tag) { +case OMAP_TAG_BOOT_REASON : + boot_reason_ptr =omap[i].u.boot_reason.reason_str;
Quoted 5 lines
Quoted 5 lines
board/nokia/rx51/rx51.c new file +5
-0+break ; +case OMAP_TAG_VERSION_STR : + component = omap[i].u.version.component; + version = omap[i].u.version.version; +if (strcmp (component,"hw-build" ) ==0 )Quoted 8 lines
board/nokia/rx51/rx51.c line 135
Quoted 6 lines
board/nokia/rx51/rx51.c new file +6
-0+ hw_build_ptr = version; + else if (strcmp(component, "nolo") == 0) + nolo_version_ptr = version; + else if (strcmp(component, "boot-mode") == 0) + boot_mode_ptr = version; +break ;default: missing.
Quoted 1 line
Is really needed? (if yes, I can add default: break;)
It's a good practice.
Quoted 6 lines
Quoted 4 lines
board/nokia/rx51/rx51.c line 137
Quoted 2 lines
board/nokia/rx51/rx51.c new file +2
-0+ } + ++i;i++;
Reason? ++i and i++ are same (for this situation).
On arm, yes, on intel, no in certain cases. Also, to keep the code consistent, go with postdecrement.
Quoted 11 lines
Quoted 1 line
Review
Quoted 1 line
(quoted diff) +1
-0+ /* append omap atag only if env setup_omap_atag is set to1
Quoted 5 lines
board/nokia/rx51/rx51.c line 249
Quoted 2 lines
*/ + str =
getenv("setup_omap_atag");board/nokia/rx51/rx51.c new file +1
-0+if (!str ||strcmp (str,"1" ) !=0 )str[0] == '1' ? But still, you only want to check if it's defined, no?
Hm, I'm checking if
setup_omap_atagis 1. But is it problem?
Then why not str[0] == '1' ?
Quoted 15 lines
Quoted 6 lines
Quoted 6 lines
+/*
+ * Routine:twl4030_regulator_set_mode
+ * Description: Set twl4030 regulator mode over i2c powerbus.
+ */
+static voidtwl4030_regulator_set_mode(u8 id, u8 mode)Quoted 8 lines
board/nokia/rx51/rx51.c line 333
Quoted 6 lines
board/nokia/rx51/rx51.c new file +6
-0+{ +u16 msg =MSG_SINGULAR (DEV_GRP_P1 , id, mode); +twl4030_i2c_write_u8 (TWL4030_CHIP_PM_MASTER , msg >>8 , +TWL4030_PM_MASTER_PB_WORD_MSB ); +twl4030_i2c_write_u8 (TWL4030_CHIP_PM_MASTER , msg &0xff , +TWL4030_PM_MASTER_PB_WORD_LSB );Uh, is this somehow special that you can't do longer transfer?
Quoted 1 line
I do not know how, because registers are different (MSB and LSB).
Investigate ;-)
Quoted 9 lines
Quoted 6 lines
board/nokia/rx51/rx51.c line 422
Quoted 3 lines
board/nokia/rx51/rx51.c new file +3
-0+/* set env variable attkernaddr for relocated kernel */ +sprintf (buf,"%#x" ,KERNEL_ADDRESS ); +setenv ("attkernaddr" , buf);Uhhh ? This definitelly isn't right! What are you trying to achieve here?
I think it is right. I want to store address of kernel (in hex with leading 0x) to env attkernaddr. And %#x is doing it.
Ah, now that you mentioned that you don't want kernel to be rewritten, I see the point of this variable.
Quoted 9 lines
Quoted 6 lines
Quoted 3 lines
(quoted diff) +2
-0+ +static unsigned long int twl_wd_time; /* last time ofwatchdog reset */ +static unsigned long int
twl_i2c_lock;Are you sure you want to use global vars for these? These won't work before reloc!
Why it does not work before reloc? U-Boot is on n900 always started from RAM.
The BSS isn't cleared though.
Quoted 13 lines
Quoted 9 lines
board/nokia/rx51/rx51.c line 519
Quoted 7 lines
board/nokia/rx51/rx51.c new file +7
-0+ +static u8 keys[8 ]; +static u8 old_keys[8 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }; +#define KEYBUF_SIZE 32 +static u8 keybuf[KEYBUF_SIZE ]; +static u8 keybuf_head; +static u8 keybuf_tail;How much of this can be made const ?
Nothing. All is for keyboard and is changed by keyboard functions (tstc, getc)
Quoted 8 lines
Quoted 5 lines
This magic needs at least _some_ documentation.
board/nokia/rx51/rx51.c line 557
Quoted 3 lines
(quoted diff) +1
-0+ if (!(mods & 2) && (k == 18 || k == 31 || k == 33 || k ==34)) { + /* cursor keys, without fn */
board/nokia/rx51/rx51.c new file +1
-0+ keybuf[keybuf_tail++] ='\e' ;there is "cursor keys without fn" (fn is "meta" key on n900). So this condition check if some cursor key (without fn) was pressed.
Good, document it.
Quoted 22 lines
Quoted 13 lines
Quoted 13 lines
board/nokia/rx51/rx51.c new file +13
-0+int rx51_kp_tstc (void ) +{ +u8 c, r, dk, i; +u8 intr; +u8 mods; + +/* localy lock twl4030 i2c bus */ +if (test_and_set_bit (0 , &twl_i2c_lock)) +return 0 ; + +/* twl4030 remembers up to 2 events */ +for (i =0 ; i <2 ; i++) { +Quoted 8 lines
board/nokia/rx51/rx51.c line 615
Quoted 5 lines
board/nokia/rx51/rx51.c new file +5
-0+/* check interrupt register for events */ +twl4030_i2c_read_u8 (TWL4030_CHIP_KEYPAD , &intr, +TWL4030_KEYPAD_KEYP_ISR1 +(2 *i)); + +if (intr&1 ) {/* got an event */ I will let you think about how to optimize the indent depth here ...
Quoted 2 lines
Ok, I will optimize indentation. This code (keyboard support) was written by Alistair Buxton and I reused it with minimal changes.
That doesn't justify it ;-)
Quoted 7 lines
Quoted 4 lines
include/configs/nokia_rx51.h line 62
Quoted 2 lines
include/configs/nokia_rx51.h new file +2
-0+#define tostring (s) #s +#define stringify (s) tostring(s)We do have
__stringify(), use that!Ok, in April (when I wrote this part of code)
__stringifywas not in U-Boot (I checked it).
Yep, time changed.
Best regards,
Marek Vasut
PATCH v3 5/5 New board support: Nokia RX-51 aka N900
Quoted 10 lines · On Tuesday 16 October 2012 16:55:20 Marek Vasut wrote:
Dear Pali Roh?r,
[...]
Quoted 4 lines
Nothing. This code must be in assembler because stack is not initialized. Also we must be sure that U-Boot will not overwrite attached kernel (with can be in U-Boot malloc/monitor area...)
Don't we have something that can reserve a memory area?
I'm using CONFIG_PRAM and KERNEL_ADDRESS is calculated from protected ram. But previous bootloader (NOLO) loading u-boot (+ attached kernel) at random address, so it can be in u-boot malloc area. That assembler code is called after reset and copy attached kernel to protected ram (so U-Boot will not touch it) and U-Boot to correct address.
Quoted 10 lines
Quoted 6 lines
Quoted 4 lines
board/nokia/rx51/rx51.c line 137
Quoted 2 lines
board/nokia/rx51/rx51.c new file +2
-0+ } + ++i;i++;
Reason? ++i and i++ are same (for this situation).
On arm, yes, on intel, no in certain cases. Also, to keep the code consistent, go with postdecrement.
What is different on intel (without assigning value of i)?
Quoted 11 lines
Quoted 11 lines
Quoted 2 lines
Quoted 2 lines
(quoted diff) +1
-0+ /* append omap atag only if env setup_omap_atag is setto
1
Quoted 5 lines
board/nokia/rx51/rx51.c line 249
Quoted 2 lines
*/ + str =
getenv("setup_omap_atag");board/nokia/rx51/rx51.c new file +1
-0+if (!str ||strcmp (str,"1" ) !=0 )str[0] == '1' ? But still, you only want to check if it's defined, no?
Quoted 4 lines
Quoted 1 line
Hm, I'm checking if
setup_omap_atagis 1. But is it problem?Then why not str[0] == '1' ?
Ok.
Quoted 17 lines
Quoted 17 lines
Quoted 16 lines
board/nokia/rx51/rx51.c line 333
Quoted 13 lines
+/*
+ * Routine:twl4030_regulator_set_mode
+ * Description: Set twl4030 regulator mode over i2c powerbus.
+ */board/nokia/rx51/rx51.c new file +6
-0+static void twl4030_regulator_set_mode (u8 id,u8 mode) +{ +u16 msg =MSG_SINGULAR (DEV_GRP_P1 , id, mode); +twl4030_i2c_write_u8 (TWL4030_CHIP_PM_MASTER , msg >>8 , +TWL4030_PM_MASTER_PB_WORD_MSB ); + twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, msg &
0xff,board/nokia/rx51/rx51.c new file +1
-0+ TWL4030_PM_MASTER_PB_WORD_LSB);Uh, is this somehow special that you can't do longer transfer?
Quoted 4 lines
Quoted 2 lines
I do not know how, because registers are different (MSB and LSB).
Investigate ;-)
I think it is not possible. Registers are in bad order. (So on some high endian system it could be possible)
Also in linux twl regulator driver is used two calls see:
https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/regulator/twl-
regulator.c;hb=HEAD#l327
Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
Quoted 3 lines
(quoted diff) +2
-0+ +static unsigned long int twl_wd_time; /* last time ofwatchdog reset */ +static unsigned long int
twl_i2c_lock;Are you sure you want to use global vars for these? These won't work before reloc!
Quoted 5 lines
Quoted 2 lines
Why it does not work before reloc? U-Boot is on n900 always started from RAM.
The BSS isn't cleared though.
So how to fix it? I need to share these vars in more functions.
Quoted 23 lines
Quoted 15 lines
Quoted 9 lines
board/nokia/rx51/rx51.c line 519
Quoted 7 lines
board/nokia/rx51/rx51.c new file +7
-0+ +static u8 keys[8 ]; +static u8 old_keys[8 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }; +#define KEYBUF_SIZE 32 +static u8 keybuf[KEYBUF_SIZE ]; +static u8 keybuf_head; +static u8 keybuf_tail;How much of this can be made const ?
Nothing. All is for keyboard and is changed by keyboard functions (tstc, getc)
Quoted 2 lines
This magic needs at least _some_ documentation.
Quoted 8 lines
Quoted 4 lines
board/nokia/rx51/rx51.c line 557
Quoted 4 lines
(quoted diff) +1
-0+ if (!(mods & 2) && (k == 18 || k == 31 || k == 33 || k==
34)) { + /* cursor keys, without fn */board/nokia/rx51/rx51.c new file +1
-0+ keybuf[keybuf_tail++] ='\e' ;there is "cursor keys without fn" (fn is "meta" key on n900). So this condition check if some cursor key (without fn) was pressed.
Quoted 2 lines
Good, document it.
Ok.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121016/686e9247/attachment.pgp>
PATCH v3 5/5 New board support: Nokia RX-51 aka N900
Dear Pali Roh?r,
[...]
Quoted 6 lines
Quoted 4 lines
Quoted 1 line
Reason? ++i and i++ are same (for this situation).
On arm, yes, on intel, no in certain cases. Also, to keep the code consistent, go with postdecrement.
What is different on intel (without assigning value of i)?
IIRC the prefetch behaves differently. Ccing Graeme, but this might be a question to the GCC guys.
Quoted 34 lines
Quoted 11 lines
Quoted 11 lines
Quoted 2 lines
Quoted 2 lines
(quoted diff) +1
-0+ /* append omap atag only if env setup_omap_atag is setto
1
Quoted 5 lines
board/nokia/rx51/rx51.c line 249
Quoted 2 lines
*/ + str =
getenv("setup_omap_atag");board/nokia/rx51/rx51.c new file +1
-0+if (!str ||strcmp (str,"1" ) !=0 )str[0] == '1' ? But still, you only want to check if it's defined, no?
Quoted 3 lines
Quoted 1 line
Hm, I'm checking if
setup_omap_atagis 1. But is it problem?Then why not str[0] == '1' ?
Ok.
Quoted 17 lines
Quoted 17 lines
Quoted 16 lines
board/nokia/rx51/rx51.c line 333
Quoted 13 lines
+/*
+ * Routine:twl4030_regulator_set_mode
+ * Description: Set twl4030 regulator mode over i2c powerbus.
+ */board/nokia/rx51/rx51.c new file +6
-0+static void twl4030_regulator_set_mode (u8 id,u8 mode) +{ +u16 msg =MSG_SINGULAR (DEV_GRP_P1 , id, mode); +twl4030_i2c_write_u8 (TWL4030_CHIP_PM_MASTER , msg >>8 , +TWL4030_PM_MASTER_PB_WORD_MSB ); + twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, msg &
0xff,board/nokia/rx51/rx51.c new file +1
-0+ TWL4030_PM_MASTER_PB_WORD_LSB);Uh, is this somehow special that you can't do longer transfer?
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
I do not know how, because registers are different (MSB and LSB).
Investigate ;-)
I think it is not possible. Registers are in bad order. (So on some high endian system it could be possible)
High endian :-)
Quoted 3 lines
Also in linux twl regulator driver is used two calls see:
https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=driv
ers/regulator/twl- regulator.c;hb=HEAD#l327
ok
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
Quoted 3 lines
(quoted diff) +2
-0+ +static unsigned long int twl_wd_time; /* last time ofwatchdog reset */ +static unsigned long int
twl_i2c_lock;Are you sure you want to use global vars for these? These won't work before reloc!
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines
Why it does not work before reloc? U-Boot is on n900 always started from RAM.
The BSS isn't cleared though.
So how to fix it? I need to share these vars in more functions.
Make a struct and pass it around? Or if it's used only _after_ relocation, these will work.
Quoted 27 lines
Quoted 24 lines
Quoted 15 lines
Quoted 9 lines
board/nokia/rx51/rx51.c line 519
Quoted 7 lines
board/nokia/rx51/rx51.c new file +7
-0+ +static u8 keys[8 ]; +static u8 old_keys[8 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }; +#define KEYBUF_SIZE 32 +static u8 keybuf[KEYBUF_SIZE ]; +static u8 keybuf_head; +static u8 keybuf_tail;How much of this can be made const ?
Nothing. All is for keyboard and is changed by keyboard functions (tstc, getc)
Quoted 2 lines
This magic needs at least _some_ documentation.
Quoted 8 lines
Quoted 4 lines
board/nokia/rx51/rx51.c line 557
Quoted 4 lines
(quoted diff) +1
-0+ if (!(mods & 2) && (k == 18 || k == 31 || k == 33 || k==
34)) { + /* cursor keys, without fn */board/nokia/rx51/rx51.c new file +1
-0+ keybuf[keybuf_tail++] ='\e' ;there is "cursor keys without fn" (fn is "meta" key on n900). So this condition check if some cursor key (without fn) was pressed.
Quoted 1 line
Good, document it.
Ok.
PATCH v3 5/5 New board support: Nokia RX-51 aka N900
Quoted 15 lines · On Tuesday 16 October 2012 17:57:09 Marek Vasut wrote:
Quoted 15 lines
Quoted 15 lines
Quoted 14 lines
Quoted 10 lines
Quoted 6 lines
(quoted diff) +2
-0+ +static unsigned long int twl_wd_time; /* last timeof
watchdog reset */ +static unsigned long inttwl_i2c_lock;Are you sure you want to use global vars for these? These
won't work before reloc!Why it does not work before reloc? U-Boot is on n900 always
started from RAM.
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
The BSS isn't cleared though.
So how to fix it? I need to share these vars in more functions.
Make a struct and pass it around? Or if it's used only _after_ relocation, these will work.
It is used for keyboard input (tstc, getc) and watchdog reset. All functions are global for uboot, so parameters are fixed. Keyboard input is initialized in console_init_r.
I tested U-Boot on real N900 and in qemu N900 and both watchdog kicking & keyboard input worked without problem.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121016/c19d863d/attachment.pgp>
v4 cover Nokia RX-51 support
In reply to Pali RohárThis patch series add support for new board Nokia RX-51 (aka N900). This patch series supersedes version v3.
Pali Roh?r (5):
arm bootm: Allow to pass board specified atags
arm bootm: Do not append zero ATAG_MEM
Add power bus message definitions in twl4030.h
cfb_console: Add support for some ANSI terminal escape codes New board support: Nokia RX-51 aka N900
MAINTAINERS | 4 + README | 3 + arch/arm/include/asm/setup.h | 5 + arch/arm/lib/bootm.c | 7 + board/nokia/rx51/Makefile | 46 +++ board/nokia/rx51/lowlevel_init.S | 209 ++++++++++++ board/nokia/rx51/rx51.c | 679 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 389 ++++++++++++++++++++++ board/nokia/rx51/tag_omap.h | 311 +++++++++++++++++ boards.cfg | 1 + doc/README.nokia_rx51 | 104 ++++++ drivers/video/cfb_console.c | 313 +++++++++++++++++- include/configs/nokia_rx51.h | 450 +++++++++++++++++++++++++ include/twl4030.h | 98 ++++++ 14 files changed, 2610 insertions(+), 9 deletions(-) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 board/nokia/rx51/tag_omap.h create mode 100644 doc/README.nokia_rx51 create mode 100644 include/configs/nokia_rx51.h
Signature · 1 line
1.7.9.5
PATCH v4 1/5 arm bootm: Allow to pass board specified atags
Board can implement function setup_board_tags which is used for adding atags
---
Changes in v4:
- Added commit message
- Use __weak instead gcc attribute
arch/arm/include/asm/setup.h | 5 +++++ arch/arm/lib/bootm.c | 4 ++++ 2 files changed, 9 insertions(+)
arch/arm/include/asm/setup.h +5 -0
@@ -267,3 +267,8 @@ struct meminfo {extern struct meminfo meminfo;#endif + +/* +* Board specified tags +*/ +void setup_board_tags (struct tag **in_params);
arch/arm/lib/bootm.c +4 -0
@@ -34,6 +34,7 @@#include <libfdt.h> #include <fdt_support.h> #include <asm/bootm.h> +#include <linux/compiler.h> DECLARE_GLOBAL_DATA_PTR ;
@@ -266,6 +267,8 @@ static int create_fdt(bootm_headers_t *images) }#endif +__weak void setup_board_tags (struct tag **in_params) {} +/* Subcommand: PREP */ static void boot_prep_linux (bootm_headers_t *images) {
@@ -307,6 +310,7 @@ static void boot_prep_linux(bootm_headers_t *images)setup_initrd_tag (gd->bd, images->rd_start, images->rd_end);#endif +setup_board_tags (¶ms);setup_end_tag (gd->bd);#else /* all tags */ printf ("FDT and ATAGS support not compiled in - hanging\n" );
Signature · 1 line
1.7.9.5
PATCH v4 2/5 arm bootm: Do not append zero ATAG_MEM
In reply to Pali RohárIf dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in ATAG_MEM.
---
Changes in v4:
- No changes
arch/arm/lib/bootm.c | 3 +++ 1 file changed, 3 insertions(+)
arch/arm/lib/bootm.c +3 -0
@@ -133,6 +133,9 @@ static void setup_memory_tags(bd_t *bd)int i;for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ; + params->hdr.tag =ATAG_MEM ; params->hdr.size =tag_size (tag_mem32);
Signature · 1 line
1.7.9.5
PATCH v4 2/5 arm bootm: Do not append zero ATAG_MEM
Dear Pali Roh?r,
Quoted 7 lines
If dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in
ATAG_MEM.Signed-off-by Pali Roh?r <[email protected]>---
Changes in v4:
- No changes
Did we not discuss this patch?
Quoted 8 lines
arch/arm/lib/bootm.c | 3 +++ 1 file changed, 3 insertions(+)arch/arm/lib/bootm.c +0
-0
arch/arm/lib/bootm.c static void setup_memory_tags(bd_t *bd) · line 140
Quoted 8 lines
arch/arm/lib/bootm.c +3
-0@@ -133,6 +133,9 @@ static void setup_memory_tags(bd_t *bd)int i;for (i =0 ; i <CONFIG_NR_DRAM_BANKS ; i++) { +if (bd->bi_dram[i].size ==0 ) +continue ; + params->hdr.tag =ATAG_MEM ; params->hdr.size =tag_size (tag_mem32);
Best regards,
Marek Vasut
PATCH v4 2/5 arm bootm: Do not append zero ATAG_MEM
Quoted 6 lines · On Saturday 20 October 2012 11:34:20 Marek Vasut wrote:
Dear Pali Roh?r,
Quoted 4 lines
If dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in
ATAG_MEM.
Quoted 8 lines
Quoted 5 lines
Signed-off-by Pali Roh?r <[email protected]>---
Changes in v4:
- No changesDid we not discuss this patch?
Yes, but there was no change, see:
http://www.mail-archive.com/u-boot at lists.denx.de/msg96706.html
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121020/d501fe14/attachment.pgp>
PATCH v4 2/5 arm bootm: Do not append zero ATAG_MEM
Quoted 10 lines · Pali Roh?r
Quoted 9 lines · On Saturday 20 October 2012 11:34:20 Marek Vasut wrote:
Dear Pali Roh??r,
Quoted 7 lines
If dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in
ATAG_MEM.Signed-off-by Pali Roh??r <[email protected]>---
Quoted 8 lines
Quoted 5 lines
Quoted 2 lines
Changes in v4:
- No changesDid we not discuss this patch?
Yes, but there was no change, see:
http://www.mail-archive.com/u-boot at lists.denx.de/msg96706.html
I'm sorry if I wasn't clear then. This change should not be needed as N900 should simply always say 1 bank and the correct total memory size of all populated memory banks. Is the problem that in the ATAGs we're re-using we have a zero-size memory ATAG?
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121026/0f313470/attachment.pgp>
PATCH v4 2/5 arm bootm: Do not append zero ATAG_MEM
In reply to Pali RohárQuoted 4 lines · Pali Roh??r
If dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in
ATAG_MEM.Signed-off-by Pali Roh??r <[email protected]>
My reading of the kernel's arm_add_memory says that empty ATAG_MEM tags are handled correctly (which is to say, parsed and found as -EINVAL). So if we _have_to_ we can add this change.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121026/843069da/attachment.pgp>
PATCH v4 2/5 arm bootm: Do not append zero ATAG_MEM
Dear Tom Rini,
Quoted 10 lines · Pali Roh??r
Quoted 5 lines
If dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in
ATAG_MEM.Signed-off-by Pali Roh??r <[email protected]>My reading of the kernel's
arm_add_memorysays that emptyATAG_MEMtags are handled correctly (which is to say, parsed and found as-EINVAL). So if we _have_to_ we can add this change.
I don't think we _have_to_ ...
Best regards,
Marek Vasut
PATCH v4 2/5 arm bootm: Do not append zero ATAG_MEM
Quoted 7 lines · Marek Vasut
Dear Tom Rini,
Quoted 5 lines · Pali Roh??r
Quoted 4 lines
If dram bank size is calculated at runtime, it can be zero on some boards. This patch added code which ignore these zero bank size in
ATAG_MEM.
Quoted 7 lines
Quoted 5 lines
Quoted 1 line
Signed-off-by Pali Roh??r <[email protected]>My reading of the kernel's
arm_add_memorysays that emptyATAG_MEMtags are handled correctly (which is to say, parsed and found as-EINVAL). So if we _have_to_ we can add this change.I don't think we _have_to_ ...
Indeed. After talking with Pali on irc some more and checking things again, we can simply drop this patch. Other platforms pass 0 size ATAG_MEM to the kernel and have for ages, so it's handled.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121029/22692ff9/attachment.pgp>
PATCH v4 3/5 Add power bus message definitions in twl4030.h
In reply to Pali Rohár* Code copied from linux kernel 3.0.0 from file include/linux/i2c/twl.h
* commit 6523b148b44be38d89c2ee9865d34da30d9f5f1c
---
Changes in v4:
- Added commit id to commit message
include/twl4030.h | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+)
include/twl4030.h +98 -0
@@ -151,6 +151,103 @@#define TWL4030_PM_MASTER_SW_EVENTS_DEVSLP (1 << 1)#define TWL4030_PM_MASTER_SW_EVENTS_DEVOFF (1 << 0) +/* Power bus message definitions */ + +/* The TWL4030/5030 splits its power-management resources (the various +* regulators, clock and reset lines) into 3 processor groups - P1, P2 and +* P3. These groups can then be configured to transition between sleep, wait-on +* and active states by sending messages to the power bus. See Section 5.4.2 +* Power Resources of TWL4030 TRM +*/ + +/* Processor groups */ +#define DEV_GRP_NULL 0x0 +#define DEV_GRP_P1 0x1/* P1: all OMAP devices */ +#define DEV_GRP_P2 0x2/* P2: all Modem devices */ +#define DEV_GRP_P3 0x4/* P3: all peripheral devices */ + +/* Resource groups */ +#define RES_GRP_RES 0x0/* Reserved */ +#define RES_GRP_PP 0x1/* Power providers */ +#define RES_GRP_RC 0x2/* Reset and control */ +#define RES_GRP_PP_RC 0x3 +#define RES_GRP_PR 0x4/* Power references */ +#define RES_GRP_PP_PR 0x5 +#define RES_GRP_RC_PR 0x6 +#define RES_GRP_ALL 0x7/* All resource groups */ + +#define RES_TYPE2_R0 0x0 + +#define RES_TYPE_ALL 0x7 + +/* Resource states */ +#define RES_STATE_WRST 0xF +#define RES_STATE_ACTIVE 0xE +#define RES_STATE_SLEEP 0x8 +#define RES_STATE_OFF 0x0 + +/* Power resources */ + +/* Power providers */ +#define RES_VAUX1 1 +#define RES_VAUX2 2 +#define RES_VAUX3 3 +#define RES_VAUX4 4 +#define RES_VMMC1 5 +#define RES_VMMC2 6 +#define RES_VPLL1 7 +#define RES_VPLL2 8 +#define RES_VSIM 9 +#define RES_VDAC 10 +#define RES_VINTANA1 11 +#define RES_VINTANA2 12 +#define RES_VINTDIG 13 +#define RES_VIO 14 +#define RES_VDD1 15 +#define RES_VDD2 16 +#define RES_VUSB_1V5 17 +#define RES_VUSB_1V8 18 +#define RES_VUSB_3V1 19 +#define RES_VUSBCP 20 +#define RES_REGEN 21 +/* Reset and control */ +#define RES_NRES_PWRON 22 +#define RES_CLKEN 23 +#define RES_SYSEN 24 +#define RES_HFCLKOUT 25 +#define RES_32KCLKOUT 26 +#define RES_RESET 27 +/* Power Reference */ +#define RES_Main_Ref 28 + +#define TOTAL_RESOURCES 28 +/* +* Power Bus Message Format ... these can be sent individually by Linux, +* but are usually part of downloaded scripts that are run when various +* power events are triggered. +* +* Broadcast Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_GRP[11:9] RES_TYPE2[8:7] RES_TYPE[6:4] +* RES_STATE[3:0] +* +* Singular Message (16 Bits): +* DEV_GRP[15:13] MT[12] RES_ID[11:4] RES_STATE[3:0] +*/ + +#define MSG_BROADCAST (devgrp, grp, type, type2, state) \ + ((devgrp) << 13 | 1 << 12 | (grp) << 9 | (type2) << 7 \ + | (type) << 4 | (state)) + +#define MSG_SINGULAR (devgrp, id, state) \ + ((devgrp) << 13 | 0 << 12 | (id) << 4 | (state)) + +#define MSG_BROADCAST_ALL (devgrp, state) \ + ((devgrp) << 5 | (state)) + +#define MSG_BROADCAST_REF MSG_BROADCAST_ALL +#define MSG_BROADCAST_PROV MSG_BROADCAST_ALL +#define MSG_BROADCAST__CLK_RST MSG_BROADCAST_ALL +/* Power Managment Receiver */ #define TWL4030_PM_RECEIVER_SC_CONFIG 0x5B#define TWL4030_PM_RECEIVER_SC_DETECT1 0x5C
@@ -311,6 +408,7 @@#define TWL4030_PM_RECEIVER_VDAC_VSEL_18 0x03#define TWL4030_PM_RECEIVER_VMMC1_VSEL_30 0x02#define TWL4030_PM_RECEIVER_VMMC1_VSEL_32 0x03 +#define TWL4030_PM_RECEIVER_VSIM_VSEL_18 0x03/* Device Selection in PM Receiver Module */ #define TWL4030_PM_RECEIVER_DEV_GRP_P1 0x20
Signature · 1 line
1.7.9.5
PATCH v4 4/5 cfb_console: Add support for some ANSI terminal escape codes
In reply to Pali Rohár * This patch add support for move cursor, reverse colors and clear console via ANSI espace codes in cfb_console driver
* ANSI escape codes can be enabled/disabled via CONFIG_CFB_CONSOLE_ANSI
---
Changes in v4:
- No changes
Changes in v3:
- Fixed multiline comments
Changes in v2:
- Added support ANSI code show/hide cursor
- Added info to README
Changes since original version:
- Fixed commit message
README | 3 + drivers/video/cfb_console.c | 313 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 307 insertions(+), 9 deletions(-)
README +3 -0
@@ -655,6 +655,9 @@ The following options need to be configured: additional board info beside the logo + When CONFIG_CFB_CONSOLE_ANSI is defined, console will have + ANSI terminal support. Needed for CONFIG_CMDLINE_EDITING. + When CONFIG_CFB_CONSOLE is defined, video console is default i/o. Serial console can be forced with environment 'console=serial'.
drivers/video/cfb_console.c +304 -9
376 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v5 4/5 cfb_console: Add support for some ANSI terminal escape codes
From: Pali Roh?r <[email protected]>
Add optional support for some ANSI escape sequences to the cfb_console driver. Define CONFIG_CFB_CONSOLE_ANSI to enable cursor moving, color reverting and clearing the cfb console via ANSI escape codes.
---
Changes in v5:
- do not init global ansi_buf[]
- cleanup build warnings shown when compiling without CONFIG_CFB_CONSOLE_ANSI
- reorder some functions and put them under ANSI support ifdef
- revise commit log and description in README
- fix typos and some minor style issues
README | 4 + drivers/video/cfb_console.c | 328 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 323 insertions(+), 9 deletions(-)
README +4 -0
@@ -655,6 +655,10 @@ The following options need to be configured: additional board info beside the logo + When CONFIG_CFB_CONSOLE_ANSI is defined, console will support + a limited number of ANSI escape sequences (cursor control, + erase functions and limited graphics rendition control). + When CONFIG_CFB_CONSOLE is defined, video console is default i/o. Serial console can be forced with environment 'console=serial'.
drivers/video/cfb_console.c +319 -9
377 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH v5 4/5 cfb_console: Add support for some ANSI terminal escape codes
Quoted 9 lines · On Saturday 20 October 2012 01:30:09 Anatolij Gustschin wrote:
From: Pali Roh?r <[email protected]>
Add optional support for some ANSI escape sequences to the
cfb_consoledriver. DefineCONFIG_CFB_CONSOLE_ANSIto enable cursor moving, color reverting and clearing the cfb console via ANSI escape codes.Signed-off-by Pali Roh?r <[email protected]>Signed-off-by Anatolij Gustschin <[email protected]>
Quoted 9 lines
---
Changes in v5:
- do not init global ansi_buf[]
- cleanup build warnings shown when compiling withoutCONFIG_CFB_CONSOLE_ANSI- reorder some functions and put them under ANSI support ifdef - revise commit log and description in README
- fix typos and some minor style issues
I tested v5 and for rx51 working fine.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121023/30f7361e/attachment.pgp>
PATCH v4 4/5 cfb_console: Add support for some ANSI terminal escape codes
In reply to Pali RohárHi,
On Fri, 19 Oct 2012 14:00:07 +0200
Pali Roh?r <[email protected]> wrote:
...
README The following options need to be configured: · line 659
Quoted 2 lines
README +2
-0+ When CONFIG_CFB_CONSOLE_ANSI is defined, console will have + ANSI terminal support. Needed for CONFIG_CMDLINE_EDITING.
What do you mean here? Doesn't command line editing work without ANSI support in cfb?
drivers/video/cfb_console.c static u32 eorx, fgx, bgx; /* color pats */ · line 388
Quoted 13 lines
README +1
-0+ When CONFIG_CFB_CONSOLE is defined, video console is default i/o. Serial console can be forced with environment 'console=serial'.drivers/video/cfb_console.c +1
-0@@ -385,6 +385,11 @@ static u32 eorx, fgx, bgx; /* color pats */static int cfb_do_flush_cache; +static char ansi_buf[10 ] = {0 , };
initialisation is not needed here. I've fixed some issues with this patch, please test v5.
Thanks,
Anatolij
PATCH v4 4/5 cfb_console: Add support for some ANSI terminal escape codes
Quoted 7 lines · On Saturday 20 October 2012 01:38:14 Anatolij Gustschin wrote:
Hi,
On Fri, 19 Oct 2012 14:00:07 +0200
Pali Roh?r <[email protected]> wrote:
...Review
Quoted 1 line
(quoted diff) +1
-0+ When CONFIG_CFB_CONSOLE_ANSI is defined, console will
have
Quoted 1 line
Review
Quoted 1 line
(quoted diff) +1
-0+ ANSI terminal support. Needed for
CONFIG_CMDLINE_EDITING.
Quoted 4 lines
What do you mean here? Doesn't command line editing work without ANSI support in cfb?
CONFIG_CMDLINE_EDITING using ansi escape codes, so in cfb it not working without CONFIG_CFB_CONSOLE_ANSI.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121023/e51411d1/attachment.pgp>
PATCH v4 5/5 New board support: Nokia RX-51 aka N900
In reply to Pali RohárThis patch adding support for new board Nokia RX-51 (N900).
Based on previous work by: Alistair Buxton <[email protected]>
---
Changes in v4:
- Fixed MAINTAINERS
- Added default to switches
- Added some documentation to code
- Optimize indent depth
- Using __stringify
Changes in v3:
- Added documentation in doc/README.nokia_rx51
- Updated MAINTAINERS
- Fixed Fix omap_mmc_init
- Code for errata 430973 workaround
- Added board specified atag support
- Generate omap atag table instead reusing from NOLO
- Load bootmenu.src always
- Enabled ext4 support
- Fixed comments
- Reserve protected RAM for attached kernel
- Rewritten assembler code in lowlevel_init.S
- Reset lp5523 led on init
Changes in v2:
- Set correct configs for Memory Map
- Enable passing memory tag to kernel atags
- Use gpio input command for detecting keyboard slide
- Restore powerbus state after calling twl4030 regulator code
- Renamed command noloboot to attachboot
- Atag address must be always 0x80000100, removed code from lowlevel
- Added usb vendor, product id and product name
- Enabled command line editing
- Fixed keymap and cursor keys
Changes since original version:
- Removed Makefile targets: clean and distclean
- Rewrited bootcommand and env variables in nokia_rx51.h
- Removed useless CONFIG defines in nokia_rx51.h
- Disable L2 cache with CONFIG_SYS_L2CACHE_OFF - fixed battery draining
- Added onenand support (default disabled due to big u-boot size)
- Moved inlined asm code to new file lowlevel_init.S
- Fixed commit message
MAINTAINERS | 4 + board/nokia/rx51/Makefile | 46 +++ board/nokia/rx51/lowlevel_init.S | 209 ++++++++++++ board/nokia/rx51/rx51.c | 679 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 389 ++++++++++++++++++++++ board/nokia/rx51/tag_omap.h | 311 +++++++++++++++++ boards.cfg | 1 + doc/README.nokia_rx51 | 104 ++++++ include/configs/nokia_rx51.h | 450 +++++++++++++++++++++++++ 9 files changed, 2193 insertions(+) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 board/nokia/rx51/tag_omap.h create mode 100644 doc/README.nokia_rx51 create mode 100644 include/configs/nokia_rx51.h
MAINTAINERS +4 -0
@@ -1009,6 +1009,10 @@ Nobuhiro Iwamatsu <[email protected]> armadillo-800eva R8A7740 (RMOBILE SoC) +Pali Roh?r <[email protected]> + + nokia_rx51 ARM ARMV7 (OMAP34xx SoC) + ------------------------------------------------------------------------- Unknown / orphaned boards:
board/nokia/rx51/Makefile new file +46 -0
46 lines not on this page · raw message
board/nokia/rx51/lowlevel_init.S new file +209 -0
209 lines not on this page · raw message
board/nokia/rx51/rx51.c new file +679 -0
679 lines not on this page · raw message
board/nokia/rx51/rx51.h new file +389 -0
389 lines not on this page · raw message
board/nokia/rx51/tag_omap.h new file +311 -0
311 lines not on this page · raw message
boards.cfg +1 -0
@@ -264,6 +264,7 @@ devkit8000 arm armv7 devkit8000 timll mcx arm armv7 mcx htkw omap3 tricorder arm armv7 tricorder corscience omap3 twister arm armv7 twister technexion omap3 +nokia_rx51 arm armv7 rx51 nokia omap3 omap4_panda arm armv7 panda ti omap4 omap4_sdp4430 arm armv7 sdp4430 ti omap4 omap5_evm arm armv7 omap5_evm ti omap5
doc/README.nokia_rx51 new file +104 -0
104 lines not on this page · raw message
include/configs/nokia_rx51.h new file +450 -0
450 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v4 5/5 New board support: Nokia RX-51 aka N900
Hi Pali Roh?r,
Quoted 7 lines · Pali Roh?r
This patch adding support for new board Nokia RX-51 (N900).
Based on previous work by: Alistair Buxton <[email protected]>
Signed-off-by Pali Roh?r <[email protected]>Cc ?????? ???????? <[email protected]>---
[...]
Quoted 5 lines
board/nokia/rx51/rx51.c new file +0
-0
[...]
board/nokia/rx51/rx51.c line 216
Quoted 9 lines
board/nokia/rx51/rx51.c new file +9
-0+/* +* Routine: board_init +* Description: Early hardware init. +*/ +int board_init (void ) +{ +gpmc_init ();/* in SRAM or SDRAM, finish GPMC */ +/* board id for Linux */ + gd->bd->bi_arch_number =MACH_TYPE_NOKIA_RX51 ;
This should be specified in the board config file (see CONFIG_MACH_TYPE in README), unless, you have multiple board types supported in the same board file/binary (which does not look like the case here) and it is runtime detectable.
Quoted 5 lines
board/nokia/rx51/rx51.c new file +5
-0+/* boot param addr */ + gd->bd->bi_boot_params =OMAP34XX_SDRC_CS0 +0x100 ; + +return 0 ; +}
[...]
Signature · 2 lines
Regards, Igor.
PATCH v4 5/5 New board support: Nokia RX-51 aka N900
Quoted 17 lines · On Tuesday 23 October 2012 09:20:39 Igor Grinberg wrote:
board/nokia/rx51/rx51.c line 216
Quoted 10 lines
board/nokia/rx51/rx51.c new file +9
-0+/* +* Routine: board_init +* Description: Early hardware init. +*/ +int board_init (void ) +{ +gpmc_init ();/* in SRAM or SDRAM, finish GPMC */ +/* board id for Linux */ + gd->bd->bi_arch_number =MACH_TYPE_NOKIA_RX51 ;This should be specified in the board config file (see
CONFIG_MACH_TYPEin README), unless, you have multiple board types supported in the same board file/binary (which does not look like the case here) and it is runtime detectable.
I sent new version of this patch.
Signature · 9 lines
Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121029/6caa927d/attachment.pgp>
PATCH v5 5/5 New board support: Nokia RX-51 aka N900
In reply to Pali RohárBased on previous work by: Alistair Buxton <[email protected]>
---
Changes in v5:
- Define CONFIG_MACH_TYPE in config file
- Remove gd->bd->bi_arch_number from board code
Changes in v4:
- Fixed MAINTAINERS
- Added default to switches
- Added some documentation to code
- Optimize indent depth
- Using __stringify
Changes in v3:
- Added documentation in doc/README.nokia_rx51
- Updated MAINTAINERS
- Fixed Fix omap_mmc_init
- Code for errata 430973 workaround
- Added board specified atag support
- Generate omap atag table instead reusing from NOLO
- Load bootmenu.src always
- Enabled ext4 support
- Fixed comments
- Reserve protected RAM for attached kernel
- Rewritten assembler code in lowlevel_init.S
- Reset lp5523 led on init
Changes in v2:
- Set correct configs for Memory Map
- Enable passing memory tag to kernel atags
- Use gpio input command for detecting keyboard slide
- Restore powerbus state after calling twl4030 regulator code
- Renamed command noloboot to attachboot
- Atag address must be always 0x80000100, removed code from lowlevel
- Added usb vendor, product id and product name
- Enabled command line editing
- Fixed keymap and cursor keys
Changes since original version:
- Removed Makefile targets: clean and distclean
- Rewrited bootcommand and env variables in nokia_rx51.h
- Removed useless CONFIG defines in nokia_rx51.h
- Disable L2 cache with CONFIG_SYS_L2CACHE_OFF - fixed battery draining
- Added onenand support (default disabled due to big u-boot size)
- Moved inlined asm code to new file lowlevel_init.S
- Fixed commit message
MAINTAINERS | 4 + board/nokia/rx51/Makefile | 46 +++ board/nokia/rx51/lowlevel_init.S | 209 ++++++++++++ board/nokia/rx51/rx51.c | 677 ++++++++++++++++++++++++++++++++++++++ board/nokia/rx51/rx51.h | 389 ++++++++++++++++++++++ board/nokia/rx51/tag_omap.h | 311 +++++++++++++++++ boards.cfg | 1 + doc/README.nokia_rx51 | 104 ++++++ include/configs/nokia_rx51.h | 452 +++++++++++++++++++++++++ 9 files changed, 2193 insertions(+) create mode 100644 board/nokia/rx51/Makefile create mode 100644 board/nokia/rx51/lowlevel_init.S create mode 100644 board/nokia/rx51/rx51.c create mode 100644 board/nokia/rx51/rx51.h create mode 100644 board/nokia/rx51/tag_omap.h create mode 100644 doc/README.nokia_rx51 create mode 100644 include/configs/nokia_rx51.h
MAINTAINERS +4 -0
@@ -1009,6 +1009,10 @@ Nobuhiro Iwamatsu <[email protected]> armadillo-800eva R8A7740 (RMOBILE SoC) +Pali Roh?r <[email protected]> + + nokia_rx51 ARM ARMV7 (OMAP34xx SoC) + ------------------------------------------------------------------------- Unknown / orphaned boards:
board/nokia/rx51/Makefile new file +46 -0
46 lines not on this page · raw message
board/nokia/rx51/lowlevel_init.S new file +209 -0
209 lines not on this page · raw message
board/nokia/rx51/rx51.c new file +677 -0
677 lines not on this page · raw message
board/nokia/rx51/rx51.h new file +389 -0
389 lines not on this page · raw message
board/nokia/rx51/tag_omap.h new file +311 -0
311 lines not on this page · raw message
boards.cfg +1 -0
@@ -264,6 +264,7 @@ devkit8000 arm armv7 devkit8000 timll mcx arm armv7 mcx htkw omap3 tricorder arm armv7 tricorder corscience omap3 twister arm armv7 twister technexion omap3 +nokia_rx51 arm armv7 rx51 nokia omap3 omap4_panda arm armv7 panda ti omap4 omap4_sdp4430 arm armv7 sdp4430 ti omap4 omap5_evm arm armv7 omap5_evm ti omap5
doc/README.nokia_rx51 new file +104 -0
104 lines not on this page · raw message
include/configs/nokia_rx51.h new file +452 -0
452 lines not on this page · raw message
Signature · 1 line
1.7.10.4
PATCH v5 5/5 New board support: Nokia RX-51 aka N900
Quoted 4 lines · Pali Roh??r
Based on previous work by: Alistair Buxton <[email protected]>
Signed-off-by Pali Roh??r <[email protected]>Cc ???????????? ???????????????? <[email protected]>
This, along with the latest versions of the rest of the series are now applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121102/af7ad927/attachment.pgp>