linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ADI Blackfin porting for kernel-2.6.13
@ 2005-09-20  6:33 Luke Yang
  2005-09-20  7:15 ` Deepak Saxena
  0 siblings, 1 reply; 10+ messages in thread
From: Luke Yang @ 2005-09-20  6:33 UTC (permalink / raw)
  To: linux-kernel

Hi,

   I am Luke Yang, an engineer from Analog Devices Inc. We ported
uclinux to our Blackfin cpu. Now we updated our architecture code for
kernel-2.6.13. I will send out a patch to this list.

   I know kernel-2.6.14 is coming. Will the linux kernel accept our
patch for 2.6.13?

Regards,
Luke Yang

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
  2005-09-20  6:33 ADI Blackfin porting for kernel-2.6.13 Luke Yang
@ 2005-09-20  7:15 ` Deepak Saxena
  2005-09-23  5:37   ` Luke Yang
  0 siblings, 1 reply; 10+ messages in thread
From: Deepak Saxena @ 2005-09-20  7:15 UTC (permalink / raw)
  To: Luke Yang; +Cc: linux-kernel

On Sep 20 2005, at 14:33, Luke Yang was caught saying:
> Hi,
> 
>    I am Luke Yang, an engineer from Analog Devices Inc. We ported
> uclinux to our Blackfin cpu. Now we updated our architecture code for
> kernel-2.6.13. I will send out a patch to this list.
> 
>    I know kernel-2.6.14 is coming. Will the linux kernel accept our
> patch for 2.6.13?

Nope. 2.6.13 is now closed to new features as is 2.6.14 (unless it is 
a really sper special case that Linus feels is important enough to slip 
in).  At this point the best thing to do is to post your patches for review,
make the changes that are asked, and be ready to post a patch vs 2.6.14
within the first week after it is released so that it might be be picked
up for 2.6.15.

~Deepak

-- 
Deepak Saxena - dsaxena@plexity.net - http://www.plexity.net

Even a stopped clock gives the right time twice a day.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
  2005-09-20  7:15 ` Deepak Saxena
@ 2005-09-23  5:37   ` Luke Yang
  2005-09-24 14:51     ` Robert Schwebel
                       ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Luke Yang @ 2005-09-23  5:37 UTC (permalink / raw)
  Cc: linux-kernel

Hi all,

   This is the ADI Blackfin patch for kernel 2.6.13.  I know this
patch doesn' meet the kernel patch submission format, but this patch
is only for reviewing, shows the changes we made.  And I'll send new
patch for kernel 2.6.14 for you to merge into kernel.

   This patch mainly includes the arch/bfinnommu architecture files
and some blackfin specific drivers.  The only change to the common
files is that we change binfmt.c and related header file, added one
flat binary format for blackfin. We are considering removing this
change in next release.

  The patch is too big to put here , url is
http://blackfin.uclinux.org/frs/download.php/570/bfinnonnu-linux-2.6.13.patch

  Thanks!
Luke

