kernel and flush it out all at once instead of continuous updating
* add support for delivering notifications to the file server about
when a page was written to (but disabled by default for now). the
file server can use this to request flushing or invalidating the
kernel page cache
Basics: the ADM5120 is a 175 MHz MIPS32 4Kc processor featuring a
6-port ethernet 10/100 switch with Auto MDI/X, a PCI controller,
USB 1.1 controller, UART, watchdog timer, eight GPIO pins, and a
multiport memory controller with both NOR and NAND flash support.
This code supports most of the devices on the ADM5120, including
the 6-port switch (each port attaches as an ethernet, admsw0 through
admsw5), the PCI controller, USB controller, GPIO, watchdog, and
UART.
Remaining work: the port includes no NOR/NAND flash drivers. No
bootloader is included. I have only tested the PCI bus driver with
the use of one PCI slot on the RouterBOARD 153. It is not possible
to exploit the capabilities of the ethernet switch using bridge(4).
I have only netbooted the ADM5120 on the RB153. Booting other
boards, and booting from flash memory, remains to be done.
Hardware availability: many low-cost routers, including the
RouterBOARD 100 series at RouterBOARD.com, use the Infineon ADM5120
processor.
Credits: Ruslan Ermilov and Vsevolod Lobko ported to the ADM5120,
and they wrote device drivers for the UART, USB controller, and
10/100 switch. Matt Isaacs brought the port up-to-date with
NetBSD-current, made it compile, and ran it first on the RB153.
I added drivers for the PCI controller, GPIO, and watchdog timer.
I produced the bus attachment for the CompactFlash slot with advice
from Mikrotik technical support and from Matt Thomas.
sets IDE_IRQA in the IDE Control/Status Register. This is needed on prep
machines with Motorola RAVEN host bridges, as they wire up the ide device
oddly.
print out the values of the bytes that do not match.
Add comment explaining that there is no documented rationale for the
check.
fsck_msdos checks that several bytes are equal in the primary and
backup bootblock. There is no documented rationale. The kernel does
not enforce this when mounting a filesystem. I have a FAT32
filesystem on my disk (mounted as /share) which fails this check, but
is accepted by both Windows XP and NetBSD. My volume differs in bytes
71-81. The primary contains "SHARE " and the backup NUL bytes.
Further, fsck_msdos does not have code to repair the mismatch. As a
result such filesystems can be used not checked.
This makes autonegotiation on rlphy(4) at re(4)
on landisk (8139C+) select 100baseTX full-duplex
at boot time (before first ifconfig) properly,
and there is no bad side effect on rlphy(4) at nfe(4).
This may also fix PR kern/34109.
truth" of either integers or pointers, so that it's clear
what's going on. Remove superfluous () from return statements.
bcmp -> memcmp, bcopy -> memcpy.
Misc. cosmetic: join some lines, remove a few empty lines, remove
spaces from type casts. Don't open-code IFNET_FOREACH(). Shorten
some staircases.
hooks that signal the interface's departure run before IPv6 sends
messages to indicate that it is leaving its multicast groups; when
pf filters the departure messages, it does not recognize the output
interface, so it complains at the departure of gre65, for example:
pf_test6: kif == NULL, if_xname gre65
I have changed if_detach() so that it calls pr_usrreq(PRU_PURGEIF)
before pfil_run_hooks(PFIL_IFNET_DETACH), instead of the other way
around. That quiets the pf_test6: messages.
CPPPICFLAGS obly affect *.s sources only,
but we want -D_I18N_DYNAMIC flag for *.c source
(src/lib/libc/citrus_module.c and so on).
use CPICFLAGS instead.
this fix suggested by tsutsui-san in current-users@, thanks.
Just run it once (in the first cpu probed) with the RUN_ONCE(9)
framework.
Change the argument of est_init and k8_powernow_init to void, we don't
need cpu_info * anymore.
Suggested by tls@ and mrg@.
Branch: reinoud-bufcleanup
Description: implement and evaluate struct buf usage cleanup strategies.
Ideas currently in mind (preference for b):
a)
1. use of bio_ops per buffer.
2. allow chaining/overloading of functions in bio_ops
and provide some private context.
3. extend the bio_ops with commenly used functionality
like pending action counting, custom context passing,
last minute processing of buffer data, buffer cache
etc.
4. investigate the use of the kcont()
continuation-passing framework for async io
completion notification for bufs
...
b)
1. all sequencing use of B_CALL replaced by
device-threads, if possible generic code around BUFQ
2. possibly use kcont() for async IO finished signalling
3. counter of pending and queued actions requestable
by IOCTL interface?
4. implement `last minute buffer fixup' calls and maybe
even finished I/O calls as vnode operations
...
Status: Active
Start Date: Thu Mar 15 2007
End Date:
Base Tag: reinoud-bufcleanup-base
Maintainer: Reinoud Zandijk <reinoud@NetBSD.org>
Scope: src/sys and src/common
Notes: Used as expiriment sandbox and if successful hopefully one day
to be intergrated.