[openfirmware] [commit] r2016 - in cpu: arm/olpc/1.75 x86/pc/olpc x86/pc/olpc/via
repository service
svn at openfirmware.info
Sat Nov 6 00:04:44 CET 2010
Author: wmb
Date: Sat Nov 6 00:04:42 2010
New Revision: 2016
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2016
Log:
OLPC - Get OFW version from the model property in /openprom, so there is only one place that knows how to access the data from FLASH (because SPI FLASH is not memory mapped on XO-1.75).
Modified:
cpu/arm/olpc/1.75/devices.fth
cpu/x86/pc/olpc/banner.fth
cpu/x86/pc/olpc/security.fth
cpu/x86/pc/olpc/via/banner.fth
Modified: cpu/arm/olpc/1.75/devices.fth
==============================================================================
--- cpu/arm/olpc/1.75/devices.fth Fri Nov 5 19:56:34 2010 (r2015)
+++ cpu/arm/olpc/1.75/devices.fth Sat Nov 6 00:04:42 2010 (r2016)
@@ -254,6 +254,34 @@
fload ${BP}/dev/olpc/mmp2camera/loadpkg.fth
+warning @ warning off
+: stand-init
+ stand-init
+ root-device
+[ifdef] notyet
+ model-name$ 2dup model ( name$ )
+ " OLPC " encode-bytes 2swap encode-string encode+ " banner-name" property
+ board-revision " board-revision-int" integer-property
+[then]
+ \ The "1-" removes the null byte
+ " SN" find-tag if 1- else " Unknown" then " serial-number" string-property
+[ifdef] notyet
+ 8 ec-cmd-b@ dup " ec-version" integer-property
+
+ XXX Get EC name with an EC command
+ " ec-name" string-property
+[then]
+ dend
+
+ " /openprom" find-device
+ flash-open pad d# 16 2dup h# fffc0 flash-read ( adr len )
+ " model" string-property
+
+ " sourceurl" find-drop-in if " source-url" string-property then
+ dend
+;
+warning !
+
\ LICENSE_BEGIN
\ Copyright (c) 2010 FirmWorks
\
Modified: cpu/x86/pc/olpc/banner.fth
==============================================================================
--- cpu/x86/pc/olpc/banner.fth Fri Nov 5 19:56:34 2010 (r2015)
+++ cpu/x86/pc/olpc/banner.fth Sat Nov 6 00:04:42 2010 (r2016)
@@ -3,15 +3,19 @@
headerless
+: ofw-model$ ( -- adr len )
+ " /openprom" find-package drop ( phandle )
+ " model" rot get-package-property if
+ " ??? ????? ???"
+ else
+ decode-string
+ then
+;
+: ofw-version$ ( -- adr len )
+ ofw-model$ drop 6 + 7 -trailing
+;
: .rom ( -- )
- ." OpenFirmware "
- \ push-decimal
- \ major-release (.) type ." ." minor-release (.) type sub-release type
- \ pop-base
- \ This is the manufacturing signature
-[ifdef] rom-loaded
- h# ffff.ffc0 h# 10 type
-[then]
+ ." OpenFirmware " ofw-version$ type
;
: .ec
Modified: cpu/x86/pc/olpc/security.fth
==============================================================================
--- cpu/x86/pc/olpc/security.fth Fri Nov 5 19:56:34 2010 (r2015)
+++ cpu/x86/pc/olpc/security.fth Sat Nov 6 00:04:42 2010 (r2016)
@@ -851,8 +851,8 @@
: ?force-secure ( -- ) button-x game-key? if true to secure? then ;
6 buffer: fw#buf
-: (fw-version) ( base-adr -- n )
- h# f.ffc7 + fw#buf 5 move
+: ((fw-version)) ( adr -- n )
+ fw#buf 5 move
fw#buf 4 + c@ bl = if [char] 0 fw#buf 4 + c! then
base @ >r d# 36 base !
fw#buf 5 $number if
@@ -861,11 +861,21 @@
then
pop-base
;
+: (fw-version) ( base-adr -- n )
+ h# f.ffc7 + ((fw-version)
+;
+
+\ Returns an integer that is derived from a base-36 decoding
+\ of the OFW version number (e.g. Q2A36b) beginning at the
+\ character after the Q.
+: ofw-version-int ( -- n )
+ ofw-version$ drop 1+ ((fw-version))
+;
: firmware-up-to-date? ( img$ -- )
/flash <> if show-x " Invalid Firmware image" .security-failure then ( adr )
- (fw-version) ( file-version# )
- rom-pa (fw-version) ( file-version# rom-version# )
+ h# f.ffc7 + ((fw-version)) ( file-version# )
+ ofw-version-int ( file-version# rom-version# )
u<=
;
Modified: cpu/x86/pc/olpc/via/banner.fth
==============================================================================
--- cpu/x86/pc/olpc/via/banner.fth Fri Nov 5 19:56:34 2010 (r2015)
+++ cpu/x86/pc/olpc/via/banner.fth Sat Nov 6 00:04:42 2010 (r2016)
@@ -95,15 +95,19 @@
then
;
+: ofw-model$ ( -- adr len )
+ " /openprom" find-package drop ( phandle )
+ " model" rot get-package-property if
+ " ??? ????? ???"
+ else
+ decode-string
+ then
+;
+: ofw-version$ ( -- adr len )
+ ofw-model$ drop 6 + 7 -trailing
+;
: .rom ( -- )
- ." OpenFirmware "
- \ push-decimal
- \ major-release (.) type ." ." minor-release (.) type sub-release type
- \ pop-base
- \ This is the manufacturing signature
-[ifdef] rom-loaded
- h# ffff.ffc0 h# 10 type
-[then]
+ ." OpenFirmware " ofw-version$ type
;
: .ec
More information about the openfirmware
mailing list