Thread (7 messages) 7 messages, 3 authors, 2000-07-18

Re: switching consoles

flat view

From: Benjamin Herrenschmidt <hidden>
Date: 2000-07-18 21:50:51

i'd think that it would be more likely the nvram resetting.  But PMU is
actually
on ADB.  as far as i know, all direct pmu ioctls (battery query, etc)
are sent
to /dev/adb, while interpreted ioctls (like sleep) are sent to /dev/pmu,
which
is why /dev/pmu features need kernel support and vary from system to system.
Well, in fact, it's exactly the opposite ;)

The PMU is a replacement for Cuda on older machines, and is actually a
microcontroller that, among other things, the the ADB controller of the
machine. When you send PMU commands via /dev/adb, those are passed to the
PMU driver by the ADB layer, and such commands are directly sent to the
PMU. ADB commands are, however, encapsulated in specific PMU commands.

I've done some hacking on MacOS today and found that the Fn key behaviour
can apparently be triggered by setting an ADB register of the keyboard.

If you write 0xc6 0x01 to register 1 of the keyboard, the Fx keys will be
real function keys by default and Fn will trigger the control buttons.
Write 0xc6 00 to revert the behaviour to default.

So a userland tool can be easily hacked using the trackpad tool source as
an example, you have to find the keyboard instead of the trackpad (device
with default and current address 2 should always work on PowerBook and
iBook ADB) and then do the register write of a 2 bytes message
(0xc6 0x01). I can't try this now, but if someone wants to look at it...
The noodle-scratcher in this is the fact that the keyboard's F-key setting is
maintained post-sleep, while trackpad tapping is always reset.  both
being ADB
devs reset upon wake, id think it would get reset.  there could be
something we
are missing.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help