Commit graph

5978 commits

Author SHA1 Message Date
Ben Gras
de57a53027 __aeabi_ldivmod: fix sign logic
. signed 64-bit divide incorrectly tested for sign compensation
	  bits in the NEG (R5) register, causing the signedness of the
	  quotient and modulus to be wrong for negative numerators.

Fixes test45 on ARM.

Change-Id: Id0df8fd97ea67cd0722db8cdd70a07e01b3d7870
2013-02-11 21:37:10 +01:00
Ben Gras
3bc6d7df06 impove memory accounting
. the total amount of memory in the system didn't include the memory
	  used by the boot-time modules and some dynamic allocation by the
	  kernel at boot time (to map in VM). especially apparent on our
	  ARM board with 'only' 512MB of memory and a huge ramdisk.
	. also: *add* the VM loaded module to the freelist after it has
	  been allocated for & mapped in instead of cutting it *out* of the
	  freelist! so we get a few more MB free..

Change-Id: If37ac32b21c9d38610830e21421264da4f20bc4f
2013-02-11 19:31:57 +01:00
Ben Gras
d1df256de9 VM: slight pagedir mapping generalization
. allow any number of pde's used for pagedir mapping
	. allows >1024 NR_PROCS on x86, >64 on ARM
	. allows NR_PROCS to be the same in both cases
	. also cleanup: allocating spare PDE's is not necessary
	  throw that function out

Change-Id: Ibb8f8cf6e7db6a4d6384b6911d1a3f3f5e5d8256
2013-02-10 21:50:34 +01:00
Ben Gras
7df45744ad libexec: quiet
. harmless errors in the case of shell scripts

Change-Id: I461776024a21233e291102ca6d05dc7fa767f71a
2013-02-10 19:52:25 +01:00
Ben Gras
5a0585359d ARM divsi3.S: raise(SIGFPE) when called for
. raise(SIGFPE) for modulo-0/divide-0 operations in
	  internal int division functions
	. gcc: do not link with -lgcc anywhere so these internal
	  functions are always used from libc instead of (sometimes)
	  masked by -lgcc
	. together fixes test53 on ARM

Change-Id: I31ec19dfdd68b8a92695595da901874e63106f9d
2013-02-09 22:24:59 +01:00
Ben Gras
4ac7206c6f t40c term[] count fix
. term[] did not have the promised number of entries

Change-Id: I06a45ca0d948a6876bf1bffd0ec4706c88b7a3b0
2013-02-09 18:51:56 +01:00
Ben Gras
1f6e0c8fa6 drivers: build random for arm too
Change-Id: I801643281fdacc6cb7950cc79a29bec28dcf40ec
2013-02-09 17:13:16 +01:00
Ben Gras
95513e73da opendir change: refinement
Change-Id: I90cc6929c9e7678da8e200688dcd40441efe030f
2013-02-08 23:09:21 +00:00
Ben Gras
4505b4a30a add opendir alias
Change-Id: Ib121e763bac7bea44a2f2533c454ff7d9361dc8d
2013-02-08 21:40:57 +00:00
Ben Gras
f5cfab17d6 ldivmod, uldivmod: fix qdivrem calls
. ldivmod, uldivmod were passing the modulo argument pointer
	  in R4, which is bogus, as qdivrem expects it on the stack as
	  per the EABI, causing essentially 'random' memory to be trampled
	  by qdivrem. fix by pushing R4 before the call.
	. also add these functions to -minc so -lminc clients can be
	  linked without -lgcc

Change-Id: I90b0b28b51a188c93da5de6afb108224749ea794
2013-02-08 14:09:45 +01:00
Ben Gras
46e7c7a920 ramdisk Makefile: CLEANFILES fix 2013-02-07 23:09:18 +01:00
Ben Gras
702d90b6fe test41: relax maximum timer tick rate
. on ARM (hz=1000) does not give code a chance to stop the timer

Change-Id: Id626bfed088400c3c3962ddfc5e8fbe23dd2a797
2013-02-06 17:40:04 +01:00
Kees Jongenburger
3357fcb24a GPIO:further development
* Generalize GPIO handling.
* Add libs to configure gpio's clocks and pads
* Add Interrupt handling.
* Introduce mmio.h and log.h

Change-Id: I928e4c807d15031de2eede4b3ecff62df795f8ac
2013-02-06 16:07:43 +01:00
Kees Jongenburger
47e47cfdd6 build:remove minix-sys.plist from version management.
Remove minix-sys.plist from version management it is generated by
the build system.

Change-Id: I6fc831992ea619e598130450f0f46b6fc01145ed
2013-02-06 16:07:06 +01:00
Ben Gras
3045d2870b arm: protect state after signal handler
. set MF_CONTEXT_SET after signal handler state
	  is set so it doesn't get clobbered by the kernel
	  afterwards (i.e. by delivermsg()).

fixes at least test41.

Change-Id: I7e5e0e9311c8bbc1c0a9c7ca466ceddd9edfa03f
2013-02-05 17:25:38 +01:00
Ben Gras
298b41b523 libexec: detect short files
if an exec() fails partway through reading in the sections, the target
process is already gone and a defunct process remains. sanity checking
the binary beforehand helps that.

test10 mutilates binaries and exec()s them on purpose; making an exec()
fail cleanly in such cases seems like acceptable behaviour.

fixes test10 on ARM.

Change-Id: I1ed9bb200ce469d4d349073cadccad5503b2fcb0
2013-02-04 12:04:35 +01:00
Ben Gras
57bab02d57 kernel, libc: signals fixes
. kernel: signal handler args for ARM
	. kernel: sanity check return address (LSB indicates thumb mode)
	. libc: properly retrieve signal mask for ARM

together fix test37 on ARM.

Change-Id: I4e00f754c50104ed85c7fdf8ec5ad54568f20a81
2013-02-04 12:03:46 +01:00
Ben Gras
ccdc3ff73f umount: getopt return value is int, not char
. causes infinite loop on ARM (default unsigned char?)

Change-Id: If00184f37317c8597a8203f68ec96f1ce5030853
2013-02-04 12:03:05 +01:00
Ben Gras
8ea66915f2 kernel: scheduling fix for ARM
. make read_tsc_64 use the free-running clock, significantly
	  improving scheduling behaviour

Change-Id: Idf6a12f6e26be7fe3b3664c278cae846d8b2a442
2013-02-03 22:49:05 +01:00
Lionel Sambuc
af18db5668 Fix warning about double rule for rc in ramdisk
Change-Id: I870364455e5cbfe178b3dba44a1c944ca7ed9d19
2013-02-02 01:20:09 +01:00
Lionel Sambuc
5f59a986e2 Upgrading sync
Change-Id: Ied34ebd1d2dc963f5a2af8fc3bbf8e6c94df61cf
2013-02-02 01:20:09 +01:00
Lionel Sambuc
b7ef8cfb52 Upgrading ls
Change-Id: Ie0bacf04e727fac5c6df7b2bcf5039e9ce800616
2013-02-02 01:20:09 +01:00
Ben Gras
b7ea9f3fd1 vm: fix sanity checks on arm
The 'polarity' of the RW bit is inversed on ARM, causing one
of the sanity check compensations to fail. ARM now runs basic
stuff with sanity checks passing.

Change-Id: Iee28ab63e430e759f204eeb204b24c301d5ea3c9
2013-02-01 16:45:56 +00:00
Kees Jongenburger
3de9b14567 mmc:development
* let busy loops timeout.
* Start using interrupt handlers.
* Allocate the ramdisk only when used.

Change-Id: Ie08d66eefef3c8cd3ee16c04f74a9a50cc12b021
2013-02-01 13:31:10 +01:00
Lionel Sambuc
c31c70743a Importing bin/ln
Change-Id: I318e79f2d02dcff10bda8af335d286a78be5c5a2
2013-02-01 11:41:48 +01:00
Lionel Sambuc
7104bb23a9 Upgrading kill
Change-Id: I9ad71f08998ac17651d243afecbcc362e0f91b56
2013-02-01 11:41:48 +01:00
Lionel Sambuc
06f3970b9e Upgrading pwd
Change-Id: I3bab8335ac58f2d0af20c5cee4b772b1175c2ede
2013-02-01 11:41:48 +01:00
Lionel Sambuc
5debab0eb0 Importing NetBSD expr
Change-Id: Ifdb1160cbfeb1324f6fcd612e66112fa0940227c
2013-02-01 11:41:47 +01:00
Lionel Sambuc
059578953d Upgrading echo
Change-Id: Idaa5da742b3cc9a1ee2f5c03f10e0627690556fa
2013-02-01 11:41:47 +01:00
Lionel Sambuc
3a19ae756f Upgrading test
Change-Id: I1cd8e24475030989c95ba60b4e7462dacf945b9f
2013-02-01 11:41:47 +01:00
Lionel Sambuc
2c96f0541b Upgrading printf
Change-Id: I78dbbf0d14e4d61f5dfbec53d3938453b3e03ee6
2013-02-01 11:41:47 +01:00
Lionel Sambuc
252a83f614 Fix command line history in ash
Also did some cleanup in ash sources, to make minix modifications
more obvious, as well as some simplifications (by removing code which
is never compiled)

Removed EDITLINE support, use libedit, which does the termcap/terminfo
handling.

Change-Id: I19f7f425ed6a61298844631f9d7f3173cf7f30c0
2013-02-01 11:41:47 +01:00
Lionel Sambuc
a8d553408d Fix file permissions in usr.bin/tput
Change-Id: Ieb29d7a91bbd90273e37406f5454e23c3131634a
2013-02-01 11:41:47 +01:00
Thomas Veerman
db8c1ee9d0 ARM: provide free running clock to replace ccnt
The Cycle CouNTer on ARM cannot be used reliably as it wraps around
rather quickly and can be altered by user space (on Minix). Furthermore,
it's buggy when wrapping and is not implemented at all on the Linaro
Beagleboard emulator.

This patch programs GPTIMER10 as a free running clock at 1.625 MHz (it
doesn't generate interrupts). It's memory mapped into every process,
which enables libsys to provide micro_delay().

Change-Id: Iba004c6c62976762fe154ea390d69e518eec1531
2013-01-31 15:19:11 +00:00
Ben Gras
e3e5cf6d34 arm: make signal handlers work
A few kernel and calling convention adjustments to make sigsend and
sigreturn work for arm.

	. provide a arch_proc_setcontext for earm in kernel
	. set LR in context of signal handler to provide a proper
	  return address (to __sigreturn)
	. change __sigreturn to retrieve the sigcontext pointer
	  from the sigframe struct and pass it to _sigreturn() in r0

Change-Id: Icd135a70595382c79d11d8dd9876f6a6f1df41f8
2013-01-30 04:10:12 +00:00
Ben Gras
b6d285faba libc: add stat aliases
. add non-internal aliases for stat, lstat, fstat

Change-Id: I87e025b2bf073ff56a5742fc1dcf5badb2b7b321
2013-01-29 20:11:16 +00:00
Ben Gras
08cb986d3f vm: fix kernel-requested mappings for arm
. make vm tell kernel virtual locations of mappings
	. makes _minix_kerninfo feature work
	. fix for mappings being larger than what 1 pde can address
	  (e.g. devices memory requested on arm)
	. still requires a special case for devices memory for the
	  kernel, which has to switch to virtual addressing

Change-Id: I2e94090aa432346fa4da0edeba72f0b7406c2ad7
2013-01-29 17:57:04 +00:00
Kees Jongenburger
e641d42a37 gpio:Initial GPIO driver.(ARM)
Small GPIO driver that exports a few pins using a virtual file
system. Currently the two user leds and the user button are exported.

Change-Id: I001d017ae27cd17b635587873f7da981054da459
2013-01-28 15:51:20 +01:00
Antoine Leca
5139afee6b Import infocmp from NetBSD
Convert the content of the terminfo database into human-readable
form, the same as used by the tic(1) command already present.
2013-01-25 20:11:01 +01:00
Antoine Leca
1999c518b6 import tput from NetBSD
Posix tool to allow direct use of the terminfo database.
The clear script is adjusted accordingly.
The (MINIX-specific) clr equivalent is now gone.
2013-01-25 20:09:20 +01:00
Antoine Leca
fc1c7a3483 Mined: allow Ins to mark 2013-01-25 18:44:17 +01:00
Antoine Leca
eabd612b15 make: correct a typo of NetBSD source 2013-01-25 18:44:17 +01:00
Antoine Leca
40b67629c5 Replace tell_config with NetBSD osrelease.sh 2013-01-25 18:44:17 +01:00
Antoine Leca
da26ee9d09 Ramdisk: remove mtab, as now obsolete 2013-01-25 18:44:17 +01:00
Antoine Leca
b9cb8440d7 mkdep: restore NetBSD behaviour
Since MINIX has a working cc, do not introduce spurious differences
2013-01-25 18:42:58 +01:00
Antoine Leca
866355d930 GNU tools: improvements to fetching process
- Do not run the fetch.sh script every time
- Do not run the configure script with MKUPDATE=yes (build.sh -u)
- The fetched GNU source are hidden from `git status`
- With CLEANFETCHED=yes, `nbmake -C tools cleandir` will remove the
fetched GNU source and return the MINIX tree to its pristine state.
- Avoid (harmless) message when building in parallel, about find
running against an inexistant path

Notice that the GNU tools are "installed" on every run, even with
MKUPDATE=yes; this is a feature of the NetBSD build system, because
in case of changes in dependencies it is impossible to know them.
See commit 1.27 2004-06-12 of tools/Makefile.gnuhost in NetBSD's src/

The downloaded tarballs are not removed with CLEANFETCHED:
they are supposed to be unmodified, and the exact name is not known
to the Makefile's, since it is engraved in each fetch.sh script (and
we do not want to have the same information in several places.)
2013-01-25 18:42:58 +01:00
Thomas Veerman
06e2adbeaa VFS: fix select again
Change-Id: Ia5e26cdbfe38e3fb293dd57269a76b15c1fe236b
2013-01-25 17:42:36 +00:00
Thomas Veerman
cb87646dac ARM: run with 64 processes only for now 2013-01-25 17:07:02 +00:00
Thomas Veerman
df0c35f0f5 Kernel/ARM: faster context save 2013-01-25 17:07:02 +00:00
Thomas Veerman
fb4b3da7da Kernel/ARM: use modern srsdb invocation 2013-01-25 17:07:02 +00:00