--- wikisrc/users/jakllsch.mdwn 2009/10/21 01:06:48 1.1 +++ wikisrc/users/jakllsch.mdwn 2011/07/30 15:09:56 1.5 @@ -1,2 +1,40 @@ -## 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. + +### Memory-mapped PCI config access on x86 +Needs cleanup, and maybe some more validation of MCFG tables.