diff mbox

v3 mambo: Advertise available RADIX page sizes

Message ID 20161001220722.GA5876@distroguy.com
State Superseded
Headers show

Commit Message

Chris Smart Oct. 1, 2016, 10:07 p.m. UTC
This adds a device tree entry which advertises additional support for 2M
and 1G pages in a PAPR compliant manner. Without this, the kernel will
default to only 4K and 64K page sizes.

With this patch, 1G (0x40000000) pages for linear mapping will be used.
This can be seen by when checking the output of "Mapping range" in the
kernel log:

 # dmesg |grep "Mapping range"
 Mapping range 0x0 - 0x100000000 with 0x40000000

Without this patch, the kernel will use 64K (0x10000) instead:

 # dmesg |grep "Mapping range"
 Mapping range 0x0 - 0x100000000 with 0x10000

Signed-off-by: Chris Smart <chris@distroguy.com>
---

Changes since v2:
 - add signed off by

 external/mambo/skiboot.tcl | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

Comments

Chris Smart Oct. 1, 2016, 10:13 p.m. UTC | #1
OMG I'm still asleep. Expect a v4 with the inline comments removed...

-c

On Sun, Oct 02, 2016 at 09:07:28AM +1100, Chris Smart wrote:
>This adds a device tree entry which advertises additional support for 2M
>and 1G pages in a PAPR compliant manner. Without this, the kernel will
>default to only 4K and 64K page sizes.
>
>With this patch, 1G (0x40000000) pages for linear mapping will be used.
>This can be seen by when checking the output of "Mapping range" in the
>kernel log:
>
># dmesg |grep "Mapping range"
>Mapping range 0x0 - 0x100000000 with 0x40000000
>
>Without this patch, the kernel will use 64K (0x10000) instead:
>
># dmesg |grep "Mapping range"
>Mapping range 0x0 - 0x100000000 with 0x10000
>
>Signed-off-by: Chris Smart <chris@distroguy.com>
>---
>
>Changes since v2:
>- add signed off by
>
>external/mambo/skiboot.tcl | 14 ++++++++++++--
>1 file changed, 12 insertions(+), 2 deletions(-)
>
>diff --git a/external/mambo/skiboot.tcl b/external/mambo/skiboot.tcl
>index e9aea028edcc..a92bf336de9d 100644
>--- a/external/mambo/skiboot.tcl
>+++ b/external/mambo/skiboot.tcl
>@@ -205,8 +205,16 @@ for { set c 0 } { $c < $mconf(cpus) } { incr c } {
>    lappend reg 0x22 0x120 1 0x22 0x0003 ;# 16G seg 16G pages
>    mysim of addprop $cpu_node array "ibm,segment-page-sizes" reg
>
>-    set reg {}
>    if { $default_config == "P9" } {
>+        # Set actual page size encodings
>+        set reg {}
>+        lappend reg 0x0000000c # 4K pages
>+        lappend reg 0xa0000010 # 64K pages
>+        lappend reg 0x20000015 # 2M pages
>+        lappend reg 0x4000001e # 1G pages
>+        mysim of addprop $cpu_node array "ibm,processor-radix-AP-encodings" reg
>+
>+        set reg {}
>	# POWER9 PAPR defines upto bytes 62-63
>	# header + bytes 0-5
>	lappend reg 0x4000f63fc70080c0
>@@ -226,10 +234,12 @@ for { set c 0 } { $c < $mconf(cpus) } { incr c } {
>	lappend reg 0x8000800080008000
>	# bytes 62-69
>	lappend reg 0x8000000000000000
>+	mysim of addprop $cpu_node array64 "ibm,pa-features" reg
>    } else {
>+        set reg {}
>	lappend reg 0x6000f63fc70080c0
>+	mysim of addprop $cpu_node array64 "ibm,pa-features" reg
>    }
>-    mysim of addprop $cpu_node array64 "ibm,pa-features" reg
>
>    set irqreg [list]
>    for { set t 0 } { $t < $mconf(threads) } { incr t } {
>-- 
>2.9.3
>
>_______________________________________________
>Skiboot mailing list
>Skiboot@lists.ozlabs.org
>https://lists.ozlabs.org/listinfo/skiboot
diff mbox

Patch

diff --git a/external/mambo/skiboot.tcl b/external/mambo/skiboot.tcl
index e9aea028edcc..a92bf336de9d 100644
--- a/external/mambo/skiboot.tcl
+++ b/external/mambo/skiboot.tcl
@@ -205,8 +205,16 @@  for { set c 0 } { $c < $mconf(cpus) } { incr c } {
     lappend reg 0x22 0x120 1 0x22 0x0003 ;# 16G seg 16G pages
     mysim of addprop $cpu_node array "ibm,segment-page-sizes" reg
 
-    set reg {}
     if { $default_config == "P9" } {
+        # Set actual page size encodings
+        set reg {}
+        lappend reg 0x0000000c # 4K pages
+        lappend reg 0xa0000010 # 64K pages
+        lappend reg 0x20000015 # 2M pages
+        lappend reg 0x4000001e # 1G pages
+        mysim of addprop $cpu_node array "ibm,processor-radix-AP-encodings" reg
+
+        set reg {}
 	# POWER9 PAPR defines upto bytes 62-63
 	# header + bytes 0-5
 	lappend reg 0x4000f63fc70080c0
@@ -226,10 +234,12 @@  for { set c 0 } { $c < $mconf(cpus) } { incr c } {
 	lappend reg 0x8000800080008000
 	# bytes 62-69
 	lappend reg 0x8000000000000000
+	mysim of addprop $cpu_node array64 "ibm,pa-features" reg
     } else {
+        set reg {}
 	lappend reg 0x6000f63fc70080c0
+	mysim of addprop $cpu_node array64 "ibm,pa-features" reg
     }
-    mysim of addprop $cpu_node array64 "ibm,pa-features" reg
 
     set irqreg [list]
     for { set t 0 } { $t < $mconf(threads) } { incr t } {