On 9/20/05, Deepak Saxena <dsaxena@plexity.net> wrote:
> On Sep 20 2005, at 14:33, Luke Yang was caught saying:
> > Hi,
> >
> >    I am Luke Yang, an engineer from Analog Devices Inc. We ported
> > uclinux to our Blackfin cpu. Now we updated our architecture code for
> > kernel-2.6.13. I will send out a patch to this list.
> >
> >    I know kernel-2.6.14 is coming. Will the linux kernel accept our
> > patch for 2.6.13?
>
> Nope. 2.6.13 is now closed to new features as is 2.6.14 (unless it is
> a really sper special case that Linus feels is important enough to slip
> in).  At this point the best thing to do is to post your patches for review,
> make the changes that are asked, and be ready to post a patch vs 2.6.14
> within the first week after it is released so that it might be be picked
> up for 2.6.15.
>
> ~Deepak
>
> --
> Deepak Saxena - dsaxena@plexity.net - http://www.plexity.net
>
> Even a stopped clock gives the right time twice a day.
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
  2005-09-23  5:37   ` Luke Yang
@ 2005-09-24 14:51     ` Robert Schwebel
  2005-09-27  1:37       ` Luke Yang
  2005-09-24 19:41     ` Jesper Juhl
  2005-09-25  3:09     ` Jesper Juhl
  2 siblings, 1 reply; 10+ messages in thread
From: Robert Schwebel @ 2005-09-24 14:51 UTC (permalink / raw)
  To: Luke Yang; +Cc: linux-kernel

On Fri, Sep 23, 2005 at 01:37:03PM +0800, Luke Yang wrote:
> This patch mainly includes the arch/bfinnommu architecture files and
> some blackfin specific drivers.

Having in mind the pain with arm and m68k with and without MMU, could
you structure that thing in a way that it will be able to share the
current nommu code with (hopefully coming) code for blackfins which
might have a MMU? So it would be something like arch/blackfin. 

Robert 
-- 
 Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
     Hannoversche Str. 2, 31134 Hildesheim, Germany
   Phone: +49-5121-206917-0 |  Fax: +49-5121-206917-9


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
  2005-09-23  5:37   ` Luke Yang
  2005-09-24 14:51     ` Robert Schwebel
@ 2005-09-24 19:41     ` Jesper Juhl
  2005-09-25  3:09     ` Jesper Juhl
  2 siblings, 0 replies; 10+ messages in thread
From: Jesper Juhl @ 2005-09-24 19:41 UTC (permalink / raw)
  To: Luke Yang; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1446 bytes --]

On Friday 23 September 2005 07:37, Luke Yang wrote:
> Hi all,
> 
>    This is the ADI Blackfin patch for kernel 2.6.13.  I know this
> patch doesn' meet the kernel patch submission format, but this patch
> is only for reviewing, shows the changes we made.  And I'll send new
> patch for kernel 2.6.14 for you to merge into kernel.
> 
>    This patch mainly includes the arch/bfinnommu architecture files
> and some blackfin specific drivers.  The only change to the common
> files is that we change binfmt.c and related header file, added one
> flat binary format for blackfin. We are considering removing this
> change in next release.
> 
>   The patch is too big to put here , url is
> http://blackfin.uclinux.org/frs/download.php/570/bfinnonnu-linux-2.6.13.patch
> 

Hi Luke,

Since you ask for review I decided to give you a hand.
I've started to look through your patch and started out by looking through 
the documentation bits 

  Documentation/blackfin/00-INDEX
  Documentation/blackfin/Filesystems
  Documentation/blackfin/cache-lock.txt
  Documentation/uml/UserModeLinux-HOWTO.txt

and I have a few suggested changes (see attached patch).
I'll be taking a look at the rest of the patch as well, just wanted to send you
the bits I'd already done for the documentation - its a pretty large patch, so
I'm going through it in little bits :)

Hope this is useful to you. More feedback on its way.


-- 
Jesper Juhl <jesper.juhl@gmail.com>



[-- Attachment #2: blackfin-docs.patch --]
[-- Type: text/x-diff, Size: 51409 bytes --]

--- linux-2.6.14-rc2-git3+blackfin/Documentation/blackfin/00-INDEX	2005-09-24 21:28:40.000000000 +0200
+++ linux-2.6.14-rc2-git3/Documentation/blackfin/00-INDEX	2005-09-24 17:41:26.000000000 +0200
@@ -5,7 +5,7 @@
 	- HOWTO for blackfin cache locking.
 
 cachefeatures.txt
-	- Supported cache features
+	- Supported cache features.
 
 Filesystems
-	- Required for mounting the root file systems.
+	- Requirements for mounting the root file system.
--- linux-2.6.14-rc2-git3+blackfin/Documentation/blackfin/Filesystems	2005-09-24 21:28:40.000000000 +0200
+++ linux-2.6.14-rc2-git3/Documentation/blackfin/Filesystems	2005-09-24 17:55:14.000000000 +0200
@@ -1,4 +1,4 @@
-		How to mount the a Root File system in uClinux/Blackfin
+		How to mount the root file system in uClinux/Blackfin
 		-----------------------------------------------------
 
 1	Mounting EXT3 File system.
@@ -7,9 +7,11 @@
 	Creating an EXT3 File system for uClinux/Blackfin:
 	
 
-Please follow the steps to form the Ext3 File system and mount the same as root file system.
+Please follow the steps to form the EXT3 File system and mount the same as root
+file system.
 
-a	Make an ext3 file system as large as you want the final root file system.
+a	Make an ext3 file system as large as you want the final root file
+	system.
 	
 		mkfs.ext3  /dev/ram0 <your-rootfs-size-in-1k-blocks>
 	
@@ -24,8 +26,8 @@
 		
 		(For ex: cp -af uClinux-dist/romfs/* ./test)		
 
-d	If you have done everything right till now you should be able to see the required
-	"root" dir's (that's etc, root, bin, lib, sbin...)
+d	If you have done everything right till now you should be able to see
+	the required "root" dir's (that's etc, root, bin, lib, sbin...)
 
 e	Now unmount the file system
 
@@ -33,22 +35,26 @@
 
 f	Create the root file system image.
 
-		dd if=/dev/ram0 bs=1k count=<your-rootfs-size-in-1k-blocks>  > ext3fs.img
+		dd if=/dev/ram0 bs=1k count=<your-rootfs-size-in-1k-blocks> \
+		> ext3fs.img
 
-	
-Now you have to tell the kernel that will be mounting this file system as rootfs.
-So do a make menuconfig under kernel and select the Ext3 journalling file system support 
-under File system --> submenu.
+
+Now you have to tell the kernel that will be mounting this file system as
+rootfs.
+So do a make menuconfig under kernel and select the Ext3 journaling file system
+support under File system --> submenu.
 
 
 2.	Mounting EXT2 File system.
 	-------------------------
 
-By default, the ext2 file system image will be created if you invoke make
-from the top uClinux-dist directory.
+By default the ext2 file system image will be created if you invoke make from
+the top uClinux-dist directory.
+
 
 3.	Mounting CRAMFS File System
 	----------------------------
+
 To create a CRAMFS file system image execute the command
 
 	mkfs.cramfs ./test cramfs.img
@@ -58,6 +64,7 @@
 
 4.	Mounting ROMFS File System
 	--------------------------
+
 To create a ROMFS file system image execute the command
 
 	genromfs -v -V "ROMdisk" -f romfs.img -d ./test
@@ -67,14 +74,14 @@
 
 5.	Mounting the JFFS2 Filesystem
 	-----------------------------
+
 To create a compressed JFFS filesystem (JFFS2), please execute the command
 
 	mkfs.jffs2 -d ./test -o jffs2.img
 	
 	where ./test is the target directory.
 
-However, Please make sure the following in kernel config.
-
+However, please make sure the following is in your kernel config.
 
 /*
  * RAM/ROM/Flash chip drivers
@@ -88,11 +95,11 @@
 #define CONFIG_MTD_BF533 1
 #undef CONFIG_MTD_UCLINUX 
 
-Through the u-boot boot loader, fuse the jffs2.img in the corresponding 
+Through the u-boot boot loader, use the jffs2.img in the corresponding 
 partition made in linux-2.6.x/drivers/mtd/maps/bf533_flash.c.
 
-NOTE - 	Currently Flash driver is available only for EZKIT. For STAMP 
-	driver watch out soon. 
+NOTE - 	Currently the Flash driver is available only for EZKIT. Watch out for a
+	STAMP driver soon. 
 
 
 6. 	Mounting the NFS File system
@@ -100,7 +107,8 @@
 	
 	For mounting the NFS please do the following in the kernel config.
 
-	In Networking Support ---> Networking options -->TCP/IP netwoking-> IP: kernel level autoconfiguration 
+	In Networking Support --> Networking options --> TCP/IP networking --> 
+		IP: kernel level autoconfiguration 
 	
 	Enable BOOTP Support.
 
@@ -110,15 +118,14 @@
 
 	In File system --> Network File system, Enable
 
-		NFS file system support-> NFSv3 client support
+		NFS file system support --> NFSv3 client support
 		Root File system on NFS
 
-	in uClibc menuconfig , do the following
+	in uClibc menuconfig, do the following
 	In Networking Support 
 		enable Remote Procedure Call (RPC) support
 			Full RPC Support
 
-
 	On the Host side, ensure that /etc/dhcpd.conf looks something like this
 
 		ddns-update-style ad-hoc;
@@ -126,23 +133,20 @@
 		subnet 10.100.4.0 netmask 255.255.255.0 {
 		default-lease-time 122209600;
 		max-lease-time 31557600;
-		group   {
-		host bf533      {
-		hardware ethernet 00:CF:52:49:C3:01;
-		fixed-address 10.100.4.50;
-		option root-path "/home/nfsmount";
-		}
+		group {
+			host bf533 {
+				hardware ethernet 00:CF:52:49:C3:01;
+				fixed-address 10.100.4.50;
+				option root-path "/home/nfsmount";
+			}
 		}
 	
 	ensure that /etc/exports looks something like this
 		/home/nfsmount *(rw,no_root_squash,no_all_squash)
 	
-	 run the following commands as root
+	 run the following commands as root (may differ depending on your
+	 distribution) :
 		-  service nfs start
 		-  service portmap start
 		-  service dhcpd start
-		-  /usr/sbin/exportfs  
-										 			
-	
-	
-
+		-  /usr/sbin/exportfs
--- linux-2.6.14-rc2-git3+blackfin/Documentation/blackfin/cache-lock.txt	2005-09-24 21:28:40.000000000 +0200
+++ linux-2.6.14-rc2-git3/Documentation/blackfin/cache-lock.txt	2005-09-24 17:57:47.000000000 +0200
@@ -1,31 +1,31 @@
-How to Lock your code into the cache in uClinux/blackfin 
---------------------------------------------------------
+How to lock your code in cache in uClinux/blackfin
+--------------------------------------------------
 
-There are only few steps required to lock your code into the cache.
+There are only a few steps required to lock your code into the cache.
 Currently you can lock the code by Way.
 
 Below are the interface provided for locking the cache.
 
+
 1. cache_grab_lock(int Ways);
 
 This function grab the lock for locking your code into the cache specified
 by Ways.
 
+
 2. cache_lock(int Ways);
 
 This function should be called after your critical code has been executed.
-Once the critical code exits, the code is now loaded into the cache.This
+Once the critical code exits, the code is now loaded into the cache. This
 function locks the code into the cache.
 
 
 So, the example sequence will be:
 
 	cache_grab_lock(WAY0_L);	/* Grab the lock */
-	
+
 	critical_code();		/* Execute the code of interest */
 
-	cache_lock(WAY0_L);		/* Lock the cache*/
+	cache_lock(WAY0_L);		/* Lock the cache */
 
 Where WAY0_L signifies WAY0 locking.
-
-
--- linux-2.6.14-rc2-git3+blackfin/Documentation/uml/UserModeLinux-HOWTO.txt	2005-09-24 21:28:41.000000000 +0200
+++ linux-2.6.14-rc2-git3/Documentation/uml/UserModeLinux-HOWTO.txt	2005-09-24 18:11:09.000000000 +0200
@@ -190,13 +190,13 @@
 
   ______________________________________________________________________
 
-  1\b1.\b.  I\bIn\bnt\btr\bro\bod\bdu\buc\bct\bti\bio\bon\bn
+  1. Introduction
 
   Welcome to User Mode Linux.  It's going to be fun.
 
 
 
-  1\b1.\b.1\b1.\b.  H\bHo\bow\bw i\bis\bs U\bUs\bse\ber\br M\bMo\bod\bde\be L\bLi\bin\bnu\bux\bx D\bDi\bif\bff\bfe\ber\bre\ben\bnt\bt?\b?
+  1.1.  How is User Mode Linux Different?
 
   Normally, the Linux Kernel talks straight to your hardware (video
   card, keyboard, hard drives, etc), and any programs which run ask the
@@ -237,7 +237,7 @@
 
 
 
-  1\b1.\b.2\b2.\b.  W\bWh\bhy\by W\bWo\bou\bul\bld\bd I\bI W\bWa\ban\bnt\bt U\bUs\bse\ber\br M\bMo\bod\bde\be L\bLi\bin\bnu\bux\bx?\b?
+  1.2.  Why Would I Want User Mode Linux?
 
 
   1. If User Mode Linux crashes, your host kernel is still fine.
@@ -262,12 +262,12 @@
 
 
 
-  2\b2.\b.  C\bCo\bom\bmp\bpi\bil\bli\bin\bng\bg t\bth\bhe\be k\bke\ber\brn\bne\bel\bl a\ban\bnd\bd m\bmo\bod\bdu\bul\ble\bes\bs
+  2.  Compiling the kernel and modules
 
 
 
 
-  2\b2.\b.1\b1.\b.  C\bCo\bom\bmp\bpi\bil\bli\bin\bng\bg t\bth\bhe\be k\bke\ber\brn\bne\bel\bl
+  2.1.  Compiling the kernel
 
 
   Compiling the user mode kernel is just like compiling any other
@@ -404,7 +404,7 @@
 
 
 
-  2\b2.\b.2\b2.\b.  C\bCo\bom\bmp\bpi\bil\bli\bin\bng\bg a\ban\bnd\bd i\bin\bns\bst\bta\bal\bll\bli\bin\bng\bg k\bke\ber\brn\bne\bel\bl m\bmo\bod\bdu\bul\ble\bes\bs
+  2.2.  Compiling and installing kernel modules
 
   UML modules are built in the same way as the native kernel (with the
   exception of the 'ARCH=um' that you always need for UML):
@@ -468,19 +468,19 @@
 
 
 
-  2\b2.\b.3\b3.\b.  C\bCo\bom\bmp\bpi\bil\bli\bin\bng\bg a\ban\bnd\bd i\bin\bns\bst\bta\bal\bll\bli\bin\bng\bg u\bum\bml\bl_\b_u\but\bti\bil\bli\bit\bti\bie\bes\bs
+  2.3.  Compiling and installing uml_utilities
 
   Many features of the UML kernel require a user-space helper program,
   so a uml_utilities package is distributed separately from the kernel
   patch which provides these helpers. Included within this is:
 
-  +\bo  port-helper - Used by consoles which connect to xterms or ports
+  +  port-helper - Used by consoles which connect to xterms or ports
 
-  +\bo  tunctl - Configuration tool to create and delete tap devices
+  +  tunctl - Configuration tool to create and delete tap devices
 
-  +\bo  uml_net - Setuid binary for automatic tap device configuration
+  +  uml_net - Setuid binary for automatic tap device configuration
 
-  +\bo  uml_switch - User-space virtual switch required for daemon
+  +  uml_switch - User-space virtual switch required for daemon
      transport
 
      The uml_utilities tree is compiled with:
@@ -505,11 +505,11 @@
 
 
 
-  3\b3.\b.  R\bRu\bun\bnn\bni\bin\bng\bg U\bUM\bML\bL a\ban\bnd\bd l\blo\bog\bgg\bgi\bin\bng\bg i\bin\bn
+  3.  Running UML and logging in
 
 
 
-  3\b3.\b.1\b1.\b.  R\bRu\bun\bnn\bni\bin\bng\bg U\bUM\bML\bL
+  3.1.  Running UML
 
   It runs on 2.2.15 or later, and all 2.4 kernels.
 
@@ -536,7 +536,7 @@
 
 
 
-  3\b3.\b.2\b2.\b.  L\bLo\bog\bgg\bgi\bin\bng\bg i\bin\bn
+  3.2.  Logging in
 
 
 
@@ -550,7 +550,7 @@
 
   There are a couple of other ways to log in:
 
-  +\bo  On a virtual console
+  +  On a virtual console
 
 
 
@@ -562,7 +562,7 @@
 
 
 
-  +\bo  Over the serial line
+  +  Over the serial line
 
 
      In the boot output, find a line that looks like:
@@ -585,7 +585,7 @@
 
 
 
-  +\bo  Over the net
+  +  Over the net
 
 
      If the network is running, then you can telnet to the virtual
@@ -596,13 +596,13 @@
   down and the process will exit.
 
 
-  3\b3.\b.3\b3.\b.  E\bEx\bxa\bam\bmp\bpl\ble\bes\bs
+  3.3.  Examples
 
   Here are some examples of UML in action:
 
-  +\bo  A login session <http://user-mode-linux.sourceforge.net/login.html>
+  +  A login session <http://user-mode-linux.sourceforge.net/login.html>
 
-  +\bo  A virtual network <http://user-mode-linux.sourceforge.net/net.html>
+  +  A virtual network <http://user-mode-linux.sourceforge.net/net.html>
 
 
 
@@ -610,12 +610,12 @@
 
 
 
-  4\b4.\b.  U\bUM\bML\bL o\bon\bn 2\b2G\bG/\b/2\b2G\bG h\bho\bos\bst\bts\bs
+  4.  UML on 2G/2G hosts
 
 
 
 
-  4\b4.\b.1\b1.\b.  I\bIn\bnt\btr\bro\bod\bdu\buc\bct\bti\bio\bon\bn
+  4.1.  Introduction
 
 
   Most Linux machines are configured so that the kernel occupies the
@@ -628,7 +628,7 @@
 
 
 
-  4\b4.\b.2\b2.\b.  T\bTh\bhe\be p\bpr\bro\bob\bbl\ble\bem\bm
+  4.2.  The problem
 
 
   The prebuilt UML binaries on this site will not run on 2G/2G hosts
@@ -640,7 +640,7 @@
 
 
 
-  4\b4.\b.3\b3.\b.  T\bTh\bhe\be s\bso\bol\blu\but\bti\bio\bon\bn
+  4.3.  The solution
 
 
   The fix for this is to rebuild UML from source after enabling
@@ -658,7 +658,7 @@
 
 
 
-  5\b5.\b.  S\bSe\bet\btt\bti\bin\bng\bg u\bup\bp s\bse\ber\bri\bia\bal\bl l\bli\bin\bne\bes\bs a\ban\bnd\bd c\bco\bon\bns\bso\bol\ble\bes\bs
+  5.  Setting up serial lines and consoles
 
 
   It is possible to attach UML serial lines and consoles to many types
@@ -668,12 +668,12 @@
   You can attach them to host ptys, ttys, file descriptors, and ports.
   This allows you to do things like
 
-  +\bo  have a UML console appear on an unused host console,
+  +  have a UML console appear on an unused host console,
 
-  +\bo  hook two virtual machines together by having one attach to a pty
+  +  hook two virtual machines together by having one attach to a pty
      and having the other attach to the corresponding tty
 
-  +\bo  make a virtual machine accessible from the net by attaching a
+  +  make a virtual machine accessible from the net by attaching a
      console to a port on the host.
 
 
@@ -681,7 +681,7 @@
 
 
 
-  5\b5.\b.1\b1.\b.  S\bSp\bpe\bec\bci\bif\bfy\byi\bin\bng\bg t\bth\bhe\be d\bde\bev\bvi\bic\bce\be
+  5.1.  Specifying the device
 
   Devices are specified with "con" or "ssl" (console or serial line,
   respectively), optionally with a device number if you are talking
@@ -708,13 +708,13 @@
 
 
 
-  5\b5.\b.2\b2.\b.  S\bSp\bpe\bec\bci\bif\bfy\byi\bin\bng\bg t\bth\bhe\be c\bch\bha\ban\bnn\bne\bel\bl
+  5.2.  Specifying the channel
 
   There are a number of different types of channels to attach a UML
   device to, each with a different way of specifying exactly what to
   attach to.
 
-  +\bo  pseudo-terminals - device=pty pts terminals - device=pts
+  +  pseudo-terminals - device=pty pts terminals - device=pts
 
 
      This will cause UML to allocate a free host pseudo-terminal for the
@@ -722,20 +722,20 @@
      log.  You access it by attaching a terminal program to the
      corresponding tty:
 
-  +\bo  screen /dev/pts/n
+  +  screen /dev/pts/n
 
-  +\bo  screen /dev/ttyxx
+  +  screen /dev/ttyxx
 
-  +\bo  minicom -o -p /dev/ttyxx - minicom seems not able to handle pts
+  +  minicom -o -p /dev/ttyxx - minicom seems not able to handle pts
      devices
 
-  +\bo  kermit - start it up, 'open' the device, then 'connect'
+  +  kermit - start it up, 'open' the device, then 'connect'
 
 
 
 
 
-  +\bo  terminals - device=tty:tty device file
+  +  terminals - device=tty:tty device file
 
 
      This will make UML attach the device to the specified tty (i.e
@@ -754,7 +754,7 @@
 
 
 
-  +\bo  xterms - device=xterm
+  +  xterms - device=xterm
 
 
      UML will run an xterm and the device will be attached to it.
@@ -763,7 +763,7 @@
 
 
 
-  +\bo  Port - device=port:port number
+  +  Port - device=port:port number
 
 
      This will attach the UML devices to the specified host port.
@@ -807,7 +807,7 @@
 
 
 
-  +\bo  already-existing file descriptors - device=file descriptor
+  +  already-existing file descriptors - device=file descriptor
 
 
      If you set up a file descriptor on the UML command line, you can
@@ -825,7 +825,7 @@
 
 
 
-  +\bo  Nothing - device=null
+  +  Nothing - device=null
 
 
      This allows the device to be opened, in contrast to 'none', but
@@ -836,7 +836,7 @@
 
 
 
-  +\bo  None - device=none
+  +  None - device=none
 
 
      This causes the device to disappear.  If you are using devfs, the
@@ -869,7 +869,7 @@
 
 
 
-  5\b5.\b.3\b3.\b.  E\bEx\bxa\bam\bmp\bpl\ble\bes\bs
+  5.3.  Examples
 
   There are a number of interesting things you can do with this
   capability.
@@ -922,7 +922,7 @@
   prompt of the other virtual machine.
 
 
-  6\b6.\b.  S\bSe\bet\btt\bti\bin\bng\bg u\bup\bp t\bth\bhe\be n\bne\bet\btw\bwo\bor\brk\bk
+  6.  Setting up the network
 
 
 
@@ -942,19 +942,19 @@
   There are currently five transport types available for a UML virtual
   machine to exchange packets with other hosts:
 
-  +\bo  ethertap
+  +  ethertap
 
-  +\bo  TUN/TAP
+  +  TUN/TAP
 
-  +\bo  Multicast
+  +  Multicast
 
-  +\bo  a switch daemon
+  +  a switch daemon
 
-  +\bo  slip
+  +  slip
 
-  +\bo  slirp
+  +  slirp
 
-  +\bo  pcap
+  +  pcap
 
      The TUN/TAP, ethertap, slip, and slirp transports allow a UML
      instance to exchange packets with the host.  They may be directed
@@ -977,28 +977,28 @@
   With so many host transports, which one should you use?  Here's when
   you should use each one:
 
-  +\bo  ethertap - if you want access to the host networking and it is
+  +  ethertap - if you want access to the host networking and it is
      running 2.2
 
-  +\bo  TUN/TAP - if you want access to the host networking and it is
+  +  TUN/TAP - if you want access to the host networking and it is
      running 2.4.  Also, the TUN/TAP transport is able to use a
      preconfigured device, allowing it to avoid using the setuid uml_net
      helper, which is a security advantage.
 
-  +\bo  Multicast - if you want a purely virtual network and you don't want
+  +  Multicast - if you want a purely virtual network and you don't want
      to set up anything but the UML
 
-  +\bo  a switch daemon - if you want a purely virtual network and you
+  +  a switch daemon - if you want a purely virtual network and you
      don't mind running the daemon in order to get somewhat better
      performance
 
-  +\bo  slip - there is no particular reason to run the slip backend unless
+  +  slip - there is no particular reason to run the slip backend unless
      ethertap and TUN/TAP are just not available for some reason
 
-  +\bo  slirp - if you don't have root access on the host to setup
+  +  slirp - if you don't have root access on the host to setup
      networking, or if you don't want to allocate an IP to your UML
 
-  +\bo  pcap - not much use for actual network connectivity, but great for
+  +  pcap - not much use for actual network connectivity, but great for
      monitoring traffic on the host
 
      Ethertap is available on 2.4 and works fine.  TUN/TAP is preferred
@@ -1010,7 +1010,7 @@
      exploit the helper's root privileges.
 
 
-  6\b6.\b.1\b1.\b.  G\bGe\ben\bne\ber\bra\bal\bl s\bse\bet\btu\bup\bp
+  6.1.  General setup
 
   First, you must have the virtual network enabled in your UML.  If are
   running a prebuilt kernel from this site, everything is already
@@ -1079,7 +1079,7 @@
 
 
 
-  6\b6.\b.2\b2.\b.  U\bUs\bse\ber\brs\bsp\bpa\bac\bce\be d\bda\bae\bem\bmo\bon\bns\bs
+  6.2.  Userspace daemons
 
   You will likely need the setuid helper, or the switch daemon, or both.
   They are both installed with the RPM and deb, so if you've installed
@@ -1095,7 +1095,7 @@
 
 
 
-  6\b6.\b.3\b3.\b.  S\bSp\bpe\bec\bci\bif\bfy\byi\bin\bng\bg e\bet\bth\bhe\ber\brn\bne\bet\bt a\bad\bdd\bdr\bre\bes\bss\bse\bes\bs
+  6.3.  Specifying ethernet addresses
 
   Below, you will see that the TUN/TAP, ethertap, and daemon interfaces
   allow you to specify hardware addresses for the virtual ethernet
@@ -1107,11 +1107,11 @@
   sufficient to guarantee a unique hardware address for the device.  A
   couple of exceptions are:
 
-  +\bo  Another set of virtual ethernet devices are on the same network and
+  +  Another set of virtual ethernet devices are on the same network and
      they are assigned hardware addresses using a different scheme which
      may conflict with the UML IP address-based scheme
 
-  +\bo  You aren't going to use the device for IP networking, so you don't
+  +  You aren't going to use the device for IP networking, so you don't
      assign the device an IP address
 
      If you let the driver provide the hardware address, you should make
@@ -1133,7 +1133,7 @@
 
 
 
-  6\b6.\b.4\b4.\b.  U\bUM\bML\bL i\bin\bnt\bte\ber\brf\bfa\bac\bce\be s\bse\bet\btu\bup\bp
+  6.4.  UML interface setup
 
   Once the network devices have been described on the command line, you
   should boot UML and log in.
@@ -1215,7 +1215,7 @@
 
 
 
-  6\b6.\b.5\b5.\b.  M\bMu\bul\blt\bti\bic\bca\bas\bst\bt
+  6.5.  Multicast
 
   The simplest way to set up a virtual network between multiple UMLs is
   to use the mcast transport.  This was written by Harald Welte and is
@@ -1268,7 +1268,7 @@
 
 
 
-  6\b6.\b.6\b6.\b.  T\bTU\bUN\bN/\b/T\bTA\bAP\bP w\bwi\bit\bth\bh t\bth\bhe\be u\bum\bml\bl_\b_n\bne\bet\bt h\bhe\bel\blp\bpe\ber\br
+  6.6.  TUN/TAP with the uml_net helper
 
   TUN/TAP is the preferred mechanism on 2.4 to exchange packets with the
   host.  The TUN/TAP backend has been in UML since 2.4.9-3um.
@@ -1321,10 +1321,10 @@
   There are a couple potential problems with running the TUN/TAP
   transport on a 2.4 host kernel
 
-  +\bo  TUN/TAP seems not to work on 2.4.3 and earlier.  Upgrade the host
+  +  TUN/TAP seems not to work on 2.4.3 and earlier.  Upgrade the host
      kernel or use the ethertap transport.
 
-  +\bo  With an upgraded kernel, TUN/TAP may fail with
+  +  With an upgraded kernel, TUN/TAP may fail with
 
 
        File descriptor in bad state
@@ -1343,7 +1343,7 @@
 
 
 
-  6\b6.\b.7\b7.\b.  T\bTU\bUN\bN/\b/T\bTA\bAP\bP w\bwi\bit\bth\bh a\ba p\bpr\bre\bec\bco\bon\bnf\bfi\big\bgu\bur\bre\bed\bd t\bta\bap\bp d\bde\bev\bvi\bic\bce\be
+  6.7.  TUN/TAP with a preconfigured tap device
 
   If you prefer not to have UML use uml_net (which is somewhat
   insecure), with UML 2.4.17-11, you can set up a TUN/TAP device
@@ -1351,7 +1351,7 @@
   there is no need for root assistance.  Setting up the device is done
   as follows:
 
-  +\bo  Create the device with tunctl (available from the UML utilities
+  +  Create the device with tunctl (available from the UML utilities
      tarball)
 
 
@@ -1365,7 +1365,7 @@
   where uid is the user id or username that UML will be run as.  This
   will tell you what device was created.
 
-  +\bo  Configure the device IP (change IP addresses and device name to
+  +  Configure the device IP (change IP addresses and device name to
      suit)
 
 
@@ -1377,7 +1377,7 @@
 
 
 
-  +\bo  Set up routing and arping if desired - this is my recipe, there are
+  +  Set up routing and arping if desired - this is my recipe, there are
      other ways of doing the same thing
 
 
@@ -1412,7 +1412,7 @@
   utility which reads the information from a config file and sets up
   devices at boot time.
 
-  +\bo  Rather than using up two IPs and ARPing for one of them, you can
+  +  Rather than using up two IPs and ARPing for one of them, you can
      also provide direct access to your LAN by the UML by using a
      bridge.
 
@@ -1491,7 +1491,7 @@
   Note that 'br0' should be setup using ifconfig with the existing IP
   address of eth0, as eth0 no longer has its own IP.
 
-  +\bo
+  +
 
 
      Also, the /dev/net/tun device must be writable by the user running
@@ -1512,11 +1512,11 @@
   devices and chgrp /dev/net/tun to that group with mode 664 or 660.
 
 
-  +\bo  Once the device is set up, run UML with 'eth0=tuntap,device name'
+  +  Once the device is set up, run UML with 'eth0=tuntap,device name'
      (i.e. 'eth0=tuntap,tap0') on the command line (or do it with the
      mconsole config command).
 
-  +\bo  Bring the eth device up in UML and you're in business.
+  +  Bring the eth device up in UML and you're in business.
 
      If you don't want that tap device any more, you can make it non-
      persistent with
@@ -1539,7 +1539,7 @@
 
 
 
-  6\b6.\b.8\b8.\b.  E\bEt\bth\bhe\ber\brt\bta\bap\bp
+  6.8.  Ethertap
 
   Ethertap is the general mechanism on 2.2 for userspace processes to
   exchange packets with the kernel.
@@ -1635,9 +1635,9 @@
 
 
 
-  6\b6.\b.9\b9.\b.  T\bTh\bhe\be s\bsw\bwi\bit\btc\bch\bh d\bda\bae\bem\bmo\bon\bn
+  6.9.  The switch daemon
 
-  N\bNo\bot\bte\be: This is the daemon formerly known as uml_router, but which was
+  Note: This is the daemon formerly known as uml_router, but which was
   renamed so the network weenies of the world would stop growling at me.
 
 
@@ -1723,7 +1723,7 @@
 
 
 
-  6\b6.\b.1\b10\b0.\b.  S\bSl\bli\bip\bp
+  6.10.  Slip
 
   Slip is another, less general, mechanism for a process to communicate
   with the host networking.  In contrast to the ethertap interface,
@@ -1755,7 +1755,7 @@
 
 
 
-  6\b6.\b.1\b11\b1.\b.  S\bSl\bli\bir\brp\bp
+  6.11.  Slirp
 
   slirp uses an external program, usually /usr/bin/slirp, to provide IP
   only networking connectivity through the host. This is similar to IP
@@ -1811,7 +1811,7 @@
 
 
 
-  6\b6.\b.1\b12\b2.\b.  p\bpc\bca\bap\bp
+  6.12.  pcap
 
   The pcap transport is attached to a UML ethernet device on the command
   line or with uml_mconsole with the following syntax:
@@ -1851,7 +1851,7 @@
 
 
 
-  6\b6.\b.1\b13\b3.\b.  S\bSe\bet\btt\bti\bin\bng\bg u\bup\bp t\bth\bhe\be h\bho\bos\bst\bt y\byo\bou\bur\brs\bse\bel\blf\bf
+  6.13.  Setting up the host yourself
 
   If you don't specify an address for the host side of the ethertap or
   slip device, UML won't do any setup on the host.  So this is what is
@@ -1859,7 +1859,7 @@
   192.168.0.251 and a UML-side IP of 192.168.0.250 - adjust to suit your
   own network):
 
-  +\bo  The device needs to be configured with its IP address.  Tap devices
+  +  The device needs to be configured with its IP address.  Tap devices
      are also configured with an mtu of 1484.  Slip devices are
      configured with a point-to-point address pointing at the UML ip
      address.
@@ -1879,7 +1879,7 @@
 
 
 
-  +\bo  If a tap device is being set up, a route is set to the UML IP.
+  +  If a tap device is being set up, a route is set to the UML IP.
 
 
        UML# route add -host 192.168.0.250 gw 192.168.0.251
@@ -1888,7 +1888,7 @@
 
 
 
-  +\bo  To allow other hosts on your network to see the virtual machine,
+  +  To allow other hosts on your network to see the virtual machine,
      proxy arp is set up for it.
 
 
@@ -1898,7 +1898,7 @@
 
 
 
-  +\bo  Finally, the host is set up to route packets.
+  +  Finally, the host is set up to route packets.
 
 
        host#  echo 1 > /proc/sys/net/ipv4/ip_forward
@@ -1912,12 +1912,12 @@
 
 
 
-  7\b7.\b.  S\bSh\bha\bar\bri\bin\bng\bg F\bFi\bil\ble\bes\bsy\bys\bst\bte\bem\bms\bs b\bbe\bet\btw\bwe\bee\ben\bn V\bVi\bir\brt\btu\bua\bal\bl M\bMa\bac\bch\bhi\bin\bne\bes\bs
+  7.  Sharing Filesystems between Virtual Machines
 
 
 
 
-  7\b7.\b.1\b1.\b.  A\bA w\bwa\bar\brn\bni\bin\bng\bg
+  7.1.  A warning
 
   Don't attempt to share filesystems simply by booting two UMLs from the
   same file.  That's the same thing as booting two physical machines
@@ -1925,7 +1925,7 @@
 
 
 
-  7\b7.\b.2\b2.\b.  U\bUs\bsi\bin\bng\bg l\bla\bay\bye\ber\bre\bed\bd b\bbl\blo\boc\bck\bk d\bde\bev\bvi\bic\bce\bes\bs
+  7.2.  Using layered block devices
 
   The way to share a filesystem between two virtual machines is to use
   the copy-on-write (COW) layering capability of the ubd block driver.
@@ -1970,7 +1970,7 @@
 
 
 
-  7\b7.\b.3\b3.\b.  N\bNo\bot\bte\be!\b!
+  7.3.  Note!
 
   When checking the size of the COW file in order to see the gobs of
   space that you're saving, make sure you use 'ls -ls' to see the actual
@@ -2000,7 +2000,7 @@
 
 
 
-  7\b7.\b.4\b4.\b.  A\bAn\bno\bot\bth\bhe\ber\br w\bwa\bar\brn\bni\bin\bng\bg
+  7.4.  Another warning
 
   Once a filesystem is being used as a readonly backing file for a COW
   file, do not boot directly from it or modify it in any way.  Doing so
@@ -2026,7 +2026,7 @@
 
 
 
-  7\b7.\b.5\b5.\b.  u\bum\bml\bl_\b_m\bmo\boo\bo :\b: M\bMe\ber\brg\bgi\bin\bng\bg a\ba C\bCO\bOW\bW f\bfi\bil\ble\be w\bwi\bit\bth\bh i\bit\bts\bs b\bba\bac\bck\bki\bin\bng\bg f\bfi\bil\ble\be
+  7.5.  uml_moo : Merging a COW file with its backing file
 
   Depending on how you use UML and COW devices, it may be advisable to
   merge the changes in the COW file into the backing file every once in
@@ -2075,7 +2075,7 @@
 
 
 
-  8\b8.\b.  C\bCr\bre\bea\bat\bti\bin\bng\bg f\bfi\bil\ble\bes\bsy\bys\bst\bte\bem\bms\bs
+  8.  Creating filesystems
 
 
   You may want to create and mount new UML filesystems, either because
@@ -2089,7 +2089,7 @@
   should be easy to translate to the filesystem of your choice.
 
 
-  8\b8.\b.1\b1.\b.  C\bCr\bre\bea\bat\bte\be t\bth\bhe\be f\bfi\bil\ble\bes\bsy\bys\bst\bte\bem\bm f\bfi\bil\ble\be
+  8.1.  Create the filesystem file
 
   dd is your friend.  All you need to do is tell dd to create an empty
   file of the appropriate size.  I usually make it sparse to save time
@@ -2106,7 +2106,7 @@
 
 
 
-  8\b8.\b.2\b2.\b.  A\bAs\bss\bsi\big\bgn\bn t\bth\bhe\be f\bfi\bil\ble\be t\bto\bo a\ba U\bUM\bML\bL d\bde\bev\bvi\bic\bce\be
+  8.2.  Assign the file to a UML device
 
   Add an argument like the following to the UML command line:
 
@@ -2119,7 +2119,7 @@
 
 
 
-  8\b8.\b.3\b3.\b.  C\bCr\bre\bea\bat\bti\bin\bng\bg a\ban\bnd\bd m\bmo\bou\bun\bnt\bti\bin\bng\bg t\bth\bhe\be f\bfi\bil\ble\bes\bsy\bys\bst\bte\bem\bm
+  8.3.  Creating and mounting the filesystem
 
   Make sure that the filesystem is available, either by being built into
   the kernel, or available as a module, then boot up UML and log in.  If
@@ -2170,7 +2170,7 @@
 
 
 
-  9\b9.\b.  H\bHo\bos\bst\bt f\bfi\bil\ble\be a\bac\bcc\bce\bes\bss\bs
+  9.  Host file access
 
 
   If you want to access files on the host machine from inside UML, you
@@ -2186,7 +2186,7 @@
   files contained in it just as you would on the host.
 
 
-  9\b9.\b.1\b1.\b.  U\bUs\bsi\bin\bng\bg h\bho\bos\bst\btf\bfs\bs
+  9.1.  Using hostfs
 
   To begin with, make sure that hostfs is available inside the virtual
   machine with
@@ -2225,7 +2225,7 @@
 
 
 
-  9\b9.\b.2\b2.\b.  h\bho\bos\bst\btf\bfs\bs a\bas\bs t\bth\bhe\be r\bro\boo\bot\bt f\bfi\bil\ble\bes\bsy\bys\bst\bte\bem\bm
+  9.2.  hostfs as the root filesystem
 
   It's possible to boot from a directory hierarchy on the host using
   hostfs rather than using the standard filesystem in a file.
@@ -2268,20 +2268,20 @@
   UML should then boot as it does normally.
 
 
-  9\b9.\b.3\b3.\b.  B\bBu\bui\bil\bld\bdi\bin\bng\bg h\bho\bos\bst\btf\bfs\bs
+  9.3.  Building hostfs
 
   If you need to build hostfs because it's not in your kernel, you have
   two choices:
 
 
 
-  +\bo  Compiling hostfs into the kernel:
+  +  Compiling hostfs into the kernel:
 
 
      Reconfigure the kernel and set the 'Host filesystem' option under
 
 
-  +\bo  Compiling hostfs as a module:
+  +  Compiling hostfs as a module:
 
 
      Reconfigure the kernel and set the 'Host filesystem' option under
@@ -2302,7 +2302,7 @@
 
 
 
-  1\b10\b0.\b.  T\bTh\bhe\be M\bMa\ban\bna\bag\bge\bem\bme\ben\bnt\bt C\bCo\bon\bns\bso\bol\ble\be
+  10.  The Management Console
 
 
 
@@ -2314,15 +2314,15 @@
 
   There are a number of things you can do with the mconsole interface:
 
-  +\bo  get the kernel version
+  +  get the kernel version
 
-  +\bo  add and remove devices
+  +  add and remove devices
 
-  +\bo  halt or reboot the machine
+  +  halt or reboot the machine
 
-  +\bo  Send SysRq commands
+  +  Send SysRq commands
 
-  +\bo  Pause and resume the UML
+  +  Pause and resume the UML
 
 
   You need the mconsole client (uml_mconsole) which is present in CVS
@@ -2374,28 +2374,28 @@
 
   You'll get a prompt, at which you can run one of these commands:
 
-  +\bo  version
+  +  version
 
-  +\bo  halt
+  +  halt
 
-  +\bo  reboot
+  +  reboot
 
-  +\bo  config
+  +  config
 
-  +\bo  remove
+  +  remove
 
-  +\bo  sysrq
+  +  sysrq
 
-  +\bo  help
+  +  help
 
-  +\bo  cad
+  +  cad
 
-  +\bo  stop
+  +  stop
 
-  +\bo  go
+  +  go
 
 
-  1\b10\b0.\b.1\b1.\b.  v\bve\ber\brs\bsi\bio\bon\bn
+  10.1.  version
 
   This takes no arguments.  It prints the UML version.
 
@@ -2416,7 +2416,7 @@
 
 
 
-  1\b10\b0.\b.2\b2.\b.  h\bha\bal\blt\bt a\ban\bnd\bd r\bre\beb\bbo\boo\bot\bt
+  10.2.  halt and reboot
 
   These take no arguments.  They shut the machine down immediately, with
   no syncing of disks and no clean shutdown of userspace.  So, they are
@@ -2431,7 +2431,7 @@
 
 
 
-  1\b10\b0.\b.3\b3.\b.  c\bco\bon\bnf\bfi\big\bg
+  10.3.  config
 
   "config" adds a new device to the virtual machine.  Currently the ubd
   and network drivers support this.  It takes one argument, which is the
@@ -2452,7 +2452,7 @@
 
 
 
-  1\b10\b0.\b.4\b4.\b.  r\bre\bem\bmo\bov\bve\be
+  10.4.  remove
 
   "remove" deletes a device from the system.  Its argument is just the
   name of the device to be removed. The device must be idle in whatever
@@ -2471,7 +2471,7 @@
 
 
 
-  1\b10\b0.\b.5\b5.\b.  s\bsy\bys\bsr\brq\bq
+  10.5.  sysrq
 
   This takes one argument, which is a single letter.  It calls the
   generic kernel's SysRq driver, which does whatever is called for by
@@ -2481,14 +2481,14 @@
 
 
 
-  1\b10\b0.\b.6\b6.\b.  h\bhe\bel\blp\bp
+  10.6.  help
 
   "help" returns a string listing the valid commands and what each one
   does.
 
 
 
-  1\b10\b0.\b.7\b7.\b.  c\bca\bad\bd
+  10.7.  cad
 
   This invokes the Ctl-Alt-Del action on init.  What exactly this ends
   up doing is up to /etc/inittab.  Normally, it reboots the machine.
@@ -2506,7 +2506,7 @@
 
 
 
-  1\b10\b0.\b.8\b8.\b.  s\bst\bto\bop\bp
+  10.8.  stop
 
   This puts the UML in a loop reading mconsole requests until a 'go'
   mconsole command is received. This is very useful for making backups
@@ -2522,7 +2522,7 @@
 
 
 
-  1\b10\b0.\b.9\b9.\b.  g\bgo\bo
+  10.9.  go
 
   This resumes a UML after being paused by a 'stop' command. Note that
   when the UML has resumed, TCP connections may have timed out and if
@@ -2536,10 +2536,10 @@
 
 
 
-  1\b11\b1.\b.  K\bKe\ber\brn\bne\bel\bl d\bde\beb\bbu\bug\bgg\bgi\bin\bng\bg
+  11.  Kernel debugging
 
 
-  N\bNo\bot\bte\be:\b: The interface that makes debugging, as described here, possible
+  Note: The interface that makes debugging, as described here, possible
   is present in 2.4.0-test6 kernels and later.
 
 
@@ -2559,7 +2559,7 @@
 
 
 
-  1\b11\b1.\b.1\b1.\b.  S\bSt\bta\bar\brt\bti\bin\bng\bg t\bth\bhe\be k\bke\ber\brn\bne\bel\bl u\bun\bnd\bde\ber\br g\bgd\bdb\bb
+  11.1.  Starting the kernel under gdb
 
   You can have the kernel running under the control of gdb from the
   beginning by putting 'debug' on the command line.  You will get an
@@ -2572,7 +2572,7 @@
   There is a transcript of a debugging session  here <debug-
   session.html> , with breakpoints being set in the scheduler and in an
   interrupt handler.
-  1\b11\b1.\b.2\b2.\b.  E\bEx\bxa\bam\bmi\bin\bni\bin\bng\bg s\bsl\ble\bee\bep\bpi\bin\bng\bg p\bpr\bro\boc\bce\bes\bss\bse\bes\bs
+  11.2.  Examining sleeping processes
 
   Not every bug is evident in the currently running process.  Sometimes,
   processes hang in the kernel when they shouldn't because they've
@@ -2590,7 +2590,7 @@
 
   Now what you do is this:
 
-  +\bo  detach from the current thread
+  +  detach from the current thread
 
 
        (UML gdb)  det
@@ -2599,7 +2599,7 @@
 
 
 
-  +\bo  attach to the thread you are interested in
+  +  attach to the thread you are interested in
 
 
        (UML gdb)  att <host pid>
@@ -2608,7 +2608,7 @@
 
 
 
-  +\bo  look at its stack and anything else of interest
+  +  look at its stack and anything else of interest
 
 
        (UML gdb)  bt
@@ -2619,7 +2619,7 @@
   Note that you can't do anything at this point that requires that a
   process execute, e.g. calling a function
 
-  +\bo  when you're done looking at that process, reattach to the current
+  +  when you're done looking at that process, reattach to the current
      thread and continue it
 
 
@@ -2643,12 +2643,12 @@
 
 
 
-  1\b11\b1.\b.3\b3.\b.  R\bRu\bun\bnn\bni\bin\bng\bg d\bdd\bdd\bd o\bon\bn U\bUM\bML\bL
+  11.3.  Running ddd on UML
 
   ddd works on UML, but requires a special kludge.  The process goes
   like this:
 
-  +\bo  Start ddd
+  +  Start ddd
 
 
        host% ddd linux
@@ -2657,14 +2657,14 @@
 
 
 
-  +\bo  With ps, get the pid of the gdb that ddd started.  You can ask the
+  +  With ps, get the pid of the gdb that ddd started.  You can ask the
      gdb to tell you, but for some reason that confuses things and
      causes a hang.
 
-  +\bo  run UML with 'debug=parent gdb-pid=<pid>' added to the command line
+  +  run UML with 'debug=parent gdb-pid=<pid>' added to the command line
      - it will just sit there after you hit return
 
-  +\bo  type 'att 1' to the ddd gdb and you will see something like
+  +  type 'att 1' to the ddd gdb and you will see something like
 
 
        0xa013dc51 in __kill ()
@@ -2676,12 +2676,12 @@
 
 
 
-  +\bo  At this point, type 'c', UML will boot up, and you can use ddd just
+  +  At this point, type 'c', UML will boot up, and you can use ddd just
      as you do on any other process.
 
 
 
-  1\b11\b1.\b.4\b4.\b.  D\bDe\beb\bbu\bug\bgg\bgi\bin\bng\bg m\bmo\bod\bdu\bul\ble\bes\bs
+  11.4.  Debugging modules
 
   gdb has support for debugging code which is dynamically loaded into
   the process.  This support is what is needed to debug kernel modules
@@ -2897,7 +2897,7 @@
 
 
 
-  1\b11\b1.\b.5\b5.\b.  A\bAt\btt\bta\bac\bch\bhi\bin\bng\bg g\bgd\bdb\bb t\bto\bo t\bth\bhe\be k\bke\ber\brn\bne\bel\bl
+  11.5.  Attaching gdb to the kernel
 
   If you don't have the kernel running under gdb, you can attach gdb to
   it later by sending the tracing thread a SIGUSR1.  The first line of
@@ -2931,7 +2931,7 @@
 
 
 
-  1\b11\b1.\b.6\b6.\b.  U\bUs\bsi\bin\bng\bg a\bal\blt\bte\ber\brn\bna\bat\bte\be d\bde\beb\bbu\bug\bgg\bge\ber\brs\bs
+  11.6.  Using alternate debuggers
 
   UML has support for attaching to an already running debugger rather
   than starting gdb itself.  This is present in CVS as of 17 Apr 2001.
@@ -2960,7 +2960,7 @@
   An example of an alternate debugger is strace.  You can strace the
   actual kernel as follows:
 
-  +\bo  Run the following in a shell
+  +  Run the following in a shell
 
 
        host%
@@ -2968,10 +2968,10 @@
 
 
 
-  +\bo  Run UML with 'debug' and 'gdb-pid=<pid>' with the pid printed out
+  +  Run UML with 'debug' and 'gdb-pid=<pid>' with the pid printed out
      by the previous command
 
-  +\bo  Hit return in the shell, and UML will start running, and strace
+  +  Hit return in the shell, and UML will start running, and strace
      output will start accumulating in the output file.
 
      Note that this is different from running
@@ -2991,9 +2991,9 @@
 
 
 
-  1\b12\b2.\b.  K\bKe\ber\brn\bne\bel\bl d\bde\beb\bbu\bug\bgg\bgi\bin\bng\bg e\bex\bxa\bam\bmp\bpl\ble\bes\bs
+  12.  Kernel debugging examples
 
-  1\b12\b2.\b.1\b1.\b.  T\bTh\bhe\be c\bca\bas\bse\be o\bof\bf t\bth\bhe\be h\bhu\bun\bng\bg f\bfs\bsc\bck\bk
+  12.1.  The case of the hung fsck
 
   When booting up the kernel, fsck failed, and dropped me into a shell
   to fix things up.  I ran fsck -y, which hung:
@@ -3228,9 +3228,9 @@
 
   The interesting things here are :
 
-  +\bo  There are two segfaults on this stack (frames 9 and 14)
+  +  There are two segfaults on this stack (frames 9 and 14)
 
-  +\bo  The first faulting address (frame 11) is 0x50000800
+  +  The first faulting address (frame 11) is 0x50000800
 
   (gdb) p (void *)1342179328
   $16 = (void *) 0x50000800
@@ -3473,7 +3473,7 @@
   on will be somewhat clearer.
 
 
-  1\b12\b2.\b.2\b2.\b.  E\bEp\bpi\bis\bso\bod\bde\be 2\b2:\b: T\bTh\bhe\be c\bca\bas\bse\be o\bof\bf t\bth\bhe\be h\bhu\bun\bng\bg f\bfs\bsc\bck\bk
+  12.2.  Episode 2: The case of the hung fsck
 
   After setting a trap in the SEGV handler for accesses to the signal
   thread's stack, I reran the kernel.
@@ -3862,12 +3862,12 @@
 
 
 
-  1\b13\b3.\b.  W\bWh\bha\bat\bt t\bto\bo d\bdo\bo w\bwh\bhe\ben\bn U\bUM\bML\bL d\bdo\boe\bes\bsn\bn'\b't\bt w\bwo\bor\brk\bk
+  13.  What to do when UML doesn't work
 
 
 
 
-  1\b13\b3.\b.1\b1.\b.  S\bSt\btr\bra\ban\bng\bge\be c\bco\bom\bmp\bpi\bil\bla\bat\bti\bio\bon\bn e\ber\brr\bro\bor\brs\bs w\bwh\bhe\ben\bn y\byo\bou\bu b\bbu\bui\bil\bld\bd f\bfr\bro\bom\bm s\bso\bou\bur\brc\bce\be
+  13.1.  Strange compilation errors when you build from source
 
   As of test11, it is necessary to have "ARCH=um" in the environment or
   on the make command line for all steps in building UML, including
@@ -3898,7 +3898,7 @@
 
 
 
-  1\b13\b3.\b.2\b2.\b.  U\bUM\bML\bL h\bha\ban\bng\bgs\bs o\bon\bn b\bbo\boo\bot\bt a\baf\bft\bte\ber\br m\bmo\bou\bun\bnt\bti\bin\bng\bg d\bde\bev\bvf\bfs\bs
+  13.2.  UML hangs on boot after mounting devfs
 
   The boot looks like this:
 
@@ -3921,8 +3921,8 @@
 
 
 
-  1\b13\b3.\b.3\b3.\b.  A\bA v\bva\bar\bri\bie\bet\bty\by o\bof\bf p\bpa\ban\bni\bic\bcs\bs a\ban\bnd\bd h\bha\ban\bng\bgs\bs w\bwi\bit\bth\bh /\b/t\btm\bmp\bp o\bon\bn a\ba r\bre\bei\bis\bse\ber\brf\bfs\bs  f\bfi\bil\ble\bes\bsy\bys\bs-\b-
-  t\bte\bem\bm
+  13.3.  A variety of panics and hangs with /tmp on a reiserfs  filesys-
+  tem
 
   I saw this on reiserfs 3.5.21 and it seems to be fixed in 3.5.27.
   Panics preceded by
@@ -3939,8 +3939,8 @@
 
 
 
-  1\b13\b3.\b.4\b4.\b.  T\bTh\bhe\be c\bco\bom\bmp\bpi\bil\ble\be f\bfa\bai\bil\bls\bs w\bwi\bit\bth\bh e\ber\brr\bro\bor\brs\bs a\bab\bbo\bou\but\bt c\bco\bon\bnf\bfl\bli\bic\bct\bti\bin\bng\bg t\bty\byp\bpe\bes\bs f\bfo\bor\br
-  '\b'o\bop\bpe\ben\bn'\b',\b, '\b'd\bdu\bup\bp'\b',\b, a\ban\bnd\bd '\b'w\bwa\bai\bit\btp\bpi\bid\bd'\b'
+  13.4.  The compile fails with errors about conflicting types for
+  'open', 'dup', and 'waitpid'
 
   This happens when you build in /usr/src/linux.  The UML build makes
   the include/asm link point to include/asm-um.  /usr/include/asm points
@@ -3951,14 +3951,14 @@
 
 
 
-  1\b13\b3.\b.5\b5.\b.  U\bUM\bML\bL d\bdo\boe\bes\bsn\bn'\b't\bt w\bwo\bor\brk\bk w\bwh\bhe\ben\bn /\b/t\btm\bmp\bp i\bis\bs a\ban\bn N\bNF\bFS\bS f\bfi\bil\ble\bes\bsy\bys\bst\bte\bem\bm
+  13.5.  UML doesn't work when /tmp is an NFS filesystem
 
   This seems to be a similar situation with the resierfs problem above.
   Some versions of NFS seems not to handle mmap correctly, which UML
   depends on.  The workaround is have /tmp be non-NFS directory.
 
 
-  1\b13\b3.\b.6\b6.\b.  U\bUM\bML\bL h\bha\ban\bng\bgs\bs o\bon\bn b\bbo\boo\bot\bt w\bwh\bhe\ben\bn c\bco\bom\bmp\bpi\bil\ble\bed\bd w\bwi\bit\bth\bh g\bgp\bpr\bro\bof\bf s\bsu\bup\bpp\bpo\bor\brt\bt
+  13.6.  UML hangs on boot when compiled with gprof support
 
   If you build UML with gprof support and, early in the boot, it does
   this
@@ -3975,7 +3975,7 @@
 
 
 
-  1\b13\b3.\b.7\b7.\b.  s\bsy\bys\bsl\blo\bog\bgd\bd d\bdi\bie\bes\bs w\bwi\bit\bth\bh a\ba S\bSI\bIG\bGT\bTE\bER\bRM\bM o\bon\bn s\bst\bta\bar\brt\btu\bup\bp
+  13.7.  syslogd dies with a SIGTERM on startup
 
   The exact boot error depends on the distribution that you're booting,
   but Debian produces this:
@@ -3994,17 +3994,17 @@
 
 
 
-  1\b13\b3.\b.8\b8.\b.  T\bTU\bUN\bN/\b/T\bTA\bAP\bP n\bne\bet\btw\bwo\bor\brk\bki\bin\bng\bg d\bdo\boe\bes\bsn\bn'\b't\bt w\bwo\bor\brk\bk o\bon\bn a\ba 2\b2.\b.4\b4 h\bho\bos\bst\bt
+  13.8.  TUN/TAP networking doesn't work on a 2.4 host
 
   There are a couple of problems which were
   <http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="pointed
   out">  by Tim Robinson <timro at trkr dot net>
 
-  +\bo  It doesn't work on hosts running 2.4.7 (or thereabouts) or earlier.
+  +  It doesn't work on hosts running 2.4.7 (or thereabouts) or earlier.
      The fix is to upgrade to something more recent and then read the
      next item.
 
-  +\bo  If you see
+  +  If you see
 
 
        File descriptor in bad state
@@ -4018,8 +4018,8 @@
 
 
 
-  1\b13\b3.\b.9\b9.\b.  Y\bYo\bou\bu c\bca\ban\bn n\bne\bet\btw\bwo\bor\brk\bk t\bto\bo t\bth\bhe\be h\bho\bos\bst\bt b\bbu\but\bt n\bno\bot\bt t\bto\bo o\bot\bth\bhe\ber\br m\bma\bac\bch\bhi\bin\bne\bes\bs o\bon\bn t\bth\bhe\be
-  n\bne\bet\bt
+  13.9.  You can network to the host but not to other machines on the
+  net
 
   If you can connect to the host, and the host can connect to UML, but
   you can not connect to any other machines, then you may need to enable
@@ -4069,7 +4069,7 @@
 
 
 
-  1\b13\b3.\b.1\b10\b0.\b.  I\bI h\bha\bav\bve\be n\bno\bo r\bro\boo\bot\bt a\ban\bnd\bd I\bI w\bwa\ban\bnt\bt t\bto\bo s\bsc\bcr\bre\bea\bam\bm
+  13.10.  I have no root and I want to scream
 
   Thanks to Birgit Wahlich for telling me about this strange one.  It
   turns out that there's a limit of six environment variables on the
@@ -4084,7 +4084,7 @@
 
 
 
-  1\b13\b3.\b.1\b11\b1.\b.  U\bUM\bML\bL b\bbu\bui\bil\bld\bd c\bco\bon\bnf\bfl\bli\bic\bct\bt b\bbe\bet\btw\bwe\bee\ben\bn p\bpt\btr\bra\bac\bce\be.\b.h\bh a\ban\bnd\bd u\buc\bco\bon\bnt\bte\bex\bxt\bt.\b.h\bh
+  13.11.  UML build conflict between ptrace.h and ucontext.h
 
   On some older systems, /usr/include/asm/ptrace.h and
   /usr/include/sys/ucontext.h define the same names.  So, when they're
@@ -4104,7 +4104,7 @@
 
 
 
-  1\b13\b3.\b.1\b12\b2.\b.  T\bTh\bhe\be U\bUM\bML\bL B\bBo\bog\bgo\boM\bMi\bip\bps\bs i\bis\bs e\bex\bxa\bac\bct\btl\bly\by h\bha\bal\blf\bf t\bth\bhe\be h\bho\bos\bst\bt'\b's\bs B\bBo\bog\bgo\boM\bMi\bip\bps\bs
+  13.12.  The UML BogoMips is exactly half the host's BogoMips
 
   On i386 kernels, there are two ways of running the loop that is used
   to calculate the BogoMips rating, using the TSC if it's there or using
@@ -4116,7 +4116,7 @@
 
 
 
-  1\b13\b3.\b.1\b13\b3.\b.  W\bWh\bhe\ben\bn y\byo\bou\bu r\bru\bun\bn U\bUM\bML\bL,\b, i\bit\bt i\bim\bmm\bme\bed\bdi\bia\bat\bte\bel\bly\by s\bse\beg\bgf\bfa\bau\bul\blt\bts\bs
+  13.13.  When you run UML, it immediately segfaults
 
   If the host is configured with the 2G/2G address space split, that's
   why.  See ``UML on 2G/2G hosts''  for the details on getting UML to
@@ -4124,7 +4124,7 @@
 
 
 
-  1\b13\b3.\b.1\b14\b4.\b.  x\bxt\bte\ber\brm\bms\bs a\bap\bpp\bpe\bea\bar\br,\b, t\bth\bhe\ben\bn i\bim\bmm\bme\bed\bdi\bia\bat\bte\bel\bly\by d\bdi\bis\bsa\bap\bpp\bpe\bea\bar\br
+  13.14.  xterms appear, then immediately disappear
 
   If you're running an up to date kernel with an old release of
   uml_utilities, the port-helper program will not work properly, so
@@ -4136,7 +4136,7 @@
 
 
 
-  1\b13\b3.\b.1\b15\b5.\b.  A\bAn\bny\by o\bot\bth\bhe\ber\br p\bpa\ban\bni\bic\bc,\b, h\bha\ban\bng\bg,\b, o\bor\br s\bst\btr\bra\ban\bng\bge\be b\bbe\beh\bha\bav\bvi\bio\bor\br
+  13.15.  Any other panic, hang, or strange behavior
 
   If you're seeing truly strange behavior, such as hangs or panics that
   happen in random places, or you try running the debugger to see what's
@@ -4156,7 +4156,7 @@
 
   If you want to be super-helpful, read ``Diagnosing Problems'' and
   follow the instructions contained therein.
-  1\b14\b4.\b.  D\bDi\bia\bag\bgn\bno\bos\bsi\bin\bng\bg P\bPr\bro\bob\bbl\ble\bem\bms\bs
+  14.  Diagnosing Problems
 
 
   If you get UML to crash, hang, or otherwise misbehave, you should
@@ -4175,7 +4175,7 @@
   ``Kernel debugging''  UML first.
 
 
-  1\b14\b4.\b.1\b1.\b.  C\bCa\bas\bse\be 1\b1 :\b: N\bNo\bor\brm\bma\bal\bl k\bke\ber\brn\bne\bel\bl p\bpa\ban\bni\bic\bcs\bs
+  14.1.  Case 1 : Normal kernel panics
 
   The most common case is for a normal thread to panic.  To debug this,
   you will need to run it under the debugger (add 'debug' to the command
@@ -4225,7 +4225,7 @@
   to get that information from the faulting ip.
 
 
-  1\b14\b4.\b.2\b2.\b.  C\bCa\bas\bse\be 2\b2 :\b: T\bTr\bra\bac\bci\bin\bng\bg t\bth\bhr\bre\bea\bad\bd p\bpa\ban\bni\bic\bcs\bs
+  14.2.  Case 2 : Tracing thread panics
 
   The less common and more painful case is when the tracing thread
   panics.  In this case, the kernel debugger will be useless because it
@@ -4258,7 +4258,7 @@
   backtrace in and wait for our crack debugging team to fix the problem.
 
 
-  1\b14\b4.\b.3\b3.\b.  C\bCa\bas\bse\be 3\b3 :\b: T\bTr\bra\bac\bci\bin\bng\bg t\bth\bhr\bre\bea\bad\bd p\bpa\ban\bni\bic\bcs\bs c\bca\bau\bus\bse\bed\bd b\bby\by o\bot\bth\bhe\ber\br t\bth\bhr\bre\bea\bad\bds\bs
+  14.3.  Case 3 : Tracing thread panics caused by other threads
 
   However, there are cases where the misbehavior of another thread
   caused the problem.  The most common panic of this type is:
@@ -4324,7 +4324,7 @@
 
 
 
-  1\b14\b4.\b.4\b4.\b.  C\bCa\bas\bse\be 4\b4 :\b: H\bHa\ban\bng\bgs\bs
+  14.4.  Case 4 : Hangs
 
   Hangs seem to be fairly rare, but they sometimes happen.  When a hang
   happens, we need a backtrace from the offending process.  Run the
@@ -4354,7 +4354,7 @@
 
 
 
-  1\b15\b5.\b.  T\bTh\bha\ban\bnk\bks\bs
+  15.  Thanks
 
 
   A number of people have helped this project in various ways, and this
@@ -4371,20 +4371,20 @@
   bookkeeping lapses and I forget about contributions.
 
 
-  1\b15\b5.\b.1\b1.\b.  C\bCo\bod\bde\be a\ban\bnd\bd D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn
+  15.1.  Code and Documentation
 
   Rusty Russell <rusty at linuxcare.com.au>  -
 
-  +\bo  wrote the  HOWTO <http://user-mode-
+  +  wrote the  HOWTO <http://user-mode-
      linux.sourceforge.net/UserModeLinux-HOWTO.html>
 
-  +\bo  prodded me into making this project official and putting it on
+  +  prodded me into making this project official and putting it on
      SourceForge
 
-  +\bo  came up with the way cool UML logo <http://user-mode-
+  +  came up with the way cool UML logo <http://user-mode-
      linux.sourceforge.net/uml-small.png>
 
-  +\bo  redid the config process
+  +  redid the config process
 
 
   Peter Moulder <reiter at netspace.net.au>  - Fixed my config and build
@@ -4393,18 +4393,18 @@
 
   Bill Stearns <wstearns at pobox.com>  -
 
-  +\bo  HOWTO updates
+  +  HOWTO updates
 
-  +\bo  lots of bug reports
+  +  lots of bug reports
 
-  +\bo  lots of testing
+  +  lots of testing
 
-  +\bo  dedicated a box (uml.ists.dartmouth.edu) to support UML development
+  +  dedicated a box (uml.ists.dartmouth.edu) to support UML development
 
-  +\bo  wrote the mkrootfs script, which allows bootable filesystems of
+  +  wrote the mkrootfs script, which allows bootable filesystems of
      RPM-based distributions to be cranked out
 
-  +\bo  cranked out a large number of filesystems with said script
+  +  cranked out a large number of filesystems with said script
 
 
   Jim Leu <jleu at mindspring.com>  - Wrote the virtual ethernet driver
@@ -4472,176 +4472,176 @@
 
   David Coulson <http://davidcoulson.net>  -
 
-  +\bo  Set up the usermodelinux.org <http://usermodelinux.org>  site,
+  +  Set up the usermodelinux.org <http://usermodelinux.org>  site,
      which is a great way of keeping the UML user community on top of
      UML goings-on.
 
-  +\bo  Site documentation and updates
+  +  Site documentation and updates
 
-  +\bo  Nifty little UML management daemon  UMLd
+  +  Nifty little UML management daemon  UMLd
      <http://uml.openconsultancy.com/umld/>
 
-  +\bo  Lots of testing and bug reports
+  +  Lots of testing and bug reports
 
 
 
 
-  1\b15\b5.\b.2\b2.\b.  F\bFl\blu\bus\bsh\bhi\bin\bng\bg o\bou\but\bt b\bbu\bug\bgs\bs
+  15.2.  Flushing out bugs
 
 
 
-  +\bo  Yuri Pudgorodsky
+  +  Yuri Pudgorodsky
 
-  +\bo  Gerald Britton
+  +  Gerald Britton
 
-  +\bo  Ian Wehrman
+  +  Ian Wehrman
 
-  +\bo  Gord Lamb
+  +  Gord Lamb
 
-  +\bo  Eugene Koontz
+  +  Eugene Koontz
 
-  +\bo  John H. Hartman
+  +  John H. Hartman
 
-  +\bo  Anders Karlsson
+  +  Anders Karlsson
 
-  +\bo  Daniel Phillips
+  +  Daniel Phillips
 
-  +\bo  John Fremlin
+  +  John Fremlin
 
-  +\bo  Rainer Burgstaller
+  +  Rainer Burgstaller
 
-  +\bo  James Stevenson
+  +  James Stevenson
 
-  +\bo  Matt Clay
+  +  Matt Clay
 
-  +\bo  Cliff Jefferies
+  +  Cliff Jefferies
 
-  +\bo  Geoff Hoff
+  +  Geoff Hoff
 
-  +\bo  Lennert Buytenhek
+  +  Lennert Buytenhek
 
-  +\bo  Al Viro
+  +  Al Viro
 
-  +\bo  Frank Klingenhoefer
+  +  Frank Klingenhoefer
 
-  +\bo  Livio Baldini Soares
+  +  Livio Baldini Soares
 
-  +\bo  Jon Burgess
+  +  Jon Burgess
 
-  +\bo  Petru Paler
+  +  Petru Paler
 
-  +\bo  Paul
+  +  Paul
 
-  +\bo  Chris Reahard
+  +  Chris Reahard
 
-  +\bo  Sverker Nilsson
+  +  Sverker Nilsson
 
-  +\bo  Gong Su
+  +  Gong Su
 
-  +\bo  johan verrept
+  +  johan verrept
 
-  +\bo  Bjorn Eriksson
+  +  Bjorn Eriksson
 
-  +\bo  Lorenzo Allegrucci
+  +  Lorenzo Allegrucci
 
-  +\bo  Muli Ben-Yehuda
+  +  Muli Ben-Yehuda
 
-  +\bo  David Mansfield
+  +  David Mansfield
 
-  +\bo  Howard Goff
+  +  Howard Goff
 
-  +\bo  Mike Anderson
+  +  Mike Anderson
 
-  +\bo  John Byrne
+  +  John Byrne
 
-  +\bo  Sapan J. Batia
+  +  Sapan J. Batia
 
-  +\bo  Iris Huang
+  +  Iris Huang
 
-  +\bo  Jan Hudec
+  +  Jan Hudec
 
-  +\bo  Voluspa
+  +  Voluspa
 
 
 
 
-  1\b15\b5.\b.3\b3.\b.  B\bBu\bug\bgl\ble\bet\bts\bs a\ban\bnd\bd c\bcl\ble\bea\ban\bn-\b-u\bup\bps\bs
+  15.3.  Buglets and clean-ups
 
 
 
-  +\bo  Dave Zarzycki
+  +  Dave Zarzycki
 
-  +\bo  Adam Lazur
+  +  Adam Lazur
 
-  +\bo  Boria Feigin
+  +  Boria Feigin
 
-  +\bo  Brian J. Murrell
+  +  Brian J. Murrell
 
-  +\bo  JS
+  +  JS
 
-  +\bo  Roman Zippel
+  +  Roman Zippel
 
-  +\bo  Wil Cooley
+  +  Wil Cooley
 
-  +\bo  Ayelet Shemesh
+  +  Ayelet Shemesh
 
-  +\bo  Will Dyson
+  +  Will Dyson
 
-  +\bo  Sverker Nilsson
+  +  Sverker Nilsson
 
-  +\bo  dvorak
+  +  dvorak
 
-  +\bo  v.naga srinivas
+  +  v.naga srinivas
 
-  +\bo  Shlomi Fish
+  +  Shlomi Fish
 
-  +\bo  Roger Binns
+  +  Roger Binns
 
-  +\bo  johan verrept
+  +  johan verrept
 
-  +\bo  MrChuoi
+  +  MrChuoi
 
-  +\bo  Peter Cleve
+  +  Peter Cleve
 
-  +\bo  Vincent Guffens
+  +  Vincent Guffens
 
-  +\bo  Nathan Scott
+  +  Nathan Scott
 
-  +\bo  Patrick Caulfield
+  +  Patrick Caulfield
 
-  +\bo  jbearce
+  +  jbearce
 
-  +\bo  Catalin Marinas
+  +  Catalin Marinas
 
-  +\bo  Shane Spencer
+  +  Shane Spencer
 
-  +\bo  Zou Min
+  +  Zou Min
 
 
-  +\bo  Ryan Boder
+  +  Ryan Boder
 
-  +\bo  Lorenzo Colitti
+  +  Lorenzo Colitti
 
-  +\bo  Gwendal Grignou
+  +  Gwendal Grignou
 
-  +\bo  Andre' Breiler
+  +  Andre' Breiler
 
-  +\bo  Tsutomu Yasuda
+  +  Tsutomu Yasuda
 
 
 
-  1\b15\b5.\b.4\b4.\b.  C\bCa\bas\bse\be S\bSt\btu\bud\bdi\bie\bes\bs
+  15.4.  Case Studies
 
 
-  +\bo  Jon Wright
+  +  Jon Wright
 
-  +\bo  William McEwan
+  +  William McEwan
 
-  +\bo  Michael Richardson
+  +  Michael Richardson
 
 
 
-  1\b15\b5.\b.5\b5.\b.  O\bOt\bth\bhe\ber\br c\bco\bon\bnt\btr\bri\bib\bbu\but\bti\bio\bon\bns\bs
+  15.5.  Other contributions
 
 
   Bill Carr <Bill.Carr at compaq.com>  made the Red Hat mkrootfs script
@@ -4673,14 +4673,3 @@
   <http://user-mode-linux.sourceforge.net/dl-sf.html>  page in the Jail
   Filesysems section.
 
-
-
-
-
-
-
-
-
-
-
-

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
  2005-09-23  5:37   ` Luke Yang
  2005-09-24 14:51     ` Robert Schwebel
  2005-09-24 19:41     ` Jesper Juhl
