loongson.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology
  3. * Author: Wu Zhangjin <wuzj@lemote.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of the GNU General Public License as published by the
  7. * Free Software Foundation; either version 2 of the License, or (at your
  8. * option) any later version.
  9. *
  10. */
  11. #ifndef __ASM_MACH_LOONGSON_LOONGSON_H
  12. #define __ASM_MACH_LOONGSON_LOONGSON_H
  13. #include <linux/io.h>
  14. #include <linux/init.h>
  15. /* there is an internal bonito64-compatiable northbridge in loongson2e/2f */
  16. #include <asm/mips-boards/bonito64.h>
  17. /* loongson internal northbridge initialization */
  18. extern void bonito_irq_init(void);
  19. /* machine-specific reboot/halt operation */
  20. extern void mach_prepare_reboot(void);
  21. extern void mach_prepare_shutdown(void);
  22. /* environment arguments from bootloader */
  23. extern unsigned long bus_clock, cpu_clock_freq;
  24. extern unsigned long memsize, highmemsize;
  25. /* loongson-specific command line, env and memory initialization */
  26. extern void __init prom_init_memory(void);
  27. extern void __init prom_init_cmdline(void);
  28. extern void __init prom_init_env(void);
  29. /* irq operation functions */
  30. extern void bonito_irqdispatch(void);
  31. extern void __init bonito_irq_init(void);
  32. extern void __init set_irq_trigger_mode(void);
  33. extern void __init mach_init_irq(void);
  34. extern void mach_irq_dispatch(unsigned int pending);
  35. /* PCI Configuration Registers */
  36. #define LOONGSON_PCI_ISR4C BONITO_PCI_REG(0x4c)
  37. /* PCI_Hit*_Sel_* */
  38. #define LOONGSON_PCI_HIT0_SEL_L BONITO(BONITO_REGBASE + 0x50)
  39. #define LOONGSON_PCI_HIT0_SEL_H BONITO(BONITO_REGBASE + 0x54)
  40. #define LOONGSON_PCI_HIT1_SEL_L BONITO(BONITO_REGBASE + 0x58)
  41. #define LOONGSON_PCI_HIT1_SEL_H BONITO(BONITO_REGBASE + 0x5c)
  42. #define LOONGSON_PCI_HIT2_SEL_L BONITO(BONITO_REGBASE + 0x60)
  43. #define LOONGSON_PCI_HIT2_SEL_H BONITO(BONITO_REGBASE + 0x64)
  44. /* PXArb Config & Status */
  45. #define LOONGSON_PXARB_CFG BONITO(BONITO_REGBASE + 0x68)
  46. #define LOONGSON_PXARB_STATUS BONITO(BONITO_REGBASE + 0x6c)
  47. /* loongson2-specific perf counter IRQ */
  48. #define LOONGSON2_PERFCNT_IRQ (MIPS_CPU_IRQ_BASE + 6)
  49. #endif /* __ASM_MACH_LOONGSON_LOONGSON_H */