summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorGUI <[email protected]>2023-08-02 12:48:24 +0800
committerGitHub <[email protected]>2023-08-02 12:48:24 +0800
commitd3417aa0d757955497e3fde70d6c20ec0fbb8f2f (patch)
treeb909c67502cd25e024cb33cb66a4a53b6d9d2626 /components
parentf5fe1a5d7b9117339ffce00035fd58a2c0ff3f3a (diff)
Prepare some api for DM (#7894)
Signed-off-by: GuEe-GUI <[email protected]>
Diffstat (limited to 'components')
-rw-r--r--components/drivers/ofw/base.c7
-rwxr-xr-xcomponents/drivers/ofw/fdt.c9
-rwxr-xr-xcomponents/drivers/ofw/irq.c3
-rw-r--r--components/mm/ioremap.c10
-rw-r--r--components/mm/ioremap.h1
-rw-r--r--components/mm/mm_page.h2
6 files changed, 24 insertions, 8 deletions
diff --git a/components/drivers/ofw/base.c b/components/drivers/ofw/base.c
index 63f6d2702e..6f8f20e806 100644
--- a/components/drivers/ofw/base.c
+++ b/components/drivers/ofw/base.c
@@ -10,6 +10,7 @@
#include <rtthread.h>
+#include <string.h>
#include <drivers/ofw.h>
#include <drivers/ofw_io.h>
#include <drivers/ofw_fdt.h>
@@ -249,7 +250,7 @@ rt_bool_t rt_ofw_node_tag_equ(const struct rt_ofw_node *np, const char *tag)
if (np && tag)
{
const char *node_name = rt_fdt_node_name(np->full_name);
- rt_size_t tag_len = rt_strchrnul(node_name, '@') - node_name;
+ rt_size_t tag_len = strchrnul(node_name, '@') - node_name;
ret = (rt_strlen(tag) == tag_len && !rt_strncmp(node_name, tag, tag_len));
}
@@ -569,7 +570,7 @@ struct rt_ofw_node *rt_ofw_find_node_by_ids_r(struct rt_ofw_node *from, const st
struct rt_ofw_node *rt_ofw_find_node_by_path(const char *path)
{
- struct rt_ofw_node *np, *parent, *tmp;
+ struct rt_ofw_node *np = RT_NULL, *parent, *tmp = RT_NULL;
if (path)
{
@@ -584,7 +585,7 @@ struct rt_ofw_node *rt_ofw_find_node_by_path(const char *path)
while (*path)
{
- const char *next = rt_strchrnul(path, '/');
+ const char *next = strchrnul(path, '/');
rt_size_t len = next - path;
tmp = RT_NULL;
diff --git a/components/drivers/ofw/fdt.c b/components/drivers/ofw/fdt.c
index 1d3388e79d..d64feec9cd 100755
--- a/components/drivers/ofw/fdt.c
+++ b/components/drivers/ofw/fdt.c
@@ -11,6 +11,7 @@
#include <rthw.h>
#include <rtthread.h>
+#include <string.h>
#include <drivers/ofw_fdt.h>
#include <drivers/ofw_raw.h>
#include <drivers/core/dm.h>
@@ -40,7 +41,7 @@ static rt_size_t _root_addr_cells;
const char *rt_fdt_node_name(const char *full_name)
{
- const char *node_name = rt_strrchr(full_name, '/');
+ const char *node_name = strrchr(full_name, '/');
return node_name ? node_name + 1 : full_name;
}
@@ -701,7 +702,7 @@ rt_err_t rt_fdt_scan_chosen_stdout(void)
if (stdout_path && len)
{
- const char *path_split = rt_strchrnul(stdout_path, ':');
+ const char *path_split = strchrnul(stdout_path, ':');
if (*path_split != '\0')
{
@@ -780,13 +781,13 @@ rt_err_t rt_fdt_scan_chosen_stdout(void)
if (*options)
{
- type_len = rt_strchrnul(options, ',') - options;
+ type_len = strchrnul(options, ',') - options;
}
}
if (options && *options && *options != ' ')
{
- options_len = rt_strchrnul(options, ' ') - options;
+ options_len = strchrnul(options, ' ') - options;
}
/* console > stdout-path */
diff --git a/components/drivers/ofw/irq.c b/components/drivers/ofw/irq.c
index 69ac3b3d5e..97483d8a5e 100755
--- a/components/drivers/ofw/irq.c
+++ b/components/drivers/ofw/irq.c
@@ -10,6 +10,7 @@
#include <rtthread.h>
+#include <string.h>
#include <drivers/pic.h>
#include <drivers/ofw.h>
#include <drivers/ofw_io.h>
@@ -130,7 +131,7 @@ static rt_err_t ofw_parse_irq_map(struct rt_ofw_node *np, struct rt_ofw_cell_arg
* <0x1800 0 0 4 &gic 0 0 GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; // INTD
* };
*
- * In fact, basically no SoC will be use multi ic to implemented INTx.
+ * In fact, almost no SoC will be use multi IC to implement INTx.
* before call ofw_parse_irq_map(np, &args):
*
* args.data = addr;
diff --git a/components/mm/ioremap.c b/components/mm/ioremap.c
index 04f09fdbaf..5d31185e57 100644
--- a/components/mm/ioremap.c
+++ b/components/mm/ioremap.c
@@ -76,6 +76,16 @@ static void *_ioremap_type(void *paddr, size_t size, enum ioremap_type type)
return v_addr;
}
+rt_weak void *rt_ioremap_early(void *paddr, size_t size)
+{
+ if (!size)
+ {
+ return RT_NULL;
+ }
+
+ return paddr;
+}
+
void *rt_ioremap(void *paddr, size_t size)
{
return _ioremap_type(paddr, size, MM_AREA_TYPE_PHY);
diff --git a/components/mm/ioremap.h b/components/mm/ioremap.h
index 7ac9d196a9..f17b5d5fff 100644
--- a/components/mm/ioremap.h
+++ b/components/mm/ioremap.h
@@ -30,6 +30,7 @@ extern "C" {
* | Currently as non-cacheable
*/
+void *rt_ioremap_early(void *paddr, size_t size);
void *rt_ioremap(void *paddr, size_t size);
void *rt_ioremap_nocache(void *paddr, size_t size);
void *rt_ioremap_cached(void *paddr, size_t size);
diff --git a/components/mm/mm_page.h b/components/mm/mm_page.h
index 99cb5a804e..a0171d6672 100644
--- a/components/mm/mm_page.h
+++ b/components/mm/mm_page.h
@@ -63,6 +63,8 @@ typedef struct tag_region
{
rt_size_t start;
rt_size_t end;
+
+ const char *name;
} rt_region_t;
extern const rt_size_t rt_mpr_size;