<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/arch/openrisc/kernel/setup.c, branch v4.19</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>openrisc: initial SMP support</title>
<updated>2017-11-03T05:01:13+00:00</updated>
<author>
<name>Stefan Kristiansson</name>
<email>stefan.kristiansson@saunalahti.fi</email>
</author>
<published>2014-05-11T18:49:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8e6d08e0a15e7d4d4b608b56597350d4cdd77710'/>
<id>8e6d08e0a15e7d4d4b608b56597350d4cdd77710</id>
<content type='text'>
This patch introduces the SMP support for the OpenRISC architecture.
The SMP architecture requires cores which have multi-core features which
have been introduced a few years back including:

 - New SPRS SPR_COREID SPR_NUMCORES
 - Shadow SPRs
 - Atomic Instructions
 - Cache Coherency
 - A wired in IPI controller

This patch adds all of the SMP specific changes to core infrastructure,
it looks big but it needs to go all together as its hard to split this
one up.

Boot loader spinning of second cpu is not supported yet, it's assumed
that Linux is booted straight after cpu reset.

The bulk of these changes are trivial changes to refactor to use per cpu
data structures throughout.  The addition of the smp.c and changes in
time.c are the changes.  Some specific notes:

MM changes
----------
The reason why this is created as an array, and not with DEFINE_PER_CPU
is that doing it this way, we'll save a load in the tlb-miss handler
(the load from __per_cpu_offset).

TLB Flush
---------
The SMP implementation of flush_tlb_* works by sending out a
function-call IPI to all the non-local cpus by using the generic
on_each_cpu() function.

Currently, all flush_tlb_* functions will result in a flush_tlb_all(),
which has always been the behaviour in the UP case.

CPU INFO
--------
This creates a per cpu cpuinfo struct and fills it out accordingly for
each activated cpu.  show_cpuinfo is also updated to reflect new version
information in later versions of the spec.

SMP API
-------
This imitates the arm64 implementation by having a smp_cross_call
callback that can be set by set_smp_cross_call to initiate an IPI and a
handle_IPI function that is expected to be called from an IPI irqchip
driver.

Signed-off-by: Stefan Kristiansson &lt;stefan.kristiansson@saunalahti.fi&gt;
[shorne@gmail.com: added cpu stop, checkpatch fixes, wrote commit message]
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch introduces the SMP support for the OpenRISC architecture.
The SMP architecture requires cores which have multi-core features which
have been introduced a few years back including:

 - New SPRS SPR_COREID SPR_NUMCORES
 - Shadow SPRs
 - Atomic Instructions
 - Cache Coherency
 - A wired in IPI controller

This patch adds all of the SMP specific changes to core infrastructure,
it looks big but it needs to go all together as its hard to split this
one up.

Boot loader spinning of second cpu is not supported yet, it's assumed
that Linux is booted straight after cpu reset.

The bulk of these changes are trivial changes to refactor to use per cpu
data structures throughout.  The addition of the smp.c and changes in
time.c are the changes.  Some specific notes:

MM changes
----------
The reason why this is created as an array, and not with DEFINE_PER_CPU
is that doing it this way, we'll save a load in the tlb-miss handler
(the load from __per_cpu_offset).

TLB Flush
---------
The SMP implementation of flush_tlb_* works by sending out a
function-call IPI to all the non-local cpus by using the generic
on_each_cpu() function.

Currently, all flush_tlb_* functions will result in a flush_tlb_all(),
which has always been the behaviour in the UP case.

CPU INFO
--------
This creates a per cpu cpuinfo struct and fills it out accordingly for
each activated cpu.  show_cpuinfo is also updated to reflect new version
information in later versions of the spec.

SMP API
-------
This imitates the arm64 implementation by having a smp_cross_call
callback that can be set by set_smp_cross_call to initiate an IPI and a
handle_IPI function that is expected to be called from an IPI irqchip
driver.

Signed-off-by: Stefan Kristiansson &lt;stefan.kristiansson@saunalahti.fi&gt;
[shorne@gmail.com: added cpu stop, checkpatch fixes, wrote commit message]
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openrisc: add cache way information to cpuinfo</title>
<updated>2017-02-06T12:50:41+00:00</updated>
<author>
<name>Stefan Kristiansson</name>
<email>stefan.kristiansson@saunalahti.fi</email>
</author>
<published>2013-04-27T18:02:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3e06a16339303016b2c57b350a15afeaa7ba7813'/>
<id>3e06a16339303016b2c57b350a15afeaa7ba7813</id>
<content type='text'>
Motivation for this is to be able to print the way information
properly in print_cpuinfo(), instead of hardcoding it to one.

Signed-off-by: Stefan Kristiansson &lt;stefan.kristiansson@saunalahti.fi&gt;
Signed-off-by: Jonas Bonn &lt;jonas@southpole.se&gt;
[shorne@gmail.com fixed conflict with show_cpuinfo change]
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Motivation for this is to be able to print the way information
properly in print_cpuinfo(), instead of hardcoding it to one.

Signed-off-by: Stefan Kristiansson &lt;stefan.kristiansson@saunalahti.fi&gt;
Signed-off-by: Jonas Bonn &lt;jonas@southpole.se&gt;
[shorne@gmail.com fixed conflict with show_cpuinfo change]
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openrisc: Updates after openrisc.net has been lost</title>
<updated>2016-12-12T14:10:19+00:00</updated>
<author>
<name>Stafford Horne</name>
<email>shorne@gmail.com</email>
</author>
<published>2016-03-21T08:11:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d01e1f35fee54fd7131e161956e609dfd47c1056'/>
<id>d01e1f35fee54fd7131e161956e609dfd47c1056</id>
<content type='text'>
The openrisc.net domain expired and was taken over by squatters.
These updates point documentation to the new domain, mailing lists
and git repos.

Also, Jonas is not the main maintainer anylonger, he reviews changes
but does not maintain a repo or sent pull requests.  Updating this to
add Stafford and Stefan who are the active maintainers.

Acked-by: Olof Kindgren &lt;olof.kindgren@gmail.com&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The openrisc.net domain expired and was taken over by squatters.
These updates point documentation to the new domain, mailing lists
and git repos.

Also, Jonas is not the main maintainer anylonger, he reviews changes
but does not maintain a repo or sent pull requests.  Updating this to
add Stafford and Stefan who are the active maintainers.

Acked-by: Olof Kindgren &lt;olof.kindgren@gmail.com&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openrisc: Consolidate setup to use memblock instead of bootmem</title>
<updated>2016-12-12T14:10:00+00:00</updated>
<author>
<name>Stafford Horne</name>
<email>shorne@gmail.com</email>
</author>
<published>2016-04-03T10:14:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=266c7fad157265bb54d17db1c9545f2aaa488643'/>
<id>266c7fad157265bb54d17db1c9545f2aaa488643</id>
<content type='text'>
Clearing out one todo item. Use the memblock boot time memory
which is the current standard.

Tested-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Acked-by: Jonas &lt;jonas@southpole.se&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clearing out one todo item. Use the memblock boot time memory
which is the current standard.

Tested-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Acked-by: Jonas &lt;jonas@southpole.se&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openrisc: remove the redundant of_platform_populate</title>
<updated>2016-12-12T14:09:57+00:00</updated>
<author>
<name>Rob Herring</name>
<email>robh@kernel.org</email>
</author>
<published>2016-08-30T15:10:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=994894c3f710f5d8ca89d22988fe715db57bbc87'/>
<id>994894c3f710f5d8ca89d22988fe715db57bbc87</id>
<content type='text'>
The of_platform_populate call in the openrisc arch code is now redundant
as the DT core provides a default call. Openrisc has a NULL match table
which means only top level nodes with compatible strings will have
devices creates. The default version will also descend nodes in the
match table such as "simple-bus" which should be fine as openrisc
doesn't have any of these (though it is preferred that memory-mapped
peripherals be grouped under a bus node(s)).

Signed-off-by: Rob Herring &lt;robh@kernel.org&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Tested-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The of_platform_populate call in the openrisc arch code is now redundant
as the DT core provides a default call. Openrisc has a NULL match table
which means only top level nodes with compatible strings will have
devices creates. The default version will also descend nodes in the
match table such as "simple-bus" which should be fine as openrisc
doesn't have any of these (though it is preferred that memory-mapped
peripherals be grouped under a bus node(s)).

Signed-off-by: Rob Herring &lt;robh@kernel.org&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Tested-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openrisc: remove use of seq_printf return value</title>
<updated>2015-04-15T23:35:25+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2015-04-15T23:18:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=58a1aa7c83f4ee73d96efd50c4c16ebbeb64622e'/>
<id>58a1aa7c83f4ee73d96efd50c4c16ebbeb64622e</id>
<content type='text'>
The seq_printf return value, because it's frequently misused,
will eventually be converted to void.

