Pull up following revision(s) (requested by is in ticket #760):

sys/arch/amiga/dev/gayle_pcmcia.c: revision 1.32
	sys/arch/amigappc/include/bus_defs.h: revision 1.8

The Gayle interface uses swapped (little-endian) word accesses, so we
need to use the amiga_bus_stride_1swap methods for the word accesses.

Analyzed and submitted via port-amiga@ by Martin Åberg.

Tested on formerly working hardware
- by Jukka Andberg	with Dlink DE-660+		(ne)
- by Frank Wille	with D-Link DFE-670TXD		(ne)

Tested on formerly not working hardware:
- by Martin		with 3Com 3c589 Etherling III	(ep)
- by Martin and Frank	with CompactFlash cards		(wdc)

 -

gayle wants stride_1swap now, so declare the rest of the bus methods since
we already define them anyway.
This commit is contained in:
martin 2020-03-08 10:28:16 +00:00
parent bd1da3f26a
commit 02c3b709af
2 changed files with 7 additions and 4 deletions

View File

@ -1,9 +1,9 @@
/* $NetBSD: gayle_pcmcia.c,v 1.31 2015/02/08 09:55:25 jandberg Exp $ */
/* $NetBSD: gayle_pcmcia.c,v 1.31.22.1 2020/03/08 10:28:16 martin Exp $ */
/* public domain */
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: gayle_pcmcia.c,v 1.31 2015/02/08 09:55:25 jandberg Exp $");
__KERNEL_RCSID(0, "$NetBSD: gayle_pcmcia.c,v 1.31.22.1 2020/03/08 10:28:16 martin Exp $");
/* PCMCIA front-end driver for A1200's and A600's. */
@ -131,7 +131,7 @@ pccard_attach(device_t parent, device_t self, void *aux)
pmap_update(vm_map_pmap(kernel_map));
/* override the one-byte access methods for I/O space */
pcmio_bs_methods = amiga_bus_stride_1;
pcmio_bs_methods = amiga_bus_stride_1swap;
pcmio_bs_methods.bsr1 = pcmio_bsr1;
pcmio_bs_methods.bsw1 = pcmio_bsw1;
pcmio_bs_methods.bsrm1 = pcmio_bsrm1;

View File

@ -1,4 +1,4 @@
/* $NetBSD: bus_defs.h,v 1.6 2014/01/22 00:24:53 christos Exp $ */
/* $NetBSD: bus_defs.h,v 1.6.34.1 2020/03/08 10:28:16 martin Exp $ */
/*
* Copyright (c) 1996 Leo Weppelman. All rights reserved.
@ -171,10 +171,13 @@ struct amiga_bus_space_methods {
#define __BUS_SPACE_HAS_STREAM_METHODS
extern const struct amiga_bus_space_methods amiga_bus_stride_1;
extern const struct amiga_bus_space_methods amiga_bus_stride_1swap;
extern const struct amiga_bus_space_methods amiga_bus_stride_1swap_abs;
extern const struct amiga_bus_space_methods amiga_bus_stride_2;
extern const struct amiga_bus_space_methods amiga_bus_stride_4;
extern const struct amiga_bus_space_methods amiga_bus_stride_4swap;
extern const struct amiga_bus_space_methods amiga_bus_stride_16;
extern const struct amiga_bus_space_methods amiga_bus_stride_0x1000;
extern const struct amiga_bus_space_methods amiga_bus_stride_0x4000;
#endif /* _AMIGAPPC_BUS_DEFS_H_ */