caddy.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * caddy.c -- esd VME8349 support for "missing" access modes in TSI148.
  3. * Copyright (c) 2009 esd gmbh.
  4. *
  5. * Reinhard Arlt <reinhard.arlt@esd-electronics.com>
  6. *
  7. * See file CREDITS for list of people who contributed to this
  8. * project.
  9. *
  10. * This program is free software; you can redistribute it and/or
  11. * modify it under the terms of the GNU General Public License as
  12. * published by the Free Software Foundation; either version 2 of
  13. * the License, or (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with this program; if not, write to the Free Software
  22. * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  23. * MA 02111-1307 USA
  24. *
  25. */
  26. #ifndef __CADDY_H__
  27. #define __CADDY_H__
  28. #define CMD_SIZE 1024
  29. #define ANSWER_SIZE 1024
  30. #define CADDY_MAGIC "esd vme8349 V1.0"
  31. enum caddy_cmds {
  32. CADDY_CMD_IO_READ_8,
  33. CADDY_CMD_IO_READ_16,
  34. CADDY_CMD_IO_READ_32,
  35. CADDY_CMD_IO_WRITE_8,
  36. CADDY_CMD_IO_WRITE_16,
  37. CADDY_CMD_IO_WRITE_32,
  38. CADDY_CMD_CONFIG_READ_8,
  39. CADDY_CMD_CONFIG_READ_16,
  40. CADDY_CMD_CONFIG_READ_32,
  41. CADDY_CMD_CONFIG_WRITE_8,
  42. CADDY_CMD_CONFIG_WRITE_16,
  43. CADDY_CMD_CONFIG_WRITE_32,
  44. };
  45. struct caddy_cmd {
  46. uint32_t cmd;
  47. uint32_t issue;
  48. uint32_t addr;
  49. uint32_t par[5];
  50. };
  51. struct caddy_answer {
  52. uint32_t answer;
  53. uint32_t issue;
  54. uint32_t status;
  55. uint32_t par[5];
  56. };
  57. struct caddy_interface {
  58. uint8_t magic[16];
  59. uint32_t cmd_in;
  60. uint32_t cmd_out;
  61. uint32_t heartbeat;
  62. uint32_t reserved1;
  63. struct caddy_cmd cmd[CMD_SIZE];
  64. uint32_t answer_in;
  65. uint32_t answer_out;
  66. uint32_t reserved2;
  67. uint32_t reserved3;
  68. struct caddy_answer answer[CMD_SIZE];
  69. };
  70. #endif /* of __CADDY_H__ */