Commit Graph

6942 Commits

Author SHA1 Message Date
Korobov Nikita
03eaf9dac8 [MAJOR] The SDCard RPI driver first commit
The new driver for RPI added. There are two variants mmc and emmc
for each platform. It's not good solution, because each two implementations
differ by the registers set, the base address and some functionality.
This driver doesn't work. It'll be fixed in the future.
2017-06-30 17:19:06 +03:00
Korobov Nikita
6192a53b2d [MINOR] Fixed the RPI3 tty
Some small things in the tty driver are improved.
Added the RPI3 compatibility.
2017-05-30 05:08:58 +03:00
Korobov Nikita
add751549f [MAJOR] Added a simple device tree parser 2017-05-27 04:54:01 +03:00
Korobov Nikita
e70062feb3 [MAJOR] Add device tree compatibility
Unstable version of device tree compability.
Device tree passes through bootloader, but doesn't parse on this stage.
2017-05-25 08:23:38 +03:00
Korobov Nikita
7b468ec005 [MAJOR] Add libfdt under BSD license
The libfdt is a good toolchain to parse a device tree.
2017-05-25 08:22:08 +03:00
Korobov Nikita
63723e1e7b [MAJOR] Added platform-dependent functions table
Added table, which contains platform-dependent code.
All platform-dependent functions must be called by using this table.
There are no difference between kernels for any ARM platform.
There are the only one kernel for any ARM platform.
2017-05-25 08:21:08 +03:00
Korobov Nikita
cde275c049 [MAJOR] Updated early ARM bootstrap
There are no unmapped code in kernel now.

_kern_phys_base is determed in run-time.
NOTE! It doesn't work on the RPI3 now. Fix it later.
2017-05-25 08:19:17 +03:00
Korobov Nikita
cecc3c0d18 [MAJOR] Prepare to cleaning up boot process 2017-05-25 08:13:59 +03:00
Jean-Baptiste Boric
7cbfcd26a2 kernel: add support for system timer
This timer is the one we're supposed to use all along, but QEMU doesn't
support it for now, so we keep the ARM internal timers around if needed.
These timers shouldn't be used since they aren't memory-mapped and thus
unsuitable for MINIX 3 (for the user-mapped page).
2016-06-03 20:05:23 +02:00
Jean-Baptiste Boric
b76b176eaf gpio: add support for Raspberry Pi 2 and 3
Co-Authored-By: Benjamin Dauphin <benjamin.dauphin@live.fr>
Co-Authored-By: Gilles Henaux <gill.henaux@gmail.com>
2016-06-01 11:11:32 +02:00
Jean-Baptiste Boric
1e7d6ee8a7 fb: add support for Raspberry Pi 2 and 3
Co-Authored-By: Benjamin Dauphin <benjamin.dauphin@live.fr>
Co-Authored-By: Gilles Henaux <gill.henaux@gmail.com>
2016-06-01 11:11:31 +02:00
Jean-Baptiste Boric
aed435f2cf tty: add support for Raspberry Pi 2 and 3
Co-Authored-By: Benjamin Dauphin <benjamin.dauphin@live.fr>
Co-Authored-By: Gilles Henaux <gill.henaux@gmail.com>
2016-06-01 11:11:30 +02:00
Jean-Baptiste Boric
61569864b0 kernel: add support for Raspberry Pi 2 and 3
Co-Authored-By: Benjamin Dauphin <benjamin.dauphin@live.fr>
Co-Authored-By: Gilles Henaux <gill.henaux@gmail.com>
2016-06-01 11:11:29 +02:00
Jean-Baptiste Boric
c5e7db6fac kernel: remove hard-coded defines in earm
earm-wide defines don't play nice with multiple BSPs.

Co-Authored-By: Benjamin Dauphin <benjamin.dauphin@live.fr>
Co-Authored-By: Gilles Henaux <gill.henaux@gmail.com>
2016-06-01 11:11:28 +02:00
Jean-Baptiste Boric
1fb1a5c17c Use BSP_NAME when building kernel
Co-Authored-By: Benjamin Dauphin <benjamin.dauphin@live.fr>
Co-Authored-By: Gilles Henaux <gill.henaux@gmail.com>
2016-06-01 11:11:27 +02:00
Jean-Baptiste Boric
04a7b1091f Introduce BSP_NAME
The current build system can't handle properly having more than one
board family and more than one BSP, so we make up a way to select what
to build and what to do based on the BSP_NAME variable which will
become useful later on.

This commit purposely breaks the Jenkins infrastructure as it exists
now, so that the pain is felt only once.

