Created a new directory called bsp (board support package) to hold
board or system on chip specific code. The idea is the following.
Change-Id: Ica5886806940facae2fa5492fcc938b3c2b989be
During startup machine.board_id is now determined. The kernel can now
at runtime determine how to configure itself and does so.
Change-Id: I4f615af9bfa5add219e618b911a51af127591d6a
On startup determine the board_id based on the board name
passed from u-boot. This code also export "board" for use
by userland using sysenv.
Change-Id: I1064a49497c82b06f50d98650132bc0a7f543568
Put the boot arguments in uEnv.txt and not in cmdline.txt to allow
a more dynamic configuration of the system. We now also pass the
u-boot board_name parameter to the kernel.
Export the board variable to userland using sysenv. This
allows rc-scrips to perform device specific initialisation.
The board variable follows the following pattern
[ARCH]-[ARCHVARIANT]-[VENDOR]-[BOARD]-[BOARDVARIANT]
We currently we support the following boards:
X86-I586-GENERIC-GENERIC-GENERIC
ARM-ARMV7-TI-BBXM-GENERIC
ARM-ARMV7-TI-BB-WHITE
ARM-ARMV7-TI-BB-BLACK
Change-Id: I9e5f5f24f9a71cc9797cacb1aafb19499613f0be
Modified the machine struct in include/minix/type.h to have an
additional field called board_id. This fields can be read out
by userland and drivers at runtime to enable automatic
configuration. The board_id field contains information about
the hardware architecture / board and such.
Change-Id: Ib12bc0d43fc9dbdb80ee0751c721ee516de1d2d6
* bitmap.h: declare an explicit return type for bits_fill().
* arch_smp.c: update include clock.h to kernel/clock.h
Change-Id: Idea373fa4eaa53f8ce4ac4fc3ad56f9f1ca86bc7
Before this change overflowing the free running clock counter
between the time the timer was read and the time the overflow
check was done resulted in read_tsc_64 returning a to high value.
Change-Id: I1022f271213647f720477c4121d45f0c965456c6
When copying data from cacheable memory also use cacheable
attributes when creating temporary mappings.
Change-Id: I0e8380293fb4edaafba49f6262983ad86a5350c5
* 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.
. 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
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
To map kernel we use 1M sections therefore we should use
ARM_VM_SECTION_MASK to determine base address.
Change-Id: I0b97fe459f2325d702aad9b7b1e8e066d9721b87
. Replace 64bit funcions with operators in arch_clock.c
. Replace 64bit funcions with operators in proc.c
. Replace 64bit funcions with operators in vbox.c
. Replace 64bit funcions with operators in driver.c
. Eradicates is_zero64, make_zero64, neg64
Change-Id: Ie4e1242a73534f114725271b2e2365b2004cb7b9
AM335X SoCs support power-off via a power management
chip (PMIC). An alarm in the real time clock is used
to trigger the PMIC to cut the power.
To ensure the alarm goes off when the system is in
a safe state, the RTC is frozen when the alarm is
set. At the last moment, the kernel unfreezes the RTC
to let the alarm go off.
This patch adds a mini driver for unfreezing the RTC
as well as code to handle RBT_POWEROFF on Minix/arm.
Change-Id: I7d48e75791e3a81bdd2f7704997193a269409fe8
The padconf library runs in user mode, but to actually affect the
padconf register contents, the processor has to be in privileged
mode. A full server based solution will be developed, but for now
just set the pinmux in the kernel at boot.
Change-Id: I170ed54dae64b27cd9bd8807445231598fb8e3e1
Implement getrusage.
These fields of struct rusage are not supported and always set to zero at this time
long ru_nswap; /* swaps */
long ru_inblock; /* block input operations */
long ru_oublock; /* block output operations */
long ru_msgsnd; /* messages sent */
long ru_msgrcv; /* messages received */
long ru_nvcsw; /* voluntary context switches */
long ru_nivcsw; /* involuntary context switches */
test75.c is the unit test for this new function
Change-Id: I3f1eb69de1fce90d087d76773b09021fc6106539
. with hz=1000, clock_t only lasts a few years.
whenever we can't express the desired realtime
in ticks because the distance with boottime is
too high, simply adjust bootime like we do for
otherwise negative values.
. fixes test 2 on ARM
kernel:
. modules can be as big as the space (8MB) between them
instead of 4MB; memory is slightly bigger with DBG=-g
arm ucontext:
. r4 is clobbered by the restore function, as it's
used as a scratch register, causing problems for the
DBG=-g build
. r1-r3 are safe for scratch registers, as they are
caller-save, so use r3 instead; and don't bother
restoring r1-r3, but preserve r4
vfs:
. improve TLL pointer sanity check a bit
Change-Id: I0e3cfc367fdc14477e40d04b5e044f288ca4cc7d
. set 'done' once initialized so 32-bit read frc works,
thanks to keesj
. make sure the software-implemented upper 32 bit of the 64-bit
"tsc" value works OK by adding an assert in one of its calls
Change-Id: I5ce24fea919f4610c6a86ac7ec9f04b1815620c2
. by making the address and frequency of the
free running clock kinfo members, set at runtime
in the kernel, instead of compile time constants
in libsys
Change-Id: I4a8387302d4d3ffd47d2448525725683a74c9a4f
Use acpi poweroff if it's possible.
Change-Id: I103cc288523bf63fa536750b1d408ac88bbe35fb
Signed-off-by: Ben Gras <ben@minix3.org>
Signed-off-by: Tomas Hruby <tom@minix3.org>