Message ID | 20161001220722.GA5876@distroguy.com |
---|---|
State | Superseded |
Headers | show |
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 --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 } {
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(-)