]>
Commit | Line | Data |
---|---|---|
744d9859 SG |
1 | /* |
2 | * Copyright (c) 2011 The Chromium OS Authors. | |
3 | * | |
3765b3e7 | 4 | * SPDX-License-Identifier: GPL-2.0+ |
744d9859 SG |
5 | */ |
6 | ||
a733b06b SG |
7 | #ifndef __SANDBOX_ASM_IO_H |
8 | #define __SANDBOX_ASM_IO_H | |
9 | ||
744d9859 SG |
10 | /* |
11 | * Given a physical address and a length, return a virtual address | |
12 | * that can be used to access the memory range with the caching | |
13 | * properties specified by "flags". | |
14 | */ | |
15 | #define MAP_NOCACHE (0) | |
16 | #define MAP_WRCOMBINE (0) | |
17 | #define MAP_WRBACK (0) | |
18 | #define MAP_WRTHROUGH (0) | |
19 | ||
20 | void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags); | |
21 | ||
22 | /* | |
23 | * Take down a mapping set up by map_physmem(). | |
24 | */ | |
9569c406 | 25 | void unmap_physmem(const void *vaddr, unsigned long flags); |
4213fc29 SG |
26 | |
27 | /* For sandbox, we want addresses to point into our RAM buffer */ | |
28 | static inline void *map_sysmem(phys_addr_t paddr, unsigned long len) | |
29 | { | |
30 | return map_physmem(paddr, len, MAP_WRBACK); | |
31 | } | |
32 | ||
9569c406 | 33 | /* Remove a previous mapping */ |
4213fc29 SG |
34 | static inline void unmap_sysmem(const void *vaddr) |
35 | { | |
9569c406 | 36 | unmap_physmem(vaddr, MAP_WRBACK); |
4213fc29 | 37 | } |
781adb57 SG |
38 | |
39 | /* Map from a pointer to our RAM buffer */ | |
ed072b96 | 40 | phys_addr_t map_to_sysmem(const void *ptr); |
a733b06b | 41 | |
42d3b29d SG |
42 | /* Define nops for sandbox I/O access */ |
43 | #define readb(addr) 0 | |
44 | #define readw(addr) 0 | |
45 | #define readl(addr) 0 | |
46 | #define writeb(v, addr) | |
47 | #define writew(v, addr) | |
48 | #define writel(v, addr) | |
49 | ||
9569c406 SG |
50 | /* I/O access functions */ |
51 | int inl(unsigned int addr); | |
52 | int inw(unsigned int addr); | |
53 | int inb(unsigned int addr); | |
54 | ||
55 | void outl(unsigned int value, unsigned int addr); | |
56 | void outw(unsigned int value, unsigned int addr); | |
57 | void outb(unsigned int value, unsigned int addr); | |
58 | ||
42d3b29d SG |
59 | #include <iotrace.h> |
60 | ||
a733b06b | 61 | #endif |