\ ***************************************************************************** \ * 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 \ ****************************************************************************/ : vpd-read-bootlist ( -- ) 837 4 vpd-bootlist rtas-read-vpd IF vpd-bootlist 4 erase THEN ; : vpd-write-bootlist ( offset len data -- ) 837 4 vpd-bootlist rtas-write-vpd ; : .vpd-machine-type e 7 vpd-cb rtas-read-vpd drop 0 vpd-cb 7 + c! vpd-cb zcount type ; : .vpd-machine-serial 15 7 vpd-cb rtas-read-vpd drop 0 vpd-cb 7 + c! vpd-cb zcount type ; : .vpd-card-serial 54 6 vpd-cb rtas-read-vpd drop 0 vpd-cb 6 + c! vpd-cb zcount type ; : .vpd-cardprefix-serial 5a 6 vpd-cb rtas-read-vpd drop 0 vpd-cb 6 + c! vpd-cb zcount type ; : .vpd-hw-revision 65 1 vpd-cb rtas-read-vpd drop vpd-cb c@ . ; : .vpd-part-number 3c c vpd-cb rtas-read-vpd drop vpd-cb c type ; : .vpd-fru-number 48 c vpd-cb rtas-read-vpd drop vpd-cb c type ; : .vpd-manufacturer-date 6b 4 vpd-cb rtas-read-vpd drop 0 vpd-cb 4 + c! vpd-cb zcount type ; : .vpd-uuid 9f 10 vpd-cb rtas-read-vpd drop 10 0 do i vpd-cb + c@ 2 0.r loop ; : vpd-read-model ( -- addr len ) 60 4 vpd-cb rtas-read-vpd drop vpd-cb 4 -leading s" ," $cat e 7 vpd-cb rtas-read-vpd drop vpd-cb 4 $cat s" -" $cat vpd-cb 4 + 3 $cat ; : .vpd ." ===================== VPD =====================" cr ." Machine Type : " .vpd-machine-type cr ." Machine Serial No. : " .vpd-machine-serial cr ." Hardware Revision : " .vpd-hw-revision cr ." Manuf. Date : " .vpd-manufacturer-date cr ." Part Number : " .vpd-part-number cr ." FRU Number : " .vpd-fru-number cr ." FRU Serial No. : " .vpd-cardprefix-serial .vpd-card-serial cr ." UUID : " .vpd-uuid ; : vpd-write-revision-and-build-id ( -- ) 406 24 vpd-cb rtas-read-vpd drop 0 vpd-cb 1a + zcount bdate2human drop a string=ci 0= IF bdate2human drop a vpd-cb 1a + zplace drop 1 THEN vpd-cb zcount slof-revision string=ci 0= IF slof-revision vpd-cb zplace drop 1 THEN vpd-cb 4 + zcount slof-build-id string=ci 0= IF slof-build-id vpd-cb 4 + rzplace drop 1 THEN 1 = IF 406 24 vpd-cb rtas-write-vpd drop THEN ; vpd-write-revision-and-build-id