Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
5f62213e
Commit
5f62213e
authored
Feb 03, 2020
by
Manish Pandey
Committed by
TrustedFirmware Code Review
Feb 03, 2020
Browse files
Merge "FDT wrappers: add functions for read/write bytes" into integration
parents
9db293d1
0a2ab6e6
Changes
5
Show whitespace changes
Inline
Side-by-side
common/fdt_wrappers.c
View file @
5f62213e
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2018
-2020
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -102,6 +102,41 @@ int fdtw_read_array(const void *dtb, int node, const char *prop,
return
0
;
}
/*
* Read bytes from a given property of the given node. Any number of
* bytes of the property can be read. The fdt pointer is updated.
* Returns 0 on success, and -1 on error.
*/
int
fdtw_read_bytes
(
const
void
*
dtb
,
int
node
,
const
char
*
prop
,
unsigned
int
length
,
void
*
value
)
{
const
void
*
ptr
;
int
value_len
;
assert
(
dtb
!=
NULL
);
assert
(
prop
!=
NULL
);
assert
(
value
!=
NULL
);
assert
(
node
>=
0
);
/* Access property and obtain its length (in bytes) */
ptr
=
fdt_getprop_namelen
(
dtb
,
node
,
prop
,
(
int
)
strlen
(
prop
),
&
value_len
);
if
(
ptr
==
NULL
)
{
WARN
(
"Couldn't find property %s in dtb
\n
"
,
prop
);
return
-
1
;
}
/* Verify that property length is not less than number of bytes */
if
((
unsigned
int
)
value_len
<
length
)
{
WARN
(
"Property length mismatch
\n
"
);
return
-
1
;
}
(
void
)
memcpy
(
value
,
ptr
,
length
);
return
0
;
}
/*
* Read string from a given property of the given node. Up to 'size - 1'
* characters are read, and a NUL terminator is added. Returns 0 on success,
...
...
@@ -167,3 +202,45 @@ int fdtw_write_inplace_cells(void *dtb, int node, const char *prop,
return
0
;
}
/*
* Write bytes in place to a given property of the given node.
* Any number of bytes of the property can be written.
* Returns 0 on success, and < 0 on error.
*/
int
fdtw_write_inplace_bytes
(
void
*
dtb
,
int
node
,
const
char
*
prop
,
unsigned
int
length
,
const
void
*
data
)
{
const
void
*
ptr
;
int
namelen
,
value_len
,
err
;
assert
(
dtb
!=
NULL
);
assert
(
prop
!=
NULL
);
assert
(
data
!=
NULL
);
assert
(
node
>=
0
);
namelen
=
(
int
)
strlen
(
prop
);
/* Access property and obtain its length in bytes */
ptr
=
fdt_getprop_namelen
(
dtb
,
node
,
prop
,
namelen
,
&
value_len
);
if
(
ptr
==
NULL
)
{
WARN
(
"Couldn't find property %s in dtb
\n
"
,
prop
);
return
-
1
;
}
/* Verify that property length is not less than number of bytes */
if
((
unsigned
int
)
value_len
<
length
)
{
WARN
(
"Property length mismatch
\n
"
);
return
-
1
;
}
/* Set property value in place */
err
=
fdt_setprop_inplace_namelen_partial
(
dtb
,
node
,
prop
,
namelen
,
0
,
data
,
(
int
)
length
);
if
(
err
!=
0
)
{
WARN
(
"Set property %s failed with error %d
\n
"
,
prop
,
err
);
}
return
err
;
}
include/common/fdt_wrappers.h
View file @
5f62213e
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2018
-2020
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -20,5 +20,9 @@ int fdtw_read_string(const void *dtb, int node, const char *prop,
char
*
str
,
size_t
size
);
int
fdtw_write_inplace_cells
(
void
*
dtb
,
int
node
,
const
char
*
prop
,
unsigned
int
cells
,
void
*
value
);
int
fdtw_read_bytes
(
const
void
*
dtb
,
int
node
,
const
char
*
prop
,
unsigned
int
length
,
void
*
value
);
int
fdtw_write_inplace_bytes
(
void
*
dtb
,
int
node
,
const
char
*
prop
,
unsigned
int
length
,
const
void
*
data
);
#endif
/* FDT_WRAPPERS_H */
lib/romlib/jmptbl.i
View file @
5f62213e
#
#
Copyright
(
c
)
2018
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
#
Copyright
(
c
)
2018
-
2020
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
#
#
SPDX-License-Identifier
:
BSD-3-Clause
#
...
...
@@ -17,6 +17,7 @@ fdt fdt_getprop_namelen
fdt
fdt_setprop_inplace
fdt
fdt_check_header
fdt
fdt_node_offset_by_compatible
fdt
fdt_setprop_inplace_namelen_partial
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_bitstring_null
...
...
plat/arm/board/fvp/jmptbl.i
View file @
5f62213e
#
#
Copyright
(
c
)
2018
-
20
19
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
#
Copyright
(
c
)
2018
-
20
20
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
#
#
SPDX-License-Identifier
:
BSD-3-Clause
#
...
...
@@ -19,6 +19,7 @@ fdt fdt_getprop_namelen
fdt
fdt_setprop_inplace
fdt
fdt_check_header
fdt
fdt_node_offset_by_compatible
fdt
fdt_setprop_inplace_namelen_partial
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_bitstring_null
...
...
plat/arm/board/juno/jmptbl.i
View file @
5f62213e
#
#
Copyright
(
c
)
2018
-
20
19
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
#
Copyright
(
c
)
2018
-
20
20
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
#
#
SPDX-License-Identifier
:
BSD-3-Clause
#
...
...
@@ -19,6 +19,7 @@ fdt fdt_getprop_namelen
fdt
fdt_setprop_inplace
fdt
fdt_check_header
fdt
fdt_node_offset_by_compatible
fdt
fdt_setprop_inplace_namelen_partial
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_bitstring_null
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment