| Age | Commit message (Collapse) | Author |
|
|
|
The use of pdma when writing would always cause a panic on my Powerbook 160,
possibly others as well.
As posted to tech-kern.
|
|
As posted to tech-kern.
|
|
This excludes atari, sgimips, evbmips, evbppc, evbsh3, and hpcarm
all of which have somewhat specific kernel config file layouts
|
|
It has been there since the initial revision 1.1 while
it was disabled in GENERIC in revision 1.121 back in 2002:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/mac68k/conf/GENERIC#rev1.121
Briefly discussed in PR/57107, and maybe should be pulled up to
netbsd-9 and netbsd-10.
|
|
Addresses PR 57126.
|
|
Written by Hiroshi Noguchi, of which an updated version was posted to
port-mac68k in 2001.
Attachments were added to kernel configs for platforms that already had
the Cabletron (se.4) driver added, although other platorms may benefit.
Reviewed on tech-net by Izumi Tsutsui.
|
|
|
|
|
|
|
|
|
|
|
|
transfer support.
According to analysis by Michael Zucca, PSC (DMAC for Quadra/Centris AV)
seems to require that DMA buffer is
(1) aligned to 16-byte boundaries, and
(2) multiple of 16 bytes in size.
If the buffer does not satisfy these constraints, esp.c rev 1.63 and
prior carry out partial PIO to align or shave off it.
However, partial PIO does not always work correctly for combination of
NCR53C94 and PSC, which results in failures observed as port-mac68k/56131.
Also, PIO spoils synchronous transfer, which is timing critical.
Therefore, for buffers that do not satisfy the boundary conditions,
completely stop using PIO and use DMA with ``bounce'' buffers.
This fixes port-mac68k/56131 and enables sync transfer as a big bonus.
Note that bounce DMA does not hurt performance at all. For filesystem
and swap I/O, buffers always satisfy the constraints above, and bounce
DMA is necessary only
(a) when disk is attached, or
(b) for special utilities like fsck(8) or fdisk(8),
as far as I can tell.
Also:
- Stop providing ``DMA-friendly'' sc_imess and sc_omess; transfer for
MSGIN or MSGOUT does not almost certainly satisfy boundary condition
(2). Again, this does not affect performance at all.
- SCSI bus frequency is 20MHz (i.e., 5MB/s for sync transfer) for AV
models, according to ``Quadra 840AV Service Source''.
|
|
|
|
only one physically contiguous segment in a single DMA transaction.
Slightly improves performance.
|
|
- Use switch instead of if-else-if chain.
- Dedup codes a bit.
|
|
attach message.
For depth == 32, fix ``0 color'', and prevent ambiguous ``16Mi color''.
I don't know whether there is 24-bpp graphic card for mac68k or not,
although.
|
|
- Enable UFS_DIRHASH if the architecture or kernel model specific config
file can use 128MB of RAM or more.
- Remove experimental tag from UFS_DIRHASH; it's been with RUMP kernel
and by a number of NetBSD developers for years.
- Add LFS_DIRHASH if LFS was enabled.
- Be somewhat consistent with FS options order.
|
|
|
|
|
|
|
|
|
|
Currently most ports do nothing in cnpollc(9), but this is required to
handle wskbd(9) .set_leds op in cngetc(9) properly, at least on luna68k.
|
|
filter is requested, return EINVAL rather than 1.
|
|
|
|
define a flag FILTEROP_ISFD that has the meaning of the prior f_isfd.
Field and flag name aligned with OpenBSD.
This does not constitute a functional or ABI change, as the field location
and size, and the value placed in that field, are the same as the previous
code, but we're bumping __NetBSD_Version__ so 3rd-party module source code
can adapt, as needed.
NetBSD 9.99.89
|
|
Affects only inside #ifdef DEBUG part on "trap during panic" in trap.c
derived from hp300.
|
|
It looks the only ioctl(4) to be implemented for WSKBDIO_*BELL in
the backend keyboard driver is WSKBDIO_COMPLEXBELL.
All other BELL ioctls (WSKBDIO_BELL, WSKBDIO_SETBELL, WSKBDIO_GETBELL,
WSKBDIO_SETDEFAULTBELL, and WSKBDIO_GETDEFAULTBELL) are handled in the
MI wskbd driver (in wskbd_displayioctl() in src/sys/dev/wscons/wskbd.c).
|
|
Fix few more typos along the way, mainly in copy-pasted comments.
|
|
|
|
|
|
log messages, reported by me in PR kern/54889.
Also fixed some additional typos in comments, found on review of same files or typos.
|
|
set used by this driver (SWIM II/III, SWIM behind IOP, AV models' DMA
based controllers). Unfortunately, this distinction does not run
cleanly along MACH_CLASS* lines, and we have to look at MACH_MAC{model} tags.
|
|
The H/W partially decodes its address, and sccA is available at
offsets 0xc000, 0xc020, .... The functionality is same, but Mac
toolbox ROM routines use 0xc020, and QEMU for Quadra 800 only
supports this address.
Thanks Mark Cave-Ayland for discussion, who is working on NetBSD
support to QEMU for Quadra 800!
|
|
- Via1Base is always ``base'' for all supported models.
- Set sccA and SCSIBase for each model of MACH_CLASSQ class.
- Some style fixes.
No functional changes intended.
|
|
Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.
Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)
Remove unnecessary or redundant interface attributes where they're not
needed.
There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)
...and a sentinel value CFARG_EOL.
Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.
Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
|
|
variables into u_int, to match with kern/subr_evcnt.c.
|
|
interrupt accounting.
|
|
- Use jeq instead of jra for conditional branch.
- Use cmpl instead of cmp (= cmpw) for int variables.
Now, my Quadra 800 recognizes full 520MB memory!
|
|
that given by Booter. Work around Booter bug by which max memory is
restricted to 255MB.
|
|
|
|
Sync negotiation times out when drive advertises that capability:
----
sd1 at scsibus0 target 1 lun 0: <codesrc, SCSI2SD, 6.0> disk fixed
sd1: 16384 MB, 2088 cyl, 255 head, 63 sec, 512 bytes/sect x 33554432 sectors
sd1: sync (160.00ns offset 15), 8-bit (6.250MB/s) transfers
...
sd1(esp0:0:1:0): esp0: timed out [ecb 0x9f7fc4 (flags 0x1, dleft 8, stat 0)], <state 5, nexus 0x9f7fc4, phase(l 1, c 1, p 1), resid 8, msg(q 0,o 80) DMA active>
sd1(esp0:0:1:0): sync negotiation disabled
sd1(esp0:0:1:0): esp0: timed out [ecb 0x9f7fc4 (flags 0x41, dleft 8, stat 0)], <state 5, nexus 0x9f7fc4, phase(l 1, c 1, p 1), resid 8, msg(q 20,o 80) DMA active> AGAIN
sd1: async, 8-bit transfers
----
This is observed for real SCSI drives as well as SCSI2SD (rev 6.0).
Note that this is not a fallout from DMA patch for AV Macs; timeout
takes place even if ``avdma'' code is forcibly disabled.
No binary changes.
|
|
- Whitespace fixes.
|
|
|
|
|
|
compile-time error if any of the bus_space_*_8 functions was used,
but was documented that it produces a link-time error.
|
|
requested by mrg
|
|
|
|
|
|
|