a pointer to current cpu's cpu_info structure. Use cpu_info for
intstk,intr_depth,still_stk,idle_pcb,curpcb,curlwp,etal even on
non-MULTIPROCESSOR machines. Add common macros GET_CPUINFO and
INIT_CPUINFO to get and initialize the cpu_info struct on startup. Make
ibm4xx use the standard <powerpc/frame.h>. Use IFRAME_xx in ibm4xx
trap_subr.S instead of explicit magic offsets. Move INTSTK and SPILLSTK
to std.<platform>. Change faultbuf to a struct instead of an array.
On MPC6XX cpus, stop using the vector page for temporary space and use
reserved space in cpu_info.
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.
The previous method of finding KERNOBJDIR when using BSDOBJDIR by
referencing _SRC_TOP_OBJ_ from another directory was extremely
fragile due to the depth first tree walk by <bsd.subdir.mk>, and
the caching of _SRC_TOP_OBJ_ (with MAKEOVERRIDES) which would be
empty on the *first* pass to create fresh objdirs.
This change requires adding sys/arch/*/compile/Makefile to create
the objdir in that directory, and descending into arch/*/compile
from arch/*/Makefile. Remove the now-unnecessary .keep_me files
whilst here.
Per lengthy discussion with Andrew Brown.
two ways:
- the child gets its pid as retval[0] (userland stub will turn it into a 0),
retval[1] is 1 and it is 0 in the parent.
- in the child, the fork syscall is successful, hence we must skip the next
instruction.
isochronous reception routine for IEEE 1394 OHCI (fwohci). The
transmission part is under construction.
The minimum configuration options for this feature are:
# IEEE 1394 (i.LINK)
fwohci* at pci? dev ? function ?
pseudo-device fwiso 1
kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals
kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)
based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
before rev 1.4. This change makes OF 2.4 machines actually boot, and
it works fine on my OF 2.01 machine. No reports of failures on other
archs.
I expect this change is fine as the original code flushed the just-loaded
ofwboot out of the cache, conditionalized on FIRMWORKSBUGS. In rev.
1.4, the code got in-lined, and changed to actually flush low memory
out of the cache. Since machines kept booting, I expect the firmware
was really flushing the binary out of the cache, so we're fine.
rely on default value. It should actually be extracted
from the bootpath instead, but that involves translating
from apple partition map entries to netbsd disklabel entries.
are related to using libsa's alloc(). Problems go away with this alloc().
The problem is that the libsa alloc() assumes we can grab memory off
the end of the program. That assumption doesn't work for us. It's
much better to use the alloc() we were using as it calls OF_claim()
to get memory.
This merge changes the device switch tables from static array to
dynamically generated by config(8).
- All device switches is defined as a constant structure in device drivers.
- The new grammer ``device-major'' is introduced to ``files''.
device-major <prefix> char <num> [block <num>] [<rules>]
- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.
- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.
- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.
- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.
- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
counters. These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.
pmc(9) is meant to be a general interface. Initially, the Intel XScale
counters are the only ones supported.
be properly used by any misc. cloning device. While here, correct
a comment to indicate that "open" is the only entry point and that
everything else is handled with fileops.
Move the trap/vector initialization for MPC6xx ports to mpc6xx_machdep.c
Also move softnet, install_extintr, mapiodev, kvtop. Add common BAT
initialization code.
Add user Altivec support.
Fix calls to OF_call_method in macppc/macppc/machdep.c.
Use ci_fpuproc in cpu_info instead of separate fpuproc.
Add separate syscall.c and defined __HAVE_SYSCALL_INTERN.
MALLOC_NOINLINE, and VNODE_OP_NOINLINE. The exceptions are when they
include another config files that already defines the options, or if
they are for an embedded board, just define a few extra options, and
do not already define PIPE_SOCKETPAIR.
Makoto Fujiwara <makoto@ki.nu> and Manuel Bouyer <bouyer@netbsd.org>.
Help from Allen Briggs, Jason Thorpe, and Matt Thomas.
We need to call cpu_cache_probe() early in boot (machdep.c).
Add 603 info for completeness, and use NBPG not PAGESIZE, as the
latter relies on uvm being setup (cpu_subr.c).
Let uvm_page_recolor() be called before uvm has been set up; just
note the page coloring value (uvm_page.c).
while here, correct labelsector/offset mismatch in writedisklabel,
when readdisklabel() have found the label at nonstandard location
(due to magic number search). a lot of other ports have the same problem.
disk label offset. use hardcoded "1" for now, i guess we need a new #define
in sys/disklabel_mbr.h. fixes ofwboot to boot kernel off from MBR-formatted
disk.
- setup a 32KB (+32byte) stack, instead of 4KB stack
- cache flush: use _start instead of 0x4000, and flush 2k instead of 1k
Features (by me):
- implement:
OF_write() (and grab "stdout" from "/chosen")
putstrn(s,n) using OF_write(); write string s of n bytes long
putstr(s); write fixed-sized string s
putc(c); write char c
- add some useful messages which output the status of loading the
stage 2 bootstrap (which is usually ofwboot)
This code now works on Bill's Beige G3!
NULL for root PCI busses. For busses behind a bridge, it points to
a persistent copy of the bridge's pcitag_t. This can be very useful
for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
uses OFW device nodes to enumerate the bus. When a PCI bus that is
behind a bridge is attached, pci_attach_hook() allocates a new PCI
chipset tag for the new bus and sets it's "curnode" to the OFW node
of the bridge. This is used as a starting point when enumerating
that bus. Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
* Pull in dev/mii/files.mii from conf/files, rather than playing
the magic "files include order" dance in N machine-dependent
configuration definitions.
an Apple Partition entry. As proposed to port-macppc. Also some
prototype modernization for touched routines.
Method is that NETBSD, NETBSD/MACPPC, NETBSD/MAC68K partitions,
if they have a valid bzb, contain all of the info we shove in a NetBSD
disklabel partition entry. defines in disklabel.h cover aliasing
some of the bzb fields.
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
become ippp (ISDN ppp) and irip (ISDN raw IP). The character device now
are called: /dev/isdn (isdnd <-> kernel communication), /dev/isdnctl (dialing
and other control), /dev/isdntrc* (tracing), /dev/isdnbchan* (raw B channel
access, i.e. for user land PPP) and /dev/isdntel* (telephone devices, i.e.
for answering machines).
the others. It is perfectly reasonable to have multiple adb keyboards,
and a number of multi-button mice have a fake kbd for the second and
third mouse buttons. Now my machine doesn't panic during boot when it
is trying to add a second ws console kbd.
completion routine so that the completion routine can reentrantly
process the queue. This happens, for example. when polling is turned
on by entering the debugger by keystroke.
and ofwboot.xcf will load at 640000. The idea is that we can now
leave load-base at 600000, and it will work right for all three methods.
The problem is that the file loader and the net loader use load-base
as a scratch area, so if the executable really wants to load there,
the load fails.
While we're here, enable RAIDframe (and RAID_AUTOCONFIG) by default for
architectures that I'm comfortable can deal with it being on by default.
Also: bump the number of 'raid' devices from 4 to 8, since 4 seems to
be insufficient in practise.
flag and a callback function which gets called whenever a target is
selected on a channel.
The macppc wdc driver needs to reprogram its timing register
differently for each target on a channel each time that target is
selected. I also changed the ATA4_TIME_TO_TICK to use a divisor of
15, which brings our timing calculations consistent with darwin.
These patches fix problems on my dual usb ibook with combo dvd/cdrw
drive because the hard drive supports udma and the combo drive does
not. Without turning off the udma timings in the configuration
register, I cannot access the non-udma combo drive.
for DEC-based chips, and to have tlp available for tulip clones. The change
in GENERIC is such that TLP_MATCH options are commented out (allowing de to
attach to DEC-based chips), and change in is INSTALL such that de is present
and TLP_MATCH options are commented out.
The addition of de in INSTALL increases its compressed size by about 17 KB.
Primarily the goal is to have INSTALL and GENERIC use the same device.
This will fix PR port-macppc/10779.
It has been tested with the 1.5.3_ALPHA GENERIC and INSTALL kernels on my
PowerMacintosh 7300 with a 21140A (now de, previously tlp) and a
Lite-On 82C115 (tlp).
de0 at pci0 dev 15 function 0
de0: interrupting at irq 25
de0: Asante 21140A [10-100Mb/s] pass 2.2
de0: address 00:00:94:a4:03:35
de0: enabling 10baseT port
tlp0 at pci0 dev 14 function 0: Lite-On 82C115 Ethernet, pass 2.5
tlp0: interrupting at irq 24
tlp0: Ethernet address 00:00:94:b6:16:ef
tlp0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX
an interrupt anyway, just in case. Otherwise, report the timout condition.
This works around a problem in my ibook if a key is pressed after boot
and before adb is configured, such as when booting with -d.
this fixes calling OF_finddevice() with invalid devices,
and as a result fixes booting with -d.
Apparently openfirmware expects persistence of sprg2 and/or sprg3
I suspect this is used when handling exceptions
then try the old name usb-kbd-ihandle. This way my old iMac gets the
USB keyboard as console instead on the (non-existent) ADB keyboard.
Suggested by Gabriel Rosenkoetter.
isn't an OFW device, look it up in /aliases and substitute the bootpath
found into the string. This allow device_register to do it's thing.
Key off the drive number, not the channel, in autoconf.c. Closes PR#13756.