@ 2005-09-25  3:09     ` Jesper Juhl
  2 siblings, 0 replies; 10+ messages in thread
From: Jesper Juhl @ 2005-09-25  3:09 UTC (permalink / raw)
  To: Luke Yang; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 4179 bytes --]

On Friday 23 September 2005 07:37, Luke Yang wrote:
> Hi all,
> 
>    This is the ADI Blackfin patch for kernel 2.6.13.  I know this
> patch doesn' meet the kernel patch submission format, but this patch
> is only for reviewing, shows the changes we made.  And I'll send new
> patch for kernel 2.6.14 for you to merge into kernel.
> 
>    This patch mainly includes the arch/bfinnommu architecture files
> and some blackfin specific drivers.  The only change to the common
> files is that we change binfmt.c and related header file, added one
> flat binary format for blackfin. We are considering removing this
> change in next release.
> 
>   The patch is too big to put here , url is
> http://blackfin.uclinux.org/frs/download.php/570/bfinnonnu-linux-2.6.13.patch
> 

Ok, I went through the files in arch/bfinnommu/kernel/ and I have some
comments (I don't have the time to look at the rest of it).
I think you need to do some work before merging this.

I've attached a patch (compressed due to its size) that contain all the 
changes I refer to below. It's just one big patch with all the changes I 
made while I went through the files. It's not split out into logically 
seperate changes - sorry. I just made different types of changes along the 
way, and the attached patch is the result.


You need to clean this stuff up with respect to CodingStyle. Currently the 
files are quite inconsistent in the style(s) they use, and they don't follow
the kernels CodingStyle very closely either.

You have a lot of very deeply nested code (especially in dma.c) that is quite 
hard to follow and also violates the 80column rule. Try to reduce the nesting
depth.
I've made most of the code fit in 80 columns, but I've probably missed a few 
spots.

the *_interrupt functions in dma.c are just begging for a few helper functions
to share common code and reduce complexity. I've reordered them a bit to make 
them more readable, but there's lots more that could be done.

There's *lots* of trailing whitespace all over the place. Please get rid of 
that prior to merging.

There's *lots* of cases of mixing of spaces and tabs for indentation. Indent 
with tabs only please, and certainly don't have lines like 
"<space><tab><space><space><space><space><tab>code" 
like you have at the moment.
I've cleaned up all the trailing whitespace, and some of the other space+tab
braindamage, but there's probably still something left to do.

There are quite a lot of casts in the code, and some of them are completely 
pointless. There's no need to cast the return value of kmalloc(), there's no
need to cast assignments to/from void pointers, there's no need to cast 
assignments between types where normal C promotion rules obtain the same
result.
Such unnesesary casting is harmful. It defeats what limited typechecking C 
has, so the compiler can't help and warn when you do something bad, it also 
lessens the usefullnes of tools such as sparse.
I've cleaned up some of this, but not everything.

You seem to be quite fond of MixingCapsAndLowercaseChars in variable names.
Please don't unless you really have to. Stick to purely lowercase for variable
names as much as possible.
I've renamed a few vars, just as examples.

I stumbled across some unused variables as well that I removed, but there may 
be more.

I've cleaned up a lot of other CodingStyle issues as well. Check the attached 
patch and you'll see.

In dma.c :
  DMA_RESULT set_dma_transfer_size(unsigned int channel, char size)
  DMA_RESULT get_dma_transfer_size(unsigned int channel, unsigned short *size)
Seems inconsistent. Why "char size" for set_dma_transfer_size(), but
"unsigned short *size" for get_dma_transfer_size() ??
An if char is what you want to use for size in set_dma_transfer_size(), then 
shouldn't that be "unsigned char" ?


I think that's all, read the patch (or apply it and look at the results) to 
get all the details. Now I'll go get some sleep...


Ohh, before I leave, one more note:  I have no way at all to test this code, 
so it's quite possible I've made mistakes in the patch I'm attaching, so do 
review it carefully before applying bits from it.


-- 
Jesper Juhl <jesper.juhl@gmail.com>


[-- Attachment #2: blackfin-arch_bfinnommu_kernel.patch.bz2 --]
[-- Type: application/x-bzip2, Size: 37761 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
  2005-09-24 14:51     ` Robert Schwebel
