Commit Graph

1416 Commits

Author SHA1 Message Date
scw
41e7743573 Map the expansion bus registers. 2003-10-23 09:32:17 +00:00
scw
0df102009a Add a few more register definitions. 2003-10-23 09:29:36 +00:00
scw
3a414f559e Use pmap_enter() instead of pmap_kenter_pa() as the former automatically
ensures the mapping is cache-inhibited, so we don't have to frob the PTE
directly.
2003-10-23 09:25:44 +00:00
scw
0fd0c83111 A few minor tweaks to the onfault handlers.
Save some instructions in the non-fault return path.
2003-10-23 09:11:35 +00:00
scw
52c15bbd20 Don't drop to spl0 in cpu_switch/cpu_switchto. Do it in the idle loop
instead.

With this change, we no longer need to save the current interrupt level
in the switchframe. This is no great loss since both cpu_switch and
cpu_switchto are always called at splsched, so the process' spl is
effectively saved somewhere in the callstack.

This fixes an evbarm problem reported by Allen Briggs:

        lwp gets into sa_switch -> mi_switch with newl != NULL
            when it's the last element on the runqueue, so it
            hits the second bit of:
                if (newl == NULL) {
                        retval = cpu_switch(l, NULL);
                } else {
                        remrunqueue(newl);
                        cpu_switchto(l, newl);
                        retval = 0;
                }

        mi_switch calls remrunqueue() and cpu_switchto()

        cpu_switchto unlocks the sched lock
        cpu_switchto drops CPU priority
        softclock is received
        schedcpu is called from softclock
        schedcpu hits the first if () {} block here:
                if (l->l_priority >= PUSER) {
                        if (l->l_stat == LSRUN &&
                            (l->l_flag & L_INMEM) &&
                            (l->l_priority / PPQ) != (l->l_usrpri / PPQ)) {
                                remrunqueue(l);
                                l->l_priority = l->l_usrpri;
                                setrunqueue(l);
                        } else
                                l->l_priority = l->l_usrpri;
                }

        Since mi_switch has already run remrunqueue, the LWP has been
            removed, but it's not been put back on any queue, so the
            remrunqueue panics.
2003-10-23 08:59:10 +00:00
skrll
601de4df8c Rename dsrtc to ds1687rtc to avoid conflicting with the MI i2c
ds1307 driver.

Hi Jason.
2003-10-21 08:15:39 +00:00
briggs
093821886e Define SIGTRAMP_VALID(v). 2003-10-18 17:57:06 +00:00
jdolecek
4bb42bc621 switch ARM to use same minor for /dev/zero as other archs
as discussed on tech-arm@
2003-10-16 12:02:58 +00:00
scw
def6ab457b Remove the #ifdef __XSCALE__ around the strd test as the instruction
is available on any v5E processor.

Pointed out by Richard Earnshaw.
2003-10-15 14:07:03 +00:00
scw
9be5d4cbe9 Document the need for pcb32_r8 to be quad-aligned, now that cpuswitch()
uses Xscale's "strd" instruction.
2003-10-13 21:46:39 +00:00
scw
63d24b09fd A couple of Xscale tweaks:
- Use the "clz" instruction to pick a run-queue, instead of using the
   ffs-by-table-lookup method.
 - Use strd instead of stmia where possible.
 - Use multiple ldr instructions instead of ldmia where possible.
2003-10-13 21:44:27 +00:00
scw
100d67ec52 Xscale-optimised bcopyinout.
Contributed by Wasabi Systems.
2003-10-13 21:22:40 +00:00
scw
3bf49b3ae8 Tweak the read/write data abort check to recognise Xscale's strd/ldrd
instructions.

While the original code matched "strd" just fine, it also matched
the "ldrd" instruction ...
2003-10-13 21:13:30 +00:00
scw
9d9ddf0409 Xscale-optimised b{copy,zero}_page().
Contributed by Wasabi Systems.
2003-10-13 21:03:13 +00:00
scw
063066a055 On Xscale, define PMAP_UAREA() and use it to tweak uarea mappings so
they use the mini D$.

This results in a small performance boost on xscale platforms, since
flushing the main cache on a context switch won't affect the kernel
stack/pcb.
2003-10-13 20:50:34 +00:00
jdolecek
ef5bb330f5 reassing majors for crypto and pf to use the newly defined MI major
range
2003-10-10 22:42:39 +00:00
jdolecek
4e915c9ccd update the comment - the space for machine-dependant majors
is reduced to 0-143
follows discussion on tech-kern
2003-10-10 21:21:25 +00:00
matt
0dbe439e05 Adapt ARM Linux compat code to deal with SIGINFO. 2003-10-10 14:44:42 +00:00
thorpej
901da40cf9 Add some accessor macros for the ucontext:
* _UC_MACHINE_PC() - access the program counter
* _UC_MACHINE_INTRV() - access the integer return value register
* _UC_MACHINE_SET_PC() - set the program counter (this requires
  special handling on some platforms).
2003-10-08 22:43:01 +00:00
scw
0047ff3f6e Ok, I give up for now. There's no easy/reliable way to deal with
these spurious interrupts.
2003-10-08 19:46:12 +00:00
scw
677ee2fdbf Simplify the last change to just check for spurious GPIO interrupts. 2003-10-08 19:39:40 +00:00
scw
ecc5fec473 If no interrupt handler claims to have dealt with a level-triggered
GPIO interrupt, check the GPIO interrupt status register after clearing
it down to see if the interrupt source has disappeared. If it does,
assume it was a spurious event. Otherwise, panic.
2003-10-08 19:31:17 +00:00
scw
fb2c521159 Make it easier to support different types of IXP425 board:
- Move board-specific PCI/GPIO initialisation to its rightful place.

 - Handle clearing down latched GPIO interrupts in a board-independent way.

 - Use MI com(4) driver for on-chip UARTs.

 - Misc. tidying up.

Tested on IXDP425.
2003-10-08 14:55:04 +00:00
lukem
1c33b4e6a4 Overhaul MBR handling (part 1):
<sys/bootblock.h>:
    *	Added definitions for the Master Boot Record (MBR) used by
	a variety of systems (primarily i386), including the format
	of the BIOS Parameter Block (BPB).
	This information was cribbed from a variety of sources
	including <sys/disklabel_mbr.h> which this is a superset of.

	As part of this, some data structure elements and #defines
	were renamed to be more "namespace friendly" and consistent
	with other bootblocks and MBR documentation.
	Update all uses of the old names to the new names.

<sys/disklabel_mbr.h>:
    *	Deprecated in favor of <sys/bootblock.h> (the latter is more
	"host tool" friendly).

amd64 & i386:
    *	Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
	be consistent with the naming convention of the msdosfs tools.

    *	Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
	and it's confusing to have two functionally equivalent bootblocks,
	especially given that "ufs" has multiple meanings (it could be
	a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).

    *	Rework pbr.S (the first sector of bootxx_*):
	    +	Ensure that BPB (bytes 11..89) and the partition table
		(bytes 446..509) do not contain code.
	    +	Add support for booting from FAT partitions if BOOT_FROM_FAT
		is defined.  (Only set for bootxx_msdos).
	    +	Remove "dummy" partition 3; if people want to installboot(8)
		these to the start of the disk they can use fdisk(8) to
		create a real MBR partition table...
	    +	Compile with TERSE_ERROR so it fits because of the above.
		Whilst this is less user friendly, I feel it's important
		to have a valid partition table and BPB in the MBR/PBR.

    *	Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
	with other platforms.

    *	Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
    	we can boot off FAT partitions.

    *	Crank version of /usr/mdec/boot to 3.1, and fix some of the other
	entries in the version file.

installboot(8) (i386):
    *	Read the existing MBR of the filesystem and retain the BIOS
    	Parameter Block (BPB) in bytes 11..89 and the MBR partition
	table in bytes 446..509.  (Previously installboot(8) would
	trash those two sections of the MBR.)

mbrlabel(8):
    *	Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
	to map the MBR partition type to the NetBSD disklabel type.


Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
2003-10-08 04:25:43 +00:00
thorpej
68723a995b * Shuffle some data structures so, and add a flags word to ksiginfo_t.
Right now the only flag is used to indicate if a ksiginfo_t is a
  result of a trap.  Add a predicate macro to test for this flag.
* Add initialization macros for ksiginfo_t's.
* Add accssor macro for ksi_trap.  Expands to 0 if the ksiginfo_t was
  not the result of a trap.  This matches the sigcontext trapcode semantics.
* In kpsendsig(), use KSI_TRAP_P() to select the lwp that gets the signal.
  Inspired by Matthias Drochner's fix to kpsendsig(), but correctly handles
  the case of non-trap-generated signals that have a > 0 si_code.

This patch fixes a signal delivery problem with threaded programs noted by
Matthias Drochner on tech-kern.

As discussed on tech-kern.  Reviewed and OK's by Christos.
2003-10-08 00:28:40 +00:00
thorpej
2c0d381bd7 New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc.  Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
2003-10-06 16:11:19 +00:00
thorpej
d322684f55 Add support for the i80312 and i80321 I2C controllers. 2003-10-06 16:06:05 +00:00
thorpej
df011fda1d Make sure to pass mod/ref seeds with PMAP_WIRED. 2003-10-06 15:43:35 +00:00
thorpej
388386eef7 Make sure to pass mod/ref seeds with PMAP_WIRED. 2003-10-06 00:40:36 +00:00
matt
73ca535921 Add SA_SIGINFO support for ARM (from Chris Gilbert). 2003-10-05 19:44:58 +00:00
jdolecek
e6286b949a Add some framework for MI assignment of device majors - add sys/dev/majors
which is automatically included during kernel config, and add comments
to individual machine-dependant majors.* files to assign new MI majors
in MI file.

Range 0-191 is reserved for machine-specific assignments, range
192+ are MI assignments.

Follows recent discussion on tech-kern@
2003-10-05 08:04:24 +00:00
bsh
81227d1ae1 avoid compile error with GCC3, and add some comments. 2003-10-03 07:24:05 +00:00
thorpej
2652188cc4 New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc.  Primarily written by Steve Woodford,
with some modification by me.
2003-09-30 00:35:30 +00:00
scw
960dfae23f Define ELF32_MACHDEP_ENDIANNESS according to target byte order. 2003-09-29 09:08:20 +00:00
nathanw
4d59420344 Move __cpu_simple_lock_t and __SIMPLELOCK_{UN,}LOCKED to machine/types.h
so that they can be used in a namespace-friendly way.
2003-09-26 22:45:41 +00:00
simonb
550b4bef88 Fix "constify sendsig/trapsignal" fallout for non-siginfo'd archs. Test
compiled on most architectures.
2003-09-26 12:02:55 +00:00
ichiro
066497ec38 add comment and delete unused definition 2003-09-25 14:48:16 +00:00
ichiro
663ccee1cc pci bus support 2003-09-25 14:11:18 +00:00
mycroft
3e08e45a55 Fix GCC 3 barfage. 2003-09-24 11:57:44 +00:00
scw
6b19830ebb Tweak register usage to shave a couple of instructions off
the Xscale code.
2003-09-23 10:01:36 +00:00
matt
6bf111a80e Fix GCC 3.3.1 nits. 2003-09-21 19:32:37 +00:00
matt
b9d20d131e Fix GCC 3.3.1 nits 2003-09-21 15:12:16 +00:00
matt
2d54fd3a9c Change some type-punning detected by gcc 3.3.1 to (void *). 2003-09-21 00:26:09 +00:00
agc
81976735fd If we're going to reference SA variables in this file, might as well
include the header file to define them. From Steve Woodford.
2003-09-19 11:42:20 +00:00
cl
2c1366cfee add MD part of SA/pthread pagefault handling on arm 2003-09-18 22:37:38 +00:00
ichiro
22d06d95f5 fix typo
#if DEBUG -> #ifdef PCI_DEBUG
2003-09-15 05:11:31 +00:00
ichiro
4be788fe81 add address decode of "PCI Configuration type 1" 2003-09-15 05:07:29 +00:00
chris
27dc577349 Tidy up a couple of bits to avoid duplication within the switch. 2003-09-13 14:31:34 +00:00
martin
346b195550 Backout previous, now that <sys/syscall.h> is fixed it's SYS___sigreturn14
again (until we convert to siginfo).
2003-09-11 19:36:29 +00:00
scw
877b3cbe5e Hand-optimised in_cksum/in4_cksum for ARM and XSCALE.
Contributed by Wasabi Systems, with input from Chris Gilbert,
Richard Earnshaw and David Laight.
2003-09-11 18:54:31 +00:00
kleink
d440784b30 __{BEGIN,END}_DECLS-wrap prototypes. 2003-09-11 09:40:11 +00:00
briggs
ab0f909e6e s/SYS___sigreturn14/SYS_compat_16___sigreturn14/ 2003-09-11 03:57:29 +00:00
rearnsha
b805fdb7fa Add build-system support for ARM10. 2003-09-06 09:48:47 +00:00
rearnsha
46af0c9f17 Make sure _ARM32_BUS_DMA_PRIVATE is defined before we pull in any
include files to avoid problems with the rats nest of dependencies.
2003-09-06 09:46:37 +00:00
rearnsha
da86d47fb0 Support for initializing ARM10 processors in write-through mode. 2003-09-06 09:44:10 +00:00
rearnsha
ec2b5e2dfd Support for ARM10E class devices. 2003-09-06 09:42:12 +00:00
rearnsha
1eba58255a Support for ARM10. Extract some additional information about the
dcache so that we can have cache cleaning code that works for any
permitted arm10 cache architecture.
2003-09-06 09:31:37 +00:00
rearnsha
bb00ee6bce Add a function to read the processor cache configuation register. 2003-09-06 09:14:52 +00:00
rearnsha
637a44c215 Processor-specific operations for ARM10 class devices. 2003-09-06 09:12:29 +00:00
rearnsha
d4e1e335e8 Add support for ARM10 class processors. 2003-09-06 09:10:46 +00:00
rearnsha
a515ec698a Add processor-specific declarations for ARM10 class processors. 2003-09-06 09:08:35 +00:00
rearnsha
446ca3f32d Fix declarations of primary cache variables, so that they are
declarations, not definitions.
2003-09-06 09:04:52 +00:00
rearnsha
cfcc3a8ad4 Add support for ARM10 class devices. 2003-09-06 08:55:42 +00:00
rearnsha
e1f8618cbd Add arm1020E cpu id 2003-09-06 08:43:02 +00:00
mycroft
e5168f409e Use generic versions of rr_1, wr_1, sr_1 -- some PCMCIA cards use these. 2003-09-03 03:15:02 +00:00
mycroft
f13bd83ab3 Minor tweak for some macros elsewhere. 2003-09-03 03:12:28 +00:00
mycroft
1e2b27307d Add some register definitions. 2003-09-03 03:11:50 +00:00
mycroft
b715eaff3c Recognize some TI processors -- not that you'd want to use them. 2003-09-03 02:07:07 +00:00
bsh
de45322924 support EXTINT[4:23] as interrupt sources. They are cascaded to
IRQ4 (EXTINT[4:7]) and 5 (EXTINT[8:23]). ssextio driver handles these interrupts.
2003-08-29 12:57:50 +00:00
bsh
23b593ca51 + set vendor name as Samsung.
+ delete debug printf() and use aprint_normal()
2003-08-29 12:38:48 +00:00
bsh
7726d33fed + fix the definition of timer #4 observation register. This change fixed
delay() bug.

+ match the names of timer registers to those in user's manual.
2003-08-27 03:57:05 +00:00
bsh
13543d215c move some definitions of register block size from s3c24[10]0reg.h
to s3c24x0reg.h when they are same for S3C2410 and 2400, and rename them as
S3C24X0_FOO_SIZE.
2003-08-27 03:46:05 +00:00
mrg
0e001a53fa make it "static long nil;" as it's used as &nil in an array wanting long *'s.
makes GCC3 happy.
2003-08-25 04:51:10 +00:00
itojun
4440262659 create /dev/crypto 2003-08-22 05:06:22 +00:00
bsh
10c7bfc755 split StrongArm companion chip (sacc) driver so that we can support
sacc on other platforms than hpcarm (evbarm for example).

codes specific to hpcarm are extracted and moved to hpcarm/dev/.
2003-08-08 12:29:22 +00:00
bsh
02087c6497 make this compile again. (arm32_bus_dma_tag._cookie) 2003-08-07 16:58:35 +00:00
agc
aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
ichiro
208a93d254 fix dont reset register when every interrupt.
pointed by Shoichi Miyake port-arm/22392
2003-08-07 13:32:27 +00:00
bsh
f2de581410 forgot to add copyright. 2003-08-05 11:44:28 +00:00
bsh
3245163bdf support S3C2410's built-in USB host controller, which is OHCI
compliant.
2003-08-05 11:28:59 +00:00
bsh
0b5ec916cd add busdma tag to s3c2xx0_softc and attach arg.
initialize busdma tag in s3c2410_attach()
2003-08-05 11:26:54 +00:00
bsh
3bf70b2edf add s3c2xx0_busdma.c which is used to initialize bus dma tag. 2003-08-05 11:24:08 +00:00
bsh
3410ad1777 various bug fixes. Now SMDK2410 evboard boots up to single user mode
using install ramdisk.
2003-08-04 12:41:44 +00:00
bsh
50c0756fc2 bit polarity of interrupt mask registers don't match between s3c2800
and s3c24[10]0.  define macro s3c2xx0_update_hw_mask() for it.
2003-08-04 12:34:08 +00:00
bsh
950a49dffb initialize global_intr_mask. 2003-08-04 12:31:12 +00:00
bsh
1df8bfd121 Samsung's S3C2800 and S3C24[10]0 CPUs have same built-in UART block,
but there are very small diffs in register definitions.  For that, add
new options SSCOM_S3C{2800,2410,2400} and include appropriate
s3c*reg.h.

SSCOM_S3C2410 is also needed for interrupt controller differences.
2003-08-04 12:28:49 +00:00
bsh
b335250276 + fix TCON register bit definitions. Thank you Samsung for stupid
register design.

+ add definitions for UART registers that are not compatible with
  S3C2800's.
2003-08-04 12:19:38 +00:00
bsh
23ba082952 + cleanup attach message.
+ use aprint_normal()
2003-08-04 12:09:19 +00:00
bsh
d10f592c16 fix comments. 2003-08-04 10:24:15 +00:00
bsh
250a139bc5 change an arg of s3c2800_clk_freq() to match with s3c24x0_clk_freq(). 2003-08-01 00:41:42 +00:00
bsh
b80cc89773 tweak to share s3c2xx0_intr.c for S3C2800 and S3C2410.
move init_interrupt_masks() from s3c2xx0_intr.c to s3c2800_intr.c, since
it doesn't work for S3C2410.
2003-08-01 00:40:17 +00:00
bsh
d887fc052f delete an incorrecct comment
delete unused definitions
2003-08-01 00:30:21 +00:00
bsh
2393816ede add SSCOM_S3C2410 option. 2003-07-31 20:34:15 +00:00
bsh
86ab1d6591 the first cut of Samsung S3C2410 support.
It is Samsung's another ARM920 based SoC.

XXX: not tested much yet.
2003-07-31 19:49:41 +00:00
bsh
eb6fd47108 split sscomintr() to sscomtxintr() and sscomrxintr(). 2003-07-31 19:08:10 +00:00
bsh
675f6328c9 + enable nested interrupts. This change stopped silo overflow messages
at 115200bps.

+ disable all hard interrupts by default.

+ rewrite s3c2xx0_(un)mask_interrupt() to make them faster.
2003-07-30 18:25:50 +00:00
he
d3c139da44 Initialize the new _cookie member of arm32_bus_dma_tag to NULL. 2003-07-30 17:28:19 +00:00
thorpej
d55cef76bf Add an opaque cookie field to the bus dma tag. 2003-07-28 17:35:54 +00:00
thorpej
adef1b7dab Add PBIU register bits. 2003-07-28 16:53:31 +00:00
itojun
3f14c71f75 reserve cdev major # for PF. ok'ed by technical-exec 2003-07-27 14:17:57 +00:00
thorpej
472c98cf7a Fix think'o in last. Pointed out by Izumi Tsutsui. 2003-07-27 04:52:28 +00:00
thorpej
ca601a7747 Flesh out inittodr() and resettodr(). 2003-07-26 05:51:11 +00:00
briggs
d4f2e39afc Clear ARM32_DMAMAP_COHERENT in _bus_dmamap_load_buffer for userspace mappings. 2003-07-24 16:22:01 +00:00
bsh
5d7bb2a528 $Id$ -> $NetBSD$ 2003-07-23 09:26:15 +00:00
igy
fcd9e244be Delaying to mask interrupt by hardware until actually it occurs.
The new code maintains two variables 'current_spl_level' and
'hardware_spl_level'.  Variable hardware_spl_level reflects actual
priority level at the hardware's point of view.  hardware_spl_level is
always synchronized to hardware.

splraise() just increases current_spl_level.  splx() sets
current_spl_level.  If (and only if) hardware_spl_level and
current_spl_level is not same, splx() synchronizes interrupt mask
register and hardware_spl_level to current_spl_level.

In most case, splraise() raises current_spl_level and splx() restores
only current_spl_level.

When an interrupt occurs, hardware_spl_level and interrupt mask
register are synchronized to current_spl_level.

