config.c 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /***************************************************************************/
  2. /*
  3. * linux/arch/m68knommu/platform/528x/config.c
  4. *
  5. * Sub-architcture dependant initialization code for the Motorola
  6. * 5280 and 5282 CPUs.
  7. *
  8. * Copyright (C) 1999-2003, Greg Ungerer (gerg@snapgear.com)
  9. * Copyright (C) 2001-2003, SnapGear Inc. (www.snapgear.com)
  10. */
  11. /***************************************************************************/
  12. #include <linux/config.h>
  13. #include <linux/kernel.h>
  14. #include <linux/sched.h>
  15. #include <linux/param.h>
  16. #include <linux/init.h>
  17. #include <linux/interrupt.h>
  18. #include <asm/dma.h>
  19. #include <asm/traps.h>
  20. #include <asm/machdep.h>
  21. #include <asm/coldfire.h>
  22. #include <asm/mcfsim.h>
  23. #include <asm/mcfdma.h>
  24. /***************************************************************************/
  25. void coldfire_pit_tick(void);
  26. void coldfire_pit_init(irqreturn_t (*handler)(int, void *, struct pt_regs *));
  27. unsigned long coldfire_pit_offset(void);
  28. void coldfire_trap_init(void);
  29. void coldfire_reset(void);
  30. /***************************************************************************/
  31. /*
  32. * DMA channel base address table.
  33. */
  34. unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = {
  35. MCF_MBAR + MCFDMA_BASE0,
  36. };
  37. unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
  38. /***************************************************************************/
  39. void mcf_disableall(void)
  40. {
  41. *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRH)) = 0xffffffff;
  42. *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRL)) = 0xffffffff;
  43. }
  44. /***************************************************************************/
  45. void mcf_autovector(unsigned int vec)
  46. {
  47. /* Everything is auto-vectored on the 5272 */
  48. }
  49. /***************************************************************************/
  50. void config_BSP(char *commandp, int size)
  51. {
  52. mcf_disableall();
  53. #ifdef CONFIG_BOOTPARAM
  54. strncpy(commandp, CONFIG_BOOTPARAM_STRING, size);
  55. commandp[size-1] = 0;
  56. #else
  57. memset(commandp, 0, size);
  58. #endif
  59. mach_sched_init = coldfire_pit_init;
  60. mach_tick = coldfire_pit_tick;
  61. mach_gettimeoffset = coldfire_pit_offset;
  62. mach_trap_init = coldfire_trap_init;
  63. mach_reset = coldfire_reset;
  64. }
  65. /***************************************************************************/