@ 2005-09-27  1:37       ` Luke Yang
  2005-09-27  5:05         ` Robert Schwebel
  0 siblings, 1 reply; 10+ messages in thread
From: Luke Yang @ 2005-09-27  1:37 UTC (permalink / raw)
  To: Robert Schwebel; +Cc: linux-kernel

 We really don't have plan about Blackfin with a MMU now.  So do you
beleve it is necessary to change the name to arch/blackfin?

On 9/24/05, Robert Schwebel <r.schwebel@pengutronix.de> wrote:
> On Fri, Sep 23, 2005 at 01:37:03PM +0800, Luke Yang wrote:
> > This patch mainly includes the arch/bfinnommu architecture files and
> > some blackfin specific drivers.
>
> Having in mind the pain with arm and m68k with and without MMU, could
> you structure that thing in a way that it will be able to share the
> current nommu code with (hopefully coming) code for blackfins which
> might have a MMU? So it would be something like arch/blackfin.
>
> Robert
> --
>  Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
>  Pengutronix - Linux Solutions for Science and Industry
>    Handelsregister:  Amtsgericht Hildesheim, HRA 2686
>      Hannoversche Str. 2, 31134 Hildesheim, Germany
>    Phone: +49-5121-206917-0 |  Fax: +49-5121-206917-9
>
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
  2005-09-27  1:37       ` Luke Yang
@ 2005-09-27  5:05         ` Robert Schwebel
  0 siblings, 0 replies; 10+ messages in thread