In this implementation, during a higher priority interrupt handler is
running, lower priority interrupts never cause intr_dispatch() to run.
It will avoid some race condition.
2003-07-21 06:17:32 +00:00
lukem
08716eae82 __KERNEL_RCSID() 2003-07-15 00:24:37 +00:00
lukem
1b7326b581 use __KERNEL_RCSID() in a consistent manner 2003-07-14 22:48:19 +00:00
lukem
de043b8788 use __KERNEL_RCSID(0, instead of RCSID( in the kernel 2003-07-14 15:17:13 +00:00
igy
b449da1391 KNF 2003-07-13 09:25:50 +00:00
igy
a90b1b8eca code clean up 2003-07-13 08:56:16 +00:00
igy
3e9598d4fa move window of pci i/o cycle to higher address 2003-07-13 08:26:31 +00:00
igy
cdb56b83f6 mapping pci configuration space (not subregion) 2003-07-13 07:15:22 +00:00
igy
1087696257 using common bus_space_tag in ixpsip too 2003-07-13 02:48:41 +00:00
igy
365f7e1994 sharing bus_space_tag among ixpio, pci mem and i/o. 2003-07-13 02:11:58 +00:00
igy
2a9dfe7684 using devmap for static mapping 2003-07-13 01:01:50 +00:00
thorpej
88f63e28d6 Make faulting in DDB continue back in the top-level command
loop properly.
2003-07-09 20:14:14 +00:00
dogcow
ccd442eae3 gcc 3.2 complained about the missing __volatile and extra tokens after #endif. 2003-07-05 06:53:08 +00:00
ichiro
c2cac1cbd8 add sdram configration register 2003-07-02 14:03:52 +00:00
ichiro
38e0b1c5c5 use struct pmap_devmap 2003-07-02 11:02:28 +00:00
ichiro
25096a1afe backout to recent changes w/o lwp changes 2003-07-02 10:40:46 +00:00
thorpej
22c08fe417 PCI-X requires that that devices updated their PCIXSR on every
config write with the device number specified in AD[15:11].  If
we don't set this field when issuing a Type 0 cycle, each device
could end of thinking it is at device 0, which can cause a number
of problems.  Doing this unconditionally should be OK when only
PCI devices are present.
2003-06-30 15:27:12 +00:00
fvdl
d5aece61d6 Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
chris
6721e83cfc Fixes to get cats build going following proc to lwp changes. 2003-06-29 14:51:04 +00:00
ichiro
904951f445 struct proc * -> struct lwp * 2003-06-29 11:10:35 +00:00
ichiro
4eee2aed2e struct proc * -> struct lwp *
ixp425_com:
add some status flags
2003-06-29 10:51:29 +00:00
darrenr
960df3c8d1 Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records.  The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
martin
d505b18964 Make sure to include opt_foo.h if a defflag option FOO is used. 2003-06-23 11:00:59 +00:00
chris
93632a0574 Fix for port-arm/21962. Rather than fixing the #ifndef spl0, I removed
the test as spl0 is actually a macro for splx(0). The code now calls
splx(0)

(note building with the #ifdef fixed, caused the build to fail on a
GENERIC acorn32 kernel.)
2003-06-23 09:05:22 +00:00
bsh
7aeb49a6b4 don't map PCI device's I/O ports at address 0.
This fixed a problem when 3com 3C905 is a only PCI card on SMDK2800.
2003-06-18 10:56:35 +00:00
bsh
1928d3ed36 enable BTUART 2003-06-18 09:40:06 +00:00
bsh
d8193564ca protect with #ifndef _LOCORE so that assembler codes can share
definitions in this file such as PMAP_DOMAIN_KERNEL.
2003-06-18 02:58:09 +00:00
bsh
ddb2467dd1 make this compile again:
+ we don't have struct pxa2x0_softc anymore.
   + call pxa2x0_clkman_config() to provide clock to LCDC block.
2003-06-17 09:43:14 +00:00
bsh
3c87cee70f white space nit. 2003-06-17 09:32:38 +00:00
thorpej
452a8fdae2 Rename IPL_IMP -> IPL_VM. 2003-06-16 20:00:56 +00:00
fvdl
7dd7f8baa2 Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
2003-06-15 23:08:53 +00:00
thorpej
cf8a25bdfc Add another devmap routine that allows bootstrap code to register
a devmap reflecting mappings that are created by really early
bootstrap code before pmap_devmap_bootstrap() is called.
2003-06-15 18:18:16 +00:00
thorpej
87d5bba5b3 Replace the ad-hoc "section mapping table" for static device mappings
with a more generic "devmap" structure that can also handle mappings
made with large and small pages.  Add new pmap routines to enter these
mappings during bootstrap (and "remember" the devmap), and routines to
look up the static mappings once the kernel is running.
2003-06-15 17:45:21 +00:00
thorpej
5ae120da7b Introduce a new "type" field in the softc which is used to indicate
the general UART type.  Currently, we have "normal", "hayesp" and
"pxa2x0" types.  Replace the corresponding hw flags with the new type
values.
2003-06-14 16:25:52 +00:00
scw
e9bb3437d0 - Correct a couple of comments.
- Set AC97_MODR to the right value.
 - Add AC97_FEFIE.
2003-06-11 20:43:01 +00:00
scw
12b4852056 Gah, fix previous. s/defopt/defflag/ 2003-06-06 19:56:59 +00:00
scw
84f125b78d Modify db_{read,write}_bytes() to do a single 16- or 32-bit read/write if
'size' is 2 or 4 respectively.
This makes reading/writing hardware registers work as expected in all cases.
2003-06-06 10:07:07 +00:00
scw
72ab47548b Add entries for byte-wide {read,write,set} region. 2003-06-06 09:05:42 +00:00
scw
233a67b251 - Rearrange the PXA2x0 support code to better support attaching
child drivers such as interrupt and gpio controllers.
 - Add a function to probe SDRAM size at boot time.
 - Add a function to configure the Clock Manager's CKEN settings.
 - Add an INTC driver.
 - Add a GPIO driver.
 - Add attach glue for the PXA2x0's "almost" 16550-compatible uarts.
 - Tweak the LCD driver to use the GPIO driver's services for setting
   up GPIO pin function.
2003-06-05 13:48:26 +00:00
simonb
b71607572c Remove prototype for strtoul() that was in the wrong place. 2003-06-04 13:30:05 +00:00
ichiro
079fe66132 delete unneed bit for uart initialize.
and bug fix mistaken function
2003-06-03 14:13:30 +00:00
ichiro
bedffd532c fix interrupt number
swap uart0 and uart1
2003-06-03 09:20:20 +00:00
ichiro
745355a88e add pci configuration register and commands 2003-06-02 10:40:52 +00:00
ichiro
b65e980ad1 change into the form KNF 2003-06-01 21:35:39 +00:00
ichiro
4d110df451 add console unit number to configuration parameter.
move structure of uart information
2003-06-01 01:49:56 +00:00
ichiro
a52b2549e2 print description of Console and enable ixpcom0/1 in configuration 2003-05-31 23:57:45 +00:00
ichiro
c5980a60b3 cosmetic change & some bugfix 2003-05-31 11:27:01 +00:00
ichiro
972193a992 some bug fix 2003-05-31 06:24:18 +00:00
kristerw
28f5335a9f Fix LINTSTUB comments. 2003-05-31 01:40:05 +00:00
ichiro
0c9cb92a41 bug fix 2003-05-31 00:58:40 +00:00
thorpej
6955d47610 Make big-endian mode a little closer to working on the BRH. I can talk
to both the EEPROM *and* the PHY on the Ethernet interface now, at least,
though it is still not completely working.

Many thanks to Stephen Goadhouse at ADI for some hints.
2003-05-30 18:38:02 +00:00
ichiro
fda7b1bfdf About CP14 register, ixp425 does not need xscalereg.h 2003-05-25 01:30:52 +00:00
ichiro
46192ffb9b add registers
Performance Monitoring Unit - Coprocessor14
2003-05-24 23:48:44 +00:00
thorpej
80c79650a2 Now that the pmap doesn't fall over when we use pld, enable it if
__XSCALE__ is defined.  This nearly doubles the lmbench bw-pipe
performance on an ADI BRH board.
2003-05-24 05:31:04 +00:00
ichiro
97106736c6 add IXDP425 PCI interrupt
fix some typo
2003-05-24 01:59:32 +00:00
ichiro
2ad510ea55 delete definition (DEBUG) 2003-05-23 10:14:03 +00:00
ichiro
07fcae9efc hide debug messages(mapping) 2003-05-23 09:41:02 +00:00
briggs
faaab85482 Sprinkle a few aprint_normal()s in place of printf(). 2003-05-23 05:21:26 +00:00
ichiro
00eb02e3da support IXP425 Intel Network Processor
running on BigEndian
2003-05-23 00:57:23 +00:00
thorpej
fac0ce9387 Remove old pmap support. 2003-05-22 19:18:31 +00:00
thorpej
1963a8521c Use virtual_avail and virtual_end to compute the size of the available
kernel VM space for VM_MAX_KERNEL_BUF, and move the definition into
generic ARM code.
2003-05-22 05:25:48 +00:00
thorpej
55073c92c1 Move the new pmap from arm32/pmap_new.c to arm32/pmap.c, fully replacing
the old.
2003-05-21 18:07:07 +00:00
thorpej
c8bed530ac Remove #ifdefs supporting the old pmap, switching fully to the new. 2003-05-21 18:04:42 +00:00
briggs
acec11e5ac Use the GDB5 breakpoint value for the kernel breakpoint assembly statement
since this value will be properly recognized by gdb_trapper().
Pointed out by bsh.  Thanks!
2003-05-21 13:39:01 +00:00
bsh
7ba6ee4ca8 fix warning when KGDB is defined and DDB is not defined. 2003-05-21 06:40:29 +00:00
thorpej
df7c83c4a0 Rewrite pagemove() to use pmap functions, rather than frobbing PTEs
directly.  The old code was totally bogus for the new pmap.  New code
lifted from SH5 port.

Fixes panics in ffs_balloc_ufs2() seen while stress-testing a file
system on an XScale-based server platform.
2003-05-17 00:41:36 +00:00
ichiro
9bccf5da79 add CPU types
IXP425 xscale-core NetworkProcessor

later, Ill commit codes for IXP425-evaluation board
2003-05-13 11:45:52 +00:00
bsh
a6f754db03 + use system's real PCLK frequency for calculation, instead of a compile
time constant.

+ make delay() more accurate.
2003-05-13 08:07:39 +00:00
bsh
b4e06de16e use system's real PCLK frequency instead of a compile time constant for
baudrate divisor setup.
2003-05-13 06:29:53 +00:00
bsh
2b33d23a8c + fix a bug to think FIFO full as FIFO empty.
+ on rx buffer overflow case, disable error interrupt as wel as rx
  interrupt.

+ FIFO is always enabled.
2003-05-13 06:26:57 +00:00
bsh
51712a0aa1 white space nit. 2003-05-13 06:12:45 +00:00
bsh
3675ae2669 + use SWRCON register for software reset.
+ add s3c2800_clock_freq(): calculate [FHP]CLK from values in PLL
  control registers and S3C2XX0_XTAL_CLK.
2003-05-13 05:15:08 +00:00
bsh
ca05494daf add an option to set external X'tal frequency. 2003-05-13 05:10:55 +00:00
bsh
ab094d4717 add fields to hold FCLK, HCLK, and PCLK frequency. 2003-05-13 05:06:39 +00:00
kleink
776138ea69 Rename <sys/float_ieee.h> to <sys/float_ieee754.h>, following libc's
convention for these.
2003-05-12 15:22:53 +00:00
bsh
ac7984d2fd add an arg to s3c2800_intr_establish() for interrupt type. 2003-05-12 07:49:10 +00:00
bsh
a99b5e08a5 + add an arg to s3c2800_intr_establish() for interrupt type:
IST_EDGE_{FALLING,RISING,BOTH}, or IST_LEVEL_{LOW,HIGH}. This
  argument is valid only for GPIO interrupts (IRQ0..7).

+ Don't clear interrupt pending bits for IIC in interrupt handler.
  Since clearing these bits starts next IIC transmission immediately,
  IIC driver should handle these.
2003-05-12 07:48:37 +00:00
bsh
fda719999a add PLLCON register definitions. 2003-05-12 05:22:31 +00:00
thorpej
e43fecb228 Change bounds_check_with_label() to take a pointer to the disk structure,
rather than the label itself.  This paves the way for some future changes.
2003-05-10 23:12:28 +00:00
thorpej
36da248c07 Back out the following chagne:
http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html

There were some side-effects that I didn't anticipate, and fixing them
is proving to be more difficult than I thought, do just eject for now.
Maybe one day we can look at this again.

Fixes PR kern/21517.
2003-05-10 21:10:23 +00:00
thorpej
2a90e2a9c9 Remove redundant bounds_check_with_label() prototype. 2003-05-10 16:12:02 +00:00
fvdl
d88cf589cb A few ISA sound drivers like to share dma channels, and hence deferred
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.
2003-05-09 23:51:25 +00:00
thorpej
b77900c3c2 Simplify the way the bounds of the managed kernel virtual address
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).
2003-05-08 18:13:12 +00:00
reinoud
733594dd05 Some entries were missing so i'd better add them for completion. 2003-05-06 00:29:57 +00:00
thorpej
a6b1913724 Make the ARM_VECTORS_* unsigned. 2003-05-04 02:00:10 +00:00
thorpej
46ffc57a80 VM_{MIN,MAX}* are now the same for ARM32_PMAP_NEW with both new and
old VM layout, so merge the two cases.
2003-05-04 01:54:32 +00:00
thorpej
bbba90a2fb Don't expose KERNEL_TEXT_BASE outside of board-specific code. This gives
individual board start-up code more flexibility about where the kernel
starts in the kernel address space.
2003-05-03 18:25:28 +00:00
wiz
1ffa7b76c4 DMA, not dma nor Dma. 2003-05-03 18:10:37 +00:00
thorpej
78fac054fa In db_write_bytes(), use kernel_text rather than KERNEL_TEXT_BASE. 2003-05-03 17:32:59 +00:00
thorpej
69b2e108bb Remove the non-ELF case in db_machine_init(). 2003-05-03 17:29:27 +00:00
thorpej
6923eb1e4a Fix a couple of comments. 2003-05-03 16:18:57 +00:00
bsh
2de6557e88 fix typo in an error message. reported by Jonathan Cline on port-arm. 2003-05-03 05:19:00 +00:00
bsh
00095bbed3 delete duplicated #include. reported by Jonathan Cline on port-arm. 2003-05-03 05:17:54 +00:00
thorpej
aae7e372b7 Reduce differences between ARM32_NEW_VM_LAYOUT and not; always pass
the start and end of the kernel managed virtual address space to
pmap_bootstrap() in the new pmap.
2003-05-03 03:49:03 +00:00
thorpej
38d274c953 ARM32_PMAP_NEEDS_PTE_SYNC no longer exists. 2003-05-03 00:47:42 +00:00
thorpej
79a7aff0fd Don't need to reserve a page of space before KERNEL_BASE in the
ARM32_NEW_VM_LAYOUT case.
2003-05-02 23:26:47 +00:00