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
"p2p/protocol/vscode:/vscode.git/clone" did not exist on "104c97ed5750b9c82612ee342a1cf2a3ccfbdf42"
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
Hide 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
* SPDX-License-Identifier: BSD-3-Clause
*/
*/
...
@@ -102,6 +102,41 @@ int fdtw_read_array(const void *dtb, int node, const char *prop,
...
@@ -102,6 +102,41 @@ int fdtw_read_array(const void *dtb, int node, const char *prop,
return
0
;
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'
* 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,
* 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,
...
@@ -167,3 +202,45 @@ int fdtw_write_inplace_cells(void *dtb, int node, const char *prop,
return
0
;
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
* SPDX-License-Identifier: BSD-3-Clause
*/
*/
...
@@ -20,5 +20,9 @@ int fdtw_read_string(const void *dtb, int node, const char *prop,
...
@@ -20,5 +20,9 @@ int fdtw_read_string(const void *dtb, int node, const char *prop,
char
*
str
,
size_t
size
);
char
*
str
,
size_t
size
);
int
fdtw_write_inplace_cells
(
void
*
dtb
,
int
node
,
const
char
*
prop
,
int
fdtw_write_inplace_cells
(
void
*
dtb
,
int
node
,
const
char
*
prop
,
unsigned
int
cells
,
void
*
value
);
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 */
#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
#
SPDX-License-Identifier
:
BSD-3-Clause
#
#
...
@@ -17,6 +17,7 @@ fdt fdt_getprop_namelen
...
@@ -17,6 +17,7 @@ fdt fdt_getprop_namelen
fdt
fdt_setprop_inplace
fdt
fdt_setprop_inplace
fdt
fdt_check_header
fdt
fdt_check_header
fdt
fdt_node_offset_by_compatible
fdt
fdt_node_offset_by_compatible
fdt
fdt_setprop_inplace_namelen_partial
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_bitstring_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
#
SPDX-License-Identifier
:
BSD-3-Clause
#
#
...
@@ -19,6 +19,7 @@ fdt fdt_getprop_namelen
...
@@ -19,6 +19,7 @@ fdt fdt_getprop_namelen
fdt
fdt_setprop_inplace
fdt
fdt_setprop_inplace
fdt
fdt_check_header
fdt
fdt_check_header
fdt
fdt_node_offset_by_compatible
fdt
fdt_node_offset_by_compatible
fdt
fdt_setprop_inplace_namelen_partial
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_bitstring_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
#
SPDX-License-Identifier
:
BSD-3-Clause
#
#
...
@@ -19,6 +19,7 @@ fdt fdt_getprop_namelen
...
@@ -19,6 +19,7 @@ fdt fdt_getprop_namelen
fdt
fdt_setprop_inplace
fdt
fdt_setprop_inplace
fdt
fdt_check_header
fdt
fdt_check_header
fdt
fdt_node_offset_by_compatible
fdt
fdt_node_offset_by_compatible
fdt
fdt_setprop_inplace_namelen_partial
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_alg_null
mbedtls
mbedtls_asn1_get_bitstring_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