Paulus' diary
Friday 4 August
It's now almost a week since I got back from OLS (Ottawa Linux
Symposium) which was really good, lots of interesting people to talk
to. Tridge spent most of the time hacking on the Vaio picturebook and
also on other people's Vaios. It's a bit dangerous really, he looks
like he is just hacking away in a corner not paying any attention to
anyone and actually the little camera on his Vaio is taking
compromising pictures of everybody else in the room. :-)
I hope to be getting an RS6000 44p/270 on loan from IBM some time
soon. That's a box with 4 PowerPC 64-bit cpus, about 4GB of RAM and
heaps of disk. At the moment the kernel runs in 32-bit mode on the
64-bit PPCs. Hopefully we'll have a 64-bit kernel within the next few
months.
Tuesday 18th April
Multilink PPP is working pretty nicely now. It's cute to be able to
dial up a second modem and get double the bandwidth. It seems pretty
robust except when you take out a link, that still doesn't seem to get
cleaned up properly. The combination of packet compression plus
losing every second packet really gets ugly. :-)
Started installing Debian-PPC on the iMacDV here. So far it looks
pretty good. Stephen and Anton, both Debian enthusiasts, were doing
the driving, I'm still on L plates where Debian is concerned.
Saturday 25th March
Last weekend I got the IrDA port working on my old iMac. Yay!! I
finally got motivated to actually pull the whole thing apart so I
could get at the IrDA codec. I borrowed an oscilloscope and spent an
afternoon looking at the waveforms on the signals going in to it - it
hangs off an ordinary mac serial port and it is controlled with TxD,
DTR and RTS. I put some code in the macserial driver to toggle the
lines in the same way and it works just fine. I then tried the same
code on my 1999 G3 powerbook and it works there too.
This is great, it means that I can now sync my palm pilot to my
powerbook over the IR port. I can also talk to my new mobile phone
(cellphone) over the IR port and make data calls (or at least, I will
be able to once the phone company gets around to enabling them
for me).
Tuesday 15th February
Well, it's been a long time since I updated this. The stable kernel
(currently 2.2.15pre7) is running pretty nicely now, it supports the
new Apple machines (G4, iBook, iMacDV) thanks mostly to Ben
Herrenschmidt. Sleep works on my 1999 G3 powerbook and the 3400
powerbook. There are still some video driver issues, though.
There has been furious activity in the development kernel series.
Linus accepted my patch against 2.3.44-pre8 so 2.3.45 is pretty much
up-to-date (just lacking a flush_icache_page).
What else? I got the USB scanner working under Linux just after
Christmas. And I got a G4 powermac (350MHz) on loan from Apple
Australia (thanks, Apple!) and I wrote a little matrix multiply
routine using the Altivec instructions which can go at over 1600
MFlops! :-)
Wednesday 24th November
Found the memory leak in the 2.3 kernels - there was a mistake in
include/asm-ppc/pgtable.h that meant that pages used for page tables
weren't being freed. Now I can compile kernels on my iMac with 32MB
of memory without running out of RAM. The next thing is to do a
driver for the scanner.
Tridge is away today so we have elected him boss for today. :-)
Monday 22nd November
Linux pre-patch 2.3.29-3 is out. Unfortunately there is still some
sort of bad memory leak in the current 2.3 kernels on powermacs. It's
a pain because I would prefer to develop the driver for the scanner
using the current 2.3.x USB code.
Friday 19th November
Fixed the USB sniffer! There was a silly mistake in the logic
description for the GAL, as well as a NOT that got deleted somehow.
It's working well now and I have some good traces from the scanner.
Now I just have to write a driver for it. :-)
Thursday 18th November
Caught up on the diary!!! I have been working on usbdump, a little
program I wrote to print out the traces from the USB sniffer in
readable form. It is apparent that the sniffer isn't handling the bus
turnaround very well. It is seeing the sync pattern in the wrong
place so we are getting extra bits on the beginning of the packet.
Wednesday 17th November
Merged in various patches into Linux 2.2.14pre6. It looks fine, runs
on the iMac and the 7600 at home, with SMP support on the 7600 (the
7600 has a dual-cpu board in it) and on my G3 powerbook. Sent off
the patches to Alan Cox. I really need to set up a web page with info
about what the state of the linux kernel is on powermacs (yes it's
about time, I know :-).
Friday 12th November
Linux 2.3.28 is out already. It's hard to keep up. :-) It needed
some hacking to get it to work, for example, someone had taken out the
call to init_bootmem. Linux doesn't work very well if you don't have
any memory for get_free_page() to return. :-) There seems to be some
sort of bad memory leak in 2.3.28, if I do a kernel compile, the free
memory just drops down and down (the count of cached and shared pages
are low, so it's not the page cache) until the machine starts
thrashing.
Wednesday 10th November
I seem to have fixed the problem with the missing bytes from the USB
sniffer. Adding small series resisters in the data lines going to the
parallel port and terminating the relevant control signals helped a
lot. Also there was a problem with the program in the GAL, it was
missing putting the end-of-packet code in the FIFO if the last byte
needed to be escaped. Getting some good traces from the scanner
(being driven by MacOS) now.
Monday 8th November
Starting to get some useful data from the USB sniffer. We seem to be
dropping bytes here and there, though. I have given up on the ppdev
driver in the 2.3 kernel (/dev/parport0), I get an oops every time I
close it. Instead I hacked up a little program (on an intel linux
box, yes I know) which accesses the parallel port registers directly
and sucks the data in. It would be nice to have a bigger FIFO. With
a 4kB FIFO and data coming in at 1.5MB/s (peak rate) we can't even
last a clock tick (1/100 s).
Wednesday 3rd November
Got yellowdog installed on the hard disk on the rs6000. Now it can
compile its own kernel, which proves that it is all working. :-)
Still using a serial console though.
Monday 1st November
Woohoo! Got the interrupt problems sorted on the rs6000, got the
kernel booted using an NFS root. Next thing is to install yellowdog
on a local hard disk. Still haven't worked the screen out yet, it
appears to be a fairly dumb framebuffer.
Thursday 28th October
Did some more hacking on the RS6000. Now I am getting lots of
interrupts, in fact a continual stream of them, obviously I'm not
acknowledging the interrupt correctly. Back to the 8259 data sheet
(what an awful horrible beast it is, I'm so glad Apple never used it
in their machines :-).
Wednesday 27th October
Spent the whole day working with Bob Edwards on our USB sniffer. This
is a little device we are making which will attach to a USB bus and
record the bytes which go past. Had some trouble programming the
ispLSI chip correctly because of inadequate ground and power
connections and bypassing. A first-year type of mistake, really. :-)
After we fixed that we actually got bytes into the FIFO but there is
still some problem getting them out.