* Allow to change the timer frequency using the hz paramter.
* Unmask the interrupt only after registering the handler.
* Pass the hz parameter in the command line.
A script that creates a HD image ready to be booted by an x86
emulator, ready to work in a crossbuild environment.
It's really just for qemu/kvm as there's no boot code in
the MBR and no bootloader installed so we rely on the in-kvm
multiboot implementation for now. This is very convenient for
passing args too.
To minimize reliance on external tools, we use the Minix
'partition' utility to write the partition table of the HD
image, which therefore has to be compiled natively.
. new script releasetools/x86_hdimage.sh
. natively compile minix 'partition' utility
. make <machine/partition.h> 64-bit safe for it
Change-Id: If645b4691536752271e0b8a8ed59a34f248dace4
. add dependency of headers on debug.d
. put the generated headers in the right dir
. also resilience against future ELAST duplicate errno
Change-Id: I9d10702c8e09699a40138193f14defe902399da6
The sht21 temperature and humidity sensor holds the i2c bus while
an ADC conversion is in progress. For example, a temperature
measurement is requested, a read operation is started, and the
sht21 doesn't respond to the read request until the result of
the measurement is ready. The conversion time isn't constant.
On rare occations (one in hundreds of samples) the timeout in the
i2c driver expires returning an error.
The example code from Sensirion, the sht21's manufacturer, suggests
a bus timeout of 1 second to accommodate the sht21. This commit
increases the bus timeout to 1 second. The timeout is only reached
when chips do not respond normally, so the change doesn't affect the
performance of any other drivers.
Change-Id: I57b0f958a5d0b69b221af380b771fe67401ff604
Many i2c device drivers used similar code to access registers on
the ICs they drive. This commit implements that functionality in
libi2cdriver and updates the drivers to use the library instead of
their own register access functions. The net result is 375+ fewer
lines of code and less work for people developing new drivers.
The two exceptions were cat24c256 and parts of tda19988. They access
the bus in uncommon ways. It doesn't make sense at this time to
move their read/write functions into libi2cdriver.
Change-Id: Id8280b71af33b710a49944d7f20a7262be9f5988
A copy and paste error caused a few lines of code to be duplicated.
This patch removes the excess code.
Change-Id: I7313efb537e2a4102fb25ce05782e82ae0c84285
To provide EDID to fb, the TDA19988 implements the block device
protocol with libblockdriver. To properly use the library,
blockdriver_announce() should be called by the driver.
Issue reported by David van Moolenbroek
Change-Id: Id55d159d91502a9afac5c1d4de0fee1e8945b5c1
This is done by adding a dependency on ${GNUHOSTDIST:H}/.gitignore
for both realall and realinstall targets.
Change-Id: If086a6c02ab20a8cd4bbb3597d7203cf22dce796
. full number was needed to reliably trigger the race
condition
. takes a bit too long (7 mins on fast x86 hardware) for a
condition that "can't" happen again, so let's cut the iteration
count and trust that the test will trigger soon enough for
a similar condition in the future.
Change-Id: I2d38b87c25327adbbff91b7db6191648aa1dd8fd
. turns on mmap() functionality for files by default
. also causes exec() to use it to map in executables
without copying and with sharing those pages with the
disk cache and other instances of the executable
Change-Id: Idb94dfe110eed916cf83b12c45e1a77241a2cee5
As they can come anytime upon receipt of interrupt by the ethernet driver. This
is the same thing as is done for CONF replies.
A simple test case would be the following via ssh connection:
while getaddr; do :; done
Change-Id: I68f4403360b3eefe67fc602c4855ca1abd649475
According to the virtio specifications, the host present the supported
features to the guest, and the guest should answer woth the features it
supports. This allows the host to disable support for features that the
guest is not going to use.
Minix tells to the host it doesn't support any extended features, while
it uses at least VIRTIO_NET_F_MAC and VIRTIO_NET_F_CTRL_VQ. For the
latter it seems it only allocate the queue while not using it later.
However starting with QEMU 1.4.0, with multiqueue support added, the
control queue is not allocated on the host side if the guest doesn't
tell it supports this feature. This cause virtio-net to crash on the
Minix side.
This patch fixes that by correctly telling the features that are
used by the Minix guest for more than printing a debug message. This
fixes virtio-net on QEMU 1.4.x.
Change-Id: I8bbf757c09d24e0f5fe5835531a1c9203b714bd7
* port libgpio to am335x.
* increase NR_IRQ to 16 to avoid too many IRQs requested error.
* move gpio binary to /sbin (that's where mount looks for drivers).
* fix bug that re-enabled banks that were disabled due to bad revision.
* fix padconf masks for dm37xx in gpio driver (should be 16-bit).
* fix a few typos in README.txt and comments.
Change-Id: I32374415a97135174c5224f76374a870909fa90c
. 'fixes' warnings that are in these headers, but normally aren't
emited as they're system headers
Change-Id: Ibd20343eae51770cef71116bbda0d9141441ec54
padconf is specific to arm, so it's being moved to kernel/arch/earm.
Add a test case to ensure the proper error is returned on non-ARM
systems.
Change-Id: I07ebbe64825d59bc0ef9c818d3d54891dafb4419
On the AM335X, writes to the padconf registers must be done in privileged
mode. To allow userspace drivers to dynamically change the padconf at
runtime, a kernel call has been added.
Change-Id: I4b25d2879399b1785a360912faa0e90b5c258533
The BeagleBone Weather cape enhances the BeagleBone's capabilities
by providing environment sensors (temperature, humidity, pressure,
and ambient light level).
The weatherstation demo is a port of the bonescript weatherstation
to Minix. It provides a nice visual display of the sensor data in
a web browser.
The code is installed to /usr/share/beaglebone/weather on 'earm'
and an embedded web server is started at boot time on port 80
when the cape is attached. Further details are provided in the
README.txt file.
Change-Id: I1596a2b66b213762ace26c0c750c8154c76b5c6e
. solution for "warning: visibility attribute not supported in
this configuration"
. needed to make warnings fatal, -Werror
Change-Id: If972300a82df570093f2d89825935483ff69fb18
BeagleBone Capes add additional hardware to the BeagleBone to
improve functionality.
This patch probes the third i2c bus for capes and loads the
appropriate drivers for each detected cape. Currently only
the 'BeagleBone Weather' cape is supported.
Change-Id: Id8c133810db6de7c21625c2d5a794b8874673a0f
Capes (i.e. expansion boards for the BeagleBone and BeagleBone Black)
each have their own cat24c256 EEPROM with information about the cape
such as the name of the cape, pins used, power requirements, etc.
This patch adds support for displaying the cape data fields. It
can be used in shell scripts to detect and identify attached capes.
Change-Id: I4bfa7aae634a7bacfa5e25afcba773d9fbc2316c
Previously, PFS would incorrectly try to unsuspend the parent (i.e.,
the listening socket), resulting in the child hanging until the other
side performed another action. Test56 started failing on this now.
Change-Id: I231ac5481c83ac45951d33aeecc8149273f48b11
Apparently, qemu's sb16 doesn't reset the interrupt register
of the mixer and the driver ends up in an endless loop when
playing a "multi-fragment" sample.
Change-Id: I47633b99a0d79ba201aec785da69fb3950e026bf
Righ now, the DMA controller will access some random memory below 16 MB,
as the physical address returned by alloc_contig() is simply truncated
when given to the DMA controller.
Yes, it's bad...
. this is OK (although it wastes some memory) as
long as the VM interface isn't used, which has its
own checks in libsys
Change-Id: I28decd367b2cd5c01482bdc71615c65ab61c9a71
for clang, fix warnings in drivers/, lib/, servers/, sys/, common/.
by turning off fatal warnings (takes effect if the default is on),
fixing warnings or reducing the warning level.
Change-Id: Ia1b4bc877c879ba783158081b59aa6ebb021a50f