semihost.h 537 B

123456789101112131415161718192021222324
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2012 ARM Ltd.
  4. * Author: Marc Zyngier <marc.zyngier@arm.com>
  5. *
  6. * Adapted for ARM and earlycon:
  7. * Copyright (C) 2014 Linaro Ltd.
  8. * Author: Rob Herring <robh@kernel.org>
  9. */
  10. #ifndef _ARM64_SEMIHOST_H_
  11. #define _ARM64_SEMIHOST_H_
  12. struct uart_port;
  13. static inline void smh_putc(struct uart_port *port, unsigned char c)
  14. {
  15. asm volatile("mov x1, %0\n"
  16. "mov x0, #3\n"
  17. "hlt 0xf000\n"
  18. : : "r" (&c) : "x0", "x1", "memory");
  19. }
  20. #endif /* _ARM64_SEMIHOST_H_ */