From: Robert Schwebel @ 2005-09-27  5:05 UTC (permalink / raw)
  To: Luke Yang; +Cc: linux-kernel

On Tue, Sep 27, 2005 at 09:37:59AM +0800, Luke Yang wrote:
> We really don't have plan about Blackfin with a MMU now. So do you
> beleve it is necessary to change the name to arch/blackfin?

Hmm, as far as I know there are at least plans for variants with memory
protection units (but without virtual addressing), but anyway - why put
the mmu into the architecture name? If you use "blackfin" you are open
to everything and no non dsp guru has to guess what bf might be ;) 

Robert
-- 
 Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
     Hannoversche Str. 2, 31134 Hildesheim, Germany
   Phone: +49-5121-206917-0 |  Fax: +49-5121-206917-9


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
@ 2005-11-01 15:48 Robin Getz
  0 siblings, 0 replies; 10+ messages in thread
From: Robin Getz @ 2005-11-01 15:48 UTC (permalink / raw)
  To: Jacques Moreau; +Cc: linux-kernel

On Sat 10/22/2005, Jacques asked:
>Does this patch is only for Blackfin processor or it add some support for 
>fusiv [1] communications processor that are in residential Gateway ?

The Blackfin/uClinux 2.6.x patch which was prepared (and will be 
maintained) by a separate team(1) who is not working on any fusiv 
processors (which are MIPS-based).

