Thanks, applied.
On Mon, Feb 1, 2010 at 11:05 PM, Igor V. Kovalenko igor.v.kovalenko@gmail.com wrote:
From: Igor V. Kovalenko igor.v.kovalenko@gmail.com
This change fixes node unit address matching on arch where cell is not 4 byte integer (tested with sparc64.)
Since we encode "reg" property chunks with encode-int we need to use the same encoding while preparing unit phys addr for comparison at path resolution time.
- (exact-match): calculate phys addr length using 4 byte
member encoding with /l* not cells
- find-child: encode phys addr components similar to
encode-int with 4 byte stores
Signed-off-by: Igor V. Kovalenko igor.v.kovalenko@gmail.com
forth/device/pathres.fs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/forth/device/pathres.fs b/forth/device/pathres.fs index 4184d07..f248e8d 100644 --- a/forth/device/pathres.fs +++ b/forth/device/pathres.fs @@ -125,7 +125,7 @@ constant sinfo.size r@ common-match
\ b) UNIT_PHYS nonempty?
- r@ >si.unit_phys_len @ cells ?dup if
- r@ >si.unit_phys_len @ /l* ?dup if
\ check if unit_phys matches " reg" r@ >si.child @ get-package-property if -3 throw then ( unitbytes propaddr proplen ) @@ -191,7 +191,7 @@ constant sinfo.size ( ... a_lo ... a_hi olddepth n ) r@ >si.unit_phys >r begin 1- dup 0>= while
- rot r> dup na1+ >r !
- rot r> dup la1+ >r l!-be
repeat r> 2drop depth!
-- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you