<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.12.3">
</HEAD>
<BODY>
On Wed, 2007-05-30 at 23:40 -0400, Joe Smith wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">Les wrote:</FONT>
<FONT COLOR="#000000">> Hi, Joe, since hotplugging is a hardware function you might consider</FONT>
<FONT COLOR="#000000">> moving that module down into the hardware section.  It would probably</FONT>
<FONT COLOR="#000000">> simplify some of the arrows as well.  I am assuming that by Hotplug, you</FONT>
<FONT COLOR="#000000">> mean the act of removing and replacing or adding hardware without</FONT>
<FONT COLOR="#000000">> turning the system off.</FONT>

<FONT COLOR="#000000">I'm no expert at all--I made the slides for a talk that I gave primarily </FONT>
<FONT COLOR="#000000">to teach myself(!), and I still don't understand a lot of what goes on. </FONT>
<FONT COLOR="#000000">Someone please correct me if I have this mixed up.</FONT>

<FONT COLOR="#000000">My understanding is that, although the initial event is detected by the </FONT>
<FONT COLOR="#000000">kernel, practically the first thing the kernel does is fire off a _shell </FONT>
<FONT COLOR="#000000">script_ and the rest of the response is handled from user space. It's a </FONT>
<FONT COLOR="#000000">bit counter-intuitive that a hardware event should be handled by a </FONT>
<FONT COLOR="#000000">user-space mechanism, but it's a good design, and that's what the </FONT>
<FONT COLOR="#000000">diagram tries to show.</FONT>

<FONT COLOR="#000000">Fortunately, there are smarter people than me who make this stuff mostly </FONT>
<FONT COLOR="#000000">"just work" and I haven't had to look at it in a long time. I see now </FONT>
<FONT COLOR="#000000">that you brought it up, that at least that part has changed. There is no </FONT>
<FONT COLOR="#000000">"/sbin/hotplug" anymore. I'll have to grub around again and see what the </FONT>
<FONT COLOR="#000000">current mechanism is.</FONT>

<FONT COLOR="#000000">I think the relationships between the basic pieces of the diagram are </FONT>
<FONT COLOR="#000000">still correct, but it obviously needs to be updated. I should take it </FONT>
<FONT COLOR="#000000">down or add a disclaimer ;-)</FONT>

<FONT COLOR="#000000">Thanks for the feedback!</FONT>

<FONT COLOR="#000000"><Joe</FONT>

</PRE>
</BLOCKQUOTE>
I'm primarily a hardware guy who writes software.  I think of hotplug as the mechanical constraints that connect first the grounds, then the hot line and finally the signal lines so that when you insert the plug, the board comes up in a good state and begins running.  The software components are based on an interrupt that fires some period of time after the initial contact of the hot line.  The interrupt that occurs is generally refered to as powerup or init, or sometimes just pwron.  And that activates the master interrupt for any processors (NMI is what it is sometimes called, for Non Maskable Interrupt).  From there the software takes over and establishes the initial conditions of the hardware bit.  A handshake has to occur with the motherboard, via the port connection, and that is the software event that lets the driver and OS do their things.  Your diagram is pretty good, I think, but I was unaware that there was a software piece called hotplug.<BR>
<BR>
Regards,<BR>
Les H
</BODY>
</HTML>