* [U-Boot] serial: CONFIG_ARM_DCC_MULTI failures
@ 2013-01-23 9:40 Michal Simek
2013-01-23 9:40 ` [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option Michal Simek
2013-01-23 9:40 ` [U-Boot] [PATCH 2/2] serial: arm_dcc: Fix compilation warning and remove unneeded initialization Michal Simek
0 siblings, 2 replies; 9+ messages in thread
From: Michal Simek @ 2013-01-23 9:40 UTC (permalink / raw)
To: u-boot
Hi Marek and others,
I have found that in uboot is arm-dcc driver (drivers/serial/arm_dcc.c)
which is
1. not compiled by any configuration
2. when it is enabled is causing compilation failures because of SERIAL_MULTI removal
The problem is with this code.
#ifndef CONFIG_ARM_DCC_MULTI
#define arm_dcc_init serial_init
void serial_setbrg(void) {}
#define arm_dcc_getc serial_getc
#define arm_dcc_putc serial_putc
#define arm_dcc_puts serial_puts
#define arm_dcc_tstc serial_tstc
#endif
It means that CONFIG_ARM_DCC_MULTI should be always enabled and we
can remove this option entirely.
Then there is missing default_serial_console() if there is no
another serial driver.
Also I am sending the second patch which fix compilation warning.
Thanks,
Michal
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option
2013-01-23 9:40 [U-Boot] serial: CONFIG_ARM_DCC_MULTI failures Michal Simek
@ 2013-01-23 9:40 ` Michal Simek
2013-01-23 10:02 ` Wolfgang Denk
` (2 more replies)
2013-01-23 9:40 ` [U-Boot] [PATCH 2/2] serial: arm_dcc: Fix compilation warning and remove unneeded initialization Michal Simek
1 sibling, 3 replies; 9+ messages in thread
From: Michal Simek @ 2013-01-23 9:40 UTC (permalink / raw)
To: u-boot
CONFIG_ARM_DCC_MULTI should be also removed in the patch
"serial: Remove CONFIG_SERIAL_MULTI from serial drivers"
(sha1: a3827250606895ec2dd4b8d867342b7cabf3692f)
Because the driver defines serial_* functions
which cause conflict with serial.c (multiple definition of serial_*)
Removing CONFIG_SERIAL_MULTI function also require to define
default_serial_console for cases where another serial driver
is not available in the system.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
Error log:
serial.o: In function `serial_init':
/mnt/projects/u-boot/drivers/serial/serial.c:402: multiple definition of `serial_init'
arm_dcc.o:/mnt/projects/u-boot/drivers/serial/arm_dcc.c:104: first defined here
serial.o: In function `serial_setbrg':
/mnt/projects/u-boot/drivers/serial/serial.c:417: multiple definition of `serial_setbrg'
arm_dcc.o:/mnt/projects/u-boot/drivers/serial/arm_dcc.c:94: first defined here
serial.o: In function `serial_getc':
/mnt/projects/u-boot/drivers/serial/serial.c:433: multiple definition of `serial_getc'
arm_dcc.o:/mnt/projects/u-boot/drivers/serial/arm_dcc.c:112: first defined here
serial.o: In function `serial_tstc':
/mnt/projects/u-boot/drivers/serial/serial.c:448: multiple definition of `serial_tstc'
arm_dcc.o:/mnt/projects/u-boot/drivers/serial/arm_dcc.c:145: first defined here
serial.o: In function `serial_putc':
/mnt/projects/u-boot/drivers/serial/serial.c:464: multiple definition of `serial_putc'
arm_dcc.o:/mnt/projects/u-boot/drivers/serial/arm_dcc.c:124: first defined here
serial.o: In function `serial_puts':
/mnt/projects/u-boot/drivers/serial/serial.c:482: multiple definition of `serial_puts'
arm_dcc.o:/mnt/projects/u-boot/drivers/serial/arm_dcc.c:136: first defined here
The second error log:
/mnt/projects/u-boot/drivers/serial/serial.c:374: undefined reference to `default_serial_console'
drivers/serial/libserial.o: In function `serial_initialize':
---
common/stdio.c | 2 +-
drivers/serial/arm_dcc.c | 16 +++++-----------
include/stdio_dev.h | 2 +-
3 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/common/stdio.c b/common/stdio.c
index 97ff9cf..5d5117c 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -207,7 +207,7 @@ int stdio_init (void)
/* Initialize the list */
INIT_LIST_HEAD(&(devs.list));
-#ifdef CONFIG_ARM_DCC_MULTI
+#ifdef CONFIG_ARM_DCC
drv_arm_dcc_init ();
#endif
#if defined(CONFIG_HARD_I2C) || defined(CONFIG_SOFT_I2C)
diff --git a/drivers/serial/arm_dcc.c b/drivers/serial/arm_dcc.c
index 7b5ecb5..812dcf0 100644
--- a/drivers/serial/arm_dcc.c
+++ b/drivers/serial/arm_dcc.c
@@ -89,15 +89,6 @@
#define TIMEOUT_COUNT 0x4000000
-#ifndef CONFIG_ARM_DCC_MULTI
-#define arm_dcc_init serial_init
-void serial_setbrg(void) {}
-#define arm_dcc_getc serial_getc
-#define arm_dcc_putc serial_putc
-#define arm_dcc_puts serial_puts
-#define arm_dcc_tstc serial_tstc
-#endif
-
int arm_dcc_init(void)
{
return 0;
@@ -147,7 +138,6 @@ int arm_dcc_tstc(void)
return reg;
}
-#ifdef CONFIG_ARM_DCC_MULTI
static struct stdio_dev arm_dcc_dev;
int drv_arm_dcc_init(void)
@@ -167,4 +157,8 @@ int drv_arm_dcc_init(void)
return stdio_register(&arm_dcc_dev);
}
-#endif
+
+__weak struct serial_device *default_serial_console(void)
+{
+ return NULL;
+}
diff --git a/include/stdio_dev.h b/include/stdio_dev.h
index 932d093..9451740 100644
--- a/include/stdio_dev.h
+++ b/include/stdio_dev.h
@@ -99,7 +99,7 @@ struct list_head* stdio_get_list(void);
struct stdio_dev* stdio_get_by_name(const char* name);
struct stdio_dev* stdio_clone(struct stdio_dev *dev);
-#ifdef CONFIG_ARM_DCC_MULTI
+#ifdef CONFIG_ARM_DCC
int drv_arm_dcc_init(void);
#endif
#ifdef CONFIG_LCD
--
1.7.0.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/2] serial: arm_dcc: Fix compilation warning and remove unneeded initialization
2013-01-23 9:40 [U-Boot] serial: CONFIG_ARM_DCC_MULTI failures Michal Simek
2013-01-23 9:40 ` [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option Michal Simek
@ 2013-01-23 9:40 ` Michal Simek
2013-01-26 5:44 ` Marek Vasut
1 sibling, 1 reply; 9+ messages in thread
From: Michal Simek @ 2013-01-23 9:40 UTC (permalink / raw)
To: u-boot
- arm_dcc_dev is already initialized.
- Remove unused rc variable
Warning log:
arm_dcc.c: In function 'drv_arm_dcc_init':
arm_dcc.c:145:6: warning: unused variable 'rc' [-Wunused-variable]
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
drivers/serial/arm_dcc.c | 5 -----
1 files changed, 0 insertions(+), 5 deletions(-)
diff --git a/drivers/serial/arm_dcc.c b/drivers/serial/arm_dcc.c
index 812dcf0..c217c88 100644
--- a/drivers/serial/arm_dcc.c
+++ b/drivers/serial/arm_dcc.c
@@ -142,11 +142,6 @@ static struct stdio_dev arm_dcc_dev;
int drv_arm_dcc_init(void)
{
- int rc;
-
- /* Device initialization */
- memset(&arm_dcc_dev, 0, sizeof(arm_dcc_dev));
-
strcpy(arm_dcc_dev.name, "dcc");
arm_dcc_dev.ext = 0; /* No extensions */
arm_dcc_dev.flags = DEV_FLAGS_INPUT | DEV_FLAGS_OUTPUT;
--
1.7.0.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option
2013-01-23 9:40 ` [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option Michal Simek
@ 2013-01-23 10:02 ` Wolfgang Denk
2013-01-23 10:20 ` Michal Simek
2013-01-26 5:43 ` Marek Vasut
2013-02-04 16:40 ` [U-Boot] [U-Boot, " Tom Rini
2 siblings, 1 reply; 9+ messages in thread
From: Wolfgang Denk @ 2013-01-23 10:02 UTC (permalink / raw)
To: u-boot
Dear Michal Simek,
In message <1358934007-14928-2-git-send-email-michal.simek@xilinx.com> you wrote:
> CONFIG_ARM_DCC_MULTI should be also removed in the patch
> "serial: Remove CONFIG_SERIAL_MULTI from serial drivers"
> (sha1: a3827250606895ec2dd4b8d867342b7cabf3692f)
> Because the driver defines serial_* functions
> which cause conflict with serial.c (multiple definition of serial_*)
>
> Removing CONFIG_SERIAL_MULTI function also require to define
> default_serial_console for cases where another serial driver
> is not available in the system.
As you pointed out in the cover letter, CONFIG_ARM_DCC and
CONFIG_ARM_DCC_MULTI are nowhere defined in any mainline U-Boot code.
Instead of fixing and keeping the dead code, we should rather remove
the drivers/serial/arm_dcc.c driver and all references to
CONFIG_ARM_DCC*
If you want, I can prepare a cleanup patch.
Best regards,
Wolfgang Denk
--
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
Q: Do you know what the death rate around here is?
A: One per person.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option
2013-01-23 10:02 ` Wolfgang Denk
@ 2013-01-23 10:20 ` Michal Simek
0 siblings, 0 replies; 9+ messages in thread
From: Michal Simek @ 2013-01-23 10:20 UTC (permalink / raw)
To: u-boot
Dear Wolfgang Denk,
2013/1/23 Wolfgang Denk <wd@denx.de>:
> Dear Michal Simek,
>
> In message <1358934007-14928-2-git-send-email-michal.simek@xilinx.com> you wrote:
>> CONFIG_ARM_DCC_MULTI should be also removed in the patch
>> "serial: Remove CONFIG_SERIAL_MULTI from serial drivers"
>> (sha1: a3827250606895ec2dd4b8d867342b7cabf3692f)
>> Because the driver defines serial_* functions
>> which cause conflict with serial.c (multiple definition of serial_*)
>>
>> Removing CONFIG_SERIAL_MULTI function also require to define
>> default_serial_console for cases where another serial driver
>> is not available in the system.
>
> As you pointed out in the cover letter, CONFIG_ARM_DCC and
> CONFIG_ARM_DCC_MULTI are nowhere defined in any mainline U-Boot code.
> Instead of fixing and keeping the dead code, we should rather remove
> the drivers/serial/arm_dcc.c driver and all references to
> CONFIG_ARM_DCC*
>
> If you want, I can prepare a cleanup patch.
I have found that we are using this driver for one board.
That's why I prefer to keep this driver in the mainline and enabling
it for arm zynq.
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option
2013-01-23 9:40 ` [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option Michal Simek
2013-01-23 10:02 ` Wolfgang Denk
@ 2013-01-26 5:43 ` Marek Vasut
2013-01-28 10:52 ` Michal Simek
2013-02-04 16:40 ` [U-Boot] [U-Boot, " Tom Rini
2 siblings, 1 reply; 9+ messages in thread
From: Marek Vasut @ 2013-01-26 5:43 UTC (permalink / raw)
To: u-boot
Dear Michal Simek,
> CONFIG_ARM_DCC_MULTI should be also removed in the patch
> "serial: Remove CONFIG_SERIAL_MULTI from serial drivers"
> (sha1: a3827250606895ec2dd4b8d867342b7cabf3692f)
> Because the driver defines serial_* functions
> which cause conflict with serial.c (multiple definition of serial_*)
>
> Removing CONFIG_SERIAL_MULTI function also require to define
> default_serial_console for cases where another serial driver
> is not available in the system.
>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
I think it looks good.
Acked-by: Marek Vasut <marex@denx.de>
btw. did I by any chance became serial subsystem custodian without knowing about
it recently? ;-)
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/2] serial: arm_dcc: Fix compilation warning and remove unneeded initialization
2013-01-23 9:40 ` [U-Boot] [PATCH 2/2] serial: arm_dcc: Fix compilation warning and remove unneeded initialization Michal Simek
@ 2013-01-26 5:44 ` Marek Vasut
0 siblings, 0 replies; 9+ messages in thread
From: Marek Vasut @ 2013-01-26 5:44 UTC (permalink / raw)
To: u-boot
Dear Michal Simek,
> - arm_dcc_dev is already initialized.
> - Remove unused rc variable
> Warning log:
> arm_dcc.c: In function 'drv_arm_dcc_init':
> arm_dcc.c:145:6: warning: unused variable 'rc' [-Wunused-variable]
>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Marek Vasut <marex@denx.de>
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option
2013-01-26 5:43 ` Marek Vasut
@ 2013-01-28 10:52 ` Michal Simek
0 siblings, 0 replies; 9+ messages in thread
From: Michal Simek @ 2013-01-28 10:52 UTC (permalink / raw)
To: u-boot
2013/1/26 Marek Vasut <marex@denx.de>:
> Dear Michal Simek,
>
>> CONFIG_ARM_DCC_MULTI should be also removed in the patch
>> "serial: Remove CONFIG_SERIAL_MULTI from serial drivers"
>> (sha1: a3827250606895ec2dd4b8d867342b7cabf3692f)
>> Because the driver defines serial_* functions
>> which cause conflict with serial.c (multiple definition of serial_*)
>>
>> Removing CONFIG_SERIAL_MULTI function also require to define
>> default_serial_console for cases where another serial driver
>> is not available in the system.
>>
>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>
> I think it looks good.
>
> Acked-by: Marek Vasut <marex@denx.de>
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [U-Boot, 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option
2013-01-23 9:40 ` [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option Michal Simek
2013-01-23 10:02 ` Wolfgang Denk
2013-01-26 5:43 ` Marek Vasut
@ 2013-02-04 16:40 ` Tom Rini
2 siblings, 0 replies; 9+ messages in thread
From: Tom Rini @ 2013-02-04 16:40 UTC (permalink / raw)
To: u-boot
On Tue, Jan 22, 2013 at 11:40:06PM -0000, Michal Simek wrote:
> CONFIG_ARM_DCC_MULTI should be also removed in the patch
> "serial: Remove CONFIG_SERIAL_MULTI from serial drivers"
> (sha1: a3827250606895ec2dd4b8d867342b7cabf3692f)
> Because the driver defines serial_* functions
> which cause conflict with serial.c (multiple definition of serial_*)
>
> Removing CONFIG_SERIAL_MULTI function also require to define
> default_serial_console for cases where another serial driver
> is not available in the system.
>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> Acked-by: Marek Vasut <marex@denx.de>
Applied to u-boot/master (along with 2/2), thanks!
--
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/20130204/8c36ee2b/attachment.pgp>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-02-04 16:40 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-23 9:40 [U-Boot] serial: CONFIG_ARM_DCC_MULTI failures Michal Simek
2013-01-23 9:40 ` [U-Boot] [PATCH 1/2] serial: arm_dcc: Remove CONFIG_ARM_DCC_MULTI option Michal Simek
2013-01-23 10:02 ` Wolfgang Denk
2013-01-23 10:20 ` Michal Simek
2013-01-26 5:43 ` Marek Vasut
2013-01-28 10:52 ` Michal Simek
2013-02-04 16:40 ` [U-Boot] [U-Boot, " Tom Rini
2013-01-23 9:40 ` [U-Boot] [PATCH 2/2] serial: arm_dcc: Fix compilation warning and remove unneeded initialization Michal Simek
2013-01-26 5:44 ` Marek Vasut
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox