--- wikisrc/users/jakllsch.mdwn 2009/10/21 01:06:48 1.1 +++ wikisrc/users/jakllsch.mdwn 2010/05/01 20:15:13 1.4 @@ -1,2 +1,61 @@ -## Jonathan Kollasch -I'm here, maybe I'll even make a [[todo]] list someday. +# Jonathan Kollasch + +## [[!template id=man name="ddb" section="4"]] tips + +### locating a softc +This locates a device's softc using it's `cfdriver_t` (e.g. `&mainbus_cd`, `&cpu_cd`) and its "device unit" (e.g. the `0` in `mainbus0`). + + db{0}> call device_lookup_private(ohci_cd, 0) + 0xffff800045fb2008 + +### locating structure members +This uses [[!template id=man name="gdb" section="1"]] and a kernel with debugging symbols to find the offset to a element in a structure. + + $ gdb netbsd.gdb + ... + (gdb) print &((struct ohci_softc *)0)->iot + $3 = (bus_space_tag_t *) 0x478 + (gdb) print &((struct ohci_softc *)0)->ioh + $4 = (bus_space_handle_t *) 0x480 + +### peeking at mapped registers + + db{0}> call bus_space_read_4(*(ffff800045fb2008+478), *(ffff800045fb2008+480), 0) + 0x110 + +## Unfinished Projects + +### x86 UEFI kernel loader +Building this for x64 UEFI requires the `ms_abi` function attribute introduced in GCC 4.4 or so. +This project uses Intel UEFI headers and some existing FreeBSD work. +Needs more work and cleanup, also toolchain updates. +Work has been done using the OVMF BIOS images for Qemu. + +### bcm47xx for evbmips +Boots multiuser on NFS root, needs more work and cleanup. +This project is on hold until there's a miniature userland that fits in 4-8MiB flash storage devices, on a flash-oriented file system. +[[!template id=man name="bce" section="4"]] and [[!template id=man name="bwi" section="4"]] would need refactoring to be bus-independent. + +### Conexant PCI DTV driver +I have some code for 23880-3 and 887 host interfaces. +This type of hardware is hard to find freely available docs for. +Tuner/demod drivers from Linux could be ported, but would still be GPLed. +Probably better to keep these drivers in userland. + +Should try to coordinate with what FreeBSD is doing: . + +### Memory-mapped PCI config access on x86 +Needs cleanup, and maybe some more validation of MCFG tables. + +### Toshiba ACPI LCD backlight driver +Loosly based on [[!template id=man name="vald" section="4"]]. Currently attaches to `TOS1900`/`VALZ`, but doesn't interact with this device. +This driver should really attach to `\_SB.PCI0.GFX0.LCD` or +`\_SB.PCI0.PEGP.VGA.LCD`, which are the devices that get notified of +brightness button pushes, and contain the `_BCL`, `_BCM`, and `_BQC` +methods that access the brightness adjustment function. +Such an attachment does not appear to be possible (or at the very least, easy) +at present. + +## Possible Projects +### AMD PowerNow/Cool'n'Quiet states loaded from ACPI tables +