summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2014-05-24 21:11:01 +0000
committermiod <miod@openbsd.org>2014-05-24 21:11:01 +0000
commit02ce23a61c6223686cea53e3a4eb21b47e470184 (patch)
tree32f26e34fafe1c5d9f390af9b90e4b86e77d1592
parentBarriers for mips64 (diff)
downloadwireguard-openbsd-02ce23a61c6223686cea53e3a4eb21b47e470184.tar.xz
wireguard-openbsd-02ce23a61c6223686cea53e3a4eb21b47e470184.zip
Provide bus_space_mmap()
-rw-r--r--sys/arch/loongson/dev/bonito.c11
-rw-r--r--sys/arch/loongson/include/bus.h7
-rw-r--r--sys/arch/loongson/loongson/bus_space.c9
3 files changed, 22 insertions, 5 deletions
diff --git a/sys/arch/loongson/dev/bonito.c b/sys/arch/loongson/dev/bonito.c
index 57c902c460f..08793435314 100644
--- a/sys/arch/loongson/dev/bonito.c
+++ b/sys/arch/loongson/dev/bonito.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bonito.c,v 1.25 2014/03/27 22:16:03 miod Exp $ */
+/* $OpenBSD: bonito.c,v 1.26 2014/05/24 21:11:01 miod Exp $ */
/* $NetBSD: bonito_mainbus.c,v 1.11 2008/04/28 20:23:10 martin Exp $ */
/* $NetBSD: bonito_pci.c,v 1.5 2008/04/28 20:23:28 martin Exp $ */
@@ -173,7 +173,8 @@ struct mips_bus_space bonito_pci_io_space_tag = {
._space_map = bonito_io_map,
._space_unmap = generic_space_unmap,
._space_subregion = generic_space_region,
- ._space_vaddr = generic_space_vaddr
+ ._space_vaddr = generic_space_vaddr,
+ ._space_mmap = generic_space_mmap
};
struct mips_bus_space bonito_pci_mem_space_tag = {
@@ -195,7 +196,8 @@ struct mips_bus_space bonito_pci_mem_space_tag = {
._space_map = bonito_mem_map,
._space_unmap = generic_space_unmap,
._space_subregion = generic_space_region,
- ._space_vaddr = generic_space_vaddr
+ ._space_vaddr = generic_space_vaddr,
+ ._space_mmap = generic_space_mmap
};
int
@@ -203,6 +205,9 @@ bonito_match(struct device *parent, void *vcf, void *aux)
{
struct mainbus_attach_args *maa = aux;
+ if (loongson_ver >= 0x3a)
+ return (0);
+
if (strcmp(maa->maa_name, bonito_cd.cd_name) == 0)
return (1);
diff --git a/sys/arch/loongson/include/bus.h b/sys/arch/loongson/include/bus.h
index 640d7348f63..aa0ada589d0 100644
--- a/sys/arch/loongson/include/bus.h
+++ b/sys/arch/loongson/include/bus.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: bus.h,v 1.5 2014/03/29 18:09:29 guenther Exp $ */
+/* $OpenBSD: bus.h,v 1.6 2014/05/24 21:11:01 miod Exp $ */
/*
* Copyright (c) 2003-2004 Opsycon AB Sweden. All rights reserved.
@@ -82,6 +82,8 @@ struct mips_bus_space {
int (*_space_subregion)(bus_space_tag_t, bus_space_handle_t,
bus_size_t, bus_size_t, bus_space_handle_t *);
void * (*_space_vaddr)(bus_space_tag_t, bus_space_handle_t);
+ paddr_t (*_space_mmap)(bus_space_tag_t, bus_addr_t, off_t,
+ int, int);
};
#define bus_space_read_1(t, h, o) (*(t)->_space_read_1)((t), (h), (o))
@@ -118,6 +120,8 @@ struct mips_bus_space {
#define BUS_SPACE_MAP_PREFETCHABLE 0x04
#define bus_space_vaddr(t, h) (*(t)->_space_vaddr)((t), (h))
+#define bus_space_mmap(t, a, o, p, f) \
+ (*(t)->_space_mmap)((t), (a), (o), (p), (f))
/*----------------------------------------------------------------------------*/
#define bus_space_read_multi(n,m) \
@@ -313,6 +317,7 @@ void generic_space_read_raw_8(bus_space_tag_t, bus_space_handle_t,
bus_addr_t, uint8_t *, bus_size_t);
void generic_space_write_raw_8(bus_space_tag_t, bus_space_handle_t,
bus_addr_t, const uint8_t *, bus_size_t);
+paddr_t generic_space_mmap(bus_space_tag_t, bus_addr_t, off_t, int, int);
/*----------------------------------------------------------------------------*/
/*
diff --git a/sys/arch/loongson/loongson/bus_space.c b/sys/arch/loongson/loongson/bus_space.c
index d29006d6dbf..3e1bbe1e5e1 100644
--- a/sys/arch/loongson/loongson/bus_space.c
+++ b/sys/arch/loongson/loongson/bus_space.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bus_space.c,v 1.1.1.1 2009/12/11 17:05:08 miod Exp $ */
+/* $OpenBSD: bus_space.c,v 1.2 2014/05/24 21:11:01 miod Exp $ */
/*
* Copyright (c) 2001-2003 Opsycon AB (www.opsycon.se / www.opsycon.com)
@@ -185,3 +185,10 @@ generic_space_vaddr(bus_space_tag_t t, bus_space_handle_t h)
{
return (void *)h;
}
+
+paddr_t
+generic_space_mmap(bus_space_tag_t t, bus_addr_t addr, off_t off, int prot,
+ int flags)
+{
+ return (paddr_t)-1;
+}