mirror of
https://github.com/u-boot/u-boot.git
synced 2024-12-13 23:03:27 +08:00
serial: smh: Initialize serial only if semihosting is enabled
If semihosting is disabled, then the user has no debugger attached, and will not see any messages. Don't create a serial device in this instance, to (hopefully) fall back on another working serial device. Signed-off-by: Sean Anderson <sean.anderson@seco.com>
This commit is contained in:
parent
bbe310cdaf
commit
2332590c48
@ -41,6 +41,13 @@ static const struct dm_serial_ops smh_serial_ops = {
|
|||||||
.getc = smh_serial_getc,
|
.getc = smh_serial_getc,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int smh_serial_bind(struct udevice *dev)
|
||||||
|
{
|
||||||
|
if (semihosting_enabled())
|
||||||
|
return 0;
|
||||||
|
return -ENOENT;
|
||||||
|
}
|
||||||
|
|
||||||
static int smh_serial_probe(struct udevice *dev)
|
static int smh_serial_probe(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct smh_serial_priv *priv = dev_get_priv(dev);
|
struct smh_serial_priv *priv = dev_get_priv(dev);
|
||||||
@ -52,6 +59,7 @@ static int smh_serial_probe(struct udevice *dev)
|
|||||||
U_BOOT_DRIVER(smh_serial) = {
|
U_BOOT_DRIVER(smh_serial) = {
|
||||||
.name = "serial_semihosting",
|
.name = "serial_semihosting",
|
||||||
.id = UCLASS_SERIAL,
|
.id = UCLASS_SERIAL,
|
||||||
|
.bind = smh_serial_bind,
|
||||||
.probe = smh_serial_probe,
|
.probe = smh_serial_probe,
|
||||||
.priv_auto = sizeof(struct smh_serial_priv),
|
.priv_auto = sizeof(struct smh_serial_priv),
|
||||||
.ops = &smh_serial_ops,
|
.ops = &smh_serial_ops,
|
||||||
@ -122,7 +130,8 @@ struct serial_device serial_smh_device = {
|
|||||||
|
|
||||||
void smh_serial_initialize(void)
|
void smh_serial_initialize(void)
|
||||||
{
|
{
|
||||||
serial_register(&serial_smh_device);
|
if (semihosting_enabled())
|
||||||
|
serial_register(&serial_smh_device);
|
||||||
}
|
}
|
||||||
|
|
||||||
__weak struct serial_device *default_serial_console(void)
|
__weak struct serial_device *default_serial_console(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user