[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