Commit Graph

364 Commits

Author SHA1 Message Date
tsubai a2e8151f8e Define symbolic name of PMU commands. 1999-06-16 07:43:58 +00:00
tsubai 4df925b8b0 * Don't use DMA interrupt.
* Stop DMA explicitly in finish routine.
1999-06-14 08:53:06 +00:00
tsubai 86d2f9253a Consider "have /psuedo-hid and only ADB keyboard" case to make the
new PowerBook G3 happy.
1999-06-14 06:22:50 +00:00
thorpej 2c35c7bd03 Only declare block major numbers for devices which can be the root device. 1999-06-07 20:31:27 +00:00
thorpej d76e7b8c6d Don't pass a nam2blk around at all; just have setroot() and friends reference
dev_name2blk[] directly.  Addresses PR #7622 (ITOH Yasufumi), although
in a different way.
1999-06-07 20:16:08 +00:00
thorpej 2580d306ab Change the vm_map's "entries_pageable" member to a r/o flags member, which
has PAGEABLE and INTRSAFE flags.  PAGEABLE now really means "pageable",
not "allocate vm_map_entry's from non-static pool", so update all map
creations to reflect that.  INTRSAFE maps are maps that are used in
interrupt context (e.g. kmem_map, mb_map), and thus use the static
map entry pool (XXX as does kernel_map, for now).  This will eventually
change now these maps are locked, as well.
1999-05-26 19:16:28 +00:00
thorpej 5832084eaf bus_dmamem_map() maps DMA safe memory, which is usually one or more
managed pages, into KVA space.  Since the pages are managed, we should
use pmap_enter(), not pmap_kenter_pa().

Also, when entering the mappings, enter with an access_type of
VM_PROT_READ | VM_PROT_WRITE.  We do this for a couple of reasons:

	(1) On systems that have H/W mod/ref attributes, the hardware
	    may not be able to track mod/ref done by a bus master.

	(2) On systems that have to do mod/ref emulation, this prevents
	    a mod/ref page fault from potentially happening while in an
	    interrupt context, which can be problematic.

This latter change is fairly important if we ever want to be able to
transfer DMA-safe memory pages to anonymous memory objects; we will need
to know that the pages are modified, or else data could be lost!

Note that while the pages are unowned (i.e. "just DMA-safe memory pages"),
they won't consume any swap resources, as the mappings are wired, and
the pages aren't on the active or inactive queues.
1999-05-25 23:14:03 +00:00
lukem e4a87aa1a9 * convert to using MI allocsys(). most ports were using an MD allocsys(),
although a couple still used the old pre-4.4-lite (?) mechanism.
* use format_bytes() to format the various printf()s that print out memory sizes
1999-05-20 08:21:42 +00:00
thorpej f98d358a1f Rework layer 2 protocol input routines. Instead of calling e.g. ether_input()
directly, call the function pointer (*if_input)(ifp, m).  The input routine
expects the packet header to be at the head of the packet, and will adjust
as necessary.  Privatize the layer 2 input and output routines, allowing
*_ifattach() to set them up as appropriate.
1999-05-18 23:52:51 +00:00
thorpej e5f47f6307 Rewrite the USB keyboard console attachment (again). Grumble, Macintosh
firmware sets the "stdin" property of /chosen to be a pseudo-hid (yes, they
even spell it incorrectly) that merges all keyboard input into one stream,
so we can't find the USB controller we're attached to.  Instead, just give
it to the first USB keyboard found during autoconfiguration.  So that we
have SOMETHING available early on, use OpenFirmware i/o to do keyboard
input to the console wsdisplay until the USB code attaches the keyboard.

From Jason Thorpe <thorpej@nas.nasa.gov>
1999-05-13 23:37:19 +00:00
wrstuden 3c5aad8d3c For whatever reason, we just can't call pci_init() that early on Bandit
systems.  Why?  Who knows.  Firmware bugs, maybe.  In any case, moving
the call out of the ADB path works.  "Good enough for me."
1999-05-07 22:20:38 +00:00
wrstuden 1e90fa5723 BusLogic cards seem to work in my G3. :-) 1999-05-07 20:10:54 +00:00
drochner fe310dd299 include <lib/libkern/libkern.h> for intoa()/inet_ntoa() 1999-05-07 16:19:27 +00:00
wrstuden fb7f9b828f Add pciide config info. 1999-05-06 19:28:20 +00:00
thorpej 680c3ddbd2 Completely rewrite how cninit() determines which keyboard to use with
the console.  New algorithm:

* if stdin == keyboard, and parent of keyboard == adb, use ADB.
* else, must be a USB keyboard.  Search backwards though the parents
until the USB controller is located.  Determine its location in the PCI
domain, and which type of controller it is, and tell that controller that
it has the console input device.  The USB code will then attach the first
USB keyboard as the console input device during autoconfiguration.

The iMac and Blue and White G3 consoles are fully functional now!
1999-05-06 19:24:47 +00:00
thorpej ac9eee8693 Take all of the OpenFirmware "stdin" grovelling out of the ADB keyboard
driver, as the smarts for this all live somewhere else now.
1999-05-06 19:20:59 +00:00
thorpej 35df607966 Allow pci_init() to be called twice, once just to find the PCI-Host
bridges and determine the "pci chipset" values (for making PCI tags),
and again to actually map the configuration space registers.
1999-05-06 19:16:44 +00:00
tsubai 661ae33963 Remove unused codes. 1999-05-06 04:37:44 +00:00
wrstuden af849de633 MAke this cross-tools happy. 1999-05-06 01:04:48 +00:00
tsubai 9042054e51 Fix a small bug to make both IO and MEM enable bits in csr are set. 1999-05-05 08:43:53 +00:00
thorpej fc645b996a - Always config_found() PCI busses, so we know if present PCI busses
aren't configured.
- Grab the bus's memory space tag from the pci_bridge structure for
the bus.
1999-05-05 04:40:00 +00:00
thorpej 654b0fff46 - Completely rewrite how bus space tags for PCI space are set up. Instead
of hard-coding them, decode the "ranges" property of the PCI bus node in
OpenFirmware.
- Do a little cleanup, and share some more code between the Bandit/Chaos
and MPC106.

XXX The bus_space(9) implementation for macppc really needs to be
rewritten.
1999-05-05 04:37:19 +00:00
thorpej c448c97f2b - Add come comments.
- Do a little cleanup.
- Protect the entirety of pci_conf_{read,write}() with splhigh()/splx().
1999-05-05 04:32:28 +00:00
thorpej 341f87673b Add a bus space tag for PCI memory space to the pci_bridge structure. 1999-05-05 04:26:48 +00:00
tsubai 28b7777fd0 Provide CACHELINESIZE when _STANDALONE is defined too. 1999-05-03 05:19:59 +00:00
tsubai 8e885e921e Check "mac-io" and "/pci/mac-io". 1999-05-01 10:37:57 +00:00
tsubai 8dbaa0169e Find "mac-io" and "/pci/mac-io". 1999-05-01 10:36:08 +00:00
tsubai 5fff3dafe9 Use "compatible" property to match. 1999-05-01 10:23:42 +00:00
tsubai 9697f9c401 Add more sanity check. 1999-04-30 04:35:35 +00:00
tsubai 599ebb4db1 Now we can use symbols in DDB. :-) 1999-04-29 05:15:30 +00:00
tsubai 741030cc8a Add loadfile_machdep.h 1999-04-29 03:17:12 +00:00
tsubai e4e1fcbaa6 Use MI loadfile(). 1999-04-29 03:16:20 +00:00
wrstuden 9b0e678d51 Fix compilation errors. 1999-04-22 18:48:59 +00:00
ws 5423093850 Modify syncicache on PowerPC from an inline to a real function.
Support different cache line sizes with the same object code in userland.
While here, move the function to implementation name space.
1999-04-17 21:16:45 +00:00
thorpej e49833cd68 Now that we have direct-mapped pool pages, we can garbage-collect VM_MBUF_SIZE
and don't need to allocate mb_map.
1999-04-16 21:47:11 +00:00
thorpej 48a53c250d Add a stub pciide_machdep_compat_intr_establish() for Power Macintosh.
Power Macintoshes with PCI IDE (e.g. the new Blue G3) don't have them
wired to compatibility mode, so just return a NULL cookie.  We still have
to have this routine for the PCI IDE driver to link.
1999-04-16 21:15:29 +00:00
chs f455dd6596 add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.
1999-04-11 04:04:04 +00:00
tsubai bee9b5d9ab Enable "de". 1999-04-01 16:11:45 +00:00
thorpej 967b8c433c Don't call configure() from cpu_startup(). 1999-04-01 00:17:45 +00:00
tsubai 7c3a6002b3 Use interrupt-map property rather than hard-coding irqs.
(From Dan Winship <danw@MIT.EDU>. Slightly modified by me)
1999-03-29 12:12:03 +00:00
tsubai e1410f9e82 Remove unused file. 1999-03-28 13:39:30 +00:00
tsubai 85cece609b Remove unused files. 1999-03-28 13:16:45 +00:00
mycroft 9c6b797796 Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.
1999-03-26 23:41:25 +00:00
tsubai 6dbdfeab77 include GENERIC. 1999-03-26 16:40:09 +00:00
tsubai 35a4f16a60 ``INSTALL'' + USB doesn't work (binutils bug?).
So use this instead.
1999-03-26 14:58:22 +00:00
mrg 7b93dd1117 remove opt_uvm.h 1999-03-25 00:41:46 +00:00
mrg ca5f9685bb clean up kernel/config files files for machVM lossage. 1999-03-24 06:06:09 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
drochner 76fa1751fe Add a macro to check for sufficient pointer alignment in bus.h context,
"BUS_SPACE_ALIGNED_POINTER()".
Equal to the param.h "ALIGNED_POINTER()" normally, but obeys additional
requirements of the bus_space_xxx_n() macros. (BUS_SPACE_DEBUG)
1999-03-23 21:29:03 +00:00
wrstuden 3c8e65b670 Oops. macppc doesn't use PCLK as a baud rate source. 1999-03-23 18:07:19 +00:00
thorpej 63b6321834 VM_MBUF_SIZE is in terms of MCLBYTES, not CLBYTES. 1999-03-23 00:31:59 +00:00
cgd 284689634e Moved to arch/macppc/include/pci_machdep.h,v 1999-03-19 03:36:19 +00:00
cgd 49e6daa992 Moved from arch/macppc/pci/pci_machdep.h,v 1999-03-19 03:36:18 +00:00
sommerfe bc533621ed defopt MINIROOTSIZE 1999-03-17 18:59:21 +00:00
tsubai 79c71e0bae Check the accessibility before reading from configuration space. 1999-03-15 03:03:10 +00:00
tsubai 07e094073c Remove bogus comment. 1999-03-15 02:26:10 +00:00
perry d446fb449c exterminate ovbcopy. patches provided by Erik Bertelsen, pr-7145 1999-03-12 22:42:30 +00:00
tsubai 5023765f61 Adapt Open Firmware 3.x. 1.x and 3.x are not bug-compatible... 1999-03-05 06:21:17 +00:00
tsubai 4bdf0d9244 Modify parseargs() so that device names can contain '-'. 1999-03-05 06:18:38 +00:00
tsubai c6a8ff5d24 RSS accounting. 1999-03-05 06:11:18 +00:00
scottr 624b6ac9a6 Implement the BUFCACHE kernel config option. 1999-03-01 21:32:24 +00:00
tsubai 78665b6502 Increase default data size to compile libbfd without `virtual memory
exhausted'.  Suggested by Scott Reynolds.
1999-02-27 18:32:31 +00:00
scottr d32ed292af defopt BUFCACHE and BUFPAGES. 1999-02-27 06:39:34 +00:00
tsubai b10dbdb37a Initialize BAT registers in the first place. 1999-02-26 18:36:15 +00:00
tsubai 16442fd649 Add MESH SCSI driver.
Sort entries.
1999-02-22 20:25:43 +00:00
tsubai 650f05d8c7 Ensure msgbuf_paddr is accessible (by bat). 1999-02-19 14:11:35 +00:00
tsubai c8117990ae Use 6x11 font if screen size is smaller than 1024x768.
(Open Firmware ROM has 6x11 font.)
1999-02-19 14:02:33 +00:00
tsubai da71ba4292 First step of MESH SCSI support.
XXX no disconnect/reselect.
XXX sync transfer is very unstable.
1999-02-19 13:06:03 +00:00
tsubai 60307f0ef1 Sync with mac68k. 1999-02-17 14:56:56 +00:00
tsubai 4806be8d02 Use powerpc/reloc.h. 1999-02-16 17:53:42 +00:00
tsubai adf03cea81 Add copyright notice. 1999-02-16 15:20:51 +00:00
hubertf 100778d54a RCS ID police 1999-02-15 04:25:28 +00:00
lukem dcab0210a0 convert from NOxxx= to MKxxx=no.
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
mycroft 2a304686e6 Minor cleanup.
Make the initializer for BAUDLO depend on PCLK directly; it was incorrect on
some ports where PCLK is not 4.9152MHz.
XXX Is the default value actually used?
1999-02-11 15:28:03 +00:00
tsubai cd010c972c Oops, last change is wrong... 1999-02-08 14:32:00 +00:00
tsubai d1276ebc65 Make this compile. (and sync with dev/ic completely) 1999-02-06 20:04:31 +00:00
tsubai 7177191d30 Allocate DMA-aware memory area using "dma-alloc" method and use them
for data buffer.
XXX currently only netif_put() uses this.

iMac can use ofwboot.elf now.
1999-02-04 15:41:15 +00:00
tsubai 78094a09f1 Uncomment PCI-PCI bridges. 1999-02-04 15:04:58 +00:00
tsubai 630abfea00 Add PCI-PCI bridge support for Bandit. 1999-02-04 14:54:00 +00:00
tsubai 610a648c7d Use "local-mac-address" property to get MAC address. 1999-02-04 12:14:24 +00:00
mycroft be1af660c0 Don't set DCD_IE in the frontends. KGDB doesn't even use DCD, and the tty
frontends get it from zsparam() anyway.
1999-02-03 20:25:05 +00:00
mycroft 54f0a0ae81 Clone changes from the version in dev/ic. (These should be merged!)
Note: NOT tested on this port yet.
1999-02-03 20:19:08 +00:00
tsubai 68c9ce2c96 Don't use BAT register. (not needed now.) 1999-02-02 16:48:17 +00:00
tsubai a4de4218fd Use private (its own) segment registers in Open Firmware call,
instead of BAT register.
1999-02-02 16:47:08 +00:00
tsubai ef69721044 findroot() now recognizes network devices. 1999-02-02 16:37:51 +00:00
tsubai 378f49eff8 Ensure lowest 256MB is mapped by BAT0. 1999-02-02 16:29:25 +00:00
tsubai fed24e89c8 Adapt disklabel_mbr.h change. 1999-01-31 19:56:56 +00:00
tsubai a4f0ae9043 Adapt disklabel_mbr.h change. 1999-01-31 13:54:24 +00:00
thorpej 24d9973308 Use <sys/disklabel_mbr.h>. 1999-01-27 21:30:08 +00:00
tsubai 941abb6bf6 ofmsr[IP] = 0. 1999-01-27 14:46:28 +00:00
tsubai 5ad236211f Add file-system MFS. 1999-01-27 12:43:17 +00:00
tsubai 711ac04b78 syncicache(sigcode, sigcodesize) before exec. 1999-01-24 15:07:51 +00:00
tsubai 438b781c46 Match "ata0". 1999-01-22 10:44:38 +00:00
tsubai 321f772d99 Invert Y axis (like ums, pms, ...). 1999-01-18 12:36:36 +00:00
tsubai ffffbb419c Fix a intrcnt bug. 1999-01-17 11:53:52 +00:00
tsubai 07d83c4919 Add bmac ethernet. 1999-01-17 11:49:56 +00:00
chuck 417e5339f0 MNN is no longer optional 1999-01-16 20:31:50 +00:00
thorpej 8922647c58 Some minor, mostly costmetic, changes to CPPFLAGS/CFLAGS. 1999-01-15 23:37:05 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
tsubai 12d2afa11a Use KS_KEYCODE macro. 1999-01-13 08:13:41 +00:00
tsubai 3bc029b332 Add ``#include "akbd.h"''. 1999-01-12 15:12:44 +00:00
tsubai 5998caa414 Support irq > 31.
XXX dirty hack...
1999-01-12 12:06:46 +00:00
tsubai bb426487a5 Move MSGBUFSIZE from machdep.c to param.h
Use the last page for msgbuf instead of fixed MSGBUFADDR.
1999-01-12 10:51:40 +00:00
tsubai 90a73bba2c Always use polling when poweroff/restart. 1999-01-12 10:38:00 +00:00
drochner 35eeb3f1cd remove dummy "load_font" entries 1999-01-11 21:54:22 +00:00
tsubai c91ac313c1 Count clock interrupts. 1999-01-11 09:44:51 +00:00
tsubai 477add6bea Add irq32 - irq63 to intrnames. 1999-01-11 08:49:58 +00:00
tsubai 8190b5f43f Add sanity checks in akbd_cnattach(). 1999-01-10 10:39:13 +00:00
thorpej e598335d1c Garbage-collect `mbutl'. 1999-01-09 22:10:12 +00:00
augustss fc5f9ee81d Add -Wpointer-arith warning since `void *' arithmetic is not ANSI C. 1999-01-08 19:26:12 +00:00
thorpej 52fa7c35ac Add pcscp driver. 1999-01-06 23:43:30 +00:00
tsubai 13529d1878 bmac ethernet driver. (tested on iMac. only 10Base-T works.) 1999-01-01 01:27:52 +00:00
tsubai bdf1b68276 iMac support (not complete yet). 1998-12-29 06:27:59 +00:00
tsubai 8a5e34f28a Fix a bug of last change. 1998-12-29 05:17:27 +00:00
tsubai d5fc963f0e Add USB. 1998-12-29 04:40:19 +00:00
tsubai 2ad7314a82 Configure only one wskbd/wsmouse. 1998-12-28 00:50:44 +00:00
tsubai e7e9a2e0e1 Use "interrupt" property if "AAPL,interrupt" is not found. 1998-12-28 00:38:18 +00:00
tsubai 86a0b96c10 Search "interrupts" property if "AAPL,interrupts" is not found. 1998-12-22 19:46:28 +00:00
tsubai 89e0cc0a86 Display frame buffer type when attached. 1998-12-22 19:38:35 +00:00
tsubai 1e7ee2d117 Determine the address of interrupt register at runtime.
(iMac has different address)
1998-12-22 19:35:49 +00:00
tsubai 07c96d75d6 Wait one second before powerdown. 1998-12-21 21:58:19 +00:00
tsubai c232b5d803 Add wdc. 1998-12-10 20:49:17 +00:00
tsubai b517a9d3d8 Add wd and atapi. 1998-12-10 20:21:28 +00:00
tsubai ef27ffc3de Add ata/atapi disk support. 1998-12-10 20:10:03 +00:00
tsubai ea6bba6b90 Fix a typo. 1998-12-07 17:17:14 +00:00
tsubai fbeabd992c Implement sparse bus space support. 1998-12-06 15:39:12 +00:00
thorpej 7fa243e59e Pass the symbol table size, like a.out. 1998-12-04 20:22:36 +00:00
tsubai 619952b3ee Not used. 1998-12-03 11:05:18 +00:00
thorpej 16eabd8a1f Add an RCS ID. 1998-11-28 20:59:26 +00:00
hwr 59acb69be1 Add (commented out) 'gre' pseudo device line. Feedback is welcome.
Inspired by Klaus Klein.
1998-11-25 20:30:44 +00:00
tsubai f917584d54 Add more delay in adb_reinit(). 1998-11-24 08:26:50 +00:00
tsubai 01a2fb8424 Fix typo. 1998-11-22 15:57:37 +00:00
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
mrg db3051d720 fix problems in many d_mmap routines:
- returned EOPNOTSUPP rather than -1.
	- no check for negative offset.
many of these fix potential security problems in these drivers.


XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
	paddr_t (*d_mmap) __P((dev_t, off_t, int));

by someone!
1998-11-19 15:38:20 +00:00
tsubai 099f099133 Don't send mouse events to wsmouse layer if wsmouse isn't configured. 1998-11-18 09:11:34 +00:00
oster cf5710c839 Added a (commented out) configuration line for the RAIDframe device driver. 1998-11-16 16:44:55 +00:00
tsubai 7c939afccf RTC support for pmu (read only). 1998-11-15 19:41:33 +00:00
oster c74d32c5fc Updating of bdev's and cdev's to support RAIDframe. 1998-11-13 04:47:03 +00:00
tsubai 1bf603b543 Sync to mac68k. 1998-11-05 11:46:07 +00:00
tsubai 8634976fb2 Move conversion of PRAM-time to UNIX-time to clock.c (like mac68k). 1998-11-04 15:06:13 +00:00
tsubai 0b3665db48 Add "Paddington" ID. 1998-11-03 12:15:57 +00:00
dante 27e57114e1 Add support for macppc
Very special thanks to Itsumi Tsutsui for his invaluable collaboration.
1998-10-28 21:06:27 +00:00
tsubai d6ebbdb79a Fix -Wpointer-arith warning. 1998-10-25 17:39:52 +00:00
tsubai 262ba9ad95 Fix miscounting of length in syncicache(). 1998-10-25 10:13:21 +00:00
tsubai 325ecdada1 Use PCI function number correctly. 1998-10-21 08:58:36 +00:00
tsubai e6efdfc6af Add via-pmu support. 1998-10-20 15:13:14 +00:00
tsubai 330d14c254 Oops, forgot to add them. 1998-10-20 14:59:16 +00:00
tsubai 6f402eb495 Add via-pmu support (only PowerBook 2400c/180 is tested). 1998-10-20 14:56:30 +00:00
tron b296275bb4 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:09:13 +00:00
tsubai 07e2c44982 Make compilable without aed. 1998-10-18 09:52:16 +00:00