NetBSD Wiki/users/
jakllsch
Jonathan Kollasch
ddb(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 gdb(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
Needs more work and cleanup. 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. bce(4) and bwi(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.
Add a comment