2 * Copyright (c) 2014 Andrew Turner
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 #include <machine/asm.h>
30 __FBSDID("$FreeBSD$");
52 ENTRY(generic_bs_rm_1)
53 /* If there is anything to read. */
56 /* Calculate the device address. */
59 * x0 = The device address.
60 * x3 = The kernel address.
73 ENTRY(generic_bs_rm_2)
74 /* If there is anything to read. */
77 /* Calculate the device address. */
80 * x0 = The device address.
81 * x3 = The kernel address.
94 ENTRY(generic_bs_rm_4)
95 /* If there is anything to read. */
98 /* Calculate the device address. */
101 * x0 = The device address.
102 * x3 = The kernel address.
115 ENTRY(generic_bs_rm_8)
116 /* If there is anything to read. */
119 /* Calculate the device address. */
122 * x0 = The device address.
123 * x3 = The kernel address.
136 ENTRY(generic_bs_rr_1)
137 /* Is there is anything to read. */
140 /* Calculate the device address. */
143 * x0 = The device address.
144 * x3 = The kernel address.
157 ENTRY(generic_bs_rr_2)
158 /* Is there is anything to read. */
161 /* Calculate the device address. */
164 * x0 = The device address.
165 * x3 = The kernel address.
178 ENTRY(generic_bs_rr_4)
179 /* Is there is anything to read. */
182 /* Calculate the device address. */
185 * x0 = The device address.
186 * x3 = The kernel address.
199 ENTRY(generic_bs_rr_8)
200 /* Is there is anything to read. */
203 /* Calculate the device address. */
206 * x0 = The device address.
207 * x3 = The kernel address.
221 ENTRY(generic_bs_w_1)
226 ENTRY(generic_bs_w_2)
231 ENTRY(generic_bs_w_4)
236 ENTRY(generic_bs_w_8)
241 ENTRY(generic_bs_wm_1)
242 /* If there is anything to write. */
247 * x0 = The device address.
248 * x3 = The kernel address.
261 ENTRY(generic_bs_wm_2)
262 /* If there is anything to write. */
267 * x0 = The device address.
268 * x3 = The kernel address.
281 ENTRY(generic_bs_wm_4)
282 /* If there is anything to write. */
287 * x0 = The device address.
288 * x3 = The kernel address.
301 ENTRY(generic_bs_wm_8)
302 /* If there is anything to write. */
307 * x0 = The device address.
308 * x3 = The kernel address.
321 ENTRY(generic_bs_wr_1)
322 /* Is there is anything to write. */
327 * x0 = The device address.
328 * x3 = The kernel address.
341 ENTRY(generic_bs_wr_2)
342 /* Is there is anything to write. */
347 * x0 = The device address.
348 * x3 = The kernel address.
361 ENTRY(generic_bs_wr_4)
362 /* Is there is anything to write. */
367 * x0 = The device address.
368 * x3 = The kernel address.
381 ENTRY(generic_bs_wr_8)
382 /* Is there is anything to write. */
387 * x0 = The device address.
388 * x3 = The kernel address.