Commit Graph

105457 Commits

Author SHA1 Message Date
fvdl
ae4b76c8d3 New interrupt code. The basic idea behind it is to hide the differences
in interrupt controllers in struct pic, and try to keep as much
common code as possible. At the lowest (asm) level, this is done
with CPP macros.

The main structure is now struct intrsource, describing an established
interrupt line, of any kind (soft/hard local apic/legacy apic/IO apic).
For quick masking, there may be a maximum of 32 sources per CPU.
Sources can be assigned to any CPU in the MP case, though currently they
all go to the boot CPU.
2002-11-22 15:23:35 +00:00
fvdl
88fb7f6d27 Define a generic PIC structure, used by the interrupt code. 2002-11-22 15:07:58 +00:00
fvdl
99dccacc3c Interrupt defines that needed to be in a seperate file to avoid cyclic
includes.
2002-11-22 15:07:38 +00:00
fvdl
65d1332692 Asm macros for interrupt/trap entry/exit, used in multiple .S files. 2002-11-22 15:07:10 +00:00
fvdl
1db3b7489b New files for the changed interrupt code. i8259.c deals with some of
the old ('legacy') i8259 code, intr.c now contains the bulk of
the interrupt establish/disestablish code.
2002-11-22 15:05:23 +00:00
fvdl
0caa98d6b8 .s -> .S rename 2002-11-22 15:02:12 +00:00
fvdl
c403116289 .s -> .S rename. New files: vector.S and spl.S, they have been split
off from locore.s, plus parts of isa/vector.s and isa/icu.s
2002-11-22 15:01:15 +00:00
fvdl
71a8119df8 Renamed to .S 2002-11-22 14:57:32 +00:00
fvdl
518afbd262 Renamed to .S, locore.s was split up too. 2002-11-22 14:55:11 +00:00
fvdl
fe506424c6 Removed in the new intr world. 2002-11-22 14:53:05 +00:00
fvdl
e2b6067204 Removed, no longer needed. Defines were either dupilcates, or have been
moved to other files.
2002-11-22 14:43:32 +00:00
fvdl
45cffa1bd6 These files have been given a proper .S extension, they will come back
to life as such.
2002-11-22 14:39:26 +00:00
fvdl
e4703e808c The ioapic interrupt code has been folded together with the i8259
interrupt code.
2002-11-22 14:30:28 +00:00
simonb
7a17e24ac5 Remove pc532-only hacks to access wildly different interrupt accounting
now that interrupts are tracked with evcnt(9) on this port.
2002-11-22 13:30:34 +00:00
simonb
fe72c084d6 Switch to using evcnt(9) to track interrupt counts. 2002-11-22 13:26:39 +00:00
simonb
11823a584d Only warn on double-word displacements for displacements less
than -0x20000000, not -0x1f000000.  Quells the endless stream
of
	ld: Double word displacement -535682276, out of range
style warnings that have annoyed my once too often.
2002-11-22 12:40:20 +00:00
wiz
0b10ce5dfc regen 2002-11-22 12:23:26 +00:00
wiz
e78e668887 Fix typo (responsiness -> responsiveness). 2002-11-22 12:20:58 +00:00
wiz
34fa57de10 Use correct macro. 2002-11-22 12:15:27 +00:00
thorpej
95681d5fa6 Note some recent toolchain changes. 2002-11-22 06:46:45 +00:00
thorpej
6dba3a7439 Split crtbegin/crtend into crti/crtbegin/crtend/crtn. NetBSD-specific
things like the .note.netbsd.ident section are provided by crti/crtn.
crti/crtn also provide the _init() and _fini() routines.

crtbegin/crtend now only provide support for ctors/dtors.  This paves
the way to using the "crtstuff" provided with GCC (when we upgrade to
GCC 3.3), which provides, among other things, much better C++/Java
exception handling.
2002-11-22 06:44:56 +00:00
junyoung
2cc0cde8f5 Now _rtld_relocate_objects() returns with error as soon as any of
subsequent calls in it fails.

Spotted by wiz and enami.
2002-11-22 04:39:37 +00:00
manu
f528c56f39 Check for excessive recursive Mach-O loading 2002-11-21 22:30:32 +00:00
manu
ae6b5562b1 Remove a debug message that has been committed by mistake. 2002-11-21 22:01:45 +00:00
manu
af59b63bbd We now have the exact stack initial stack layout of Darwin:
macho_hdr, argc, *argv, NULL, *envp, NULL, progname, NULL,
*progname, **argv, **envp

Where progname is a pointer to the program name as given in the first
argument to execve(), and macho_hdr a pointer to the Mach-O header at
the beginning of the executable file.
2002-11-21 19:53:40 +00:00
junyoung
b5ffe4c33c Simplify code a bit. 2002-11-21 19:09:56 +00:00
wiz
b863b83c82 Add missing word. 2002-11-21 18:12:15 +00:00
thorpej
ecce995e37 Note the ARM ELF "softvfp" object marking change, and the resulting
(somewhat minor) flag-day.
2002-11-21 18:05:59 +00:00
thorpej
9022b5f984 In ASM_SPEC:
* If -mhard-float is passed to the compiler, pass -mfpa10 to the assembler.
* If -msoft-float is passed to the compiler, pass -mfpu=softvfp to the
  assembler.
* If neither -mhard-float nor -msoft-float are passed to the compiler,
  pass -mfpu=softvfp to the assembler.

These changes properly mark objects as using soft-VFP, as is the default
code generation for NetBSD ARM ELF.
2002-11-21 17:57:35 +00:00
oster
9768cda12b Fix up locking on a call to rf_update_component_labels().
Noticed by Manuel.  Thanks Manuel!
2002-11-21 15:37:55 +00:00
jdolecek
2ca4879bd1 g/c also mips-specific linux ELF copyargs function prototype and
linux ELF defines, use generic Aux32Info instead
this also adresses kern/19047 by FUKAUMI Naoki
2002-11-21 15:32:32 +00:00
jdolecek
0a624a0c15 back previous off; port can only supply LINUX_ELF_AUX_ENTRIES if it also
overrides the ELF copyargs function
2002-11-21 15:20:28 +00:00
jdolecek
3590104898 g/c local definition of LINUX_ELF_AUX_ENTRIES 2002-11-21 15:18:37 +00:00
hubertf
c2a9a1e356 NetBSD - love all, serve all.
-- Silke Mueller
2002-11-21 15:06:14 +00:00
kim
1645c7e955 Use shell glob expansion in the csh example, instead of ls with glob.
Reported by Jerry Peek <jpeek@jpeek.com>.
2002-11-21 15:02:03 +00:00
wiz
718523a184 gcc-3.2.1 out, and sort pdisk entry. 2002-11-21 12:38:36 +00:00
thorpej
aedbc29a82 Various changes to support soft-vfp:
* FPU_MEMMULTI -- only include the FPU_FPA10 bit.
* FPU_ARCH_VFP -- define, meaning "uses VFP-format layout".
* FPU_FPA -- define short-hand for (FPU_CORE|FPU_FPA10).
* FPU_DEFAULT -- FPU_ALL -> FPU_FPA.
* Floating point instructions -- FPU_ALL -> FPU_FPA.
* Also set F_SOFT_FLOAT if FPU_ARCH_VFP.
* Set F_VFP_FLOAT if FPU_ARCH_VFP.
* md_atof: lay out bytes properly if using VFP.
* Accept -mfpu=softvfp.
* For -mall, set the FPU part of cpu_variant to FPU_FPA, instead of
  FPU_ALL.
2002-11-21 06:32:20 +00:00
thorpej
fafe44f640 From bintuils-current:
In elf32_arm_merge_private_bfd_data(), if the input-bfd and output-bfd
do not have matching VFP indication, report an error.
2002-11-21 06:27:33 +00:00
thorpej
efce487d2d Define the header bit indicating VFP-format floating point. 2002-11-21 06:25:57 +00:00
thorpej
89780fb9d3 Remove, with extreme prejudice. 2002-11-21 02:13:44 +00:00
chris
a7be705a3c Take the newly added kern.ldscript for handling ELF->a.out from jason, and
apply to the cats kernel build. Seems to work happily for me.
2002-11-21 02:05:08 +00:00
simonb
ecf6315bd0 Include <machine/intr.h> to get "struct iv" (in pc532-specific code). 2002-11-21 01:39:15 +00:00
thorpej
75ea1c1fd8 Use a linker script to craft and ELF image that will work
when copied to a.out via objcopy.  Stop using that frightening
elf2aout.sh shell script.
2002-11-21 01:38:41 +00:00
simonb
4c350ad4fa Put back extern declaration of scn_cd so this builds again. 2002-11-21 00:23:24 +00:00
simonb
1591afc22d Include <sys/conf.h> to get the dev_type_* macros. 2002-11-21 00:22:10 +00:00
manu
1af0fa979f Better immitate Darwin startup stack layout: there is a slot for the program
name after envp, and the 0x1000 at the beginning is a pointer to the binary
mach header (we don't emulate this correctly yet).
2002-11-20 23:54:39 +00:00
itojun
b39cb313c6 verify strvis() buffer length is enough. make sure string termination before
use.  remove extra ntohs() which is not needed.  from Charles Blundell
2002-11-20 21:01:57 +00:00
bouyer
59fc067cf7 For sis_setup_channel, acer_setup_channel, hpt_setup_channel,
pdc202xx_setup_channel, pdc20268_setup_channel:
Properly compute the address of the DMA control register for channel 1.
I think the controllers ignore these bits, I suspect it's only there so that
the BIOS can tell the OS is has configured DMA, but better be correct.
Thanks to Alexander Yurchenko for pointing this out.
2002-11-20 19:20:24 +00:00
bsh
a64681f665 add a device.
sscom is a driver for built-in UART of Samsung S3C2800/24[01]0 CPU.
driver code is arch/arm/s3c2xx0/sscom.c
2002-11-20 18:20:36 +00:00
bsh
0f0e8e927f Intel PXA2X0 based and Samsung S3C2XX0 based boards. 2002-11-20 18:15:43 +00:00