[SLOF] [PATCH slof v6 1/6] tree: Rework set-chosen-cpu and store /chosen ihandle and phandle

Alexey Kardashevskiy aik at ozlabs.ru
Tue Oct 24 12:31:48 AEDT 2017


This replaces current set-chosen-cpu with a cleaner and faster
implementation which does not clobber the current node and stores
the chosen CPU phandle/ihandle.

This adds a helper to get the chosen CPU unit address.

This moves chosen cpu words to root.fs as otherwise it is quite hard
to maintain dependencies.

Signed-off-by: Alexey Kardashevskiy <aik at ozlabs.ru>
---
 board-qemu/slof/tree.fs |  6 ------
 slof/fs/root.fs         | 11 +++++++++++
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/board-qemu/slof/tree.fs b/board-qemu/slof/tree.fs
index cc35fa3..d95fde3 100644
--- a/board-qemu/slof/tree.fs
+++ b/board-qemu/slof/tree.fs
@@ -155,12 +155,6 @@ populate-pci-busses
 
 6c0 cp
 
-\ Do not assume that cpu0 is available
-: set-chosen-cpu
-    " /cpus" find-device
-    get-node child dup 0= ABORT" CPU not found"
-    node>path open-dev encode-int s" cpu" set-chosen
-;
 set-chosen-cpu
 
 s" /memory at 0" open-dev encode-int s" memory" set-chosen
diff --git a/slof/fs/root.fs b/slof/fs/root.fs
index 44d087a..3818790 100644
--- a/slof/fs/root.fs
+++ b/slof/fs/root.fs
@@ -33,6 +33,17 @@ defer continue-client
 : get-chosen ( name len -- [ prop len ] success )
   chosen get-property 0= ;
 
+\ Do not assume that cpu0 is available
+VARIABLE chosen-cpu-ihandle
+: set-chosen-cpu ( -- )
+    s" /cpus" find-node  dup 0= ABORT" /cpus not found"
+    child                dup 0= ABORT" /cpus/cpu not found"
+    0 0 rot open-node
+    dup chosen-cpu-ihandle !  encode-int s" cpu" set-chosen
+;
+
+: chosen-cpu-unit ( -- ret ) chosen-cpu-ihandle @ ihandle>phandle >unit ;
+
 \ Look for an exising root, create one if needed
 " /" find-node dup 0= IF
     drop
-- 
2.11.0



More information about the SLOF mailing list