#
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.
|