File:  [NetBSD Developer Wiki] / wikisrc / users / jakllsch.mdwn
Revision 1.5: download - view: text, annotated - select for diffs
Sat Jul 30 15:09:56 2011 UTC (2 years, 8 months ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by jakllsch: Remove some outdated stuff.

# 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.

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb