This feature should be deprecated for new boards, and significantly adds
to SPL code size. Drop it. Instead, we can use stdout-path in the /chosen
node.
Signed-off-by: Simon Glass s...@chromium.org
---
Changes in v2: None
drivers/serial/serial-uclass.c | 69 ++
1 file changed, 37 insertions(+), 32 deletions(-)
diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c
index b8c2f48..5674d5e 100644
--- a/drivers/serial/serial-uclass.c
+++ b/drivers/serial/serial-uclass.c
@@ -30,49 +30,54 @@ static const unsigned long baudrate_table[] =
CONFIG_SYS_BAUDRATE_TABLE;
static void serial_find_console_or_panic(void)
{
struct udevice *dev;
-
-#ifdef CONFIG_OF_CONTROL
int node;
- /* Check for a chosen console */
- node = fdtdec_get_chosen_node(gd-fdt_blob, stdout-path);
- if (node 0)
- node = fdt_path_offset(gd-fdt_blob, console);
- if (!uclass_get_device_by_of_offset(UCLASS_SERIAL, node, dev)) {
- gd-cur_serial_dev = dev;
- return;
- }
-
- /*
-* If the console is not marked to be bound before relocation, bind
-* it anyway.
-*/
- if (node 0
- !lists_bind_fdt(gd-dm_root, gd-fdt_blob, node, dev)) {
- if (!device_probe(dev)) {
+ if (OF_CONTROL) {
+ /* Check for a chosen console */
+ node = fdtdec_get_chosen_node(gd-fdt_blob, stdout-path);
+ if (node 0)
+ node = fdt_path_offset(gd-fdt_blob, console);
+ if (!uclass_get_device_by_of_offset(UCLASS_SERIAL, node,
+ dev)) {
gd-cur_serial_dev = dev;
return;
}
- }
-#endif
- /*
-* Try to use CONFIG_CONS_INDEX if available (it is numbered from 1!).
-*
-* Failing that, get the device with sequence number 0, or in extremis
-* just the first serial device we can find. But we insist on having
-* a console (even if it is silent).
-*/
+
+ /*
+ * If the console is not marked to be bound before relocation,
+ * bind it anyway.
+ */
+ if (node 0
+ !lists_bind_fdt(gd-dm_root, gd-fdt_blob, node, dev)) {
+ if (!device_probe(dev)) {
+ gd-cur_serial_dev = dev;
+ return;
+ }
+ }
+ } else {
+ /*
+ * Try to use CONFIG_CONS_INDEX if available (it is numbered
+ * from 1!).
+ *
+ * Failing that, get the device with sequence number 0, or in
+ * extremis just the first serial device we can find. But we
+ * insist on having a console (even if it is silent).
+ */
#ifdef CONFIG_CONS_INDEX
#define INDEX (CONFIG_CONS_INDEX - 1)
#else
#define INDEX 0
#endif
- if (uclass_get_device_by_seq(UCLASS_SERIAL, INDEX, dev)
- uclass_get_device(UCLASS_SERIAL, INDEX, dev)
- (uclass_first_device(UCLASS_SERIAL, dev) || !dev))
- panic_str(No serial driver found);
+ if (!uclass_get_device_by_seq(UCLASS_SERIAL, INDEX, dev) ||
+ !uclass_get_device(UCLASS_SERIAL, INDEX, dev) ||
+ (!uclass_first_device(UCLASS_SERIAL, dev) || dev)) {
+ gd-cur_serial_dev = dev;
+ return;
+ }
#undef INDEX
- gd-cur_serial_dev = dev;
+ }
+
+ panic_str(No serial driver found);
}
/* Called prior to relocation */
--
2.2.0.rc0.207.ga3a616c
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot