uncompress.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * Copyright 2003 ARM Limited
  3. * Copyright 2008 Cavium Networks
  4. *
  5. * This file is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License, Version 2, as
  7. * published by the Free Software Foundation.
  8. */
  9. #include <asm/mach-types.h>
  10. #include <mach/hardware.h>
  11. #include <mach/cns3xxx.h>
  12. #define AMBA_UART_DR(base) (*(volatile unsigned char *)((base) + 0x00))
  13. #define AMBA_UART_LCRH(base) (*(volatile unsigned char *)((base) + 0x2c))
  14. #define AMBA_UART_CR(base) (*(volatile unsigned char *)((base) + 0x30))
  15. #define AMBA_UART_FR(base) (*(volatile unsigned char *)((base) + 0x18))
  16. /*
  17. * Return the UART base address
  18. */
  19. static inline unsigned long get_uart_base(void)
  20. {
  21. if (machine_is_cns3420vb())
  22. return CNS3XXX_UART0_BASE;
  23. else
  24. return 0;
  25. }
  26. /*
  27. * This does not append a newline
  28. */
  29. static inline void putc(int c)
  30. {
  31. unsigned long base = get_uart_base();
  32. while (AMBA_UART_FR(base) & (1 << 5))
  33. barrier();
  34. AMBA_UART_DR(base) = c;
  35. }
  36. static inline void flush(void)
  37. {
  38. unsigned long base = get_uart_base();
  39. while (AMBA_UART_FR(base) & (1 << 3))
  40. barrier();
  41. }
  42. /*
  43. * nothing to do
  44. */
  45. #define arch_decomp_setup()
  46. #define arch_decomp_wdog()