History log of /openbsd/sys/arch/luna88k/luna88k/locore.S (Results 1 – 25 of 33)
Revision Date Author Comments
# 5746cf29 06-Dec-2022 guenther <guenther@openbsd.org>

_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
is ELF" world. Eliminate use of them in m88k code.

ok aoyama@


# 728515e4 23-Jul-2017 aoyama <aoyama@openbsd.org>

Splitting early startup code out of locore.S into locore0.S, like other
architectures.

"Looking good" deraadt@


# 8aed167b 20-Mar-2017 miod <miod@openbsd.org>

Replace hardcoded addresses with symbolic constants from <machine/board.h>
for enhanced grepability and fewer bad surprises.

ok aoyama@


# d6699adb 25-Feb-2015 miod <miod@openbsd.org>

Rework secondary processor initialization, in order to allocate their idle
stack from the main processor, instead of from the secondary processors
themselves. This used to work until recent churn in

Rework secondary processor initialization, in order to allocate their idle
stack from the main processor, instead of from the secondary processors
themselves. This used to work until recent churn in uvm require the kernel
lock to be taken, and cpu_configure() runs with the kernel lock held by the
boot processor.

Allocating the idle stack on the secondary processors themselves was choosen
early on, because there is no easy way, from the boot processor, to know the
assocation between physical cpu number (ci_cpuid) and logical cpu number
(the order they are initialized and reported in), especially on luna88k where
there is no way to get secondary processors parked by the prom.

Regression noticed by aoyama@. Verified to work on 2 and 4 cpu luna88k systems
and 2 cpu aviion systems.

show more ...


# 23b9e710 02-Nov-2013 miod <miod@openbsd.org>

Reserve a page at the beginning of the kernel text to use for the trap vectors,
and switch to it, on all processors, after autoconf is over. First step
towards being able to unmap the low memory and

Reserve a page at the beginning of the kernel text to use for the trap vectors,
and switch to it, on all processors, after autoconf is over. First step
towards being able to unmap the low memory and have address 0 non-accessible
in the kernel.

show more ...


# 7b7f9b59 28-Oct-2013 miod <miod@openbsd.org>

Recognize kernel symbols when booted from the standalone bootloader.


# 8bf59c71 10-Aug-2013 miod <miod@openbsd.org>

Initialize first_addr much earlier, in locore; this will help adding
symbols support in the not-so-distant future.
ok aoyama@


# 36960518 10-Aug-2013 miod <miod@openbsd.org>

Only clear the bss after we have picked a cpu as master, and on this cpu only;
fixes a potential race where a secondary cpu resets carefully computed
variables. ok aoyama@


# 0b514a07 05-Jan-2013 miod <miod@openbsd.org>

Switch m88k ports to ELF.


# fb70e156 28-Jan-2012 aoyama <aoyama@openbsd.org>

Luna88k multi-processor support, step 2.

Modify secondary processor initialization and interrupt handler.

Now GENERIC.MP boots up more stable and runs userland binaries, but
inter-processor-interru

Luna88k multi-processor support, step 2.

Modify secondary processor initialization and interrupt handler.

Now GENERIC.MP boots up more stable and runs userland binaries, but
inter-processor-interrupt is not implemented yet.

ok miod@

show more ...


# e5e65b42 08-Jan-2012 aoyama <aoyama@openbsd.org>

Preliminary multi-processor support for luna88k. It is
work-in-progress and is not stable yet...

"Please commit" miod@


# 0bf31b4e 19-Nov-2011 miod <miod@openbsd.org>

Make sure %cr17 points to a valid cpu_info struct before attempting to do the
first few printfs (which happen before we have figured out which exact cpu
we are running on). Found the hard way by aoya

Make sure %cr17 points to a valid cpu_info struct before attempting to do the
first few printfs (which happen before we have figured out which exact cpu
we are running on). Found the hard way by aoyama@ on luna88k, and we probably
have just been lucky on other platforms.

show more ...


# a83c48b9 23-Dec-2010 miod <miod@openbsd.org>

The exception vector page on m88k systems has always been the same page as
the one used by the firmware, which (at least on mvme88k) is at address zero.

This is unfortunate, since this means that NU

The exception vector page on m88k systems has always been the same page as
the one used by the firmware, which (at least on mvme88k) is at address zero.

This is unfortunate, since this means that NULL pointer dereferences in the
kernel are not caught, and writes cause havoc.

This behaviour was necessary to be able to use the PROM system call interface
during early bootstrap, without having to disassemble the VBR page and
update branches - which use pc-relative displacement - if we were to use
a different VBR address.

On mvme88k, change this and actually set up two VBR pages: one, over the PROM
page (except for the system call vectors), and another one in the kernel
image (which will be mapped read-only). We'll run with the PROM page until
the end of autoconf, and then switch to the kernel one, and unmap all the
PROM below it.

As a bonus, the final kernel page can use optimized data access fault
handlers, which do not have to check for faults caused by badaddr(), since
badaddr() is only used during device probe on buses which do not support
hotplug.

There are a few infrastructure collateral damage on aviion and luna88k, but
these ports do not change their behaviour yet.

show more ...


# 7bed53bb 22-Dec-2007 miod <miod@openbsd.org>

Move initial PSR initialization to a separate routine, instead of duplicating
it five times.


# 21b127fa 20-Dec-2007 miod <miod@openbsd.org>

Do not wait for the end of the universe if delay(0).


# 04e51e43 04-Dec-2007 miod <miod@openbsd.org>

Correctly set the stack pointer of a secondary processor to the end
of its initialization stack. Oops.


# 4e1624a1 02-Dec-2007 miod <miod@openbsd.org>

Do not pass UPAGES and USPACE (under the name USIZE) in assym.h, code which
needs it includes <machine/param.h> already.


# 0f256808 15-Nov-2007 miod <miod@openbsd.org>

Stop referring the initial kernel stack as the ``interrupt stack''. It's
been years since it has last been used for that purpose, so name it the
initialization/startup stack.

While there, do not sto

Stop referring the initial kernel stack as the ``interrupt stack''. It's
been years since it has last been used for that purpose, so name it the
initialization/startup stack.

While there, do not store the initialization stack in cpu_info, and have
secondary_pre_main() return its value so that the bootstrap code does not
need to fetch it from cpu_info.

This might be reconsidered when the startup stacks will be freed after they
are not used anymore, but there are more things to do first.

show more ...


# 002e8188 06-Nov-2007 miod <miod@openbsd.org>

Remove the now unused idle_u, and call the secondary processors startup
stack a startup stack.


# 45053f4a 10-Oct-2007 art <art@openbsd.org>

Make context switching much more MI:
- Move the functionality of choosing a process from cpu_switch into
a much simpler function: cpu_switchto. Instead of having the locore
code walk the run q

Make context switching much more MI:
- Move the functionality of choosing a process from cpu_switch into
a much simpler function: cpu_switchto. Instead of having the locore
code walk the run queues, let the MI code choose the process we
want to run and only implement the context switching itself in MD
code.
- Let MD context switching run without worrying about spls or locks.
- Instead of having the idle loop implemented with special contexts
in MD code, implement one idle proc for each cpu. make the idle
loop MI with MD hooks.
- Change the proc lists from the old style vax queues to TAILQs.
- Change the sleep queue from vax queues to TAILQs. This makes
wakeup() go from O(n^2) to O(n)

there will be some MD fallout, but it will be fixed shortly.
There's also a few cleanups to be done after this.

deraadt@, kettenis@ ok

show more ...


# 77d59b8a 12-Jan-2007 aoyama <aoyama@openbsd.org>

Change the secondary CMMU's data cache turn on so that do not hog the
bus while they spin, as same as 3.8. This have been missed since CMMU
initialize cleanup.

Also m88k_cpus[] should have 4 elemen

Change the secondary CMMU's data cache turn on so that do not hog the
bus while they spin, as same as 3.8. This have been missed since CMMU
initialize cleanup.

Also m88k_cpus[] should have 4 elements on luna88k, even in
non-MULTIPROCESSOR kernel.

ok miod@

show more ...


# 9cb85075 15-May-2006 miod <miod@openbsd.org>

Clean secondary processors initialization code, similar to mvme88k;
tested aoyama@


# 50594654 03-Dec-2005 miod <miod@openbsd.org>

intstack does not need to be visible from C code anymore.


# 0934804c 03-Dec-2005 miod <miod@openbsd.org>

Switch m88k ports to __HAVE_CPUINFO. Current cpu pointer is held in SR0
on all running processors.
Tested aoyama@ and I


# bb67467a 12-Oct-2005 miod <miod@openbsd.org>

Move sigcode to the m88k-agnostic location. No functional change.


12