Re: [PATCH] hw/misc/aspeed_scu: Set both AST2600 protection key registers on reset
Cédric Le Goater <[email protected]>
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
On 8/18/26 03:43, Andrew Jeffery wrote:
> Currently, booting Linux on the ast2600-evb machine via -kernel results
> in a lot of warnings about failing to apply pinmux configuration when
> binding drivers:
>
> [ 7.339307][ T1] Creating 5 MTD partitions on "bmc":
> [ 7.340402][ T1] 0x000000000000-0x0000000e0000 : "u-boot"
> [ 7.513755][ T1] 0x0000000e0000-0x000000100000 : "u-boot-env"
> [ 7.664219][ T1] 0x000000100000-0x000000a00000 : "kernel"
> [ 7.826974][ T1] 0x000000a00000-0x000002a00000 : "rofs"
> [ 8.026666][ T1] 0x000002a00000-0x000004000000 : "rwfs"
> [ 8.201612][ T1] spi-aspeed-smc 1e630000.spi: error -EPERM: Error applying setting, reverse things back
> [ 8.370835][ T1] spi-aspeed-smc 1e630000.spi: Calibration area too uniform, using low speed
> [ 8.371131][ T1] spi-aspeed-smc 1e630000.spi: Force to dts configuration 100000kHz.
> [ 8.371500][ T1] spi-aspeed-smc 1e630000.spi: CE0 read buswidth:4 [0x406c0741]
> [ 8.766797][ T1] mdio-aspeed 1e650000.mdio: error -EPERM: Error applying setting, reverse things back
> [ 8.906008][ T1] mdio-aspeed 1e650008.mdio: error -EPERM: Error applying setting, reverse things back
> [ 9.039240][ T1] mdio-aspeed 1e650010.mdio: error -EPERM: Error applying setting, reverse things back
> [ 9.147942][ T1] mdio-aspeed 1e650018.mdio: error -EPERM: Error applying setting, reverse things back
>
> The pinmux configuration fails because the SCU is not unlocked.
>
> Set both SCU protection keys for the AST2600. Further, set them
> such that they behave accordance with the read value documented
> by the datasheet. The new arrangement now upholds the comment in
> hw/arm/aspeed.c regarding passing -kernel on the qemu command-line.
>
> [ 7.568170][ T1] Creating 5 MTD partitions on "bmc":
> [ 7.569330][ T1] 0x000000000000-0x0000000e0000 : "u-boot"
> [ 7.740372][ T1] 0x0000000e0000-0x000000100000 : "u-boot-env"
> [ 7.883570][ T1] 0x000000100000-0x000000a00000 : "kernel"
> [ 8.041004][ T1] 0x000000a00000-0x000002a00000 : "rofs"
> [ 8.196824][ T1] 0x000002a00000-0x000004000000 : "rwfs"
> [ 8.547037][ T1] spi-aspeed-smc 1e630000.spi: Calibration area too uniform, using low speed
> [ 8.547320][ T1] spi-aspeed-smc 1e630000.spi: Force to dts configuration 100000kHz.
> [ 8.547642][ T1] spi-aspeed-smc 1e630000.spi: CE0 read buswidth:4 [0x406c0741]
> [ 9.494235][ T1] ftgmac100 1e660000.ethernet: Read MAC address 52:54:00:12:34:56 from chip
> [ 9.531186][ T1] RTL8211E Gigabit Ethernet 1e650000.mdio-1:00: attached PHY driver (mii_bus:phy_addr=1e650000.mdio-1:00,
>
> Fixes: e09cf36321f6 ("hw: aspeed_scu: Add AST2600 support")
> Signed-off-by: Andrew Jeffery <[email protected]>
> ---
> I ran into this issue while improving test coverage in my patch review
> process.
> ---
> hw/misc/aspeed_scu.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/hw/misc/aspeed_scu.c b/hw/misc/aspeed_scu.c
> index ca93c3699d81..1e3db6d03f91 100644
> --- a/hw/misc/aspeed_scu.c
> +++ b/hw/misc/aspeed_scu.c
> @@ -821,7 +821,8 @@ static void aspeed_ast2600_scu_reset_hold(Object *obj, ResetType type)
> s->regs[AST2600_SILICON_REV2] = s->silicon_rev;
> s->regs[AST2600_HW_STRAP1] = s->hw_strap1;
> s->regs[AST2600_HW_STRAP2] = s->hw_strap2;
> - s->regs[PROT_KEY] = s->hw_prot_key;
> + s->regs[AST2600_PROT_KEY] = s->hw_prot_key == ASPEED_SCU_PROT_KEY;
> + s->regs[AST2600_PROT_KEY2] = s->hw_prot_key == ASPEED_SCU_PROT_KEY;
> }
>
> static void aspeed_2600_scu_class_init(ObjectClass *klass, const void *data)
>
> ---
> base-commit: 9696bf5dc5a5bf0b4a9d05b6cdfe5f13990f97aa
> change-id: 20260818-dev-ast2600-hw-prot-key-reset-e68eb9f49ee9
>
> Best regards,
> --
> Andrew Jeffery <[email protected]>
>
Applied to
https://github.com/legoater/qemu aspeed-next
Thanks,
C.