summaryrefslogtreecommitdiffstats
path: root/common/console.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'for-next/efi'Sascha Hauer2014-08-071-0/+29
|\ | | | | | | | | | | | | Conflicts: .gitignore Makefile drivers/serial/Makefile
| * console: Add puts callback to console devicesSascha Hauer2014-07-111-0/+29
| | | | | | | | | | | | | | | | Some devices may have a much more efficient way to output strings rather than single characters. Let console devices implement a callback for this. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | console: Allow persistent device namesSascha Hauer2014-07-111-2/+8
|/ | | | | | | | Add a devname field to struct console_device so that the device name can be set by the driver. This makes it possible to have persistent device names. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: Set Linux console parameter automaticallySascha Hauer2014-01-221-1/+28
| | | | | | | | | | | | | | | | | | | | | Linux specifies the linux,stdout-path property in the /chosen node in the devicetree. Unfortunately this is ignored in most cases. For cases in which barebox uses this property for its own use we translate this into a Linux boot arg with: - the console name provided by the serial driver - the the instance from the 'serial' alias - the baudrate from the actual baudrate. So with this it's for devicetee enabled boards no longer necessary to manually assign a console= parameter. Should a user not want to use the automatically assigned parameter it should do: global.linux.bootargs.console= in the environment. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* treewide: Add missing includesSascha Hauer2013-11-081-0/+1
| | | | | | | | A lot of files rely on include/driver.h including include/of.h (and this including include/errno.h. include the files explicitly so we can eventually get rid of including of.h from driver.h Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/login'Sascha Hauer2013-10-071-0/+6
|\ | | | | | | | | Conflicts: include/console.h
| * login: disable input console if password wrongJean-Christophe PLAGNIOL-VILLARD2013-09-191-0/+6
| | | | | | | | | | | | | | so we guarantee that barebox is secured again user interaction Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | console: drop f_caps and check the function pointer getc/putc insteadJean-Christophe PLAGNIOL-VILLARD2013-09-211-8/+10
|/ | | | | | | | | | None of the driver make the difference between STDOUT and STDERR. So we just need to check if putc or getc are filled in the console_device save 32 bytes on versatilepb Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/omap'Sascha Hauer2013-09-051-4/+4
|\ | | | | | | | | Conflicts: arch/arm/boards/pcm051/env/config
| * rework debug_llSascha Hauer2013-09-051-4/+4
| | | | | | | | | | | | | | | | | | | | Convert to static inline functions and use lower case letters for function names. Also, include mach/debug_ll.h when an architecture provides support for debug_ll, not only when it's actually enabled. This allows architecures to put some UART initialization code into mach/debug_ll.h which is compiled out when debug_ll is disabled. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | console: fix console without CONFIG_PARAMETERJan Luebbe2013-08-261-2/+6
|/ | | | | | | If CONFIG_PARAMETER is not set, dev_set_param() does not call the setter function. Call it directly instead in this case. Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
* Force set console baudrate at enable timeAlexey Galakhov2013-07-101-2/+11
| | | | | Signed-off-by: Alexey Galakhov <agalakhov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* common: console: Fix possible null pointer dereferenceAlexander Shiyan2013-07-091-14/+13
| | | | | | | | doing a 'cs0.active=' on the command line crashed barebox. Fix this by not dereferencing val when it's NULL. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: Use dev_add_param_int for baudrate parameterSascha Hauer2013-04-111-18/+8
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: consolidate common console codeSascha Hauer2013-02-131-85/+0
| | | | | | | The different console implementations share a good amount of code, share this in console_common.c. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* drivers/base: fix corrupt device treeSascha Hauer2012-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dev_add_child is a very unsafe function. If called multiple times it allows setting the same device to different parents thus corrupting the siblings list. This happens regularly since: | commit c2e568d19c5c34a05a1002d25280bf113b72b752 | Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | Date: Sat Nov 3 16:11:05 2012 +0100 | | bus: add bus device | | automatically add it as parent of any bus device if none already specified | | we have now a nice output per bus If for example a FATfs is mounted this nice output per bus often ends with: > `---- fat0 > `---- 0 > `---- 0x86f0000087020031-0x86f000410df27124: /dev/<NULL> > `---- sram00 > `---- 0x00000000-0xffffffffffffffff: /dev/<NULL> > `---- 0x00000000-0xffffffffffffffff: /dev/<NULL> > unable to handle NULL pointer dereference at address 0x0000000c > pc : [<87f08a20>] lr : [<87f08a04>] > sp : 86eff8c0 ip : 87f3fbde fp : ffffffff > r10: ffffffff r9 : 00000000 r8 : 00000003 > r7 : 86f075b8 r6 : 00000002 r5 : ffffffec r4 : 86f07544 > r3 : 00000000 r2 : 43f900b4 r1 : 00000020 r0 : 00000005 > Flags: Nzcv IRQs off FIQs off Mode SVC_32 > [<87f08a20>] (do_devinfo_subtree+0x90/0x130) from [<87f08a90>] (do_devinfo_subtree+0x100/0x130) > > [<87f3e070>] (unwind_backtrace+0x0/0x90) from [<87f28514>] (panic+0x28/0x3c) > [<87f28514>] (panic+0x28/0x3c) from [<87f3e4b8>] (do_exception+0x10/0x14) > [<87f3e4b8>] (do_exception+0x10/0x14) from [<87f3e544>] (do_data_abort+0x2c/0x38) > [<87f3e544>] (do_data_abort+0x2c/0x38) from [<87f3e268>] (data_abort+0x48/0x60) This patch fixes this by adding a device to its parents children list in register_device so that dev_add_child is no longer needed. This function is removed from the tree. Now callers of register_device have to clearly set the parent *before* registering a device. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Reported-by: Jan Lübbe <jlu@pengutronix.de>
* console: display Switch to console [csxx] when switching from debug_ll to ↵Jean-Christophe PLAGNIOL-VILLARD2012-10-301-0/+3
| | | | | | | real console Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: use debug_ll before the console is availableJean-Christophe PLAGNIOL-VILLARD2012-10-301-0/+2
| | | | | | | This will allow to have the same feature as earlyprintk in the kernel Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console/of: evaluate linux,stdout-path propertySascha Hauer2012-10-091-0/+3
| | | | | | | When a linux,stdout-path property is given in the devicetree activate the corresponding console. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: Cleanup console activationSascha Hauer2012-10-091-25/+26
| | | | | | | | | | | | | | | | | When CONFIG_CONSOLE_ACTIVATE_ALL is set, the banner will never be printed. Also, the console buffer is emptied when the first console is registered, even when it's not enabled. This patch cleans it up in a way that: - the console buffer is emptied once the first console is activated, not when it's registered. - Make sure that the banner is printed first, so that we can output things to the buffer before the banner is printed without ending up in having the banner in the middle of the other boot messages. - Use IS_ENABLED rather than ifdefs Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* switch all platform_bus device/driver registering to ↵Jean-Christophe PLAGNIOL-VILLARD2012-10-041-1/+1
| | | | | | | | platform_driver/device_register now register_driver and register_device are for bus only usage. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Treewide: remove address of the Free Software FoundationSascha Hauer2012-09-171-4/+0
| | | | | | | The FSF address has changed in the past. Instead of updating it each time the address changes, just drop it completely treewide. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Use DEVICE_ID_DYNAMIC where applicableSascha Hauer2012-04-161-1/+1
| | | | | | | We now have DEVICE_ID_DYNAMIC for dynamic allocation of device ids, Use it where applicable. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: use container_of instead of type_dataSascha Hauer2012-02-251-3/+4
| | | | | | This reduces the usage of type_data. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: make it work without mallocSascha Hauer2012-01-261-17/+32
| | | | | | | | This changes the dynamically allocated kfifos to statically initialized ones. This makes the console work without malloc and thus safe to be called before malloc is initialized. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* poller_call: move from getc to is_timeoutJean-Christophe PLAGNIOL-VILLARD2012-01-041-2/+0
| | | | | | | | this will allow to always call poller_call even durring timeout and still the case in getc Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'next'Sascha Hauer2011-12-071-6/+18
|\
| * console: add console unregisteringRobert Jarzmik2011-12-051-6/+18
| | | | | | | | | | | | | | | | | | | | | | Some console are transient, like the USB connected serial console which should be removed when the USB connection is severed. Enable console removal for such devices. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | fprintf: remove unused variableSascha Hauer2011-12-071-2/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* fix fprintf prototype and return valueSascha Hauer2011-11-111-3/+2
| | | | | | | | The puts functions now properly return the number of characters written. With this we can also fix fprintf. Also, remove never reached return in fputs. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: fix return values of puts functionsSascha Hauer2011-11-111-4/+10
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* remove EARLY_INIT and EARLY_CONSOLE supportSascha Hauer2011-09-271-33/+3
| | | | | | Bitrotted over time and nearly unused, so remove it. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: make console device a child of the hardware deviceSascha Hauer2011-08-151-0/+2
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* fix console fifo (and loadb/loady commands)Alexey Galakhov2011-05-161-11/+16
| | | | | | | | This patch fixes loadb and loady commands. tstc() should return true if console_input_buffer is not empty. Signed-off-by: Alexey Galakhov <agalakhov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* move version_string to seperate fileSascha Hauer2011-04-111-8/+2
| | | | | | | | | In a noninteractive environment barebox will be compiled without command support. So move version_string to a seperate file which is compiled unconditionally. Also, display the banner when the simple console support is used. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Fix default baudrate settingJuergen Beisert2011-01-181-1/+2
| | | | | | | | | The menu entry to set the default baudrate (CONFIG_BAUDRATE) makes no sense, as long as its content is not used. This patch makes barebox using the setting again. Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Add generic poll infrastructureMarc Kleine-Budde2010-12-201-0/+5
| | | | | | | | | | | | | | | | | | | | | Barebox does not have interrupt functionality. Nevertheless it's sometimes useful to periodically call functions, like for example a heartbeat LED or watchdog reset. Instead of cluttering the code with calls to these functions this patch adds a generic polling infrastructure. Code which might run for longer now can call poller_call() periodically which in turn will call all registered pollers. This patch adds a call to poller_call in two generic pathes. First of them is getc() which covers waiting for uart input. Second is ctrlc() which should be called anyway from code which might run for longer. So instead adding poller_call directly to your code, consider checking ctrlc instead which also gives additional convenience to the user. The poller code is safe against reentrancy which means that it's safe to call poller_call inside a poller. Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* version_string: sparse fixesSascha Hauer2010-10-211-2/+0
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: sparse fixesSascha Hauer2010-10-211-2/+4
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: set device_d id at -1Jean-Christophe PLAGNIOL-VILLARD2010-09-241-0/+1
| | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* rename __initdata to __early_initdataSascha Hauer2010-09-201-2/+2
| | | | | | | | | The __initdata define was present before Jean-Christophe added it as fake value for Linux compatibility. Rename the previous define to a different name to avoid clashes Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* rework device parametersSascha Hauer2010-06-171-19/+21
| | | | | | | | Change device parameters so that the memory management is in generic code. This also removes the need of storing statically initialized parameters as they are stored in a struct list_head for each device. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* list: remove duplicated list.hSascha Hauer2009-11-031-1/+1
| | | | | | | | We accidently have two list implementations in the tree: include/list.h and include/linux/list.h. This patch moves the latter (newer one) to include/linux/list.h. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: partly revert 84688dfdb4aecc8296b4fef9bc657335d7b9ade5Sascha Hauer2009-09-251-1/+0
| | | | | | Some unrelated code leaked in in this commit Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: make locally used function staticSascha Hauer2009-09-251-2/+3
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: Fix line endingsSascha Hauer2009-08-131-2/+2
| | | | | | use \r\n instead of \n\r Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* get rid of device idsSascha Hauer2009-07-211-1/+5
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: buffer characters before console is initializedSascha Hauer2009-05-131-10/+21
| | | | | | | | instead of throwing all output away when the console is not initialized, buffer it in a kfifo and print it later when the first console gets initialized. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* console: rename console_buffer to console_input_bufferSascha Hauer2009-05-131-5/+11
| | | | | | ...as we want to add an output buffer, too Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Flush consoles before exitingSascha Hauer2009-03-191-0/+11
| | | | | | | We use FIFOs on some devices, so flush them before exiting so we do not get funny characters in the output. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>