ARM: add ISA support code
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
SubDir HAIKU_TOP src add-ons kernel bus_managers isa arch arm ;
|
||||
|
||||
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
|
||||
|
||||
UsePrivateHeaders kernel [ FDirName kernel arch arm ] ;
|
||||
UsePrivateHeaders [ FDirName kernel boot platform $(TARGET_BOOT_PLATFORM) ] ;
|
||||
|
||||
KernelStaticLibrary isa_arch_bus_manager :
|
||||
isa_dma.c
|
||||
isa_controller.c
|
||||
;
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright 2007 Haiku, Inc.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* arch-specific config manager
|
||||
*
|
||||
* Authors (in chronological order):
|
||||
* François Revol ([email protected])
|
||||
*/
|
||||
|
||||
#include <KernelExport.h>
|
||||
#include "ISA.h"
|
||||
#include "arch_cpu.h"
|
||||
#include "isa_arch.h"
|
||||
|
||||
//#define TRACE_ISA
|
||||
#ifdef TRACE_ISA
|
||||
# define TRACE(x) dprintf x
|
||||
#else
|
||||
# define TRACE(x) ;
|
||||
#endif
|
||||
|
||||
|
||||
uint8
|
||||
arch_isa_read_io_8(int mapped_io_addr)
|
||||
{
|
||||
uint8 value = in8(mapped_io_addr);
|
||||
|
||||
TRACE(("isa_read8(%x->%x)\n", mapped_io_addr, value));
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
arch_isa_write_io_8(int mapped_io_addr, uint8 value)
|
||||
{
|
||||
TRACE(("isa_write8(%x->%x)\n", value, mapped_io_addr));
|
||||
|
||||
out8(value, mapped_io_addr);
|
||||
}
|
||||
|
||||
|
||||
uint16
|
||||
arch_isa_read_io_16(int mapped_io_addr)
|
||||
{
|
||||
return in16(mapped_io_addr);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
arch_isa_write_io_16(int mapped_io_addr, uint16 value)
|
||||
{
|
||||
out16(value, mapped_io_addr);
|
||||
}
|
||||
|
||||
|
||||
uint32
|
||||
arch_isa_read_io_32(int mapped_io_addr)
|
||||
{
|
||||
return in32(mapped_io_addr);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
arch_isa_write_io_32(int mapped_io_addr, uint32 value)
|
||||
{
|
||||
out32(value, mapped_io_addr);
|
||||
}
|
||||
|
||||
|
||||
void *
|
||||
arch_isa_ram_address(const void *physical_address_in_system_memory)
|
||||
{
|
||||
// this is what the BeOS kernel does
|
||||
return (void *)physical_address_in_system_memory;
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
arch_isa_init(void)
|
||||
{
|
||||
return B_OK;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright 2007 Haiku, Inc.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* arch-specific config manager
|
||||
*
|
||||
* Authors (in chronological order):
|
||||
* François Revol ([email protected])
|
||||
*/
|
||||
|
||||
#include <KernelExport.h>
|
||||
#include "ISA.h"
|
||||
#include "arch_cpu.h"
|
||||
#include "isa_arch.h"
|
||||
|
||||
|
||||
status_t
|
||||
arch_start_isa_dma(long channel, void *buf, long transfer_count,
|
||||
uchar mode, uchar e_mode)
|
||||
{
|
||||
// ToDo: implement this?!
|
||||
return B_NOT_ALLOWED;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user