| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
subr_kdb.c still references breakpoint() in this case.
|
|
|
|
|
| |
that were inserted in desperation during bring-up. In addition, move ADB bus
enumeration and child attachment to when interrupts are available.
|
| |
|
|
|
|
|
|
| |
count field is 16 bits. Inform ATA of this fact.
Reported by: Marco Trillo
|
|
|
|
|
|
| |
appropriately defined constants.
Suggested by: gnn
|
|
|
|
| |
Obtained from: Juniper Networks, Inc (BookE support).
|
| |
|
|
|
|
| |
for kernel profiling.
|
|
|
|
|
|
|
|
|
|
|
|
| |
to set the initial PIO mode instead of assuming PIO4. There are still a few
nagging issues:
- There are some problems with 64 K DMA transfers waiting on lower level
changes.
- ATAPI DMA is broken on Marcel's Mac Mini because we need an ATA SELECT hook
propagated up to individual drivers for hardware without timing registers for
each ATA channel.
|
|
|
|
|
|
|
|
| |
G3 as well as the internal ADB keyboard and mice in PowerBooks and iBooks. This
also brings in Mac GPIO support, for which we should eventually have a better
interface.
Obtained from: NetBSD (CUDA and PMU drivers)
|
| |
|
|
|
|
| |
Obtained from: Juniper Networks, Inc.
|
|
|
|
| |
the NOR flash lives by default.
|
|
|
|
|
| |
by a single TLB entry. The boot ROM on the MPC85555CDS is 8MB, for
example, and in order to map that we need 2 4MB TLB entries.
|
|
|
|
| |
nexus by only attaching to a device with no OF node.
|
|
|
|
|
|
|
|
|
|
|
| |
simplifies certain device attachments (Kauai ATA, for instance), and makes
possible others on new hardware.
On G5 systems, there are several otherwise standard PCI devices
(Serverworks SATA) that will not allow their interrupt properties to be
written, so this information must be supplied directly from Open Firmware.
Obtained from: sparc64
|
|
|
|
|
|
|
|
|
|
|
| |
all to date and the latter also is only used in ia64 and powerpc
code which no longer serves a real purpose after bring-up and just
can be removed as well. Note that architectures like sun4u also
provide no means of implementing IPI'ing a CPU itself natively
in the first place.
Suggested by: jhb
Reviewed by: arch, grehan, jhb
|
|
|
|
|
|
| |
with, and limited to, the Motorola/Freescale 745x family.
Reported by: Marco Trillo
|
|
|
|
|
|
|
| |
here, clean up and document this a little.
Submitted by: Marco Trillo
MFC after: 1 week
|
|
|
|
|
| |
Tested by: grehan, marcotrillo@gmail.com
MFC after: 1 month
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After I removed all the unit2minor()/minor2unit() calls from the kernel
yesterday, I realised calling minor() everywhere is quite confusing.
Character devices now only have the ability to store a unit number, not
a minor number. Remove the confusion by using dev2unit() everywhere.
This commit could also be considered as a bug fix. A lot of drivers call
minor(), while they should actually be calling dev2unit(). In -CURRENT
this isn't a problem, but it turns out we never had any problem reports
related to that issue in the past. I suspect not many people connect
more than 256 pieces of the same hardware.
Reviewed by: kib
|
|
|
|
|
|
|
|
|
|
|
| |
to the C99 style. At least, it is easier to read sysent definitions
that way, and search for the actual instances of sigcode etc.
Explicitely initialize sysentvec.sv_maxssiz that was missed in most
sysvecs.
No objection from: jhb
MFC after: 1 month
|
|
|
|
|
| |
supporting 64-bit CPUs, which often have 128-byte cache lines instead of the
standard 32.
|
|
|
|
|
|
|
|
| |
port by OF the syscons won't take over console. Only attach syscons to "screen"
if /chosen/stdout is not connected, which could be the case when loader(8)
is booted directly from the OF. This fixes Marcel's Xserver.
Reported by: marcel
|
|
|
|
| |
table entries for both the 32-bit and 64-bit AIM MMUs.
|
|
|
|
|
|
| |
This is necessary to allow future support of DMA for the various Apple on-board ATA controllers.
MFC after: 1 week
|
|
|
|
|
|
| |
try to program it.
Approved by: marcel (mentor)
|
|
|
|
|
|
|
| |
to "screen" node directly. The problem is that by default OF on some (all?)
Macs either doesn't provide "/chosen/stdout" or redirects it somewhere,
unless you boot in manual mode via CMD-ALT-O-F. It's nice to see normal
FreeBSD boot output instead of blank gray screen.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
make it memory-coherency enforced (PTE_M). This is required for SMP
to work.
o Serialize tlbie operations and implement the tlbie operation in a
function called tlbie(). Hardware can end up in a live-lock if
between the tlbsync and subsequent sync on one processor another
processor executes a tlbie or tlbsync.
o Eliminate the following defines:
TLBIE, TLBSYNC, SYNC and EIEIO
Use either inline assembly statements or inline functions defined
in <machine/cpufunc.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
caches if not yet enabed. This is required for coherency and
atomic operations to work, not to mention performance. We use the
L2 and L3 cache settings of the BSP to configure the APs caches.
Can't be bad.
Program NAP and not DOZE. DOZE is present only on earlier CPUs
and the bit is reserved on the MPC7441 & MPC7451. NAP will do
bus snooping to keep caches coherent.
Program the PIR with the cpuid. This may not be necessary...
|
|
|
|
|
|
|
| |
We're only returning a 32-bit counter.
o In decr_intr(), manually perform LICM, so that we don't test
a loop invariant condition inside a loop.
o Include <machine/smp.h>
|
|
|
|
|
| |
pmap_activate. While pmap_activate doesn't need either, we
do need a valid curthread if we enable KTR_PMAP.
|
|
|
|
|
| |
o Don't set/get the PIR register. It's CPU dependent.
o Also initialize pcpup->pc_curpcb, in case it's dereferenced.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
volatile so that the compiler won't perform CSE. For SMP,
this may result in us accessing the wrong PCPU and as such
results in a bogus curthread value.
Note that getting curthread is not quite MP-safe in the sense
that it requires two instructions that aren't performed
atomically. The first instruction gets the address of the PCPU
structure and the second instruction dereferences that pointer
to get curthread. If a thread is switched-out in between these
instructions and switched-in on a different CPU, we still get
the wrong curthread.
|
|
|
|
|
|
| |
to start and the tracing can interfere with AP startup.
Instead, use the available space in the reset vector
for the initial stack.
|
|
|
|
|
| |
o Remove SPR_HID2.
o Add more SPR_L3CR bit definitions.
|
|
|
|
|
|
|
|
| |
common PowerPC code when all we want to achieve is to enable
external interrupts. We can set PSL_RI at any time before we
allow interrupts and/or exceptions, so move it to the AIM
specific initialization and do it when we also set PSL_ME
(machine check enable).
|
|
|
|
|
|
|
|
| |
configuring the L2 cache on the BSP. Nor the L3 cache. We
merely print the settings.
Save the L2 and L3 cache configuration in global values so
that we know how to configure the cache on APs.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
doesn't make exceptions unrecoverable.
|
|
|
|
|
|
|
| |
100% sure that TLB1 mapping covers for them; previously we could lock the CPU
with an untranslated references.
Obtained from: Semihalf
|
|
|
|
|
|
|
|
|
|
| |
- Allocate thread0.td_kstack in pmap_bootstrap(), provide guard page
- Switch to thread0.td_kstack as soon as possible i.e. right after return
from e500_init() and before mi_startup() happens
- Clean up temp stack area
- Other minor cosmetics in machdep.c
Obtained from: Semihalf
|