summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorIlya Smirnov <ismirno@us.ibm.com>2018-12-12 11:33:38 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-01-10 14:52:34 -0600
commit21f75b9e4475b92665e4dd8ca182108dab53045f (patch)
tree5534008afd3766285c4da672f3082a03d056fb88 /src/lib
parent1ba78c4580b6067882d62909c2ce2941ad36008d (diff)
downloadtalos-hostboot-21f75b9e4475b92665e4dd8ca182108dab53045f.tar.gz
talos-hostboot-21f75b9e4475b92665e4dd8ca182108dab53045f.zip
SMF: NVRAM Reading and Mem Distribution end-to-end Changes
This commit introduces the changes to read out the SMF secure memory amount value from NVRAM and to distribute the secure memory amount based on the value read. strtou64 was copied from runtime code to convert the value read from NVRAM (as a string) to uint64_t. Change-Id: I83e41f0aaff9b4035d20a517cf866f348acedd59 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69728 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/stdlib.C40
1 files changed, 39 insertions, 1 deletions
diff --git a/src/lib/stdlib.C b/src/lib/stdlib.C
index a7c694f9d..2688959bd 100644
--- a/src/lib/stdlib.C
+++ b/src/lib/stdlib.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2010,2018 */
+/* Contributors Listed Below - COPYRIGHT 2010,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -161,3 +161,41 @@ void* calloc(size_t num, size_t size)
return mem;
}
+uint64_t strtoul(const char *nptr, char **endptr, int base)
+{
+ uint64_t l_data = 0;
+ size_t i = 0;
+ while( nptr[i] != '\0' )
+ {
+ uint64_t l_nib = 0;
+ switch(nptr[i])
+ {
+ // handle leading '0x' or 'x'
+ case('x'): case('X'):
+ l_data = 0;
+ break;
+ case('0'): l_nib = 0; break;
+ case('1'): l_nib = 1; break;
+ case('2'): l_nib = 2; break;
+ case('3'): l_nib = 3; break;
+ case('4'): l_nib = 4; break;
+ case('5'): l_nib = 5; break;
+ case('6'): l_nib = 6; break;
+ case('7'): l_nib = 7; break;
+ case('8'): l_nib = 8; break;
+ case('9'): l_nib = 9; break;
+ case('A'): case('a'): l_nib = 0xA; break;
+ case('B'): case('b'): l_nib = 0xB; break;
+ case('C'): case('c'): l_nib = 0xC; break;
+ case('D'): case('d'): l_nib = 0xD; break;
+ case('E'): case('e'): l_nib = 0xE; break;
+ case('F'): case('f'): l_nib = 0xF; break;
+ default:
+ return 0ULL;
+ }
+ l_data <<= 4;
+ l_data |= l_nib;
+ i++;
+ }
+ return l_data;
+}
OpenPOWER on IntegriCloud