Home | History | Annotate | Download | only in tc
History log of /src/sys/arch/alpha/tc/tc_bus_mem.c
RevisionDateAuthorComments
 1.40  04-Jul-2021  thorpej Remove unnecessary #include <sys/malloc.h>
 1.39  05-May-2021  thorpej Moar static.
 1.38  22-Jun-2017  flxd branches: 1.38.22;
spelling (DEC called it "TURBOchannel")
 1.37  03-Aug-2016  christos More cleanups from Felix Deichmann (code) and me (panics).
 1.36  26-Jul-2016  christos From Felix Deichmann:
While writing "slhci at tc" support, I noticed TC bus_space functions
for alpha don't work as they should (tc_bus_mem.c). Consideration of
dense vs. sparse space seems problematic, especially for widths < 4.

I found information mainly in

[1] https://web-docs.gsi.de/~kraemer/COLLECTION/DEC/d3syspmb.pdf
[2]
http://h20565.www2.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623255

and a dirty (but tested) hack based on this is attached as an example.
It would be great if someone could have a look and do a cleaner version
preferably.

Especially the end of ([2] section 12.2.2) provides a summary of which
"instruction" to use for which data width in which space, and possible
side effects (unintentional double reads/writes) in dense space...
 1.35  04-Nov-2013  christos branches: 1.35.6; 1.35.10;
remove unused code
 1.34  06-Feb-2012  matt branches: 1.34.6; 1.34.10;
Do a minor cleanup of alpha (this will make applying pullups post branching
easier).
u_int{8,16,32,64}_t -> uint{*}_t
Change all old-style definitions to C89 prototypes.
Whitespace cleanup.
Constification in db_disasm.c
 1.33  25-Sep-2011  chs branches: 1.33.2; 1.33.6;
change inline to static inline to appease gcc 4.5.
 1.32  01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.31  15-Dec-2010  matt rework <uvm/uvm_extern.h> includes.
 1.30  14-Mar-2009  dsl branches: 1.30.4;
ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.29  14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.28  14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.27  11-Dec-2005  christos branches: 1.27.78; 1.27.86; 1.27.92;
merge ktrace-lwp.
 1.26  08-Jun-2005  he Rename an inner variable shadowing the 'v' parameter to appease -Wshadow.
 1.25  04-Sep-2001  thorpej branches: 1.25.20;
Implement bus_space_mmap().
 1.24  29-Jun-2000  mrg branches: 1.24.2; 1.24.4;
remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.23  18-Apr-2000  tron Fix typo in last commit.
 1.22  17-Apr-2000  drochner implement bus_space_vaddr()
 1.21  26-Feb-2000  thorpej - Add a bus space method for getting the translation for a window.
- Add sysarch methods for "get bus window count", "get bus window",
and "pci conf read/write".

These are a hack, but they're what's necessary in order to make
XFree86 work in its current state.
 1.20  25-Feb-2000  thorpej Add an internal bus space method alpha_bus_space_translate(), which
provides a method to translate an address on an I/O bus into a sysBus
address, along with acccess method information.
 1.19  12-Mar-1999  perry branches: 1.19.8;
ovbcopy -> memmove
 1.18  31-Jul-1998  thorpej Provide a hook for bypassing space accounting, needed to support ISA PnP
for now.
 1.17  02-Sep-1997  thorpej branches: 1.17.6;
Nuke the idea of <machine/options.h>. It completely defeats the purpose
of fine-grain option dependencies.
 1.16  23-Jul-1997  cgd branches: 1.16.2;
when i was documenting the bus_space interfaces (the document
was sent to developers, but will eventually become a man page or
something), i noticed a few in various names:
(1) _map and _alloc should take a flags argument, rather than a
'cacheable' boolean.
(2) BUS_BARRIER_* flags should be BUS_SPACE_BARRIER_*.
(3) bus_space_copy_* should be bus_space_copy_region_* for consistency
with other region ops.
Fix all of these (in a backward-compatible way, at least for now). Redefine
internal usees of those names to use the new names. Also, while at it,
clean up the copy functions (remove unnecessary variables) and make sure
that they and other functions conform to the spec.
 1.15  07-Apr-1997  cgd by default, provide RCS IDs for NetBSD/alpha kernel files in kernel binaries.
