lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202307121930333019a9d5@mail.local>
Date:   Wed, 12 Jul 2023 21:30:33 +0200
From:   Alexandre Belloni <alexandre.belloni@...tlin.com>
To:     Conor Dooley <conor@...nel.org>
Cc:     Durai Manickam KR <durai.manickamkr@...rochip.com>,
        Hari.PrasathGE@...rochip.com,
        balamanikandan.gunasundar@...rochip.com,
        manikandan.m@...rochip.com, varshini.rajendran@...rochip.com,
        dharma.b@...rochip.com, nayabbasha.sayed@...rochip.com,
        balakrishnan.s@...rochip.com, cristian.birsan@...rochip.com,
        nicolas.ferre@...rochip.com, krzysztof.kozlowski@...aro.org,
        davem@...emloft.net, arnd@...db.de, olof@...om.net, soc@...nel.org,
        devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
        linux-kernel@...r.kernel.org, Kavyasree.Kotagiri@...rochip.com,
        Horatiu.Vultur@...rochip.com, robh+dt@...nel.org, andrew@...n.ch,
        michael@...le.cc, jerry.ray@...rochip.com, conor+dt@...nel.org,
        jesper.nilsson@...s.com, sergiu.moga@...rochip.com,
        andre.przywara@....com, ada@...rsis.com
Subject: Re: [PATCH] ARM: dts: at91: sam9x60: fix the SOC detection

On 12/07/2023 19:43:51+0100, Conor Dooley wrote:
> Hey,
> 
> On Wed, Jul 12, 2023 at 03:30:42PM +0530, Durai Manickam KR wrote:
> > Remove the dbgu compatible strings in the UART submodule of the
> > flexcom for the proper SOC detection.
> 
> I am afraid that I do not understand what this means. The first
> compatible, before and after your patch, is a sam9x60 one, so I don't
> see how the SoC comes into it. Grepping to try and understand:
> rg microchip,sam9x60-usart drivers/
> 
> rg microchip,sam9x60-dbgu drivers/
> 
> rg atmel,at91sam9260-dbgu drivers/
> drivers/soc/atmel/soc.c
> 259:					     "atmel,at91sam9260-dbgu");
> 
> rg atmel,at91sam9260-usart drivers/
> drivers/tty/serial/atmel_serial.c
> 2723:OF_EARLYCON_DECLARE(atmel_serial, "atmel,at91sam9260-usart",
> 
> drivers/mfd/at91-usart.c
> 50:	{ .compatible = "atmel,at91sam9260-usart" },
> 
> It looks like you are trying to avoid the atmel soc driver from
> detecting the atmel,at91sam9260-dbgu compatible?
> Is this not actually compatible with the sam9260's debug uart?
> 
> Please try to explain things in more detail so that people unfamiliar
> with at91 hardware are not confused. As an outsider, removing
> compatibles to fix detection seems like it would not work - the sam9x60
> compatibles are first in the list. To me it seems like this removes,
> rather than fixes detection, and to fix detection you would need to
> make some changes to the driver?
> 
> Also, the binding says:
>       - items:
>           - const: microchip,sam9x60-dbgu
>           - const: microchip,sam9x60-usart
>           - const: atmel,at91sam9260-dbgu
>           - const: atmel,at91sam9260-usart
> 
> Your patch here makes the dts non-compliant with the bindings, as far as
> I can tell, so you will need to go and modify the bindings to do this
> either way.

There can be only one dbgu on a SoC and it has the chipid register. It
has always been wrong to have a dbgu compatible on the flexcom uart as
they are not dbgu.

Anyway, my advice has always been that you must not do chipid detection
on at91 because there is no point in doing it because you need to have
a correct dts to be able to find the dbgu chipid register so you either
you already know what you are running on or you are going to read bogus
registers anyway.

> 
> Thanks,
> Conor.
> 
> > 
> > Fixes: 99c808335877 (ARM: dts: at91: sam9x60: Add missing flexcom definitions)
> > Signed-off-by: Durai Manickam KR <durai.manickamkr@...rochip.com>
> > ---
> >  arch/arm/boot/dts/microchip/sam9x60.dtsi | 26 ++++++++++++------------
> >  1 file changed, 13 insertions(+), 13 deletions(-)
> > 
> > diff --git a/arch/arm/boot/dts/microchip/sam9x60.dtsi b/arch/arm/boot/dts/microchip/sam9x60.dtsi
> > index 8b53997675e7..73d570a17269 100644
> > --- a/arch/arm/boot/dts/microchip/sam9x60.dtsi
> > +++ b/arch/arm/boot/dts/microchip/sam9x60.dtsi
> > @@ -172,7 +172,7 @@ flx4: flexcom@...00000 {
> >  				status = "disabled";
> >  
> >  				uart4: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -240,7 +240,7 @@ flx5: flexcom@...04000 {
> >  				status = "disabled";
> >  
> >  				uart5: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
> >  					interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
> > @@ -370,7 +370,7 @@ flx11: flexcom@...20000 {
> >  				status = "disabled";
> >  
> >  				uart11: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <32 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -419,7 +419,7 @@ flx12: flexcom@...24000 {
> >  				status = "disabled";
> >  
> >  				uart12: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -576,7 +576,7 @@ flx6: flexcom@...10000 {
> >  				status = "disabled";
> >  
> >  				uart6: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -625,7 +625,7 @@ flx7: flexcom@...14000 {
> >  				status = "disabled";
> >  
> >  				uart7: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <10 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -674,7 +674,7 @@ flx8: flexcom@...18000 {
> >  				status = "disabled";
> >  
> >  				uart8: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <11 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -723,7 +723,7 @@ flx0: flexcom@...1c000 {
> >  				status = "disabled";
> >  
> >  				uart0: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -791,7 +791,7 @@ flx1: flexcom@...20000 {
> >  				status = "disabled";
> >  
> >  				uart1: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <6 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -859,7 +859,7 @@ flx2: flexcom@...24000 {
> >  				status = "disabled";
> >  
> >  				uart2: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <7 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -927,7 +927,7 @@ flx3: flexcom@...28000 {
> >  				status = "disabled";
> >  
> >  				uart3: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <8 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -1050,7 +1050,7 @@ flx9: flexcom@...40000 {
> >  				status = "disabled";
> >  
> >  				uart9: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <15 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > @@ -1099,7 +1099,7 @@ flx10: flexcom@...44000 {
> >  				status = "disabled";
> >  
> >  				uart10: serial@200 {
> > -					compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
> > +					compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
> >  					reg = <0x200 0x200>;
> >  					interrupts = <16 IRQ_TYPE_LEVEL_HIGH 7>;
> >  					dmas = <&dma0
> > -- 
> > 2.25.1
> > 



-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