Co-Authored-By: Benjamin Dauphin <benjamin.dauphin@live.fr>
Co-Authored-By: Gilles Henaux <gill.henaux@gmail.com>
2016-06-01 11:11:26 +02:00
Jean-Baptiste Boric
ad60a889a0 Replace fetch_u-boot.sh with checkout_repo.sh
This allows checking out Git repositories besides U-Boot.

Co-Authored-By: Benjamin Dauphin <benjamin.dauphin@live.fr>
Co-Authored-By: Gilles Henaux <gill.henaux@gmail.com>
2016-06-01 11:11:25 +02:00
Jean-Baptiste Boric
a7a79fa1f5 Boot-to-ramdisk image generation scripts
Scripts for generating boot-to-ramdisk images are now available. These
can be used for example to boot from PXE or from a USB stick, as the
ramdisk are self-contained and do not rely on any block devices after
being loaded into RAM.

The image generation framework has also been slightly cleaned up in
order to better accomodate tarball sets bundling in images.

Change-Id: I65a176832bd0d6954b430fa8305f90af0bd606c1
2016-03-21 21:01:20 +01:00
Jean-Baptiste Boric
135965dc20 Revert "libutil: add getmaxpartitions() implementation"
This reverts commit 22ad44d6a9.

With the MIB service implemented, this hack is no longer necessary.

Change-Id: Ic969c2dcecd6fc9ce283d1dda6518796869875e3
2016-03-13 19:51:58 +00:00
David van Moolenbroek
7ecc6a9247 libc: enable all functionality in net/
Some functions in lib/libc/net were disabled on MINIX3 only, but with
a few added header files they build just fine, even though some of
them rely on system functionality that has not yet been implemented.
Since the functionality is unlikely to be used in practice (because
it typically requires the use of protocol families that themselves are
not yet supported, such as IPv6), already enabling it right now helps
in building packages that rely on the functionality being present at
compile time, while not posing any practical risk of breaking the same
packages at run time.

Change-Id: Idee8e3963c9e300bde9575429f0e77b0565acaef
2016-03-13 16:03:39 +00:00
David van Moolenbroek
1122b28691 PM: add support for saved user/group IDs
This patch aims to synchronize the basic process user and group ID
management, as well as the set[ug]id(2) and sete[ug]id(2) behavior,
with NetBSD.  As it turns out, the main issue was missing support for
saved user and group IDs.  This support is now added.

Since NetBSD's userland, which we are importing, may rely on NetBSD
specifics when it comes to security, we choose not to deviate from
NetBSD's behavior in any way here.  A new test, test89, verifies the
correct behavior - it has been confirmed to pass on NetBSD as is.

Change-Id: I023935546d97ed01ffd8090f7793d336cceb0f4a
2016-03-12 17:46:06 +01:00
rlfnb
30baa378c4 Added device ID for 82573
Device ID belongs to a NIC being used in many Thinkpad laptops, tested!

Close #118
Change-Id: If6c2327a4fb4cae49a734dc1cebbe3dc8c383456
2016-03-11 17:23:14 +01:00
David van Moolenbroek
84ed480ef7 libc: fix local from-source upgrades
Commit git-c38dbb9 inadvertently broke local MINIX3-on-MINIX3 builds,
since its libc changes relied on VFS being upgraded already as well.
As a result, after installing the new libc, networking ceased to work,
leading to curl(1) failing later on in the build process.  This patch
introduces transitional code that is necessary for the build process
to complete, after which it is obsolete again.

Change-Id: I93bf29c01d228e3d7efc7b01befeff682954f54d
2016-03-09 12:11:57 +00:00
David van Moolenbroek
a3975fbc35 Kernel: disable assert in prefetch abort handler
For a reason currently unknown to us, the qemu-linaro emulator
sometimes produces a Prefetch Abort exception with a fault location
(IFAR) rather different from the location of the instruction being
executed (LR corrected by 4).  So far it has been observed in the
__udivmodsi4 routine of various processes, where the fault address is
for the first byte of the next page after the current instruction,
which itself is 44-64 bytes away from the start of that next page.
The affected instruction does not perform any sort of memory access.

Short of debugging qemu-linaro itself, we have no choice but to
disable the assert that previously went off in case the IFAR and
corrected LR are not equal.  Since we have not yet observed this case
on actual hardware, the kernel prints a warning when detecting such a
mismatch for the first time.  For the qemu-linaro case, the kernel's
actual page fault handling logic already handles this strange case
just fine.

Change-Id: Ibd19e624149ab4e68bfe75b918ec1554b825a431
2016-03-09 12:11:23 +00:00
David van Moolenbroek
28aa92fd90 rc: start syslogd with -s (no UDP sockets)
Change-Id: I80f46c1c525d2573614676cdd612e284c16be481
2016-02-29 16:28:16 +00:00
David van Moolenbroek
7399f63e53 3c90x: add support for 3c905B 100BaseTX
Tested and found working.  No driver changes required.

Change-Id: Ib05e7540a6264f784b6342d6e84c4e11423b2ec9
2016-02-27 15:37:20 +00:00
David van Moolenbroek
a617090dc0 setup.sh: fix various issues
- fix the reinstallation (preserve-/home) option;
- remove support for just reinstalling the bootloader, as the main
  purpose of this option (allowing an upgrade from the old MINIX
  boot monitor to the NetBSD bootloader) is no longer needed and was
  already broken;
- do not try to copy over /etc/motd.install: it no longer exists.

This resolves issue 106.

Change-Id: Iad3805d86c4806d725f9b285c2d4378670790f78
2016-02-26 19:45:55 +00:00
David van Moolenbroek
26d958c71e VFS: remove unused variable in worker.c
Change-Id: Ife41d292ab50a36c75dc28b682684095654bfcf2
2016-02-26 19:28:50 +00:00
David van Moolenbroek
c38dbb97aa Prepare for switch to native BSD socket API
Currently, the BSD socket API is implemented in libc, translating the
API calls to character driver operations underneath.  This approach
has several issues:

- it is inefficient, as most character driver operations are specific
  to the socket type, thus requiring that each operation start by
  bruteforcing the socket protocol family and type of the given file
  descriptor using several system calls;
- it requires that libc itself be changed every time system support
  for a new protocol is added;
- various parts of the libc implementations violate the asynchronous
  signal safety POSIX requirements.

In order to resolve all these issues at once, the plan is to turn the
BSD socket calls into system calls, thus making the BSD socket API the
"native" ABI, removing the complexity from libc and instead letting
VFS deal with the socket calls.

The overall change is going to break all networking functionality. In
order to smoothen the transition, this patch introduces the fifteen
new BSD socket system calls, and makes libc try these first before
falling back on the old behavior.  For now, the VFS implementations of
the new calls fail such that libc will always use the fallback cases.
Later on, when we introduce the actual implementation of the native
BSD socket calls, all statically linked programs will automatically
use the new ABI, thus limiting actual application breakage.

In other words: by itself, this patch does nothing, except add a bit
of transitional overhead that will disappear in the future.  The
largest part of the patch is concerned with adding full support for
the new BSD socket system calls to trace(1) - this early addition has
the advantage of making system call tracing output of several socket
calls much more readable already.

Both the system call interfaces and the trace(1) support have already
been tested using code that will be committed later on.

Change-Id: I3460812be50c78be662d857f9d3d6840f3ca917f
2016-02-23 14:34:05 +00:00
David van Moolenbroek
0df28c9fa4 libc: reorganize vector I/O wrappers
The reorganization allows other libc system call wrappers (namely,
sendmsg and recvmsg) to perform I/O vector coalescing as well.

Change-Id: I116b48a6db39439053280ee805e0dcbdaec667a3
2016-02-22 23:24:47 +00:00
David van Moolenbroek
c33d6ef392 VFS: start off cleanup of pipe2 IPC message
There is no reason to use a single message for nonoverlapping requests
and replies combined, and in fact splitting them out allows reuse of
messages and avoids various problems with field layouts.  Since the
upcoming socketpair(2) system call will be using the same reply as
pipe2(2), split up the single message used for the latter.  In order
to keep the used parts of messages at the front, start a transitional
phase to move the pipe(2) flags field to the front of its request.

Change-Id: If3f1c3d348ec7e27b7f5b7147ce1b9ef490dfab9
2016-02-22 23:23:02 +00:00
David van Moolenbroek
17580212b4 libc: check raw IP socket type before using it
Previously, the libc sendto(3) and recvfrom(3) implementations would
blindly assume that any unrecognized socket is a raw-IP socket.  This
is not only inconsistent but also messes with returned error codes.

Change-Id: Id0328f04ea8ca0968a4e8636bc441caa0c3579b7
2016-02-22 23:21:05 +00:00
5ef5b27fc1 Cross-compilation fixes:
- GCC >4.9:
     Newer toolchains trigger more warnings, which by default are
   treated as errors. Disable this while building the tools as this
   will be a recurring problem in the future.

   close #105

 - FreeBSD: Fix some fetch.sh scripts which fails as FreeBSD's patch
   fails to patch two .info files. We ignore this for the time being.

