From: Rob Herring <robherring2@gmail.com> To: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org>, Jonathan Corbet <corbet@lwn.net>, Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>, Mark Rutland <mark.rutland@arm.com>, Ian Campbell <ijc+devicetree@hellion.org.uk>, Kumar Gala <galak@codeaurora.org>, Philipp Zabel <p.zabel@pengutronix.de>, Russell King <linux@arm.linux.org.uk>, Daniel Lezcano <daniel.lezcano@linaro.org>, Thomas Gleixner <tglx@linutronix.de>, Linus Walleij <linus.walleij@linaro.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jiri Slaby <jslaby@suse.cz>, Arnd Bergmann <arnd@arndb.de>, Andrew Morton <akpm@linux-foundation.org>, "David S. Miller" <davem@davemloft.net>, Mauro Carvalho Chehab <mchehab@osg.samsung.com>, Joe Perches <joe@perches.com>, Antti Palosaari <crope@iki.fi>, Tejun Heo <tj@kernel.org>, Will Deacon <will.deacon@arm.com>, Nikolay Borisov <Nikolay.Borisov@arm.com>R Subject: Re: [PATCH 02/14] ARM: ARMv7M: Enlarge vector table to 256 entries Date: Thu, 19 Feb 2015 10:35:49 -0600 [thread overview] Message-ID: <CAL_Jsq+WPbUE7mqmyfi2kUreis0cXM2EC8dJLTD3HOBXsFAzuA@mail.gmail.com> (raw) In-Reply-To: <CALszF6DyVqaE6DLKSQHeuYWgSChzhEtCbmOsbjoTkvipquBivw@mail.gmail.com> On Thu, Feb 19, 2015 at 10:13 AM, Maxime Coquelin <mcoquelin.stm32@gmail.com> wrote: > Hi Rob, > > 2015-02-15 23:42 GMT+01:00 Rob Herring <robherring2@gmail.com>: >> On Fri, Feb 13, 2015 at 2:42 AM, Maxime Coquelin >> <mcoquelin.stm32@gmail.com> wrote: >>> Hi Geert, >>> >>> 2015-02-12 21:34 GMT+01:00 Geert Uytterhoeven <geert@linux-m68k.org>: >>>> On Thu, Feb 12, 2015 at 6:45 PM, Maxime Coquelin >>>> <mcoquelin.stm32@gmail.com> wrote: >>>>> From Cortex-M4 and M7 reference manuals, the nvic supports up to 240 >>>>> interrupts. So the number of entries in vectors table is 256. >>>>> >>>>> This patch adds the missing entries, and change the alignement, so that >>>>> vector_table remains naturally aligned. >>>> >>>> Shouldn't this depend on ARCH_STM32, or some other M4 or M7 specific >>>> Kconfig option, to avoid wasting the space on other CPUs? >>> >>> Actually, the STM32F429 has 90 interrupts, so it would need 106 >>> entries in the vector table. >>> The maximum of supported interrupts is not only for Cortex-M4 and M7, >>> this is also true for Cortex-M3. >>> >>> I see two possibilities: >>> 1 - We declare the vector table for the maximum supported number of >>> IRQs, as this patch does. >>> - Pro: it will be functionnal with all Cortex-M MCUs >>> - Con: Waste of less than 1KB for memory >> >> The waste depends on the alignment size as well and could be up to >> almost 2KB worst case. It varies depending on the padding. We should >> try to place it so it always aligned and the wasted space is >> minimized. > > Sorry, I just notice I didn't replied to all. That was my question: > > Do you mean by forcing its location in the arch/arm/kernel/vmlinux.lds.S file? Yes, that is one way. Or we might be able to just be smarter about how we arrange the code. The first thing to do is figure out how much space we waste and what comes before it. Rob > > Regards, > Maxime > >> >> Rob >> >>> 2 - We introduce a config flag that provides the number of interrupts >>> - Pro: No more memory waste >>> - Con: Need to declare a per MCU model config flag. >>> >>> Then, regarding the natural alignment, is there a way to ensure it >>> depending on the value of a config flag? >>> Or we should keep it at the maximum value possible? >>> >>> Any feedback will be appreciated, especially from Uwe who maintains >>> the efm32 machine. >>> >>> Kind regards, >>> Maxime
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robherring2@gmail.com> To: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: "Geert Uytterhoeven" <geert@linux-m68k.org>, "Jonathan Corbet" <corbet@lwn.net>, "Rob Herring" <robh+dt@kernel.org>, "Pawel Moll" <pawel.moll@arm.com>, "Mark Rutland" <mark.rutland@arm.com>, "Ian Campbell" <ijc+devicetree@hellion.org.uk>, "Kumar Gala" <galak@codeaurora.org>, "Philipp Zabel" <p.zabel@pengutronix.de>, "Russell King" <linux@arm.linux.org.uk>, "Daniel Lezcano" <daniel.lezcano@linaro.org>, "Thomas Gleixner" <tglx@linutronix.de>, "Linus Walleij" <linus.walleij@linaro.org>, "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>, "Jiri Slaby" <jslaby@suse.cz>, "Arnd Bergmann" <arnd@arndb.de>, "Andrew Morton" <akpm@linux-foundation.org>, "David S. Miller" <davem@davemloft.net>, "Mauro Carvalho Chehab" <mchehab@osg.samsung.com>, "Joe Perches" <joe@perches.com>, "Antti Palosaari" <crope@iki.fi>, "Tejun Heo" <tj@kernel.org>, "Will Deacon" <will.deacon@arm.com>, "Nikolay Borisov" <Nikolay.Borisov@arm.com>, "Rusty Russell" <rusty@rustcorp.com.au>, "Kees Cook" <keescook@chromium.org>, "Michal Marek" <mmarek@suse.cz>, "linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>, "linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>, "linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>, Linux-Arch <linux-arch@vger.kernel.org>, "linux-api@vger.kernel.org" <linux-api@vger.kernel.org>, "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de> Subject: Re: [PATCH 02/14] ARM: ARMv7M: Enlarge vector table to 256 entries Date: Thu, 19 Feb 2015 10:35:49 -0600 [thread overview] Message-ID: <CAL_Jsq+WPbUE7mqmyfi2kUreis0cXM2EC8dJLTD3HOBXsFAzuA@mail.gmail.com> (raw) Message-ID: <20150219163549.pzCv3OUCkdTH77J8utuBbCioIUEby3OfQwCgeralY4w@z> (raw) In-Reply-To: <CALszF6DyVqaE6DLKSQHeuYWgSChzhEtCbmOsbjoTkvipquBivw@mail.gmail.com> On Thu, Feb 19, 2015 at 10:13 AM, Maxime Coquelin <mcoquelin.stm32@gmail.com> wrote: > Hi Rob, > > 2015-02-15 23:42 GMT+01:00 Rob Herring <robherring2@gmail.com>: >> On Fri, Feb 13, 2015 at 2:42 AM, Maxime Coquelin >> <mcoquelin.stm32@gmail.com> wrote: >>> Hi Geert, >>> >>> 2015-02-12 21:34 GMT+01:00 Geert Uytterhoeven <geert@linux-m68k.org>: >>>> On Thu, Feb 12, 2015 at 6:45 PM, Maxime Coquelin >>>> <mcoquelin.stm32@gmail.com> wrote: >>>>> From Cortex-M4 and M7 reference manuals, the nvic supports up to 240 >>>>> interrupts. So the number of entries in vectors table is 256. >>>>> >>>>> This patch adds the missing entries, and change the alignement, so that >>>>> vector_table remains naturally aligned. >>>> >>>> Shouldn't this depend on ARCH_STM32, or some other M4 or M7 specific >>>> Kconfig option, to avoid wasting the space on other CPUs? >>> >>> Actually, the STM32F429 has 90 interrupts, so it would need 106 >>> entries in the vector table. >>> The maximum of supported interrupts is not only for Cortex-M4 and M7, >>> this is also true for Cortex-M3. >>> >>> I see two possibilities: >>> 1 - We declare the vector table for the maximum supported number of >>> IRQs, as this patch does. >>> - Pro: it will be functionnal with all Cortex-M MCUs >>> - Con: Waste of less than 1KB for memory >> >> The waste depends on the alignment size as well and could be up to >> almost 2KB worst case. It varies depending on the padding. We should >> try to place it so it always aligned and the wasted space is >> minimized. > > Sorry, I just notice I didn't replied to all. That was my question: > > Do you mean by forcing its location in the arch/arm/kernel/vmlinux.lds.S file? Yes, that is one way. Or we might be able to just be smarter about how we arrange the code. The first thing to do is figure out how much space we waste and what comes before it. Rob > > Regards, > Maxime > >> >> Rob >> >>> 2 - We introduce a config flag that provides the number of interrupts >>> - Pro: No more memory waste >>> - Con: Need to declare a per MCU model config flag. >>> >>> Then, regarding the natural alignment, is there a way to ensure it >>> depending on the value of a config flag? >>> Or we should keep it at the maximum value possible? >>> >>> Any feedback will be appreciated, especially from Uwe who maintains >>> the efm32 machine. >>> >>> Kind regards, >>> Maxime
next prev parent reply other threads:[~2015-02-19 16:35 UTC|newest] Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-02-12 17:45 [PATCH 00/14] Add support to STMicroelectronics STM32 family Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 17:45 ` [PATCH 01/14] scripts: link-vmlinux: Don't pass page offset to kallsyms if XIP Kernel Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 17:45 ` [PATCH 02/14] ARM: ARMv7M: Enlarge vector table to 256 entries Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 20:34 ` Geert Uytterhoeven 2015-02-12 20:34 ` Geert Uytterhoeven 2015-02-13 8:42 ` Maxime Coquelin 2015-02-13 8:42 ` Maxime Coquelin 2015-02-13 10:00 ` Uwe Kleine-König 2015-02-13 10:00 ` Uwe Kleine-König 2015-02-15 14:34 ` Maxime Coquelin 2015-02-15 14:34 ` Maxime Coquelin [not found] ` <CALszF6BDa9pUb534YN2z9DbYA+hPCnG8XYy5YbjJwSiseKz4xg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-02-15 22:42 ` Rob Herring 2015-02-15 22:42 ` Rob Herring 2015-02-19 16:13 ` Maxime Coquelin 2015-02-19 16:13 ` Maxime Coquelin 2015-02-19 16:35 ` Rob Herring [this message] 2015-02-19 16:35 ` Rob Herring 2015-02-12 17:45 ` [PATCH 03/14] clocksource: Add ARM System timer driver Maxime Coquelin [not found] ` <1423763164-5606-4-git-send-email-mcoquelin.stm32-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-02-15 22:31 ` Rob Herring 2015-02-15 22:31 ` Rob Herring [not found] ` <CAL_JsqKoT_rWzt6ZCQXwg-NxM_Mnuqy6UwmPKBRodBCf0i7zyg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-02-16 12:08 ` Maxime Coquelin 2015-02-16 12:08 ` Maxime Coquelin 2015-02-15 23:43 ` Andreas Färber 2015-02-15 23:43 ` Andreas Färber [not found] ` <54E12F39.6030509-l3A5Bk7waGM@public.gmane.org> 2015-02-16 12:21 ` Maxime Coquelin 2015-02-16 12:21 ` Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 17:45 ` [PATCH 04/14] reset: Add reset_controller_of_init() function Maxime Coquelin 2015-02-13 11:49 ` Philipp Zabel 2015-02-13 11:49 ` Philipp Zabel [not found] ` <1423828144.4182.18.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2015-02-13 16:00 ` Maxime Coquelin 2015-02-13 16:00 ` Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 17:45 ` [PATCH 05/14] ARM: call reset_controller_of_init from default time_init handler Maxime Coquelin 2015-02-15 22:17 ` Rob Herring 2015-02-15 22:17 ` Rob Herring 2015-02-15 23:12 ` Russell King - ARM Linux 2015-02-15 23:12 ` Russell King - ARM Linux 2015-02-16 15:48 ` Rob Herring 2015-02-16 15:48 ` Rob Herring 2015-02-16 12:02 ` Maxime Coquelin 2015-02-16 12:02 ` Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 17:45 ` [PATCH 06/14] drivers: reset: Add STM32 reset driver Maxime Coquelin 2015-02-15 23:59 ` Andreas Färber 2015-02-15 23:59 ` Andreas Färber 2015-02-16 12:25 ` Maxime Coquelin 2015-02-16 12:25 ` Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 17:45 ` [PATCH 07/14] clockevent: Add STM32 Timer driver Maxime Coquelin 2015-03-06 8:57 ` Linus Walleij 2015-03-06 8:57 ` Linus Walleij 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 17:45 ` [PATCH 08/14] pinctrl: Add pinctrl driver for STM32 MCUs Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 20:37 ` Geert Uytterhoeven 2015-02-12 20:37 ` Geert Uytterhoeven 2015-02-13 8:43 ` Maxime Coquelin 2015-02-13 8:43 ` Maxime Coquelin 2015-02-12 17:45 ` [PATCH 09/14] serial: stm32-usart: Add STM32 USART Driver Maxime Coquelin 2015-02-12 17:45 ` Maxime Coquelin 2015-02-12 17:46 ` [PATCH 10/14] ARM: Add STM32 family machine Maxime Coquelin 2015-02-12 17:46 ` Maxime Coquelin 2015-02-12 17:46 ` [PATCH 11/14] ARM: dts: Add ARM System timer as clockevent in armv7m Maxime Coquelin 2015-02-12 17:46 ` Maxime Coquelin 2015-02-12 17:46 ` [PATCH 12/14] ARM: dts: Introduce STM32F429 MCU Maxime Coquelin 2015-02-13 11:47 ` Philipp Zabel 2015-02-13 11:47 ` Philipp Zabel 2015-02-13 15:59 ` Maxime Coquelin 2015-02-13 15:59 ` Maxime Coquelin 2015-02-13 16:25 ` Philipp Zabel 2015-02-13 16:25 ` Philipp Zabel 2015-02-13 16:41 ` Maxime Coquelin 2015-02-13 16:41 ` Maxime Coquelin 2015-02-13 19:18 ` Philipp Zabel 2015-02-13 19:18 ` Philipp Zabel 2015-02-15 14:36 ` Maxime Coquelin 2015-02-15 14:36 ` Maxime Coquelin 2015-02-12 17:46 ` Maxime Coquelin 2015-02-12 17:46 ` [PATCH 13/14] ARM: configs: Add STM32 defconfig Maxime Coquelin 2015-02-12 17:46 ` Maxime Coquelin 2015-02-12 17:46 ` [PATCH 14/14] MAINTAINERS: Add entry for STM32 MCUs Maxime Coquelin [not found] ` <1423763164-5606-15-git-send-email-mcoquelin.stm32-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-03-06 9:03 ` Linus Walleij 2015-03-06 9:03 ` Linus Walleij 2015-03-06 9:55 ` Maxime Coquelin 2015-03-06 9:55 ` Maxime Coquelin 2015-03-09 16:47 ` Linus Walleij 2015-03-09 16:47 ` Linus Walleij 2015-03-09 17:01 ` Maxime Coquelin 2015-03-09 17:01 ` Maxime Coquelin 2015-02-12 17:46 ` Maxime Coquelin 2015-02-15 15:14 ` [PATCH 00/14] Add support to STMicroelectronics STM32 family Andreas Färber 2015-02-15 15:14 ` Andreas Färber [not found] ` <54E0B7C4.7050900-l3A5Bk7waGM@public.gmane.org> 2015-02-16 11:52 ` Maxime Coquelin 2015-02-16 11:52 ` Maxime Coquelin
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=CAL_Jsq+WPbUE7mqmyfi2kUreis0cXM2EC8dJLTD3HOBXsFAzuA@mail.gmail.com \ --to=robherring2@gmail.com \ --cc=Nikolay.Borisov@arm.com \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=corbet@lwn.net \ --cc=crope@iki.fi \ --cc=daniel.lezcano@linaro.org \ --cc=davem@davemloft.net \ --cc=galak@codeaurora.org \ --cc=geert@linux-m68k.org \ --cc=gregkh@linuxfoundation.org \ --cc=ijc+devicetree@hellion.org.uk \ --cc=joe@perches.com \ --cc=jslaby@suse.cz \ --cc=linus.walleij@linaro.org \ --cc=linux@arm.linux.org.uk \ --cc=mark.rutland@arm.com \ --cc=mchehab@osg.samsung.com \ --cc=mcoquelin.stm32@gmail.com \ --cc=p.zabel@pengutronix.de \ --cc=pawel.moll@arm.com \ --cc=robh+dt@kernel.org \ --cc=tglx@linutronix.de \ --cc=tj@kernel.org \ --cc=will.deacon@arm.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).