See: commit 1f33c41c03da ("seq_file: Rename seq_overflow() to
     seq_has_overflowed() and make public")

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The seq_printf return value, because it's frequently misused,
will eventually be converted to void.

See: commit 1f33c41c03da ("seq_file: Rename seq_overflow() to
     seq_has_overflowed() and make public")

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'for-3.13' of git://git.openrisc.net/~jonas/linux</title>
<updated>2013-11-15T22:26:38+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-11-15T22:26:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=98d38dd2ee30322fc9934d7490be3c5bee80950e'/>
<id>98d38dd2ee30322fc9934d7490be3c5bee80950e</id>
<content type='text'>
Pull OpenRISC updates from Jonas Bonn:
 - small cleanups to make allmodconfig pass
 - defconfig refresh
 - a handful of code sanitization patches

* tag 'for-3.13' of git://git.openrisc.net/~jonas/linux:
  openrisc: Refactor or32_early_setup()
  openrisc: Remove unused declaration of __initramfs_start
  openrisc: Use the declarations provided by &lt;asm/sections.h&gt;
  openrisc: Refresh or1ksim_defconfig for v3.12
  openrisc: Refactor 16-bit constant relocation
  openrisc: include: asm: Kbuild: add default "vga.h"
  openrisc: Makefile: append "-D__linux__" to KBUILD_CFLAGS
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull OpenRISC updates from Jonas Bonn:
 - small cleanups to make allmodconfig pass
 - defconfig refresh
 - a handful of code sanitization patches

* tag 'for-3.13' of git://git.openrisc.net/~jonas/linux:
  openrisc: Refactor or32_early_setup()
  openrisc: Remove unused declaration of __initramfs_start
  openrisc: Use the declarations provided by &lt;asm/sections.h&gt;
  openrisc: Refresh or1ksim_defconfig for v3.12
  openrisc: Refactor 16-bit constant relocation
  openrisc: include: asm: Kbuild: add default "vga.h"
  openrisc: Makefile: append "-D__linux__" to KBUILD_CFLAGS
</pre>
</div>
</content>
</entry>
<entry>
<title>openrisc: Refactor or32_early_setup()</title>
<updated>2013-11-15T10:03:51+00:00</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2013-11-12T19:42:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=621c2cd853fca98258b720d9fe7e8c031ec7f96f'/>
<id>621c2cd853fca98258b720d9fe7e8c031ec7f96f</id>
<content type='text'>
  - Change fdt pointer (passed from head.S) from unsigned int to void *,
    which allows to kill a cast, and makes it compatible with __dtb_start.
  - Use pr_info(),
  - Extract common part.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: linux@lists.openrisc.net
Signed-off-by: Jonas Bonn &lt;jonas@southpole.se&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  - Change fdt pointer (passed from head.S) from unsigned int to void *,
    which allows to kill a cast, and makes it compatible with __dtb_start.
  - Use pr_info(),
  - Extract common part.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: linux@lists.openrisc.net
Signed-off-by: Jonas Bonn &lt;jonas@southpole.se&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openrisc: Use the declarations provided by &lt;asm/sections.h&gt;</title>
<updated>2013-11-15T09:37:41+00:00</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2013-11-12T19:56:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=be5940c9fd2fa1905fab4353bb9c7051d088d824'/>
<id>be5940c9fd2fa1905fab4353bb9c7051d088d824</id>
<content type='text'>
Openrisc's private vmlinux.h duplicates a few definitions that are already
provided by asm-generic/sections.h. The former is used by setup.c only,
while the latter is already used everywhere else.

Convert setup.c to use the generic version:
  - Include &lt;asm/sections.h&gt;,
  - Remove the (slightly different) extern declarations,
  - Remove the no longer needed address-of ('&amp;') operators.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Jonas Bonn &lt;jonas@southpole.se&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Openrisc's private vmlinux.h duplicates a few definitions that are already
provided by asm-generic/sections.h. The former is used by setup.c only,
while the latter is already used everywhere else.

Convert setup.c to use the generic version:
  - Include &lt;asm/sections.h&gt;,
  - Remove the (slightly different) extern declarations,
  - Remove the no longer needed address-of ('&amp;') operators.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Jonas Bonn &lt;jonas@southpole.se&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openrisc: use unflatten_and_copy_device_tree</title>
<updated>2013-10-09T16:38:04+00:00</updated>
<author>
<name>Rob Herring</name>
<email>rob.herring@calxeda.com</email>
</author>
<published>2013-08-26T16:23:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3486892f998fea5b4f1a0a4d093f09b7d0024696'/>
<id>3486892f998fea5b4f1a0a4d093f09b7d0024696</id>
<content type='text'>
Use the common unflatten_and_copy_device_tree to copy the built-in FDT
out of init section. This moves the copy later in the boot, but there
do not appear to be any references to strings in the FDT before the copy.

Signed-off-by: Rob Herring &lt;rob.herring@calxeda.com&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Cc: linux@lists.openrisc.net
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the common unflatten_and_copy_device_tree to copy the built-in FDT
out of init section. This moves the copy later in the boot, but there
do not appear to be any references to strings in the FDT before the copy.

Signed-off-by: Rob Herring &lt;rob.herring@calxeda.com&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Cc: linux@lists.openrisc.net
</pre>
</div>
</content>
</entry>
</feed>
