Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
reform-boundary-uboot
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jack Humbert
reform-boundary-uboot
Commits
7d45477b
Commit
7d45477b
authored
19 years ago
by
Marian Balakowicz
Browse files
Options
Downloads
Patches
Plain Diff
Added support for mtddevnum and mtddevname variables (mtdparts command)
parent
80e238c7
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
CHANGELOG
+2
-0
2 additions, 0 deletions
CHANGELOG
common/cmd_jffs2.c
+69
-9
69 additions, 9 deletions
common/cmd_jffs2.c
with
71 additions
and
9 deletions
CHANGELOG
+
2
−
0
View file @
7d45477b
...
@@ -2,6 +2,8 @@
...
@@ -2,6 +2,8 @@
Changes for U-Boot 1.1.4:
Changes for U-Boot 1.1.4:
======================================================================
======================================================================
* Added support for mtddevnum and mtddevname variables (mtdparts command)
* Fix default command set (don't include CFG_CMD_DISPLAY command)
* Fix default command set (don't include CFG_CMD_DISPLAY command)
Patch by Pantelis Antoniou, 02 Sep 2005
Patch by Pantelis Antoniou, 02 Sep 2005
...
...
This diff is collapsed.
Click to expand it.
common/cmd_jffs2.c
+
69
−
9
View file @
7d45477b
...
@@ -237,6 +237,46 @@ static void memsize_format(char *buf, u32 size)
...
@@ -237,6 +237,46 @@ static void memsize_format(char *buf, u32 size)
sprintf
(
buf
,
"%lu"
,
size
);
sprintf
(
buf
,
"%lu"
,
size
);
}
}
/**
* This routine does global indexing of all partitions. Resulting index for
* current partition is saved in 'mtddevnum'. Current partition name in
* 'mtddevname'.
*/
static
void
index_partitions
(
void
)
{
char
buf
[
16
];
u16
mtddevnum
;
struct
part_info
*
part
;
struct
list_head
*
dentry
;
struct
mtd_device
*
dev
;
DEBUGF
(
"--- index partitions ---
\n
"
);
if
(
current_dev
)
{
mtddevnum
=
0
;
list_for_each
(
dentry
,
&
devices
)
{
dev
=
list_entry
(
dentry
,
struct
mtd_device
,
link
);
if
(
dev
==
current_dev
)
{
mtddevnum
+=
current_partnum
;
sprintf
(
buf
,
"%d"
,
mtddevnum
);
setenv
(
"mtddevnum"
,
buf
);
break
;
}
mtddevnum
+=
dev
->
num_parts
;
}
part
=
jffs2_part_info
(
current_dev
,
current_partnum
);
setenv
(
"mtddevname"
,
part
->
name
);
DEBUGF
(
"=> mtddevnum %d,
\n
=> mtddevname %s
\n
"
,
mtddevnum
,
part
->
name
);
}
else
{
setenv
(
"mtddevnum"
,
NULL
);
setenv
(
"mtddevname"
,
NULL
);
DEBUGF
(
"=> mtddevnum NULL
\n
=> mtddevname NULL
\n
"
);
}
}
/**
/**
* Save current device and partition in environment variable 'partition'.
* Save current device and partition in environment variable 'partition'.
*/
*/
...
@@ -260,6 +300,7 @@ static void current_save(void)
...
@@ -260,6 +300,7 @@ static void current_save(void)
DEBUGF
(
"=> partition NULL
\n
"
);
DEBUGF
(
"=> partition NULL
\n
"
);
}
}
index_partitions
();
}
}
/**
/**
...
@@ -398,6 +439,8 @@ static int part_validate(struct mtdids *id, struct part_info *part)
...
@@ -398,6 +439,8 @@ static int part_validate(struct mtdids *id, struct part_info *part)
*/
*/
static
int
part_del
(
struct
mtd_device
*
dev
,
struct
part_info
*
part
)
static
int
part_del
(
struct
mtd_device
*
dev
,
struct
part_info
*
part
)
{
{
u8
current_save_needed
=
0
;
/* if there is only one partition, remove whole device */
/* if there is only one partition, remove whole device */
if
(
dev
->
num_parts
==
1
)
if
(
dev
->
num_parts
==
1
)
return
device_del
(
dev
);
return
device_del
(
dev
);
...
@@ -414,20 +457,23 @@ static int part_del(struct mtd_device *dev, struct part_info *part)
...
@@ -414,20 +457,23 @@ static int part_del(struct mtd_device *dev, struct part_info *part)
if
(
curr_pi
==
part
)
{
if
(
curr_pi
==
part
)
{
printf
(
"current partition deleted, resetting current to 0
\n
"
);
printf
(
"current partition deleted, resetting current to 0
\n
"
);
current_partnum
=
0
;
current_partnum
=
0
;
current_save
();
}
else
if
(
part
->
offset
<=
curr_pi
->
offset
)
{
}
else
if
(
part
->
offset
<=
curr_pi
->
offset
)
{
current_partnum
--
;
current_partnum
--
;
current_save
();
}
}
current_save_needed
=
1
;
}
}
}
}
jffs2_free_cache
(
part
);
jffs2_free_cache
(
part
);
list_del
(
&
part
->
link
);
list_del
(
&
part
->
link
);
free
(
part
);
free
(
part
);
dev
->
num_parts
--
;
dev
->
num_parts
--
;
if
(
current_save_needed
>
0
)
current_save
();
else
index_partitions
();
return
0
;
return
0
;
}
}
...
@@ -469,6 +515,8 @@ static int part_sort_add(struct mtd_device *dev, struct part_info *part)
...
@@ -469,6 +515,8 @@ static int part_sort_add(struct mtd_device *dev, struct part_info *part)
if
(
list_empty
(
&
dev
->
parts
))
{
if
(
list_empty
(
&
dev
->
parts
))
{
DEBUGF
(
"part_sort_add: list empty
\n
"
);
DEBUGF
(
"part_sort_add: list empty
\n
"
);
list_add
(
&
part
->
link
,
&
dev
->
parts
);
list_add
(
&
part
->
link
,
&
dev
->
parts
);
dev
->
num_parts
++
;
index_partitions
();
return
0
;
return
0
;
}
}
...
@@ -492,18 +540,23 @@ static int part_sort_add(struct mtd_device *dev, struct part_info *part)
...
@@ -492,18 +540,23 @@ static int part_sort_add(struct mtd_device *dev, struct part_info *part)
if
(
new_pi
->
offset
<=
pi
->
offset
)
{
if
(
new_pi
->
offset
<=
pi
->
offset
)
{
list_add_tail
(
&
part
->
link
,
entry
);
list_add_tail
(
&
part
->
link
,
entry
);
dev
->
num_parts
++
;
if
(
curr_pi
&&
(
pi
->
offset
<=
curr_pi
->
offset
))
{
if
(
curr_pi
&&
(
pi
->
offset
<=
curr_pi
->
offset
))
{
/* we are modyfing partitions for the current
/* we are modyfing partitions for the current
* device, update current */
* device, update current */
current_partnum
++
;
current_partnum
++
;
current_save
();
current_save
();
}
else
{
index_partitions
();
}
}
return
0
;
return
0
;
}
}
}
}
list_add_tail
(
&
part
->
link
,
&
dev
->
parts
);
list_add_tail
(
&
part
->
link
,
&
dev
->
parts
);
dev
->
num_parts
++
;
index_partitions
();
return
0
;
return
0
;
}
}
...
@@ -524,7 +577,6 @@ static int part_add(struct mtd_device *dev, struct part_info *part)
...
@@ -524,7 +577,6 @@ static int part_add(struct mtd_device *dev, struct part_info *part)
if
(
part_sort_add
(
dev
,
part
)
!=
0
)
if
(
part_sort_add
(
dev
,
part
)
!=
0
)
return
1
;
return
1
;
dev
->
num_parts
++
;
return
0
;
return
0
;
}
}
...
@@ -735,9 +787,10 @@ static int device_del(struct mtd_device *dev)
...
@@ -735,9 +787,10 @@ static int device_del(struct mtd_device *dev)
current_partnum
=
0
;
current_partnum
=
0
;
}
}
current_save
();
current_save
();
return
0
;
}
}
index_partitions
();
return
0
;
return
0
;
}
}
...
@@ -771,13 +824,20 @@ static struct mtd_device* device_find(u8 type, u8 num)
...
@@ -771,13 +824,20 @@ static struct mtd_device* device_find(u8 type, u8 num)
*/
*/
static
void
device_add
(
struct
mtd_device
*
dev
)
static
void
device_add
(
struct
mtd_device
*
dev
)
{
{
u8
current_save_needed
=
0
;
if
(
list_empty
(
&
devices
))
{
if
(
list_empty
(
&
devices
))
{
current_dev
=
dev
;
current_dev
=
dev
;
current_partnum
=
0
;
current_partnum
=
0
;
current_save
()
;
current_save
_needed
=
1
;
}
}
list_add_tail
(
&
dev
->
link
,
&
devices
);
list_add_tail
(
&
dev
->
link
,
&
devices
);
if
(
current_save_needed
>
0
)
current_save
();
else
index_partitions
();
}
}
/**
/**
...
@@ -896,7 +956,7 @@ static int device_parse(const char *const mtd_dev, const char **ret, struct mtd_
...
@@ -896,7 +956,7 @@ static int device_parse(const char *const mtd_dev, const char **ret, struct mtd_
}
}
memset
(
dev
,
0
,
sizeof
(
struct
mtd_device
));
memset
(
dev
,
0
,
sizeof
(
struct
mtd_device
));
dev
->
id
=
id
;
dev
->
id
=
id
;
dev
->
num_parts
=
num_parts
;
dev
->
num_parts
=
0
;
/* part_sort_add increments
num_parts
*/
INIT_LIST_HEAD
(
&
dev
->
parts
);
INIT_LIST_HEAD
(
&
dev
->
parts
);
INIT_LIST_HEAD
(
&
dev
->
link
);
INIT_LIST_HEAD
(
&
dev
->
link
);
...
@@ -1548,7 +1608,7 @@ int mtdparts_init(void)
...
@@ -1548,7 +1608,7 @@ int mtdparts_init(void)
ids_changed
=
1
;
ids_changed
=
1
;
if
(
parse_mtdids
(
ids
)
!=
0
)
{
if
(
parse_mtdids
(
ids
)
!=
0
)
{
device
_delall
(
&
devices
);
device
s_init
(
);
return
1
;
return
1
;
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment