From: alex@digriz.org.uk (Alexander Clouter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] [ARM] orion5x: use safer FPGA ID 'default' for TS-78xx
Date: Sat, 5 Mar 2011 11:38:12 +0000 [thread overview]
Message-ID: <20110305113812.GC22117@chipmunk> (raw)
In-Reply-To: <20110305112937.GA22117@chipmunk>
....abort!
* Alexander Clouter <alex@digriz.org.uk> [2011-03-05 11:29:37+0000]:
>
> Originally the FPGA ID checking switch statement left disabled all the
> TS implemented FPGA devices if the ID was unknown to it. Michael Spang
> created a fix in 3c390473 that changed the default to enable the devices
> in the event TS silently release more revisions into the wild, this
> unfortunately breaks custom FPGA bitstreams.
>
> This patch amends the switch statement so that the TS devices are only
> enabled if on the revision number is unknown (whilst the magic matches).
>
> Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
> ---
> arch/arm/mach-orion5x/ts78xx-fpga.h | 19 ++++++++++---------
> arch/arm/mach-orion5x/ts78xx-setup.c | 18 +++++++++++++-----
> 2 files changed, 23 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/mach-orion5x/ts78xx-fpga.h b/arch/arm/mach-orion5x/ts78xx-fpga.h
> index 791f754..f0e3be1 100644
> --- a/arch/arm/mach-orion5x/ts78xx-fpga.h
> +++ b/arch/arm/mach-orion5x/ts78xx-fpga.h
> @@ -1,3 +1,4 @@
> +#define TS_78XX_FPGA_MAGIC 0x00b480
> #define FPGAID(_magic, _rev) ((_magic << 8) + _rev)
>
> /*
> @@ -6,15 +7,15 @@
> */
> enum fpga_ids {
> /* Technologic Systems */
> - TS7800_REV_1 = FPGAID(0x00b480, 0x01),
> - TS7800_REV_2 = FPGAID(0x00b480, 0x02),
> - TS7800_REV_3 = FPGAID(0x00b480, 0x03),
> - TS7800_REV_4 = FPGAID(0x00b480, 0x04),
> - TS7800_REV_5 = FPGAID(0x00b480, 0x05),
> - TS7800_REV_6 = FPGAID(0x00b480, 0x06),
> - TS7800_REV_7 = FPGAID(0x00b480, 0x07),
> - TS7800_REV_8 = FPGAID(0x00b480, 0x08),
> - TS7800_REV_9 = FPGAID(0x00b480, 0x09),
> + TS7800_REV_1 = FPGAID(TS_78XX_FPGA_MAGIC, 0x01),
> + TS7800_REV_2 = FPGAID(TS_78XX_FPGA_MAGIC, 0x02),
> + TS7800_REV_3 = FPGAID(TS_78XX_FPGA_MAGIC, 0x03),
> + TS7800_REV_4 = FPGAID(TS_78XX_FPGA_MAGIC, 0x04),
> + TS7800_REV_5 = FPGAID(TS_78XX_FPGA_MAGIC, 0x05),
> + TS7800_REV_6 = FPGAID(TS_78XX_FPGA_MAGIC, 0x06),
> + TS7800_REV_7 = FPGAID(TS_78XX_FPGA_MAGIC, 0x07),
> + TS7800_REV_8 = FPGAID(TS_78XX_FPGA_MAGIC, 0x08),
> + TS7800_REV_9 = FPGAID(TS_78XX_FPGA_MAGIC, 0x09),
>
> /* Unaffordable & Expensive */
> UAE_DUMMY = FPGAID(0xffffff, 0x01),
> diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c
> index 1cac714..82e57a6 100644
> --- a/arch/arm/mach-orion5x/ts78xx-setup.c
> +++ b/arch/arm/mach-orion5x/ts78xx-setup.c
> @@ -399,11 +399,19 @@ static void ts78xx_fpga_supports(void)
> ts78xx_fpga.supports.ts_rng.present = 1;
> break;
> default:
> - printk(KERN_WARNING "Unrecognized TS-78XX FPGA ID 0x%02x",
> - ts78xx_fpga.id);
> - ts78xx_fpga.supports.ts_rtc.present = 1;
> - ts78xx_fpga.supports.ts_nand.present = 1;
> - ts78xx_fpga.supports.ts_rng.present = 1;
> + /* enable TS devices if at least the magic matches */
> + if (((ts78xx_fpga.id >> 8) & 0xffffff) == TS_78XX_FPGA_MAGIC) {
> + printk(KERN_WARNING "TS-78xx FPGA: unrecognized revision 0x%.2x\n",
> + ts78xx_fpga.id & 0xff);
> + ts78xx_fpga.supports.ts_rtc.present = 1;
> + ts78xx_fpga.supports.ts_nand.present = 1;
> + ts78xx_fpga.supports.ts_rng.present = 1;
> + break;
> + }
> +
> + ts78xx_fpga.supports.ts_rtc.present = 0;
> + ts78xx_fpga.supports.ts_nand.present = 0;
> + ts78xx_fpga.supports.ts_rng.present = 0;
> }
> }
>
>
--
Alexander Clouter
.sigmonster says: Anger is momentary madness.
-- Horace
next prev parent reply other threads:[~2011-03-05 11:38 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-05 11:29 [PATCH] [ARM] orion5x: use safer FPGA ID 'default' for TS-78xx Alexander Clouter
2011-03-05 11:38 ` Alexander Clouter [this message]
2011-03-05 11:49 ` [PATCHv2] " Alexander Clouter
2011-03-05 19:37 ` Nicolas Pitre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110305113812.GC22117@chipmunk \
--to=alex@digriz.org.uk \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.