xref: /haiku/src/add-ons/kernel/bus_managers/isa/arch/arm/isa_controller.c (revision 68ea01249e1e2088933cb12f9c28d4e5c5d1c9ef)
1 /*
2  * Copyright 2007 Haiku, Inc.
3  * Distributed under the terms of the MIT License.
4  *
5  * arch-specific config manager
6  *
7  * Authors (in chronological order):
8  *              François Revol (revol@free.fr)
9  */
10 
11 #include <KernelExport.h>
12 #include "ISA.h"
13 #include "arch_cpu.h"
14 #include "isa_arch.h"
15 
16 //#define TRACE_ISA
17 #ifdef TRACE_ISA
18 #       define TRACE(x) dprintf x
19 #else
20 #       define TRACE(x) ;
21 #endif
22 
23 
24 uint8
25 arch_isa_read_io_8(int mapped_io_addr)
26 {
27 	uint8 value = in8(mapped_io_addr);
28 
29 	TRACE(("isa_read8(%x->%x)\n", mapped_io_addr, value));
30 
31 	return value;
32 }
33 
34 
35 void
36 arch_isa_write_io_8(int mapped_io_addr, uint8 value)
37 {
38 	TRACE(("isa_write8(%x->%x)\n", value, mapped_io_addr));
39 
40 	out8(value, mapped_io_addr);
41 }
42 
43 
44 uint16
45 arch_isa_read_io_16(int mapped_io_addr)
46 {
47 	return in16(mapped_io_addr);
48 }
49 
50 
51 void
52 arch_isa_write_io_16(int mapped_io_addr, uint16 value)
53 {
54 	out16(value, mapped_io_addr);
55 }
56 
57 
58 uint32
59 arch_isa_read_io_32(int mapped_io_addr)
60 {
61 	return in32(mapped_io_addr);
62 }
63 
64 
65 void
66 arch_isa_write_io_32(int mapped_io_addr, uint32 value)
67 {
68 	out32(value, mapped_io_addr);
69 }
70 
71 
72 phys_addr_t
73 arch_isa_ram_address(phys_addr_t physical_address_in_system_memory)
74 {
75 	// this is what the BeOS kernel does
76 	return physical_address_in_system_memory;
77 }
78 
79 
80 status_t
81 arch_isa_init(void)
82 {
83 	return B_OK;
84 }
85