[PATCH linux dev-4.7] arm: aspped: romulus: Set PNOR SPI address mapping
Lei YU
mine260309 at gmail.com
Tue Feb 28 23:27:41 AEDT 2017
Hi Andrew, Joel,
This patch is for issue https://github.com/openbmc/openbmc/issues/1214
Here's what I have tested:
1. rom1-19 with updated OpenBMC (c85f23e1), which has mboxd enabled;
2. Do a power cycle;
3. Once BMC is ready, check the registers by devmem:
```
root at romulus:/tmp# devmem 0x1e630034
0x70640000 <== Wrong, expect 0x70680000
root at romulus:/tmp# devmem 0x1e630030
0x64600000 <== Wrong, expect 0x68600000
```
I can see the two registers have the unexpected value.
Without manually setting the two registers, `obmcutil poweron` results in
no output at all in host console.
That's why I send this patch to initialize the registers.
Note: I think the lines
+ writel(0x30000C00, AST_IO(AST_BASE_LPC | 0x88));
+ writel(0xFC0003FF, AST_IO(AST_BASE_LPC | 0x8C));
are not necessary since they are having the expected value without this patch.
But below changes are necessary:
+ /* Set SPI1 CE1 decoding window to 0x34000000 */
+ writel(0x70680000, AST_IO(AST_BASE_SPI | 0x34));
+
+ /* Set SPI1 CE0 decoding window to 0x30000000 */
+ writel(0x68600000, AST_IO(AST_BASE_SPI | 0x30));
--
BRs,
Lei YU
On Tue, Feb 28, 2017 at 7:16 PM, Andrew Jeffery <andrew at aj.id.au> wrote:
> On Tue, Feb 28, 2017, at 20:10, Joel Stanley wrote:
>
>
>
> On 28 Feb 2017 17:49, "Lei YU" <mine260309 at gmail.com> wrote:
>
> The PNOR SPI address mapping is the same as Witherspoon.
>
>
> This should be handled by the device drivers we now have.
>
> Mbox brains trust, any idea why we would still need this?
>
>
> I was going to say NAK for the same reason.
>
> Lei: are you absolutely positive you need this? If you do something has gone
> wrong. Is mboxd integrated into the romulus image? If not we need a yocto
> patch rather than a kernel patch.
>
> Andrew
>
> Cheers,
>
> Joel
>
>
> Signed-off-by: Lei YU <mine260309 at gmail.com>
> ---
> arch/arm/mach-aspeed/aspeed.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/arch/arm/mach-aspeed/aspeed.c b/arch/arm/mach-aspeed/aspeed.c
> index 726b8fa..ec9eecf 100644
> --- a/arch/arm/mach-aspeed/aspeed.c
> +++ b/arch/arm/mach-aspeed/aspeed.c
> @@ -221,6 +221,24 @@ static void __init do_witherspoon_setup(void)
> static void __init do_romulus_setup(void)
> {
> do_common_setup();
> +
> + /* Setup PNOR address mapping for 64M flash
> + *
> + * ADRBASE: 0x3000 (0x30000000)
> + * HWMBASE: 0x0C00 (0x0C000000)
> + * ADDRMASK: 0xFC00 (0xFC000000)
> + * HWNCARE: 0x03FF (0x03FF0000)
> + *
> + * Mapping appears at 0x60300fc000000 on the host
> + */
> + writel(0x30000C00, AST_IO(AST_BASE_LPC | 0x88));
> + writel(0xFC0003FF, AST_IO(AST_BASE_LPC | 0x8C));
> +
> + /* Set SPI1 CE1 decoding window to 0x34000000 */
> + writel(0x70680000, AST_IO(AST_BASE_SPI | 0x34));
> +
> + /* Set SPI1 CE0 decoding window to 0x30000000 */
> + writel(0x68600000, AST_IO(AST_BASE_SPI | 0x30));
> }
>
> #define SCU_PASSWORD 0x1688A8A8
> --
> 1.9.1
More information about the openbmc
mailing list