diff mbox series

Documentation: devices.txt: reconcile serial/ucc_uart minor numers

Message ID 20230724063341.28198-1-rdunlap@infradead.org
State New
Headers show
Series Documentation: devices.txt: reconcile serial/ucc_uart minor numers | expand

Commit Message

Randy Dunlap July 24, 2023, 6:33 a.m. UTC
Reconcile devices.txt with serial/ucc_uart.c regarding device number
assignments. ucc_uart.c supports 4 ports and uses minor devnums
46-49, so update devices.txt with that info.
Then update ucc_uart.c's reference to the location of the devices.txt
list in the kernel source tree.

Fixes: d7584ed2b994 ("[POWERPC] qe-uart: add support for Freescale QUICCEngine UART")
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Timur Tabi <timur@kernel.org>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: linux-serial@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: linux-doc@vger.kernel.org
---
 Documentation/admin-guide/devices.txt |    2 +-
 drivers/tty/serial/ucc_uart.c         |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Christophe Leroy Aug. 1, 2023, 5:21 a.m. UTC | #1
Le 24/07/2023 à 08:33, Randy Dunlap a écrit :
> Reconcile devices.txt with serial/ucc_uart.c regarding device number
> assignments. ucc_uart.c supports 4 ports and uses minor devnums
> 46-49, so update devices.txt with that info.
> Then update ucc_uart.c's reference to the location of the devices.txt
> list in the kernel source tree.

Devices ttyCPM* belong to cpm_uart driver. As explained in the comment 
you have modified in UCC uart driver, UCC uart borrows those devices and 
shall not be considered as the reference. But the lines you modify in 
device.txt doesn't mention QE UCC, it mentions CPM SCC and CPM SMC.

CPM uart driver supports up to 6 ports (4 SCC and 2 SMC).

On one of my boards which has a powerpc mpc866 CPU, I have:

[    2.393872] ff000a80.serial: ttyCPM0 at MMIO 0xfff00a80 (irq = 19, 
base_baud = 8250000) is a CPM UART
[    2.411899] ff000a90.serial: ttyCPM1 at MMIO 0xfff00a90 (irq = 20, 
base_baud = 8250000) is a CPM UART
[    2.430352] ff000a00.serial: ttyCPM2 at MMIO 0xfff00a00 (irq = 30, 
base_baud = 8250000) is a CPM UART
[    2.448944] ff000a20.serial: ttyCPM3 at MMIO 0xfff00a20 (irq = 29, 
base_baud = 8250000) is a CPM UART
[    2.467435] ff000a40.serial: ttyCPM4 at MMIO 0xfff00a40 (irq = 28, 
base_baud = 8250000) is a CPM UART
[    2.485924] ff000a60.serial: ttyCPM5 at MMIO 0xfff00a60 (irq = 27, 
base_baud = 8250000) is a CPM UART

# ll /dev/ttyCPM*
crw-------    1 root     root      204,  46 Jan  1 01:01 /dev/ttyCPM0
crw-------    1 root     root      204,  47 Jan  1 01:00 /dev/ttyCPM1
crw-------    1 root     root      204,  48 Jan  1 01:00 /dev/ttyCPM2
crw-------    1 root     root      204,  49 Jan  1 01:00 /dev/ttyCPM3
crw-------    1 root     root      204,  50 Jan  1 01:00 /dev/ttyCPM4
crw-------    1 root     root      204,  51 Jan  1 01:00 /dev/ttyCPM5

# cat /proc/tty/drivers
/dev/tty             /dev/tty        5       0 system:/dev/tty
/dev/console         /dev/console    5       1 system:console
/dev/ptmx            /dev/ptmx       5       2 system
ttyCPM               /dev/ttyCPM   204 46-51 serial
pty_slave            /dev/pts      136 0-1048575 pty:slave
pty_master           /dev/ptm      128 0-1048575 pty:master
pty_slave            /dev/ttyp       3 0-4 pty:slave
pty_master           /dev/pty        2 0-4 pty:master

