On Mon, Feb 03, 2020 at 09:29:30PM -0800, Florian Fainelli wrote: > > > On 2/3/2020 12:34 AM, Maxime Ripard wrote: > > On Sun, Feb 02, 2020 at 01:18:26PM -0800, Florian Fainelli wrote: > >> diff --git a/Documentation/devicetree/bindings/arm/cpus.yaml b/Documentation/devicetree/bindings/arm/cpus.yaml > >> index c23c24ff7575..6f56a623c1cd 100644 > >> --- a/Documentation/devicetree/bindings/arm/cpus.yaml > >> +++ b/Documentation/devicetree/bindings/arm/cpus.yaml > >> @@ -272,6 +272,22 @@ properties: > >> While optional, it is the preferred way to get access to > >> the cpu-core power-domains. > >> > >> + secondary-boot-reg: > >> + $ref: '/schemas/types.yaml#/definitions/uint32' > >> + description: | > >> + Required for systems that have an "enable-method" property value of > >> + "brcm,bcm11351-cpu-method", "brcm,bcm23550" or "brcm,bcm-nsp-smp". > >> + > >> + This includes the following SoCs: | > >> + BCM11130, BCM11140, BCM11351, BCM28145, BCM28155, BCM21664, BCM23550 > >> + BCM58522, BCM58525, BCM58535, BCM58622, BCM58623, BCM58625, BCM88312 > >> + > >> + The secondary-boot-reg property is a u32 value that specifies the > >> + physical address of the register used to request the ROM holding pen > >> + code release a secondary CPU. The value written to the register is > >> + formed by encoding the target CPU id into the low bits of the > >> + physical start address it should jump to. > >> + > > > > You can make the requirement explicit (and enforced by the schemas) using: > > > > if: > > properties: > > enable-method: > > contains: > > enum: > > - brcm,bcm11351-cpu-method > > - brcm,bcm23550 > > - brcm,bcm-nsp-smp > > > > then: > > required: > > - secondary-boot-reg > > Thanks! That was exactly what I was looking for, it seems to be matching > a bit too greedily though: > > DTC arch/arm/boot/dts/bcm2836-rpi-2-b.dt.yaml > CHECK arch/arm/boot/dts/bcm2836-rpi-2-b.dt.yaml > /home/ff944844/dev/linux/arch/arm/boot/dts/bcm2836-rpi-2-b.dt.yaml: > cpu@0: 'secondary-boot-reg' is a required property > /home/ff944844/dev/linux/arch/arm/boot/dts/bcm2836-rpi-2-b.dt.yaml: > cpu@1: 'secondary-boot-reg' is a required property > /home/ff944844/dev/linux/arch/arm/boot/dts/bcm2836-rpi-2-b.dt.yaml: > cpu@2: 'secondary-boot-reg' is a required property > /home/ff944844/dev/linux/arch/arm/boot/dts/bcm2836-rpi-2-b.dt.yaml: > cpu@3: 'secondary-boot-reg' is a required property > DTC arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dt.yaml > > not sure why though as your example appears correct. Yeah, sorry, that's on me :) The nodes that are generating this error are the cpu@[0-3] ones, and they don't have the enable-method property at all. This is because if needs a schema, and will only try to validate the schema under then if the one under if is valid. The one under if contains a list of values for enable-method, but in the case where enable-method is absent, the schema will be valid, and thus the schema under then will be applied. What we actually want to express is "if there's an enable-method property, and that property contains those three values, then you need to have a secondary-boot-reg property." So you need: if: # If the enable-method property contains one of those values properties: enable-method: contains: enum: - brcm,bcm11351-cpu-method - brcm,bcm23550 - brcm,bcm-nsp-smp # and if enable method is present required: - enable-method # Then we need secondary-boot-reg too then: required: - secondary-boot-reg Maxime
Attachment:
signature.asc
Description: PGP signature