The SA1100 serial port finally had its major/minor numbers officially assigned: > Date: Sun, 24 Sep 2000 21:40:27 -0700 > From: H. Peter Anvin > To: Nicolas Pitre > Cc: Device List Maintainer > Subject: Re: device > > Okay. Note that device numbers 204 and 205 are used for "low density > serial devices", so you will have a range of minors on those majors (the > tty device layer handles this just fine, so you don't have to worry about > doing anything special.) > > So your assignments are: > > 204 char Low-density serial ports > 5 = /dev/ttySA0 SA1100 builtin serial port 0 > 6 = /dev/ttySA1 SA1100 builtin serial port 1 > 7 = /dev/ttySA2 SA1100 builtin serial port 2 > > 205 char Low-density serial ports (alternate device) > 5 = /dev/cusa0 Callout device for ttySA0 > 6 = /dev/cusa1 Callout device for ttySA1 > 7 = /dev/cusa2 Callout device for ttySA2 > So, if you're not using devfs, you must create those inodes in /dev on the root filesystem used by your SA1100-based device: mknod ttySA0 c 204 5 mknod ttySA1 c 204 6 mknod ttySA2 c 204 7 mknod cusa0 c 205 5 mknod cusa1 c 205 6 mknod cusa2 c 205 7 Note that the old incorrect use of /dev/ttyS0 in order to use the serial port won't work anymore. This device node is reserved to the conventionnal 16x50 UART which may appear on devices like PCMCIA modem, etc. In addition to the creation of the appropriate device nodes above, you must ensure your user space applications make use of the correct device name. The classic example is the content of the /etc/inittab where you might have a getty process started on ttyS0. In this case you have two choices: 1- replace occurences of ttyS0 with ttySA0, ttyS1 with ttySA1, etc. 2- in the occurence of 'ttyS0', you may consider replacing it with 'console'. as in "T0:12345:respawn:/sbin/getty -L console 9600 vt100" (don't forget to add 'ttySA0', 'console', or the appropriate tty name in /etc/securetty for root to be allowed to login as well.) The use of /dev/console has the advantage of being independent of the real serial device used. The kernel automatically forward all operations on /dev/console to the apropriate serial device. The nature of the console may also be modified with a kernel command line parameter (see Documentation/serial-console.txt for the details). Of course, /dev/console must have been created as a char device with major 5 minor 1. Using /dev/console is also compatible with older kernels that used /dev/ttyS0. Therefore it is handy for ramdisk images which are targetted for different StrongARM platforms and older kernels.