Christophe


> 
> Fixes: d7584ed2b994 ("[POWERPC] qe-uart: add support for Freescale QUICCEngine UART")
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> Cc: Timur Tabi <timur@kernel.org>
> Cc: Kumar Gala <galak@kernel.crashing.org>
> Cc: linuxppc-dev@lists.ozlabs.org
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Jiri Slaby <jirislaby@kernel.org>
> Cc: linux-serial@vger.kernel.org
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: linux-doc@vger.kernel.org
> ---
>   Documentation/admin-guide/devices.txt |    2 +-
>   drivers/tty/serial/ucc_uart.c         |    2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff -- a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c
> --- a/drivers/tty/serial/ucc_uart.c
> +++ b/drivers/tty/serial/ucc_uart.c
> @@ -59,7 +59,7 @@ static int firmware_loaded;
>   /* #define LOOPBACK */
>   
>   /* The major and minor device numbers are defined in
> - * http://www.lanana.org/docs/device-list/devices-2.6+.txt.  For the QE
> + * Documentation/admin-guide/devices.txt.  For the QE
>    * UART, we have major number 204 and minor numbers 46 - 49, which are the
>    * same as for the CPM2.  This decision was made because no Freescale part
>    * has both a CPM and a QE.
> diff -- a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt
> --- a/Documentation/admin-guide/devices.txt
> +++ b/Documentation/admin-guide/devices.txt
> @@ -2691,7 +2691,7 @@
>   		 45 = /dev/ttyMM1		Marvell MPSC - port 1 (obsolete unused)
>   		 46 = /dev/ttyCPM0		PPC CPM (SCC or SMC) - port 0
>   		    ...
> -		 47 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 5
> +		 49 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 3
>   		 50 = /dev/ttyIOC0		Altix serial card
>   		    ...
>   		 81 = /dev/ttyIOC31		Altix serial card
Randy Dunlap Aug. 1, 2023, 5:30 a.m. UTC | #2
Hi Christophe,

On 7/31/23 22:21, Christophe Leroy wrote:
> 
> 
> Le 24/07/2023 à 08:33, Randy Dunlap a écrit :
>> Reconcile devices.txt with serial/ucc_uart.c regarding device number
>> assignments. ucc_uart.c supports 4 ports and uses minor devnums
>> 46-49, so update devices.txt with that info.
>> Then update ucc_uart.c's reference to the location of the devices.txt
>> list in the kernel source tree.
> 
> Devices ttyCPM* belong to cpm_uart driver. As explained in the comment 
> you have modified in UCC uart driver, UCC uart borrows those devices and 
> shall not be considered as the reference. But the lines you modify in 
> device.txt doesn't mention QE UCC, it mentions CPM SCC and CPM SMC.
> 
> CPM uart driver supports up to 6 ports (4 SCC and 2 SMC).
> 

Thank you for replying.

Does this mean that the patch should be reverted?

> On one of my boards which has a powerpc mpc866 CPU, I have:
> 
> [    2.393872] ff000a80.serial: ttyCPM0 at MMIO 0xfff00a80 (irq = 19, 
> base_baud = 8250000) is a CPM UART
> [    2.411899] ff000a90.serial: ttyCPM1 at MMIO 0xfff00a90 (irq = 20, 
> base_baud = 8250000) is a CPM UART
> [    2.430352] ff000a00.serial: ttyCPM2 at MMIO 0xfff00a00 (irq = 30, 
> base_baud = 8250000) is a CPM UART
> [    2.448944] ff000a20.serial: ttyCPM3 at MMIO 0xfff00a20 (irq = 29, 
> base_baud = 8250000) is a CPM UART
> [    2.467435] ff000a40.serial: ttyCPM4 at MMIO 0xfff00a40 (irq = 28, 
> base_baud = 8250000) is a CPM UART
> [    2.485924] ff000a60.serial: ttyCPM5 at MMIO 0xfff00a60 (irq = 27, 
> base_baud = 8250000) is a CPM UART
> 
> # ll /dev/ttyCPM*
> crw-------    1 root     root      204,  46 Jan  1 01:01 /dev/ttyCPM0
> crw-------    1 root     root      204,  47 Jan  1 01:00 /dev/ttyCPM1
> crw-------    1 root     root      204,  48 Jan  1 01:00 /dev/ttyCPM2
> crw-------    1 root     root      204,  49 Jan  1 01:00 /dev/ttyCPM3
> crw-------    1 root     root      204,  50 Jan  1 01:00 /dev/ttyCPM4
> crw-------    1 root     root      204,  51 Jan  1 01:00 /dev/ttyCPM5

I don't see minors 50-51 allocated in devices.txt for use by this device/driver.
Am I overlooking that allocation somewhere?

Thanks for your help.

> 
> # cat /proc/tty/drivers
> /dev/tty             /dev/tty        5       0 system:/dev/tty
> /dev/console         /dev/console    5       1 system:console
> /dev/ptmx            /dev/ptmx       5       2 system
> ttyCPM               /dev/ttyCPM   204 46-51 serial
> pty_slave            /dev/pts      136 0-1048575 pty:slave
> pty_master           /dev/ptm      128 0-1048575 pty:master
> pty_slave            /dev/ttyp       3 0-4 pty:slave
> pty_master           /dev/pty        2 0-4 pty:master
> 
> Christophe
> 
> 
>>
>> Fixes: d7584ed2b994 ("[POWERPC] qe-uart: add support for Freescale QUICCEngine UART")
>> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>> Cc: Timur Tabi <timur@kernel.org>
>> Cc: Kumar Gala <galak@kernel.crashing.org>
>> Cc: linuxppc-dev@lists.ozlabs.org
>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> Cc: Jiri Slaby <jirislaby@kernel.org>
>> Cc: linux-serial@vger.kernel.org
>> Cc: Jonathan Corbet <corbet@lwn.net>
>> Cc: linux-doc@vger.kernel.org
>> ---
>>   Documentation/admin-guide/devices.txt |    2 +-
>>   drivers/tty/serial/ucc_uart.c         |    2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff -- a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c
>> --- a/drivers/tty/serial/ucc_uart.c
>> +++ b/drivers/tty/serial/ucc_uart.c
>> @@ -59,7 +59,7 @@ static int firmware_loaded;
>>   /* #define LOOPBACK */
>>   
>>   /* The major and minor device numbers are defined in
>> - * http://www.lanana.org/docs/device-list/devices-2.6+.txt.  For the QE
>> + * Documentation/admin-guide/devices.txt.  For the QE
>>    * UART, we have major number 204 and minor numbers 46 - 49, which are the
>>    * same as for the CPM2.  This decision was made because no Freescale part
>>    * has both a CPM and a QE.
>> diff -- a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt
>> --- a/Documentation/admin-guide/devices.txt
>> +++ b/Documentation/admin-guide/devices.txt
>> @@ -2691,7 +2691,7 @@
>>   		 45 = /dev/ttyMM1		Marvell MPSC - port 1 (obsolete unused)
>>   		 46 = /dev/ttyCPM0		PPC CPM (SCC or SMC) - port 0
>>   		    ...
>> -		 47 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 5
>> +		 49 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 3
>>   		 50 = /dev/ttyIOC0		Altix serial card
>>   		    ...
>>   		 81 = /dev/ttyIOC31		Altix serial card
Christophe Leroy Aug. 1, 2023, 8:58 a.m. UTC | #3
Le 01/08/2023 à 07:30, Randy Dunlap a écrit :
> Hi Christophe,
> 
> On 7/31/23 22:21, Christophe Leroy wrote:
>>
>>
>> Le 24/07/2023 à 08:33, Randy Dunlap a écrit :
>>> Reconcile devices.txt with serial/ucc_uart.c regarding device number
>>> assignments. ucc_uart.c supports 4 ports and uses minor devnums
>>> 46-49, so update devices.txt with that info.
>>> Then update ucc_uart.c's reference to the location of the devices.txt
>>> list in the kernel source tree.
>>
>> Devices ttyCPM* belong to cpm_uart driver. As explained in the comment
>> you have modified in UCC uart driver, UCC uart borrows those devices and
>> shall not be considered as the reference. But the lines you modify in
>> device.txt doesn't mention QE UCC, it mentions CPM SCC and CPM SMC.
>>
>> CPM uart driver supports up to 6 ports (4 SCC and 2 SMC).
>>
> 
> Thank you for replying.
> 
> Does this mean that the patch should be reverted?

Not sure it should be reverted, the best would be to fix it up because 
anyway what we had was wrong.

See below.

> 
>> On one of my boards which has a powerpc mpc866 CPU, I have:
>>
>> [    2.393872] ff000a80.serial: ttyCPM0 at MMIO 0xfff00a80 (irq = 19,
>> base_baud = 8250000) is a CPM UART
>> [    2.411899] ff000a90.serial: ttyCPM1 at MMIO 0xfff00a90 (irq = 20,
>> base_baud = 8250000) is a CPM UART
>> [    2.430352] ff000a00.serial: ttyCPM2 at MMIO 0xfff00a00 (irq = 30,
>> base_baud = 8250000) is a CPM UART
>> [    2.448944] ff000a20.serial: ttyCPM3 at MMIO 0xfff00a20 (irq = 29,
>> base_baud = 8250000) is a CPM UART
>> [    2.467435] ff000a40.serial: ttyCPM4 at MMIO 0xfff00a40 (irq = 28,
>> base_baud = 8250000) is a CPM UART
>> [    2.485924] ff000a60.serial: ttyCPM5 at MMIO 0xfff00a60 (irq = 27,
>> base_baud = 8250000) is a CPM UART
>>
>> # ll /dev/ttyCPM*
>> crw-------    1 root     root      204,  46 Jan  1 01:01 /dev/ttyCPM0
>> crw-------    1 root     root      204,  47 Jan  1 01:00 /dev/ttyCPM1
>> crw-------    1 root     root      204,  48 Jan  1 01:00 /dev/ttyCPM2
>> crw-------    1 root     root      204,  49 Jan  1 01:00 /dev/ttyCPM3
>> crw-------    1 root     root      204,  50 Jan  1 01:00 /dev/ttyCPM4
>> crw-------    1 root     root      204,  51 Jan  1 01:00 /dev/ttyCPM5
> 
> I don't see minors 50-51 allocated in devices.txt for use by this device/driver.
> Am I overlooking that allocation somewhere?

I looked into history.

ttyCPM do not appear in devices.txt in v2.6.9.

It was introduced in v2.6.10 as :

		 46 = /dev/ttyCPM0		PPC CPM (SCC or SMC) - port 0
		    ...
		 49 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 5

Then in v2.6.11 we find:

		 46 = /dev/ttyCPM0		PPC CPM (SCC or SMC) - port 0
		    ...
		 47 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 5
		 50 = /dev/ttyIOC40		Altix serial card
		    ...
		 81 = /dev/ttyIOC431		Altix serial card

So it looks like from the begining the intention was to have 6 ports 
(from 0 to 5) and it should have been up to 51. For some reason it was 
messed up.

If you look into v2.6.10 drivers/serial/cpm_uart/cpm_uart.h you see 
there are 6 ports. Even in v2.6.9 that driver exists and has 6 ports.


Anyway, the ttyIOC* were removed by commit a017ef17cfd8 ("tty/serial: 
remove the ioc4_serial driver"), so it should be no problem to fix 
devices.txt and set ttyCPM from 46 to 51.

Christophe


> 
> Thanks for your help.
> 
>>
>> # cat /proc/tty/drivers
>> /dev/tty             /dev/tty        5       0 system:/dev/tty
>> /dev/console         /dev/console    5       1 system:console
>> /dev/ptmx            /dev/ptmx       5       2 system
>> ttyCPM               /dev/ttyCPM   204 46-51 serial
>> pty_slave            /dev/pts      136 0-1048575 pty:slave
>> pty_master           /dev/ptm      128 0-1048575 pty:master
>> pty_slave            /dev/ttyp       3 0-4 pty:slave
>> pty_master           /dev/pty        2 0-4 pty:master
>>
>> Christophe
>>
>>
>>>
>>> Fixes: d7584ed2b994 ("[POWERPC] qe-uart: add support for Freescale QUICCEngine UART")
>>> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
>>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>>> Cc: Timur Tabi <timur@kernel.org>
>>> Cc: Kumar Gala <galak@kernel.crashing.org>
>>> Cc: linuxppc-dev@lists.ozlabs.org
>>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>> Cc: Jiri Slaby <jirislaby@kernel.org>
>>> Cc: linux-serial@vger.kernel.org
>>> Cc: Jonathan Corbet <corbet@lwn.net>
>>> Cc: linux-doc@vger.kernel.org
>>> ---
>>>    Documentation/admin-guide/devices.txt |    2 +-
>>>    drivers/tty/serial/ucc_uart.c         |    2 +-
>>>    2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff -- a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c
>>> --- a/drivers/tty/serial/ucc_uart.c
>>> +++ b/drivers/tty/serial/ucc_uart.c
>>> @@ -59,7 +59,7 @@ static int firmware_loaded;
>>>    /* #define LOOPBACK */
>>>    
>>>    /* The major and minor device numbers are defined in
>>> - * http://www.lanana.org/docs/device-list/devices-2.6+.txt.  For the QE
>>> + * Documentation/admin-guide/devices.txt.  For the QE
>>>     * UART, we have major number 204 and minor numbers 46 - 49, which are the
>>>     * same as for the CPM2.  This decision was made because no Freescale part
>>>     * has both a CPM and a QE.
>>> diff -- a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt
>>> --- a/Documentation/admin-guide/devices.txt
>>> +++ b/Documentation/admin-guide/devices.txt
>>> @@ -2691,7 +2691,7 @@
>>>    		 45 = /dev/ttyMM1		Marvell MPSC - port 1 (obsolete unused)
>>>    		 46 = /dev/ttyCPM0		PPC CPM (SCC or SMC) - port 0
>>>    		    ...
>>> -		 47 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 5
>>> +		 49 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 3
>>>    		 50 = /dev/ttyIOC0		Altix serial card
>>>    		    ...
>>>    		 81 = /dev/ttyIOC31		Altix serial card
>
diff mbox series

Patch

diff -- a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c
--- a/drivers/tty/serial/ucc_uart.c
+++ b/drivers/tty/serial/ucc_uart.c
@@ -59,7 +59,7 @@  static int firmware_loaded;
 /* #define LOOPBACK */
 
 /* The major and minor device numbers are defined in
- * http://www.lanana.org/docs/device-list/devices-2.6+.txt.  For the QE
+ * Documentation/admin-guide/devices.txt.  For the QE
  * UART, we have major number 204 and minor numbers 46 - 49, which are the
  * same as for the CPM2.  This decision was made because no Freescale part
  * has both a CPM and a QE.
diff -- a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt
--- a/Documentation/admin-guide/devices.txt
+++ b/Documentation/admin-guide/devices.txt
@@ -2691,7 +2691,7 @@ 
 		 45 = /dev/ttyMM1		Marvell MPSC - port 1 (obsolete unused)
 		 46 = /dev/ttyCPM0		PPC CPM (SCC or SMC) - port 0
 		    ...
-		 47 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 5
+		 49 = /dev/ttyCPM5		PPC CPM (SCC or SMC) - port 3
 		 50 = /dev/ttyIOC0		Altix serial card
 		    ...
 		 81 = /dev/ttyIOC31		Altix serial card