[OpenBIOS] [commit] r674 - trunk/openbios-devel/forth/device
repository service
svn at openbios.org
Wed Feb 3 18:54:15 CET 2010
Author: blueswirl
Date: Wed Feb 3 18:54:14 2010
New Revision: 674
URL: http://tracker.coreboot.org/trac/openbios/changeset/674
Log:
pathres: consistently encode unit address on 64bit target
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 at gmail.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
Modified:
trunk/openbios-devel/forth/device/pathres.fs
Modified: trunk/openbios-devel/forth/device/pathres.fs
==============================================================================
--- trunk/openbios-devel/forth/device/pathres.fs Sun Jan 31 13:16:46 2010 (r673)
+++ trunk/openbios-devel/forth/device/pathres.fs Wed Feb 3 18:54:14 2010 (r674)
@@ -125,7 +125,7 @@
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 @@
( ... 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!
More information about the OpenBIOS
mailing list