This can be disabled (to save a bit of space) with the NO_KERNEL_RCSIDS
options, which is present but commented out in the ALPHA config file.
In ELF-format kernels, these strings are present in the kernel binary but
are not loaded into memory. (In ECOFF-format kernels, there's no easy way
to keep them from being loaded, so they _are_ loaded into memory.)
 1.14  06-Apr-1997  cgd clean up NetBSD RCS ID strings, include machine/options.h
 1.13  02-Dec-1996  cgd branches: 1.13.2;
implement bus_space_copy_*().
 1.12  02-Dec-1996  cgd move barrier operation definition closer to the top of the bus space ops
structure. In the implementations, allow the barrier op to be inlined.
 1.11  02-Dec-1996  cgd implement bus_space_set_multi_* and bus_space_set_region_* operations.
 1.10  02-Dec-1996  cgd declare the single-datum read and write methods as inline, so that
the multi and region methods can inline them.
 1.9  23-Oct-1996  cgd update for new bus.h macros. bus_io_* and bus_mem_* integrated into
single bus_space_* framework. Unfortunately, bus_space_{read,write}_*
operations still imply barriers. That will change soon.
 1.8  22-Oct-1996  cgd update for new bus.h
 1.7  09-Jul-1996  cgd clean and update for new defintions, prototypes, etc.
 1.6  11-Jun-1996  cgd fix pasto in last commit.
 1.5  11-Jun-1996  cgd since bus_mem_subregion() can return failure, don't even bother to try
to handle the case where subregion offset isn't a multiple of 8.
 1.4  11-Jun-1996  cgd implement bus_mem_subregion() and bus_io_subregion().
 1.3  03-Jun-1996  cgd gross hack to get around the fact that there are currently devices with
common back-ends that live on multiple very-different busses (e.g. PCI and
TC), which need bus-specific DMA mapping support. As a nice side effect,
this will allow the especially nasty (vtophys(va) | 0x40000000) expressions
to go away in favor of less nasty bus-specific function calls.
 1.2  20-May-1996  cgd branches: 1.2.4;
add wbflush() calls in strategic places. These really shouldn't be
here, and there should be a generic 'bus' interface to do memory
read/write barriers.
 1.1  18-May-1996  cgd TurboChannel bus_mem_* functions. bus_mem_{read,write}_8, and
bus_mem_read_{1,2} are not yet supported for sparse space.
 1.2.4.2  13-Jun-1996  cgd pull up from trunk:
>implement bus_mem_subregion() and bus_io_subregion().
and:
>since bus_mem_subregion() can return failure, don't even bother to try
>to handle the case where subregion offset isn't a multiple of 8.
and:
>fix pasto in last commit.
 1.2.4.1  03-Jun-1996  cgd pull up from trunk:
>gross hack to get around the fact that there are currently devices with
>common back-ends that live on multiple very-different busses (e.g. PCI and
>TC), which need bus-specific DMA mapping support. As a nice side effect,
>this will allow the especially nasty (vtophys(va) | 0x40000000) expressions
>to go away in favor of less nasty bus-specific function calls.
 1.13.2.2  12-Aug-1997  cgd sync with -current as of August 11, 1997
 1.13.2.1  01-Jun-1997  cgd sync the nwscons branch up with yesterday's version of the trunk.
Lots of conflicts/changes because of the RCS Id format changes.
Also, a few cleanups and corrections.
 1.16.2.2  04-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.16.2.1  01-Sep-1997  thorpej Repair marc-pcmcia branch.
 1.17.6.1  08-Aug-1998  eeh Revert cdevsw mmap routines to return int.
 1.19.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.24.4.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.24.2.1  21-Sep-2001  nathanw Catch up to -current.
 1.25.20.1  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.27.92.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.27.86.1  28-Apr-2009  skrll Sync with HEAD.
 1.27.78.1  04-May-2009  yamt sync with head.
 1.30.4.1  05-Mar-2011  rmind sync with head
 1.33.6.1  18-Feb-2012  mrg merge to -current.
 1.33.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.33.2.1  17-Apr-2012  yamt sync with head
 1.34.10.1  18-May-2014  rmind sync with head
 1.34.6.2  03-Dec-2017  jdolecek update from HEAD
 1.34.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.35.10.1  06-Aug-2016  pgoyette Sync with HEAD
 1.35.6.2  28-Aug-2017  skrll Sync with HEAD
 1.35.6.1  05-Oct-2016  skrll Sync with HEAD
 1.38.22.2  01-Aug-2021  thorpej Sync with HEAD.
 1.38.22.1  13-May-2021  thorpej Sync with HEAD.

RSS XML Feed