otherwise news3400 sometimes losts zs interrupts.
This should fix "serial console hiccups on sysinst" problem
reported by Mauricio <raub at kudria.com> on port-newsmips.
isa_dmamap_create() calls to their open/close entrypoints. This worked
with some luck, but broke on i386 when _bus_dmamap_create started
to allocate bounce buffers upfront, since memory below 16M may well
not be available when the sound devices is opened for the Nth time.
To fix this, create a new simple interface, isa_drq_alloc/isa_drq_free,
wrappers around already existing bitmask macros. These are expected
to be used before an isa_dmamap_create call, and after an
isa_dmamap_destroy call, respectively. For the sb and ad1848 drivers,
they're deferred until open/close.
All isa_dmamap_create calls can now use BUS_DMA_ALLOCNOW and be done
at attach time.
for hb devices.
- Move declarations for hb functions and macros to dev/hbvar.h.
- Define and use hb_badaddr() macro for hb devices.
- Declare news3400_badaddr() in machine/cpu.h rather than machine/autoconf.h.
- Remove unused stuff from machine/autoconf.h.
- We no longer able to use uvm_pageboot_alloc() before pmap_bootstrap()
is called. Use pmap_steal_memory() directly instead.
Approved by Jason R. Thorpe.
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM. Machine-dependent code is
responsible for initializing them before main() is called. Anything
that steals KVA must adjust these variables accordingly.
This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().
This also eliminates some kludges such as having to burn kernel_map
entries on space used by the kernel and stolen KVA.
This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code,
this giving MD code greater flexibility over the bounds of the managed
kernel virtual address space if a given port's specific platforms can
vary in this regard (this is especially true of the evb* ports).
XXX the MCA-specific stuff in here was never actually used. I pointed
the tag at all the generic functions that can now be used (bounce
functionality was integrated into them).
Make ALLOCNOW the default iff bouncing might be needed (this has
no effect on i386 because ISA DMA devices already had to use
ALLOCNOW, and PCI isn't bounced (yet), since we don't do > 4G
at this point for i386.
"Occasionally a blocking open of dcm port 0 will hang in ttyopen()
waiting for carrier detect to be asserted when it's already
present.
The problem is that dcmmint() will return before updating the
value of sc->sc_mcndlast if the device is not open. If carrier
detect drops after the device is closed, sc->sc_mcndlast will
no longer correctly represent the "previous" state of the
signals when the next transition of carrier detect occurs.
A subsequent blocking open will wait forever for an event
which has in fact taken place."
Also in the ARM32_PMAP_NEW case, reclaim the USPACE-bytes of wasted space
at the top of the user address that hasn't been needed for a very very
long time.
for L2 allocation. This avoids potential recursive calls into
uvm_km_kmemalloc() via the pool allocator.
Bug spotted by Allen Briggs while trying to boot on a machine with 512MB
of memory.
===============================================
This code enables NetBSD to support for NEC VR4181 CPU and some
devices on L-Card+ board.
NEC VR4181
----------
NEC VR4181 is a embedded CPU which has MIPS processor core and
integrated I/O devices within a package. The basic architecture of
VR4181 is similar to other VR41xx family CPU. Some integrated devices
are compatible to another VR41xx series CPU and some are not.
VR4181 has integrated devices listed bellow:
- Two of 16550 compatible UART
- Compact Flash controller
- ISA bus controller
- Audio CODEC
- A/D converters
- LCD driver
- Touch panel controller
- General purpose I/O
L-Card+ Embedded CPU Board
--------------------------
L-Card+ is name card sized CPU board for embedded system. It is soled
by Laser5 (http://www.laser5.co.jp/) with Linux installed.
L-Card+ has following devices:
- 16Mbyte flash memory (Intel 28F128)
- 16Mbyte SDRAM
- CS8900A Ethernet controller and RJ45 port
- RS232C line driver and external connector
- Compact Flash socket
- A pair of Mezzanine connector for extension board
- Some on-board LEDs
Current Feature of This Code
----------------------------
Following devices are supported:
- UART (used for console)
- wi on Compact Flash socket
- cs (CS8900A)
- Flash memory (Intel 28F128 and Fujitsu MBM29LV160)
- Audio Coder (limited support)
--
Naoto Shimazaki
breakpoint address before it's used. Currently a no-op on all but sh5.
This is useful on sh5, for example, to mask off the instruction
type encoding in the bottom two address bits, and makes it possible
to do "db> break $rXX" instead of manually munging the address.
by the application, all NetBSD interfaces are made visible, even
if some other feature-test macro (like _POSIX_C_SOURCE) is defined.
<sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE,
_POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve
existing behaviour.
This has two major advantages:
+ Programs that require non-POSIX facilities but define _POSIX_C_SOURCE
can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS.
+ It makes most of the #ifs simpler, in that they're all now ORs of the
various macros, rather than having checks for (!defined(_ANSI_SOURCE) ||
!defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.
I've tried not to change the semantics of the headers in any case where
_NETBSD_SOURCE wasn't defined, but there were some places where the
current semantics were clearly mad, and retaining them was harder than
correcting them. In particular, I've mostly normalised things so that
_ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE,
_XOPEN_SOURCE and _NETBSD_SOURCE in that order.
Tested by building for vax, encouraged by thorpej, and uncontested in
tech-userlevel for a week.
mbr: boots active partition
mbr_bootsel: menu selection for partitions 1 to 4
mbr_ext: menu selection for partitions 1 to 4 and extended partitions
Based on code from sbin/fdisk/mbr_bootsel.
Needs a new fdisk to configure mbr_ext and correctly set default menu selection.(Not yet built by defaulat)
table is handled the podulebus mappings are now done at initarm, rather
than in the podulebus code. While I'm not happy with this it does work,
perhaps there's a better way to do it?
Not enableing by default I've not got enough cards to check the podulebus
change hasn't broken something (works with my rapide and with my network
podule)