>If no, do you know if analog plans to realease the linux 2.4/2.6 
>modification that have been made in order to support these processors ?

Not sure - Since the two groups are separate, no one on the team here knows 
the plans of the Fusiv team.

>IRRC some Sagem residential Gateways (will) run on Linux OS and the users 
>sould be able ask for the GPL code.

So, the best place to go would be to Sagem (or any company shipping a 
product with Embedded Linux/uClinux). Since they are responsible for 
distributing the binary, it is their responsibility to make the source 
released under GPL or derived from previously GPL'ed software available.

If you received a product from Sagem, which you believe includes GPL'ed 
software - call them and ask for the source:
http://www.sagem.com/index.php?id=445&L=0

If you received a development kit, or other reference design from ADI, 
which you believe includes GPL'ed software, call them and ask for the source:
http://www.analog.com/salesdir/continent.asp

Thanks
-Robin

<shameless plug>
(1)There is a small group of open source developers inside of ADI, focusing 
on the support of the Blackfin processor with various open source projects. 
We have people dedicated to:
  - the FSF's Toolchain (gcc, gdb, binutils) where our patches have
     been accepted into the mainline projects (still working on the
     last kinks gdb pthreads support).
  - Das U-Boot as our chip initialization and bootloader. Booting from the
     network is very powerful in many embedded environments.
  - the GNU/uClinux kernel (Luke's recent patch for 2.6.14), where end
     products are beginning to ship in volume.
  - open source hardware design - free (speech) software isn't any good
     on closed hardware. All of our schematics, gerbers, PCB manufacturing
     files are released under the GPL, and are mostly avalible from
     Digikey, at sub $225 price points.
  - Simulation support with Skyeye
     http://gro.clinux.org/forum/forum.php?forum_id=2619

Our team completely embraces the open source model (release early, release 
often) - using open source tools (GForge, Tinderbox, cvs, dokuwiki), 
publishing everything we do/understand on the web(2). We have been 
responsible for contributions in other open source projects:
   - helped port Linux Test Project (LTP) so it could run on a
      uClinux/uclibc/no-mmu environment
   - helped port Speex to the Blackfin, to run a completely open
       source embedded VoIP phone, based on Linphone.
   - helping update uClinux-dist to other main-line projects.
   - others, but I am starting to get a little wordy.

The combination of Blackfin/uClinux is pretty compelling - the hardware(3) 
has a pretty good span of price(as low as $4.95)/performance(BF561 include 
Dual Core, 600MHz each) & I won't go into the benefits of uClinux and open 
source here :)

