| \ ***************************************************************************** |
| \ * Copyright (c) 2004, 2008 IBM Corporation |
| \ * All rights reserved. |
| \ * This program and the accompanying materials |
| \ * are made available under the terms of the BSD License |
| \ * which accompanies this distribution, and is available at |
| \ * http://www.opensource.org/licenses/bsd-license.php |
| \ * |
| \ * Contributors: |
| \ * IBM Corporation - initial implementation |
| \ ****************************************************************************/ |
| |
| false VALUE (sms-loaded?) |
| |
| false value (sms-available?) |
| |
| s" sms.fs" romfs-lookup IF true to (sms-available?) drop THEN |
| |
| (sms-available?) [IF] |
| |
| #include "packages/sms.fs" |
| |
| \ Initialize SMS NVRAM handling. |
| #include "sms-nvram.fs" |
| |
| \ Dynamically load sms code from the romfs file |
| \ Assumption is that skeleton sms package already exists |
| \ but aside of open & close, all other methods are in a romfs file (sms.fs) |
| \ Here we open the package and load the rest of the functionality |
| |
| \ After that, one needs to find-device and execute sms-start method |
| \ The shorthand for that is given as (global) sms-start word |
| |
| : $sms-node s" /packages/sms" ; |
| |
| : (sms-init-package) ( -- true|false ) |
| (sms-loaded?) ?dup IF EXIT THEN |
| $sms-node ['] find-device catch IF 2drop false EXIT THEN |
| s" sms.fs" [COMPILE] included |
| device-end |
| true dup to (sms-loaded?) |
| ; |
| |
| \ External wrapper for sms package method |
| : (sms-evaluate) ( addr len -- ) |
| (sms-init-package) not IF |
| cr ." SMS is not available." cr 2drop exit |
| THEN |
| |
| s" Entering SMS ..." type |
| disable-watchdog |
| reset-dual-emit |
| |
| \ if we only had execute-device-method... |
| 2>r $sms-node find-device |
| 2r> evaluate |
| device-end |
| vpd-boot-import |
| ; |
| |
| : sms-start ( -- ) s" sms-start" (sms-evaluate) ; |
| : sms-fru-replacement ( -- ) s" sms-fru-replacement" (sms-evaluate) ; |
| |
| [ELSE] |
| |
| : sms-start ( -- ) cr ." SMS is not available." cr ; |
| : sms-fru-replacement ( -- ) cr ." SMS FRU replacement is not available." cr ; |
| |
| [THEN] |
| |