Change-Id: Ic669281db6c41005119ea8f76f78b5ec60e1b386
2016-02-08 13:05:55 +01:00
rlfnb
eaf726b35c ifdef for switching RTS/CTS off
Change-Id: Iccc4b151b2047539dfd79ce0ff1381c0579539e9
2016-02-07 20:37:08 +01:00
86b583c518 Fix usage of parenthesis in Makefiles
While BSD make support both $() and ${} around variables, the NetBSD
source tree uses only ${} by convention.

Imported software is left as is, and sometimes $() is used when the
containing Makefile/Makefile fragment is used both by GNU make and BSD
make, as it can happen for the tools, and other parts as well which are
compiled using the host make tool.

Change-Id: Ic7d480812fde53e7e3e95275a30a3b720c95cc15
2016-02-07 19:17:44 +01:00
rlfnb
59ca1d7542 moved service configuration out of system.conf
Change-Id: I996c0e700b087c5130ac6480ae39e1eefa771eff
2016-02-07 19:17:43 +01:00
Thomas Cort
b88949904f mail: close fp after use
Add missing `fclose(fp)`

Issue #109

Change-Id: I0908ede77cba18336c399c5e16771cb6650e6404
2016-02-07 09:50:08 -05:00
David van Moolenbroek
373b793920 Basic statistical profiling fixes
At least it works again now.  Sprofalyze should be made aware of the
kernel information page, though (i.e., /proc/ipcvecs).

Change-Id: Id4e5f6417ad152607c4e53b323b6f65ea4b10c6e
2016-01-28 13:09:35 +01:00
David van Moolenbroek
1d80a87694 bootloader: do not try to autoload NetBSD modules
The NetBSD bootloader attempts to load NetBSD kernel modules for
"unusual" file systems.  We do not support NetBSD kernel modules,
and thus, the bootloader gives us warnings about not being able
to load them, in particular when booting CD images.  This patch
disables the NetBSD file system module autoload feature.

Change-Id: I55fce53b4bb0282b7d8a005192200fe466312f62
2016-01-25 19:29:11 +01:00
David van Moolenbroek
4f5713cc0a tests: another fix
- test80: resolve race condition resulting from unintended send

Change-Id: Id029d679a3903de0f712a15d4756952dbc36070c
2016-01-25 19:07:40 +01:00
David van Moolenbroek
99e8768deb tests: fixes
- test3: support running the test set from a pseudoterminal;
- test60: fix number conversion bug that caused chmod errors;
- test65: remove nonworking package installation instructions;
- testisofs: work around failure due to having a timezone set;
- testisofs: exclude extra RR_MOVED directory from output.

Change-Id: Ibfcc631de7e2f4da46bac3ad9de8d7c7cd7a6189
2016-01-25 14:26:20 +01:00
e1cdaee106 Fix ARM noassert builds -g/-O{s/0/1/2/3}
Also fixes ARM assert build -O3.

Change-Id: I52bda91308ecfa0e8b23c4140c38c49347cc10f7
2016-01-24 18:56:38 +01:00
6a76619b7e Bumping version to 3.4.0
Change-Id: Ia5630d7409cf7042853847ee29866e2db3514c91
2016-01-22 12:24:28 +01:00
39508cdda5 setup.sh: clean up
- Fix unmounting order of slices.
 - Update pkgin pre-installation commands, make them as generic as
   possible.

Change-Id: Ifaa4021fed048facca8d2a170aa65491feb37702
2016-01-22 12:24:22 +01:00
6c380635c9 Server packages: Make sure /usr/pkg/var/run exists
If this directory doesn't exist, pid files are not created, which create
issues when shutting down or rebooting.

Change-Id: I52dddb57aca4368b1775606e22818fba99d05bf6
2016-01-22 12:24:03 +01:00
fb4fbf7a0c Fix X11 forwarding: sendmsg/recvmsg only supported over UDS
Change-Id: Id9dc5517ec09382010a556fbabc6dccc77942378
2016-01-22 12:23:47 +01:00
125832e358 Improve libexec debug output
Change-Id: I6a82d3eeed263e813852549fac015b82832c5c29
2016-01-16 14:04:28 +01:00
ace2de0ad1 Reduce sysident patches
Change-Id: I4499a294e74ed69648afc33bff5f750f3d1aa019
2016-01-16 14:04:27 +01:00
Gerhard Poul
d578d57bfe Fix typo in comment
Change-Id: Iefc0f11ac81da1d681785530e33a4668d8614de9
2016-01-16 14:04:26 +01:00
6e48120e2b Fix umount order in setup.sh
Change-Id: Ife0c36b0fdc70e4b7ae86278d0df8d6d00d19df4
2016-01-16 14:04:26 +01:00