If anyone is interested in looking at things running on real hardware, I do 
have a limited amount of hardware I can lend people for poking/porting. 
Some of the things we have working are pretty cool[4]. Send me a private email.

</shameless plug>

[2]http://blackfin.uclinux.org
[2]http://docs.blackfin.uclinux.org
[2]http://cvs.blackfin.uclinux.org
[3]http://www.analog.com/processors/processors/blackfin/index.html
[4]http://www.linuxdevices.com/articles/AT9272421886.html 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ADI Blackfin porting for kernel-2.6.13
@ 2005-10-22 15:08 Jacques Moreau
  0 siblings, 0 replies; 10+ messages in thread
From: Jacques Moreau @ 2005-10-22 15:08 UTC (permalink / raw)
  To: linux-kernel; +Cc: Luke Yang

>Hi,
Hi,


>   I am Luke Yang, an engineer from Analog Devices Inc. We ported
>uclinux to our Blackfin cpu. Now we updated our architecture code for
>kernel-2.6.13. I will send out a patch to this list.
Does this patch is only for Blackfin processor or it add some support for fusiv 
[1] communications processor that are in residential Gateway ?

If no, do you know if analog plans to realease the linux 2.4/2.6 modification
that have been made in order to support these processors ?

IRRC some Sagem residential Gateways[2] (will) run on 
Linux OS and the users sould be able ask for the GPL code.


Jacques




[1] http://www.analog.com/en/prod/0,2877,AD6502,00.html
[2] http://www.sagem.com/index.php?id=193&L=0

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2005-11-01 15:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-20  6:33 ADI Blackfin porting for kernel-2.6.13 Luke Yang
2005-09-20  7:15 ` Deepak Saxena
2005-09-23  5:37   ` Luke Yang
2005-09-24 14:51     ` Robert Schwebel
2005-09-27  1:37       ` Luke Yang
2005-09-27  5:05         ` Robert Schwebel
2005-09-24 19:41     ` Jesper Juhl
2005-09-25  3:09     ` Jesper Juhl
2005-10-22 15:08 Jacques Moreau
2005-11-01 15:48 Robin Getz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).