* [PATCH 0/3] fix NVRAM partition size if larger than expected
@ 2013-03-23 13:07 Jonas Gorski
2013-03-23 13:07 ` [PATCH 1/3] MTD: bcm63xxpart: use size macro for CFE block size Jonas Gorski
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Jonas Gorski @ 2013-03-23 13:07 UTC (permalink / raw)
To: linux-mtd
Cc: linux-mips, Artem Bityutskiy, Kevin Cernekee, Maxime Bizon,
David Woodhouse, Florian Fainelli
Some device vendors use a larger nvram size than expected. While Broadcom
has defined it as 64K max, devices with 128K have been seen in the wild.
Luckily they properly set the nvram's PSI size to the correct value, so
we can use that to size the nvram partion.
Yes it's a bit confusing as there are two nvrams, one with a fixed layout
with in the bootloader, with the size information about the other.
Since 2 of 3 patches are for the mtd tree, this patchset should go there
(but it applies to both l2-mtd and mips-next fine).
Jonas Gorski (3):
MTD: bcm63xxpart: use size macro for CFE block size
MIPS: BCM63XX: export PSI size from nvram
MTD: bcm63xxpart: use nvram for PSI size
arch/mips/bcm63xx/nvram.c | 11 +++++++++++
arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 2 ++
drivers/mtd/bcm63xxpart.c | 9 ++++++---
3 files changed, 19 insertions(+), 3 deletions(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/3] MTD: bcm63xxpart: use size macro for CFE block size
2013-03-23 13:07 [PATCH 0/3] fix NVRAM partition size if larger than expected Jonas Gorski
@ 2013-03-23 13:07 ` Jonas Gorski
2013-03-23 13:07 ` [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram Jonas Gorski
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Jonas Gorski @ 2013-03-23 13:07 UTC (permalink / raw)
To: linux-mtd
Cc: linux-mips, Artem Bityutskiy, Kevin Cernekee, Maxime Bizon,
David Woodhouse, Florian Fainelli
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
---
drivers/mtd/bcm63xxpart.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/bcm63xxpart.c b/drivers/mtd/bcm63xxpart.c
index 6eeb84c..fc3d7d0 100644
--- a/drivers/mtd/bcm63xxpart.c
+++ b/drivers/mtd/bcm63xxpart.c
@@ -27,6 +27,7 @@
#include <linux/crc32.h>
#include <linux/module.h>
#include <linux/kernel.h>
+#include <linux/sizes.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/mtd/mtd.h>
@@ -37,7 +38,7 @@
#define BCM63XX_EXTENDED_SIZE 0xBFC00000 /* Extended flash address */
-#define BCM63XX_CFE_BLOCK_SIZE 0x10000 /* always at least 64KiB */
+#define BCM63XX_CFE_BLOCK_SIZE SZ_64K /* always at least 64KiB */
#define BCM63XX_CFE_MAGIC_OFFSET 0x4e0
--
1.7.10.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram
2013-03-23 13:07 [PATCH 0/3] fix NVRAM partition size if larger than expected Jonas Gorski
2013-03-23 13:07 ` [PATCH 1/3] MTD: bcm63xxpart: use size macro for CFE block size Jonas Gorski
@ 2013-03-23 13:07 ` Jonas Gorski
2013-03-23 13:39 ` Florian Fainelli
2013-05-10 12:36 ` Artem Bityutskiy
2013-03-23 13:07 ` [PATCH 3/3] MTD: bcm63xxpart: use nvram for PSI size Jonas Gorski
` (2 subsequent siblings)
4 siblings, 2 replies; 10+ messages in thread
From: Jonas Gorski @ 2013-03-23 13:07 UTC (permalink / raw)
To: linux-mtd
Cc: linux-mips, Artem Bityutskiy, Kevin Cernekee, Maxime Bizon,
David Woodhouse, Florian Fainelli
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
---
arch/mips/bcm63xx/nvram.c | 11 +++++++++++
arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 2 ++
2 files changed, 13 insertions(+)
diff --git a/arch/mips/bcm63xx/nvram.c b/arch/mips/bcm63xx/nvram.c
index 6206116..44af608 100644
--- a/arch/mips/bcm63xx/nvram.c
+++ b/arch/mips/bcm63xx/nvram.c
@@ -35,6 +35,8 @@ struct bcm963xx_nvram {
u32 checksum_high;
};
+#define BCM63XX_DEFAULT_PSI_SIZE 64
+
static struct bcm963xx_nvram nvram;
static int mac_addr_used;
@@ -105,3 +107,12 @@ int bcm63xx_nvram_get_mac_address(u8 *mac)
return 0;
}
EXPORT_SYMBOL(bcm63xx_nvram_get_mac_address);
+
+int bcm63xx_nvram_get_psi_size(void)
+{
+ if (nvram.psi_size > 0)
+ return nvram.psi_size;
+
+ return BCM63XX_DEFAULT_PSI_SIZE;
+}
+EXPORT_SYMBOL(bcm63xx_nvram_get_psi_size);
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h
index 62d6a3b..d76a486 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h
@@ -32,4 +32,6 @@ u8 *bcm63xx_nvram_get_name(void);
*/
int bcm63xx_nvram_get_mac_address(u8 *mac);
+int bcm63xx_nvram_get_psi_size(void);
+
#endif /* BCM63XX_NVRAM_H */
--
1.7.10.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] MTD: bcm63xxpart: use nvram for PSI size
2013-03-23 13:07 [PATCH 0/3] fix NVRAM partition size if larger than expected Jonas Gorski
2013-03-23 13:07 ` [PATCH 1/3] MTD: bcm63xxpart: use size macro for CFE block size Jonas Gorski
2013-03-23 13:07 ` [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram Jonas Gorski
@ 2013-03-23 13:07 ` Jonas Gorski
2013-03-23 13:39 ` [PATCH 0/3] fix NVRAM partition size if larger than expected Florian Fainelli
2013-05-10 12:35 ` Artem Bityutskiy
4 siblings, 0 replies; 10+ messages in thread
From: Jonas Gorski @ 2013-03-23 13:07 UTC (permalink / raw)
To: linux-mtd
Cc: linux-mips, Artem Bityutskiy, Kevin Cernekee, Maxime Bizon,
David Woodhouse, Florian Fainelli
Read out the SPI size from nvram instead of defaulting to 64K - some
vendors actually use values larger than the "max" value of 64.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
---
drivers/mtd/bcm63xxpart.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/bcm63xxpart.c b/drivers/mtd/bcm63xxpart.c
index fc3d7d0..5c81390 100644
--- a/drivers/mtd/bcm63xxpart.c
+++ b/drivers/mtd/bcm63xxpart.c
@@ -4,7 +4,7 @@
* Copyright © 2006-2008 Florian Fainelli <florian@openwrt.org>
* Mike Albon <malbon@openwrt.org>
* Copyright © 2009-2010 Daniel Dickinson <openwrt@cshore.neomailbox.net>
- * Copyright © 2011-2012 Jonas Gorski <jonas.gorski@gmail.com>
+ * Copyright © 2011-2013 Jonas Gorski <jonas.gorski@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,6 +33,7 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
+#include <asm/mach-bcm63xx/bcm63xx_nvram.h>
#include <asm/mach-bcm63xx/bcm963xx_tag.h>
#include <asm/mach-bcm63xx/board_bcm963xx.h>
@@ -91,7 +92,8 @@ static int bcm63xx_parse_cfe_partitions(struct mtd_info *master,
BCM63XX_CFE_BLOCK_SIZE);
cfelen = cfe_erasesize;
- nvramlen = cfe_erasesize;
+ nvramlen = bcm63xx_nvram_get_psi_size() * SZ_1K;
+ nvramlen = roundup(nvramlen, cfe_erasesize);
/* Allocate memory for buffer */
buf = vmalloc(sizeof(struct bcm_tag));
--
1.7.10.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram
2013-03-23 13:07 ` [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram Jonas Gorski
@ 2013-03-23 13:39 ` Florian Fainelli
2013-05-10 12:36 ` Artem Bityutskiy
1 sibling, 0 replies; 10+ messages in thread
From: Florian Fainelli @ 2013-03-23 13:39 UTC (permalink / raw)
To: Jonas Gorski
Cc: linux-mips, Artem Bityutskiy, Kevin Cernekee, linux-mtd,
Maxime Bizon, David Woodhouse
Hello Jonas,
A few minor comments below:
Le samedi 23 mars 2013 14:07:48, Jonas Gorski a écrit :
> Signed-off-by: Jonas Gorski <jogo@openwrt.org>
> ---
> arch/mips/bcm63xx/nvram.c | 11 +++++++++++
> arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 2 ++
> 2 files changed, 13 insertions(+)
>
> diff --git a/arch/mips/bcm63xx/nvram.c b/arch/mips/bcm63xx/nvram.c
> index 6206116..44af608 100644
> --- a/arch/mips/bcm63xx/nvram.c
> +++ b/arch/mips/bcm63xx/nvram.c
> @@ -35,6 +35,8 @@ struct bcm963xx_nvram {
> u32 checksum_high;
> };
>
> +#define BCM63XX_DEFAULT_PSI_SIZE 64
> +
> static struct bcm963xx_nvram nvram;
> static int mac_addr_used;
>
> @@ -105,3 +107,12 @@ int bcm63xx_nvram_get_mac_address(u8 *mac)
> return 0;
> }
> EXPORT_SYMBOL(bcm63xx_nvram_get_mac_address);
> +
> +int bcm63xx_nvram_get_psi_size(void)
> +{
> + if (nvram.psi_size > 0)
> + return nvram.psi_size;
> +
> + return BCM63XX_DEFAULT_PSI_SIZE;
I wonder if it would not be better to return a size in KBytes here instead of
a multiple of KBytes?
> +}
> +EXPORT_SYMBOL(bcm63xx_nvram_get_psi_size);
> diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h
> b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h index
> 62d6a3b..d76a486 100644
> --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h
> +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h
> @@ -32,4 +32,6 @@ u8 *bcm63xx_nvram_get_name(void);
> */
> int bcm63xx_nvram_get_mac_address(u8 *mac);
>
> +int bcm63xx_nvram_get_psi_size(void);
You could use an unsigned int here.
--
Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/3] fix NVRAM partition size if larger than expected
2013-03-23 13:07 [PATCH 0/3] fix NVRAM partition size if larger than expected Jonas Gorski
` (2 preceding siblings ...)
2013-03-23 13:07 ` [PATCH 3/3] MTD: bcm63xxpart: use nvram for PSI size Jonas Gorski
@ 2013-03-23 13:39 ` Florian Fainelli
2013-05-10 12:35 ` Artem Bityutskiy
4 siblings, 0 replies; 10+ messages in thread
From: Florian Fainelli @ 2013-03-23 13:39 UTC (permalink / raw)
To: Jonas Gorski
Cc: linux-mips, Artem Bityutskiy, Kevin Cernekee, linux-mtd,
Maxime Bizon, David Woodhouse
Le samedi 23 mars 2013 14:07:46, Jonas Gorski a écrit :
> Some device vendors use a larger nvram size than expected. While Broadcom
> has defined it as 64K max, devices with 128K have been seen in the wild.
> Luckily they properly set the nvram's PSI size to the correct value, so
> we can use that to size the nvram partion.
>
> Yes it's a bit confusing as there are two nvrams, one with a fixed layout
> with in the bootloader, with the size information about the other.
>
> Since 2 of 3 patches are for the mtd tree, this patchset should go there
> (but it applies to both l2-mtd and mips-next fine).
Besides the minor nitpicks from patch 2, this serie looks good:
Acked-by: Florian Fainelli <florian@openwrt.org>
Thanks!
--
Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/3] fix NVRAM partition size if larger than expected
2013-03-23 13:07 [PATCH 0/3] fix NVRAM partition size if larger than expected Jonas Gorski
` (3 preceding siblings ...)
2013-03-23 13:39 ` [PATCH 0/3] fix NVRAM partition size if larger than expected Florian Fainelli
@ 2013-05-10 12:35 ` Artem Bityutskiy
4 siblings, 0 replies; 10+ messages in thread
From: Artem Bityutskiy @ 2013-05-10 12:35 UTC (permalink / raw)
To: Jonas Gorski
Cc: linux-mips, Kevin Cernekee, linux-mtd, Maxime Bizon,
David Woodhouse, Florian Fainelli
On Sat, 2013-03-23 at 14:07 +0100, Jonas Gorski wrote:
> Some device vendors use a larger nvram size than expected. While Broadcom
> has defined it as 64K max, devices with 128K have been seen in the wild.
> Luckily they properly set the nvram's PSI size to the correct value, so
> we can use that to size the nvram partion.
>
> Yes it's a bit confusing as there are two nvrams, one with a fixed layout
> with in the bootloader, with the size information about the other.
>
> Since 2 of 3 patches are for the mtd tree, this patchset should go there
> (but it applies to both l2-mtd and mips-next fine).
Pushed all 3 to l2-mtd.git, thanks!
--
Best Regards,
Artem Bityutskiy
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram
2013-03-23 13:07 ` [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram Jonas Gorski
2013-03-23 13:39 ` Florian Fainelli
@ 2013-05-10 12:36 ` Artem Bityutskiy
2013-05-12 10:48 ` Jonas Gorski
1 sibling, 1 reply; 10+ messages in thread
From: Artem Bityutskiy @ 2013-05-10 12:36 UTC (permalink / raw)
To: Jonas Gorski
Cc: linux-mips, Kevin Cernekee, linux-mtd, Maxime Bizon,
David Woodhouse, Florian Fainelli
On Sat, 2013-03-23 at 14:07 +0100, Jonas Gorski wrote:
> Signed-off-by: Jonas Gorski <jogo@openwrt.org>
> ---
> arch/mips/bcm63xx/nvram.c | 11 +++++++++++
> arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 2 ++
> 2 files changed, 13 insertions(+)
Acks from MIPS folks would be nice to have, but I pushed this patch to
the l2-mtd.git tree, thanks!
--
Best Regards,
Artem Bityutskiy
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram
2013-05-10 12:36 ` Artem Bityutskiy
@ 2013-05-12 10:48 ` Jonas Gorski
2013-05-12 14:52 ` Florian Fainelli
0 siblings, 1 reply; 10+ messages in thread
From: Jonas Gorski @ 2013-05-12 10:48 UTC (permalink / raw)
To: dedekind1
Cc: linux-mips, Kevin Cernekee, linux-mtd, Maxime Bizon,
David Woodhouse, Florian Fainelli
On Fri, May 10, 2013 at 2:36 PM, Artem Bityutskiy <dedekind1@gmail.com> wrote:
> On Sat, 2013-03-23 at 14:07 +0100, Jonas Gorski wrote:
>> Signed-off-by: Jonas Gorski <jogo@openwrt.org>
>> ---
>> arch/mips/bcm63xx/nvram.c | 11 +++++++++++
>> arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 2 ++
>> 2 files changed, 13 insertions(+)
>
> Acks from MIPS folks would be nice to have, but I pushed this patch to
> the l2-mtd.git tree, thanks!
I had expected Florian's valid comment from preventing this series
from going in, but if you pushed it already then I will fix the return
type problem that Florian pointed out in a separate patch (or rather
add add some range check for nvram.psi_size). Luckily it is a
theoretical issue only, as I haven't seen a device yet with an invalid
value.
Regards
Jonas
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram
2013-05-12 10:48 ` Jonas Gorski
@ 2013-05-12 14:52 ` Florian Fainelli
0 siblings, 0 replies; 10+ messages in thread
From: Florian Fainelli @ 2013-05-12 14:52 UTC (permalink / raw)
To: Jonas Gorski
Cc: linux-mips, dedekind1, Kevin Cernekee, linux-mtd, Maxime Bizon,
David Woodhouse
Le 12/05/2013 12:48, Jonas Gorski a écrit :
> On Fri, May 10, 2013 at 2:36 PM, Artem Bityutskiy <dedekind1@gmail.com> wrote:
>> On Sat, 2013-03-23 at 14:07 +0100, Jonas Gorski wrote:
>>> Signed-off-by: Jonas Gorski <jogo@openwrt.org>
>>> ---
>>> arch/mips/bcm63xx/nvram.c | 11 +++++++++++
>>> arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 2 ++
>>> 2 files changed, 13 insertions(+)
>>
>> Acks from MIPS folks would be nice to have, but I pushed this patch to
>> the l2-mtd.git tree, thanks!
>
> I had expected Florian's valid comment from preventing this series
> from going in, but if you pushed it already then I will fix the return
> type problem that Florian pointed out in a separate patch (or rather
> add add some range check for nvram.psi_size). Luckily it is a
> theoretical issue only, as I haven't seen a device yet with an invalid
> value.
Right, but this is no blocker from my perspective. As about the MIPS
folks, Maxime, Kevin, Jonas and myself have been the "historical"
contributors to the MIPS BCM63XX port, so I would consider Jonas to be
authoritave here for these paches. John and Ralf usually do not comment
unless the see something bad.
--
Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-05-12 14:53 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-23 13:07 [PATCH 0/3] fix NVRAM partition size if larger than expected Jonas Gorski
2013-03-23 13:07 ` [PATCH 1/3] MTD: bcm63xxpart: use size macro for CFE block size Jonas Gorski
2013-03-23 13:07 ` [PATCH 2/3] MIPS: BCM63XX: export PSI size from nvram Jonas Gorski
2013-03-23 13:39 ` Florian Fainelli
2013-05-10 12:36 ` Artem Bityutskiy
2013-05-12 10:48 ` Jonas Gorski
2013-05-12 14:52 ` Florian Fainelli
2013-03-23 13:07 ` [PATCH 3/3] MTD: bcm63xxpart: use nvram for PSI size Jonas Gorski
2013-03-23 13:39 ` [PATCH 0/3] fix NVRAM partition size if larger than expected Florian Fainelli
2013-05-10 12:35 ` Artem Bityutskiy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).