Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932472AbbDPAw2 (ORCPT ); Wed, 15 Apr 2015 20:52:28 -0400 Received: from mail-pd0-f177.google.com ([209.85.192.177]:36628 "EHLO mail-pd0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932093AbbDPAwW (ORCPT ); Wed, 15 Apr 2015 20:52:22 -0400 Message-ID: <552F0786.2000505@gmail.com> Date: Wed, 15 Apr 2015 17:51:18 -0700 From: Florian Fainelli User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: p.zabel@pengutronix.de, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arnd@arndb.de, tyler.baker@linaro.org, peter.griffin@linaro.org, dinguyen@opensource.altera.com Subject: Allowing reset controllers before SMP initialization (on ARM)? Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1593 Lines: 40 Hi, In order to support initialization of the secondary core on BCM63138 SoCs, I would want to utilize a reset controller to release the secondary CPU from reset [1]. Here are multiple options: - expose a custom function which registers the reset controller platform driver as early as possible, which is probably acceptable, but also requires the DT machine descriptor to populate the platform bus earlier, which we could completely avoid - have a OF_DECLARE_RESET_CONTROLLER() which is running fairly early during boot, such that we can utilize reset controllers are early as possible, before any initcall level, and before SMP initialization is kicking in - since the code that boots secondary CPUs is relatively unique, even within the scope of the reset controllers (sequence involves touching multiple registers), pulling it outside of the reset controller might be acceptable (there is still some level of sharing though for low-level indirect read/write operations) At this point I am leaning towards option 1) since it still allows the reset controller abstraction to be used, however, option 3) might wind-up being the cleanest approach to keep the reset controller small. At any rate, here is the WIP implementation: [1]: https://github.com/ffainelli/linux/commit/133214be43b94b90fd580aa9467a5974ffd989ca Thank you! -- Florian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/