Commit Graph

2536 Commits

Author SHA1 Message Date
phx
3055d8c0e9 Moved the macros amiga_cpu_sync() and amiga_membarrier() from amiga/device.h
to the MD include/cpu.h.
Also make sure that grf_cvreg.h includes cpu.h as it is needed by Xamiga
in xsrc/xfree/xc/programs/Xserver/hw/netbsd/amiga/s3/amigaCV.h.
2010-02-09 18:13:09 +00:00
joerg
d621e29eca Remove separate mb_map. The nmbclusters is computed at boot time based
on the amount of physical memory and limited by NMBCLUSTERS if present.
Architectures without direct mapping also limit it based on the kmem_map
size, which is used as backing store. On i386 and ARM, the maximum KVA
used for mbuf clusters is limited to 64MB by default.

The old default limits and limits based on GATEWAY have been removed.
key_registered_sb_max is hard-wired to a value derived from 2048
clusters.
2010-02-08 19:02:25 +00:00
he
edfa9a9fcd Remove a now-unused variable declaration. 2010-02-07 12:52:04 +00:00
phx
ae95aa4ad1 Added two new macros to device.h:
amiga_membarrier() enforces a reorder protection on memory read/writes.
amiga_cpu_sync() makes sure the instruction pipelines are flushed.
Both macros may be used in all amiga device drivers for compatibility with
amigappc. For the start I fixed some SCSI drivers.
cbiiisc and ahsc were tested and seem to work really fast with DMA now.
Some stability problems with amigappc remain nevertheless (spontaneous
kernel DSI traps with high CPU/SCSI load).
2010-02-05 12:13:36 +00:00
phx
37e984601c Ensure reorder protection for amigappc in all bus space functions.
The ne(4) driver (XSurf2), which is the only bus_space device I got,
works now.
2010-02-03 13:56:53 +00:00
phx
c2dfc3161a Fix compilation warnings and errors with amigappc. 2010-02-02 19:03:31 +00:00
phx
0d233c805b Fixed for amigappc by executing eieio after writing to a vga register. 2010-01-31 19:56:19 +00:00
phx
de19fe45f2 Fixed compiler warnings when CV_INT_NUM == 2 or CV64CONSOLE is not defined. 2010-01-30 16:49:14 +00:00
phx
0f34e84a7a Do not crash when ite wasn't configured to be console. 2010-01-30 16:47:05 +00:00
phx
7a2724aa59 Define DCIAS() for amigappc. 2010-01-29 19:56:41 +00:00
pooka
10fe49d72c Redefine bpf linkage through an always present op vector, i.e.
#if NBPFILTER is no longer required in the client.  This change
doesn't yet add support for loading bpf as a module, since drivers
can register before bpf is attached.  However, callers of bpf can
now be modularized.

Dynamically loadable bpf could probably be done fairly easily with
coordination from the stub driver and the real driver by registering
attachments in the stub before the real driver is loaded and doing
a handoff.  ... and I'm not going to ponder the depths of unload
here.

Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
2010-01-19 22:06:18 +00:00
pooka
4be5171ee2 Fix bpf. compile-tested only. 2010-01-18 18:14:43 +00:00
dyoung
73fb1c1774 Use __arraycount(). 2010-01-15 23:49:22 +00:00
elad
251a5f50bc Don't abuse INSECURE for allowing exec() to load files not owned by uid 0.
Adjust references where this has been used.
2009-12-29 20:21:45 +00:00
tsutsui
471e528b58 Remove `volatile' qualifier from argument types of
struct timeval passed to todr_gettime(9) and todr_settime(9).
We no longer have an ancient and volatile struct timeval `time'
global since we have switched to MI timercounter(9) on all port.

XXX1: some of these RTC drivers still assume 32bit time_t
XXX2: some of these should be rewritten to use todr_[gs]ettime_ymdhms()
XXX3: todr(9) man page doesn't mention todr_[gs]ettime_ymdhms()
2009-12-12 14:44:08 +00:00
phx
a58c4d9e81 Reverted the CIA-timer based delay() to the pre-5.0 method of a calibrated
delay loop.
This fixes keyboard handshaking problems with some A1200 models since 5.0
and restores the precision for short delays on DraCo systems (the QuickLogic
timer has only a seventh of the CIA precision).
Changed the keyboard handshaking delay from 2000 back to 200ms, although
even the recommended 85ms were successfully tested on the most problematic
A1200 keyboards.
All those changes were tested on an A3000 and A1200 with 68060/50 CPU, and
previously discussed on the port-amiga ML.
2009-12-12 13:10:36 +00:00
tsutsui
789c74706a Use appropriate macro during pmap initialization:
- use SYSMAP_VA, SEGSHIFT for Sysmap address and table entries
- use TIA_SIZE, TIB_SIZE for sizes of table entries

Now page size dependent numbers are almost replaced with proper macro.

Tested on atari, hp300, and news68k.
2009-12-11 22:23:08 +00:00
tsutsui
465857f028 Refactoring MD segment related definitions on m68k ports:
- move macro SEGSHIFT, NBSEG, and SEGOFSET from <machine/param.h>
  to <m68k/pmap_motorola.h> where they should belong
- also simplify NBSEG macro for both 020/030 and 040/060 cases
- also move m68k_trunc_seg(), m68k_round_seg(), and m68k_seg_offset()
  (that use SEGOFSET) from <m68k/param.h> to <m68k/pmap_motorola.h>
- add comments about each segment size value used on pmap_motorola
  implementation
- add TIA_SIZE, TIA_SHIFT, TIB_SIZE, and TIB_SHIFT macro which can be
  used for ste/pte index sizes
- use proper vaddr_t cast instead of unsigned for SEGOFSET/PGOFSET macro

Tested on atari, hp300, and news68k.
2009-12-11 17:53:22 +00:00
matt
6a9e4e8eeb Change u_long to vaddr_t/vsize_t in exec code where appropriate (mostly
involves setregs and vmcmds).  Should result in no code differences.
2009-12-10 14:13:48 +00:00
rmind
e9f7af26e6 Rename L_ADDR to L_PCB and amend some comments accordingly. 2009-12-10 05:10:00 +00:00
tsutsui
d7debedc42 Fix wrong NBSEG values for all hp300 pmap derived m68k ports.
They were incorrect since 1997 on amiga and atari, and since 2002
on other ports, but fortunately they don't look so fatal.

Anyway, these values will be moved into <m68k/pmap_motorola.h> soon
since they are quite pmap implementation dependent.
2009-12-09 12:21:58 +00:00
tsutsui
7a77e181aa Use PGSHIFT from <machine/param.h> for PAGE_SHIFT.
We can assume PGSHIFT is always constant on current
m68k pmap_motorola implementation.
Also fix some leftover HP300 comments on some ports.
2009-12-08 13:47:26 +00:00
tsutsui
88e9ae94fe Remove old MD pmap.c files for amiga and atari.
They no longer work due to reorganization of common pmap_motorola.c.
2009-12-06 06:46:25 +00:00
tsutsui
31af389001 Move initialization of protection_codes[] and kernel_pmap()
from MD pmap bootstrap sources to common pmap_bootstrap_finalize().

Tested on atari, hp300, mac68k, and news68k.

XXX: Why is protection_codes[] array initialized at run time?
2009-12-06 06:41:28 +00:00
tsutsui
a1e417bc5e pm_stfree in struct pmap is a bitmap value so make it unsigned. 2009-12-06 00:33:58 +00:00
pooka
70d4493c77 Remove the portalfs kernel file system driver. Replace mount_portal(8)
with a version based on puffs.  User functionality remains the same.
2009-12-05 20:11:01 +00:00
tsutsui
8f75ef4349 Fix a leftover comment. 2009-12-04 17:28:54 +00:00
tsutsui
b57ad1c2ce Use common pmap_bootstrap_finalize() to initialize lwp0 uarea etc.
Compile test only.
2009-12-04 17:11:10 +00:00
phx
4848f3cb38 Cast vstart to (struct user *) when assigning it to lwp0.l_addr. 2009-11-26 18:23:48 +00:00
matt
11af2f9cfa Kill proc0paddr. Use lwp0.l_addr instead. 2009-11-26 00:19:11 +00:00
mhitch
128c6b4d5f Remove old legacy IPL_* settings in ipl2spl_table - they are redundant
and in the case of IPL_AUDIO, results in IPL_VM blocking all interrupts.
[IPL_AUDIO is now the same as IPL_VM, and was setting the IPL_VM entry
to PSL_IPL6.  IPL_SERIAL had a duplicate entry for some reason, and
serial drivers that check and modify IPL_SERIAL now shouldn't be affected
since IPL_SERIAL is now the same as IPL_HIGH.  I'm hoping this will fix
or at least help the problem of serial interrupts being blocked too long.
2009-11-24 18:19:52 +00:00
rmind
3dc24f5a91 Use lwp_getpcb() on m68k ports, clean from struct user usage. 2009-11-23 00:11:42 +00:00
snj
ac9f09c8c7 Drop 3rd and 4th clauses (except in one case, where copyright is shared
with UCB and only the 3rd clause is dropped).  Approved by mhitch@ and is@
(copyright holders).
2009-11-15 20:38:35 +00:00
is
c4a186ea1c Move to two-clause license. 2009-11-09 15:35:27 +00:00
cegger
9480c51b04 Add a flags argument to pmap_kenter_pa(9).
Patch showed on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/04/msg006434.html
No objections.
2009-11-07 07:27:40 +00:00
cegger
62cf489d8e kill extra whitespaces
reviewed by tsutsui@
2009-10-26 19:16:54 +00:00
snj
1d76033e5b Drop 3rd and 4th clauses. Approved by Jukka Marin (copyright holder). 2009-10-23 16:46:13 +00:00
snj
78f74058b2 Drop 3rd and 4th clauses (except on files where copyright is shared
with UC, in which case only the ad clause has been removed). Approved
by mhitch@ (copyright holder).
2009-10-21 23:53:38 +00:00
rmind
40cf6f3659 Remove uarea swap-out functionality:
- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code.  Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.
2009-10-21 21:11:57 +00:00
snj
4988388746 Remove 3rd and 4th clause on Leo Weppelman's license. OK leo@. 2009-10-20 19:10:09 +00:00
mlelstv
e33abf1ab0 Add a serial console mode for the bootblock. In this mode all console
output will be echoed to the serial port and input will be accepted
from either keyboard or serial port. The bootblock serial console is
limited to 9600bps 8N1 as it uses the AmigaOS kernel debug routines.

To enable this you have to uncomment the SERCONSOLE define in
boot/Makefile.

Also note that the handling of a serial console in the kernel is
independent of this, you need to a build a kernel with 'options
SERCONSOLE'.
2009-10-17 11:18:17 +00:00
phx
89bf9948e9 Fixed typos in zssc_dump() (DEBUG). 2009-10-16 10:07:16 +00:00
phx
be3b6697b5 Fixed typo in DEBUG: atysc -> atzsc 2009-10-16 09:36:35 +00:00
mlelstv
688e4b57e6 AmigaOS console.device expects a character buffer, not a pointer to an int.
This fixes printf() output.
2009-10-11 10:00:10 +00:00
mhitch
3ebe8c5833 Switch the amiga to the common m68k/m68k/pmap_motorola.c (Finally!!). 2009-09-14 02:23:05 +00:00
phx
3bef245803 Make disklabel.h from amiga and amigappc include the MI sys/disklabel_rdb.h.
amiga/amiga/adosglue.h was deleted and moved into sys_disklabel_rdb.h, as both
are always needed together (disksubr.c and ofppc/stand/ofwboot/rdb.c).
2009-09-12 09:18:42 +00:00
phx
a1fee67004 Handle the situation of a wrapped interval counter, while the hardclock()
interrupt was not yet executed to update the hardclock_ticks variable.
2009-09-11 19:43:08 +00:00
phx
fbc94dd682 Reverted last change after discussion with the author, Michael L. Hitch:
http://mail-index.netbsd.org/port-amiga/2009/08/14/msg007164.html
We have a full 32-bit counter, so the masking is not needed.
2009-09-11 13:11:15 +00:00
thorpej
b5fd5d5727 Minor tweak to the pv_table management in the Hibler-derived m68k pmaps:
The head of the list is now a pv_header, which contains the first pv_entry
as well as a 16-bit attributes field (replaces the pmap_attributes array
plus the pv_entry::pv_flags field) as a 16-bit count of caller-specified
cache-inhibited mappings.

Tested on hp300 (shared pmap_motorola.c), changes to atari and amiga copies
are purely mechanical.
2009-08-26 00:30:01 +00:00
thorpej
97a2657a66 Add a real API for testing if a page is a managed page, and adjust callers
to stop relying on vm_physseg_find() for this purpose.
2009-08-18 18:06:53 +00:00