MPC8xx: Using SCM/SCC and standard 16C550 Uarts together...
Demke Torsten-atd012
torsten.demke at motorola.com
Thu Jan 13 01:46:58 EST 2005
Hello David,
>
> On Wednesday 12 January 2005 10:59, Demke Torsten-atd012 wrote:
> > I dont know exactly the state of the DENX kernel, but in
> the standard
> > kernel the 8xx UART driver and the 16550 driver are using the same
> > device numbers (TTY_MAJOR) and device names (/dev/ttySx).
> > You have to change one of them.
>
> You are right! What now? I cannot go around and change TTY_MAJOR!
> Is it true then, that you normally cannot have a mix of
> non-16550 uarts and
> 16550 uarts on the same system, without doing nonstandard
> things with major
> numbers?
> Should maybe arch/ppc/8xx_io/uart.c use another major number?
Yes, indeed I changed the major device number and the name in
8xx_io/uart.c. I used the same numbers and names that are used
in the 2.6 kernel (TTY_CPM_MAJOR=42, name= "ttyCPM"). Of course
you have to change all applications that use the 8xx UART then.
See pseudo-patch:
+#ifdef CONFIG_SERIAL_CONSOLE
static struct console sercons = {
- name: "ttyS",
+ name: "ttyCPM",
write: serial_console_write,
device: serial_console_device,
setup: serial_console_setup,
flags: CON_PRINTBUFFER,
index: CONFIG_SERIAL_CONSOLE_PORT,
};
+#endif
...
static kdev_t serial_console_device(struct console *c)
{
+#ifdef CONFIG_SERIAL
+ return MKDEV(TTY_CPM_MAJOR, 42 + c->index);
+#else
return MKDEV(TTY_MAJOR, 64 + c->index);
+#endif
}
...
serial_driver.magic = TTY_DRIVER_MAGIC;
serial_driver.driver_name = "serial";
+#ifdef CONFIG_SERIAL
+/* use different numbers if "standard" serial driver is enabled */
+ serial_driver.driver_name = "serialCPM";
+#ifdef CONFIG_DEVFS_FS
+ serial_driver.name = "tts/%d";
+#else
+ serial_driver.name = "ttyCPM";
+#endif
+ serial_driver.major = TTY_CPM_MAJOR;
+ serial_driver.minor_start = 42;
+#else
+ serial_driver.driver_name = "serial";
#ifdef CONFIG_DEVFS_FS
serial_driver.name = "tts/%d";
#else
@@ -2553,6 +2585,7 @@ int __init rs_8xx_init(void)
#endif
serial_driver.major = TTY_MAJOR;
serial_driver.minor_start = 64;
+#endif /* CONFIG_SERIAL */
serial_driver.num = NR_PORTS;
serial_driver.type = TTY_DRIVER_TYPE_SERIAL;
serial_driver.subtype = SERIAL_TYPE_NORMAL;
Greetings,
Torsten
>
> Greetings,
>
> --
> David Jander
> Protonic Holland.
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
More information about the Linuxppc-embedded
mailing list