scsi_accel_target_RP2MCU.pio.h 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. // -------------------------------------------------- //
  2. // This file is autogenerated by pioasm; do not edit! //
  3. // -------------------------------------------------- //
  4. #pragma once
  5. #if !PICO_NO_HARDWARE
  6. #include "hardware/pio.h"
  7. #endif
  8. // ----------- //
  9. // scsi_parity //
  10. // ----------- //
  11. #define scsi_parity_wrap_target 0
  12. #define scsi_parity_wrap 3
  13. static const uint16_t scsi_parity_program_instructions[] = {
  14. // .wrap_target
  15. 0x80a0, // 0: pull block
  16. 0x4061, // 1: in null, 1
  17. 0x40e8, // 2: in osr, 8
  18. 0x4037, // 3: in x, 23
  19. // .wrap
  20. };
  21. #if !PICO_NO_HARDWARE
  22. static const struct pio_program scsi_parity_program = {
  23. .instructions = scsi_parity_program_instructions,
  24. .length = 4,
  25. .origin = -1,
  26. };
  27. static inline pio_sm_config scsi_parity_program_get_default_config(uint offset) {
  28. pio_sm_config c = pio_get_default_sm_config();
  29. sm_config_set_wrap(&c, offset + scsi_parity_wrap_target, offset + scsi_parity_wrap);
  30. return c;
  31. }
  32. #endif
  33. // ---------------------- //
  34. // scsi_accel_async_write //
  35. // ---------------------- //
  36. #define scsi_accel_async_write_wrap_target 0
  37. #define scsi_accel_async_write_wrap 4
  38. static const uint16_t scsi_accel_async_write_program_instructions[] = {
  39. // .wrap_target
  40. 0x90e0, // 0: pull ifempty block side 1
  41. 0x7009, // 1: out pins, 9 side 1
  42. 0x7077, // 2: out null, 23 side 1
  43. 0x308a, // 3: wait 1 gpio, 10 side 1
  44. 0x200a, // 4: wait 0 gpio, 10 side 0
  45. // .wrap
  46. };
  47. #if !PICO_NO_HARDWARE
  48. static const struct pio_program scsi_accel_async_write_program = {
  49. .instructions = scsi_accel_async_write_program_instructions,
  50. .length = 5,
  51. .origin = -1,
  52. };
  53. static inline pio_sm_config scsi_accel_async_write_program_get_default_config(uint offset) {
  54. pio_sm_config c = pio_get_default_sm_config();
  55. sm_config_set_wrap(&c, offset + scsi_accel_async_write_wrap_target, offset + scsi_accel_async_write_wrap);
  56. sm_config_set_sideset(&c, 1, false, false);
  57. return c;
  58. }
  59. #endif
  60. // --------------- //
  61. // scsi_accel_read //
  62. // --------------- //
  63. #define scsi_accel_read_wrap_target 0
  64. #define scsi_accel_read_wrap 5
  65. static const uint16_t scsi_accel_read_program_instructions[] = {
  66. // .wrap_target
  67. 0x90a0, // 0: pull block side 1
  68. 0x308a, // 1: wait 1 gpio, 10 side 1
  69. 0x4061, // 2: in null, 1 side 0
  70. 0x200a, // 3: wait 0 gpio, 10 side 0
  71. 0x5009, // 4: in pins, 9 side 1
  72. 0x5056, // 5: in y, 22 side 1
  73. // .wrap
  74. };
  75. #if !PICO_NO_HARDWARE
  76. static const struct pio_program scsi_accel_read_program = {
  77. .instructions = scsi_accel_read_program_instructions,
  78. .length = 6,
  79. .origin = -1,
  80. };
  81. static inline pio_sm_config scsi_accel_read_program_get_default_config(uint offset) {
  82. pio_sm_config c = pio_get_default_sm_config();
  83. sm_config_set_wrap(&c, offset + scsi_accel_read_wrap_target, offset + scsi_accel_read_wrap);
  84. sm_config_set_sideset(&c, 1, false, false);
  85. return c;
  86. }
  87. #endif
  88. // --------------------- //
  89. // scsi_sync_write_pacer //
  90. // --------------------- //
  91. #define scsi_sync_write_pacer_wrap_target 0
  92. #define scsi_sync_write_pacer_wrap 2
  93. static const uint16_t scsi_sync_write_pacer_program_instructions[] = {
  94. // .wrap_target
  95. 0x208a, // 0: wait 1 gpio, 10
  96. 0x200a, // 1: wait 0 gpio, 10
  97. 0x6061, // 2: out null, 1
  98. // .wrap
  99. };
  100. #if !PICO_NO_HARDWARE
  101. static const struct pio_program scsi_sync_write_pacer_program = {
  102. .instructions = scsi_sync_write_pacer_program_instructions,
  103. .length = 3,
  104. .origin = -1,
  105. };
  106. static inline pio_sm_config scsi_sync_write_pacer_program_get_default_config(uint offset) {
  107. pio_sm_config c = pio_get_default_sm_config();
  108. sm_config_set_wrap(&c, offset + scsi_sync_write_pacer_wrap_target, offset + scsi_sync_write_pacer_wrap);
  109. return c;
  110. }
  111. #endif
  112. // -------------------- //
  113. // scsi_sync_read_pacer //
  114. // -------------------- //
  115. #define scsi_sync_read_pacer_wrap_target 0
  116. #define scsi_sync_read_pacer_wrap 2
  117. static const uint16_t scsi_sync_read_pacer_program_instructions[] = {
  118. // .wrap_target
  119. 0x9020, // 0: push block side 1
  120. 0x0040, // 1: jmp x--, 0 side 0
  121. 0x1002, // 2: jmp 2 side 1
  122. // .wrap
  123. };
  124. #if !PICO_NO_HARDWARE
  125. static const struct pio_program scsi_sync_read_pacer_program = {
  126. .instructions = scsi_sync_read_pacer_program_instructions,
  127. .length = 3,
  128. .origin = -1,
  129. };
  130. static inline pio_sm_config scsi_sync_read_pacer_program_get_default_config(uint offset) {
  131. pio_sm_config c = pio_get_default_sm_config();
  132. sm_config_set_wrap(&c, offset + scsi_sync_read_pacer_wrap_target, offset + scsi_sync_read_pacer_wrap);
  133. sm_config_set_sideset(&c, 1, false, false);
  134. return c;
  135. }
  136. #endif
  137. // ---------------- //
  138. // scsi_read_parity //
  139. // ---------------- //
  140. #define scsi_read_parity_wrap_target 0
  141. #define scsi_read_parity_wrap 4
  142. static const uint16_t scsi_read_parity_program_instructions[] = {
  143. // .wrap_target
  144. 0x60c8, // 0: out isr, 8
  145. 0x8020, // 1: push block
  146. 0x6038, // 2: out x, 24
  147. 0x0040, // 3: jmp x--, 0
  148. 0xc000, // 4: irq nowait 0
  149. // .wrap
  150. };
  151. #if !PICO_NO_HARDWARE
  152. static const struct pio_program scsi_read_parity_program = {
  153. .instructions = scsi_read_parity_program_instructions,
  154. .length = 5,
  155. .origin = -1,
  156. };
  157. static inline pio_sm_config scsi_read_parity_program_get_default_config(uint offset) {
  158. pio_sm_config c = pio_get_default_sm_config();
  159. sm_config_set_wrap(&c, offset + scsi_read_parity_wrap_target, offset + scsi_read_parity_wrap);
  160. return c;
  161. }
  162. #endif
  163. // --------------- //
  164. // scsi_sync_write //
  165. // --------------- //
  166. #define scsi_sync_write_wrap_target 0
  167. #define scsi_sync_write_wrap 2
  168. static const uint16_t scsi_sync_write_program_instructions[] = {
  169. // .wrap_target
  170. 0x7009, // 0: out pins, 9 side 1
  171. 0x6077, // 1: out null, 23 side 0
  172. 0x5061, // 2: in null, 1 side 1
  173. // .wrap
  174. };
  175. #if !PICO_NO_HARDWARE
  176. static const struct pio_program scsi_sync_write_program = {
  177. .instructions = scsi_sync_write_program_instructions,
  178. .length = 3,
  179. .origin = -1,
  180. };
  181. static inline pio_sm_config scsi_sync_write_program_get_default_config(uint offset) {
  182. pio_sm_config c = pio_get_default_sm_config();
  183. sm_config_set_wrap(&c, offset + scsi_sync_write_wrap_target, offset + scsi_sync_write_wrap);
  184. sm_config_set_sideset(&c, 1, false, false);
  185. return c;
  186. }
  187. #endif