El 16/04/15 a les 15.43, Kevin O'Connor ha escrit:
On Thu, Apr 16, 2015 at 01:46:41PM +0200, Roger Pau Monné wrote:
El 16/04/15 a les 3.43, Kevin O'Connor ha escrit:
If you know which "int 15h" is returning bogus values, you can also use gdb with qemu and set a break point. See http://seabios.org/Debugging .
I've tried this, the function is handle_15c0. This happens quite late in the boot process, the FreeBSD code that triggers this issue is at:
http://fxr.watson.org/fxr/source/dev/atkbdc/atkbd.c#L1163
I've tried to run gdb against SeaBIOS, but it seems like breakpoints are not correctly working. I've launched Qemu with:
# qemu-system-x86_64 -bios out/bios.bin -nographic /dev/zvol/tank/freebsd -s -S
And then:
# gdb782 out/rom16.o
Looks like this broke in gdb at some point. It definitely used to work. You can use this sequence instead:
Thanks, this indeed seems to be better than the previous procedure. All the steps detailed here have been done using the SeaBIOS build with crossgcc from coreboot, which works fine.
$ objcopy --adjust-vma 0xf0000 out/rom16.o rom16offset.o
While doing this I get:
BFD: rom16offset.o: section .text.set_a20 lma 0xf74f8 adjusted to 0xf783c BFD: rom16offset.o: section .text.pic_eoi2 lma 0xf7525 adjusted to 0xf7869 BFD: rom16offset.o: section .text.call32_smm_prep lma 0xf752d adjusted to 0xf7871 BFD: rom16offset.o: section .text.call32_smm_post lma 0xf7558 adjusted to 0xf789c BFD: rom16offset.o: section .text.call32_sloppy_prep lma 0xf757e adjusted to 0xf78c2 BFD: rom16offset.o: section .text.call32_sloppy_post lma 0xf75f6 adjusted to 0xf793a BFD: rom16offset.o: section .text.on_extra_stack lma 0xf7665 adjusted to 0xf79a9 BFD: rom16offset.o: section .text.memset lma 0xf7689 adjusted to 0xf79cd BFD: rom16offset.o: section .text.memcpy lma 0xf7698 adjusted to 0xf79dc BFD: rom16offset.o: section .text.enqueue_key lma 0xf76ca adjusted to 0xf7a0e BFD: rom16offset.o: section .text.ehci_reset_pipe lma 0xf7738 adjusted to 0xf7a7c BFD: rom16offset.o: section .text.lba2chs lma 0xf777f adjusted to 0xf7ac3 BFD: rom16offset.o: section .text.stack_hop_back lma 0xf77c8 adjusted to 0xf7b0c BFD: rom16offset.o: section .text.getLCHS lma 0xf782a adjusted to 0xf7b6e BFD: rom16offset.o: section .text.putsinglehex.isra.41 lma 0xf78a8 adjusted to 0xf7bec BFD: rom16offset.o: section .text.puthex.isra.42 lma 0xf78c3 adjusted to 0xf7c07 BFD: rom16offset.o: section .text.puts_cs.isra.45 lma 0xf796d adjusted to 0xf7cb1 BFD: rom16offset.o: section .text.vring_get_buf.constprop.83 lma 0xf7984 adjusted to 0xf7cc8 BFD: rom16offset.o: section .text.clear_usertimer lma 0xf7a84 adjusted to 0xf7dc8 BFD: rom16offset.o: section .text.set_code_success lma 0xf7acb adjusted to 0xf7e0f BFD: rom16offset.o: section .text.getComAddr lma 0xf7ad7 adjusted to 0xf7e1b BFD: rom16offset.o: section .text.getLptAddr lma 0xf7b09 adjusted to 0xf7e4d BFD: rom16offset.o: section .text.__disk_ret_unimplemented.isra.8 lma 0xf7b3c adjusted to 0xf7e80 BFD: rom16offset.o: section .text.__disk_ret.isra.7 lma 0xf7b64 adjusted to 0xf7ea8 BFD: rom16offset.o: section .text.basic_access lma 0xf7b93 adjusted to 0xf7ed7 BFD: rom16offset.o: section .text.extended_access lma 0xf7cce adjusted to 0xf8012 BFD: rom16offset.o: section .text.disk_1300 lma 0xf7d96 adjusted to 0xf80da BFD: rom16offset.o: section .text.disk_1308 lma 0xf7dd2 adjusted to 0xf8116 BFD: rom16offset.o: section .text.disk_1310 lma 0xf7ef9 adjusted to 0xf823d BFD: rom16offset.o: section .text.floppy_disable_controller lma 0xf7f38 adjusted to 0xf827c BFD: rom16offset.o: section .text.pci_next lma 0xf7f50 adjusted to 0xf8294 BFD: rom16offset.o: section .text.timer_read lma 0xf7fdb adjusted to 0xf831f BFD: rom16offset.o: section .text.timer_check lma 0xf808c adjusted to 0xf83d0 BFD: rom16offset.o: section .text.timer_delay lma 0xf80a8 adjusted to 0xf83ec BFD: rom16offset.o: section .text.udelay lma 0xf80cc adjusted to 0xf8410 BFD: rom16offset.o: section .text.ndelay.constprop.76 lma 0xf80eb adjusted to 0xf842f BFD: rom16offset.o: section .text.putuint.isra.44 lma 0xf810c adjusted to 0xf8450 BFD: rom16offset.o: section .text.fill_generic_edd lma 0xf8153 adjusted to 0xf8497 BFD: rom16offset.o: section .text.fill_edd lma 0xf84b7 adjusted to 0xf87fb BFD: rom16offset.o: section .text.__dprintf lma 0xf86c2 adjusted to 0xf8a06 BFD: rom16offset.o: section .text.dump_regs lma 0xf86d6 adjusted to 0xf8a1a BFD: rom16offset.o: section .text.__warn_timeout lma 0xf876d adjusted to 0xf8ab1 BFD: rom16offset.o: section .text.i8042_wait_write lma 0xf8783 adjusted to 0xf8ac7 BFD: rom16offset.o: section .text.__i8042_command lma 0xf87c0 adjusted to 0xf8b04 BFD: rom16offset.o: section .text.disk_1305 lma 0xf8876 adjusted to 0xf8bba BFD: rom16offset.o: section .text.panic lma 0xf8984 adjusted to 0xf8cc8 BFD: rom16offset.o: section .text.vring_add_buf.constprop.81 lma 0xf899a adjusted to 0xf8cde BFD: rom16offset.o: section .text.handle_12 lma 0xf8bf6 adjusted to 0xf8f3a BFD: rom16offset.o: section .text.handle_11 lma 0xf8c09 adjusted to 0xf8f4d BFD: rom16offset.o: section .text.handle_05 lma 0xf8c1c adjusted to 0xf8f60 BFD: rom16offset.o: section .text.handle_02 lma 0xf8c42 adjusted to 0xf8f86 BFD: rom16offset.o: section .text.call16_smm_helper lma 0xf8c58 adjusted to 0xf8f9c BFD: rom16offset.o: section .text.call16_sloppy_helper lma 0xf8c98 adjusted to 0xf8fdc BFD: rom16offset.o: section .text.call32 lma 0xf8cd8 adjusted to 0xf901c BFD: rom16offset.o: section .text.call32_params.constprop.91 lma 0xf8d95 adjusted to 0xf90d9 BFD: rom16offset.o: section .text.usb_poll_intr lma 0xf8ddd adjusted to 0xf9121 BFD: rom16offset.o: section .text._farcall16 lma 0xf90f4 adjusted to 0xf9438 BFD: rom16offset.o: section .text.__call16_int lma 0xf9135 adjusted to 0xf9479 BFD: rom16offset.o: section .text.handle_75 lma 0xf9146 adjusted to 0xf948a BFD: rom16offset.o: section .text.disk_1346.isra.52 lma 0xf91a1 adjusted to 0xf94e5 BFD: rom16offset.o: section .text.disk_13 lma 0xf923b adjusted to 0xf957f BFD: rom16offset.o: section .text.handle_legacy_disk lma 0xf9577 adjusted to 0xf98bb BFD: rom16offset.o: section .text.process_key lma 0xf95f7 adjusted to 0xf993b BFD: rom16offset.o: section .text.prockeys lma 0xf994c adjusted to 0xf9c90 BFD: rom16offset.o: section .text.procmodkey lma 0xf9997 adjusted to 0xf9cdb BFD: rom16offset.o: section .text.procscankey lma 0xf99ed adjusted to 0xf9d31 BFD: rom16offset.o: section .text.check_irqs lma 0xf9a0a adjusted to 0xf9d4e BFD: rom16offset.o: section .text.virtio_blk_op lma 0xf9a2c adjusted to 0xf9d70 BFD: rom16offset.o: section .text.rtc_updating lma 0xf9b6a adjusted to 0xf9eae BFD: rom16offset.o: section .text.ps2_recvbyte lma 0xf9bb7 adjusted to 0xf9efb BFD: rom16offset.o: section .text.ps2_sendbyte lma 0xf9c7e adjusted to 0xf9fc2 BFD: rom16offset.o: section .text.__ps2_command lma 0xf9d08 adjusted to 0xfa04c BFD: rom16offset.o: section .text.mouse_command lma 0xf9f5e adjusted to 0xfa2a2 BFD: rom16offset.o: section .text.mouse_15c201 lma 0xfa037 adjusted to 0xfa37b BFD: rom16offset.o: section .text.handle_160a lma 0xfa082 adjusted to 0xfa3c6 BFD: rom16offset.o: section .text.uhci_waittick lma 0xfa0e2 adjusted to 0xfa426 BFD: rom16offset.o: section .text.ehci_send_pipe.constprop.80 lma 0xfa13e adjusted to 0xfa482 BFD: rom16offset.o: section .text.floppy_wait_irq lma 0xfa43a adjusted to 0xfa77e BFD: rom16offset.o: section .text.floppy_enable_controller lma 0xfa4ab adjusted to 0xfa7ef BFD: rom16offset.o: section .text.floppy_drive_pio lma 0xfa4f2 adjusted to 0xfa836 BFD: rom16offset.o: section .text.floppy_drive_readid.constprop.75 lma 0xfa58f adjusted to 0xfa8d3 BFD: rom16offset.o: section .text.floppy_read lma 0xfa5d5 adjusted to 0xfa919 BFD: rom16offset.o: section .text.floppy_write lma 0xfa693 adjusted to 0xfa9d7 BFD: rom16offset.o: section .text.await_ide.constprop.77 lma 0xfa751 adjusted to 0xfaa95 BFD: rom16offset.o: section .text.await_not_bsy lma 0xfa7c4 adjusted to 0xfab08 BFD: rom16offset.o: section .text.send_cmd lma 0xfa7d4 adjusted to 0xfab18 BFD: rom16offset.o: section .text.ata_pio_transfer lma 0xfa8db adjusted to 0xfac1f BFD: rom16offset.o: section .text.ata_wait_data lma 0xfaa22 adjusted to 0xfad66 BFD: rom16offset.o: section .text.ata_readwrite lma 0xfaa5b adjusted to 0xfad9f BFD: rom16offset.o: section .text.atapi_cmd_data lma 0xfabe4 adjusted to 0xfaf28 BFD: rom16offset.o: section .text.uhci_send_pipe.constprop.79 lma 0xfad28 adjusted to 0xfb06c BFD: rom16offset.o: section .text.usb_send_pipe.constprop.78 lma 0xfb095 adjusted to 0xfb3d9 BFD: rom16offset.o: section .text.usb_cmd_data lma 0xfb0e2 adjusted to 0xfb426 BFD: rom16offset.o: section .text.uas_cmd_data lma 0xfb26b adjusted to 0xfb5af BFD: rom16offset.o: section .text.cdb_cmd_data lma 0xfb471 adjusted to 0xfb7b5 BFD: rom16offset.o: section .text.cdb_read lma 0xfb96c adjusted to 0xfbcb0 BFD: rom16offset.o: section .text.cdb_write lma 0xfb9cd adjusted to 0xfbd11 BFD: rom16offset.o: section .text.process_op lma 0xfba2e adjusted to 0xfbd72 BFD: rom16offset.o: section .text.cdemu_read lma 0xfbe2b adjusted to 0xfc16f BFD: rom16offset.o: section .text.wait_irq lma 0xfc059 adjusted to 0xfc39d BFD: rom16offset.o: section .text.handle_1553 lma 0xfc079 adjusted to 0xfc3bd BFD: rom16offset.o: section .text.handle_40 lma 0xfc1ec adjusted to 0xfc530 BFD: rom16offset.o: section .text.handle_13 lma 0xfc21e adjusted to 0xfc562 BFD: rom16offset.o: section .text.handle_76 lma 0xfc2ce adjusted to 0xfc612 BFD: rom16offset.o: section .text.invoke_mouse_handler lma 0xfc2df adjusted to 0xfc623 BFD: rom16offset.o: section .text.process_mouse lma 0xfc358 adjusted to 0xfc69c BFD: rom16offset.o: section .text.handle_16 lma 0xfc3b3 adjusted to 0xfc6f7 BFD: rom16offset.o: section .text.handle_1589 lma 0xfc4bc adjusted to 0xfc800 BFD: rom16offset.o: section .text.handle_14 lma 0xfc556 adjusted to 0xfc89a BFD: rom16offset.o: section .text.handle_17 lma 0xfc77a adjusted to 0xfcabe BFD: rom16offset.o: section .text.handle_1a lma 0xfc8df adjusted to 0xfcc23 BFD: rom16offset.o: section .text.handle_70 lma 0xfcb41 adjusted to 0xfce85 BFD: rom16offset.o: section .text.handle_resume lma 0xfcc39 adjusted to 0xfcf7d BFD: rom16offset.o: section .text.handle_pnp lma 0xfcd04 adjusted to 0xfd048 BFD: rom16offset.o: section .text.handle_pcibios lma 0xfcd4d adjusted to 0xfd091 BFD: rom16offset.o: section .text.handle_74 lma 0xfd0c2 adjusted to 0xfd406 BFD: rom16offset.o: section .text.handle_09 lma 0xfd0fd adjusted to 0xfd441 BFD: rom16offset.o: section .text.handle_0e lma 0xfd146 adjusted to 0xfd48a BFD: rom16offset.o: section .text.asm.transition32 lma 0xfd162 adjusted to 0xfd4a6 BFD: rom16offset.o: section .text.asm.transition16 lma 0xfd1ad adjusted to 0xfd4f1 BFD: rom16offset.o: section .text.asm.__farcall16 lma 0xfd202 adjusted to 0xfd546 BFD: rom16offset.o: section .text.asm.irq_trampoline_0x02 lma 0xfd28f adjusted to 0xfd5d3 BFD: rom16offset.o: section .text.asm.irq_trampoline_0x10 lma 0xfd292 adjusted to 0xfd5d6 BFD: rom16offset.o: section .text.asm.irq_trampoline_0x13 lma 0xfd295 adjusted to 0xfd5d9 BFD: rom16offset.o: section .text.asm.irq_trampoline_0x15 lma 0xfd298 adjusted to 0xfd5dc BFD: rom16offset.o: section .text.asm.entry_smi lma 0xfd29b adjusted to 0xfd5df BFD: rom16offset.o: section .text.asm.entry_smp lma 0xfd2b0 adjusted to 0xfd5f4 BFD: rom16offset.o: section .text.asm.entry_resume lma 0xfd2e0 adjusted to 0xfd624 BFD: rom16offset.o: section .text.asm.entry_pmm lma 0xfd2f5 adjusted to 0xfd639 BFD: rom16offset.o: section .text.asm.entry_pnp_real lma 0xfd353 adjusted to 0xfd697 BFD: rom16offset.o: section .text.asm.entry_apm16 lma 0xfd39b adjusted to 0xfd6df BFD: rom16offset.o: section .text.asm.entry_apm32 lma 0xfd3dc adjusted to 0xfd720 BFD: rom16offset.o: section .text.asm.entry_pcibios32 lma 0xfd40e adjusted to 0xfd752 BFD: rom16offset.o: section .text.asm.entry_pcibios16 lma 0xfd43c adjusted to 0xfd780 BFD: rom16offset.o: section .text.asm.entry_1589 lma 0xfd476 adjusted to 0xfd7ba BFD: rom16offset.o: section .text.asm.entry_bios32 lma 0xfd4b0 adjusted to 0xfd7f4 BFD: rom16offset.o: section .text.asm.irqentry_extrastack lma 0xfd4cf adjusted to 0xfd813 BFD: rom16offset.o: section .text.asm.irqentry_arg_extrastack lma 0xfd55c adjusted to 0xfd8a0 BFD: rom16offset.o: section .text.asm.entry_13 lma 0xfd5fe adjusted to 0xfd942 BFD: rom16offset.o: section .text.asm.entry_76 lma 0xfd607 adjusted to 0xfd94b BFD: rom16offset.o: section .text.asm.entry_70 lma 0xfd610 adjusted to 0xfd954 BFD: rom16offset.o: section .text.asm.entry_74 lma 0xfd619 adjusted to 0xfd95d BFD: rom16offset.o: section .text.asm.entry_75 lma 0xfd622 adjusted to 0xfd966 BFD: rom16offset.o: section .text.asm.entry_hwpic1 lma 0xfd62b adjusted to 0xfd96f BFD: rom16offset.o: section .text.asm.entry_19 lma 0xfd634 adjusted to 0xfd978 BFD: rom16offset.o: section .text.asm.entry_18 lma 0xfd647 adjusted to 0xfd98b BFD: rom16offset.o: section .rodata lma 0xfd65a adjusted to 0xfd99e BFD: rom16offset.o: section .rodata.__func__.10501 lma 0xfdaf4 adjusted to 0xfde37 BFD: rom16offset.o: section .rodata.__func__.9961 lma 0xfdb08 adjusted to 0xfde48 BFD: rom16offset.o: section .rodata.__func__.9285 lma 0xfdb18 adjusted to 0xfde56 BFD: rom16offset.o: section .rodata.__func__.9243 lma 0xfdb24 adjusted to 0xfde60 BFD: rom16offset.o: section .rodata.__func__.8917 lma 0xfdb30 adjusted to 0xfde6a BFD: rom16offset.o: section .rodata.__func__.8897 lma 0xfdb3c adjusted to 0xfde75 BFD: rom16offset.o: section .rodata.__func__.8122 lma 0xfdb4c adjusted to 0xfde85 BFD: rom16offset.o: section .rodata.__func__.8164 lma 0xfdb5c adjusted to 0xfde92 BFD: rom16offset.o: section .rodata.__func__.7497 lma 0xfdb6c adjusted to 0xfdea1 BFD: rom16offset.o: section .rodata.__func__.7521 lma 0xfdb78 adjusted to 0xfdeab BFD: rom16offset.o: section .rodata.__func__.7388 lma 0xfdb80 adjusted to 0xfdeb3 BFD: rom16offset.o: section .rodata.__func__.6574 lma 0xfdb90 adjusted to 0xfdec1 BFD: rom16offset.o: section .rodata.__func__.6635 lma 0xfdba0 adjusted to 0xfded1 BFD: rom16offset.o: section .rodata.__func__.6583 lma 0xfdbb0 adjusted to 0xfdede BFD: rom16offset.o: section .rodata.__func__.4214 lma 0xfdbc4 adjusted to 0xfdeef BFD: rom16offset.o: section .rodata.__func__.4529 lma 0xfdbd0 adjusted to 0xfdef9 BFD: rom16offset.o: section .rodata.__func__.1830 lma 0xfdbdc adjusted to 0xfdf03 BFD: rom16offset.o: section .rodata.__func__.1817 lma 0xfdbe8 adjusted to 0xfdf0d BFD: rom16offset.o: section .rodata.__func__.1809 lma 0xfdbf4 adjusted to 0xfdf17 BFD: rom16offset.o: section `.rodata.__func__.1830' can't be allocated in segment 0 LOAD: .text.set_a20 .text.pic_eoi2 .text.call32_smm_prep .text.call32_smm_post .text.call32_sloppy_prep .text.call32_sloppy_post .text.on_extra_stack .text.memset .text.memcpy .text.enqueue_key .text.ehci_reset_pipe .text.lba2chs .text.stack_hop_back .text.getLCHS .text.putsinglehex.isra.41 .text.puthex.isra.42 .text.puts_cs.isra.45 .text.vring_get_buf.constprop.83 .text.clear_usertimer .text.set_code_success .text.getComAddr .text.getLptAddr .text.__disk_ret_unimplemented.isra.8 .text.__disk_ret.isra.7 .text.basic_access .text.extended_access .text.disk_1300 .text.disk_1308 .text.disk_1310 .text.floppy_disable_controller .text.pci_next .text.timer_read .text.timer_check .text.timer_delay .text.udelay .text.ndelay.constprop.76 .text.putuint.isra.44 .text.fill_generic_edd .text.fill_edd .text.__dprintf .text.dump_regs .text.__warn_timeout .text.i8042_wait_write .text.__i8042_command .text.disk_1305 .text.panic .text.vring_add_buf.constprop.81 .text.handle_12 .text.handle_11 .text.handl e_05 .text.handle_02 .text.call16_smm_helper .text.call16_sloppy_helper .text.call32 .text.call32_params.constprop.91 .text.usb_poll_intr .text._farcall16 .text.__call16_int .text.handle_75 .text.disk_1346.isra.52 .text.disk_13 .text.handle_legacy_disk .text.process_key .text.prockeys .text.procmodkey .text.procscankey .text.check_irqs .text.virtio_blk_op .text.rtc_updating .text.ps2_recvbyte .text.ps2_sendbyte .text.__ps2_command .text.mouse_command .text.mouse_15c201 .text.handle_160a .text.uhci_waittick .text.ehci_send_pipe.constprop.80 .text.floppy_wait_irq .text.floppy_enable_controller .text.floppy_drive_pio .text.floppy_drive_readid.constprop.75 .text.floppy_read .text.floppy_write .text.await_ide.constprop.77 .text.await_not_bsy .text.send_cmd .text.ata_pio_transfer .text.ata_wait_data .text.ata_readwrite .text.atapi_cmd_data .text.uhci_send_pipe.constprop.79 .text.usb_send_pipe.constprop.78 .text.usb_cmd_data .text.uas_cmd_data .text.cdb_cmd_data .text.cdb_read .text.cdb_writ e .text.process_op .text.cdemu_read .text.wait_irq .text.handle_1553 .text.handle_40 .text.handle_13 .text.handle_76 .text.invoke_mouse_handler .text.process_mouse .text.handle_16 .text.handle_1589 .text.handle_14 .text.handle_17 .text.handle_1a .text.handle_70 .text.handle_resume .text.handle_pnp .text.handle_pcibios .text.handle_74 .text.handle_09 .text.handle_0e .text.asm.transition32 .text.asm.transition16 .text.asm.__farcall16 .text.asm.irq_trampoline_0x02 .text.asm.irq_trampoline_0x10 .text.asm.irq_trampoline_0x13 .text.asm.irq_trampoline_0x15 .text.asm.entry_smi .text.asm.entry_smp .text.asm.entry_resume .text.asm.entry_pmm .text.asm.entry_pnp_real .text.asm.entry_apm16 .text.asm.entry_apm32 .text.asm.entry_pcibios32 .text.asm.entry_pcibios16 .text.asm.entry_1589 .text.asm.entry_bios32 .text.asm.irqentry_extrastack .text.asm.irqentry_arg_extrastack .text.asm.entry_13 .text.asm.entry_76 .text.asm.entry_70 .text.asm.entry_74 .text.asm.entry_75 .text.asm.entry_hwpic1 .text.asm.ent ry_19 .text.asm.entry_18 .rodata .rodata.__func__.10501 .rodata.__func__.9961 .rodata.__func__.9285 .rodata.__func__.9243 .rodata.__func__.8917 .rodata.__func__.8897 .rodata.__func__.8122 .rodata.__func__.8164 .rodata.__func__.7497 .rodata.__func__.7521 .rodata.__func__.7388 .rodata.__func__.6574 .rodata.__func__.6635 .rodata.__func__.6583 .rodata.__func__.4214 .rodata.__func__.4529 .rodata.__func__.1830 .rodata.__func__.1817 .rodata.__func__.1809 BFD: rom16offset.o: section `.rodata.__func__.1817' can't be allocated in segment 0 LOAD: .text.set_a20 .text.pic_eoi2 .text.call32_smm_prep .text.call32_smm_post .text.call32_sloppy_prep .text.call32_sloppy_post .text.on_extra_stack .text.memset .text.memcpy .text.enqueue_key .text.ehci_reset_pipe .text.lba2chs .text.stack_hop_back .text.getLCHS .text.putsinglehex.isra.41 .text.puthex.isra.42 .text.puts_cs.isra.45 .text.vring_get_buf.constprop.83 .text.clear_usertimer .text.set_code_success .text.getComAddr .text.getLptAddr .text.__disk_ret_unimplemented.isra.8 .text.__disk_ret.isra.7 .text.basic_access .text.extended_access .text.disk_1300 .text.disk_1308 .text.disk_1310 .text.floppy_disable_controller .text.pci_next .text.timer_read .text.timer_check .text.timer_delay .text.udelay .text.ndelay.constprop.76 .text.putuint.isra.44 .text.fill_generic_edd .text.fill_edd .text.__dprintf .text.dump_regs .text.__warn_timeout .text.i8042_wait_write .text.__i8042_command .text.disk_1305 .text.panic .text.vring_add_buf.constprop.81 .text.handle_12 .text.handle_11 .text.handl e_05 .text.handle_02 .text.call16_smm_helper .text.call16_sloppy_helper .text.call32 .text.call32_params.constprop.91 .text.usb_poll_intr .text._farcall16 .text.__call16_int .text.handle_75 .text.disk_1346.isra.52 .text.disk_13 .text.handle_legacy_disk .text.process_key .text.prockeys .text.procmodkey .text.procscankey .text.check_irqs .text.virtio_blk_op .text.rtc_updating .text.ps2_recvbyte .text.ps2_sendbyte .text.__ps2_command .text.mouse_command .text.mouse_15c201 .text.handle_160a .text.uhci_waittick .text.ehci_send_pipe.constprop.80 .text.floppy_wait_irq .text.floppy_enable_controller .text.floppy_drive_pio .text.floppy_drive_readid.constprop.75 .text.floppy_read .text.floppy_write .text.await_ide.constprop.77 .text.await_not_bsy .text.send_cmd .text.ata_pio_transfer .text.ata_wait_data .text.ata_readwrite .text.atapi_cmd_data .text.uhci_send_pipe.constprop.79 .text.usb_send_pipe.constprop.78 .text.usb_cmd_data .text.uas_cmd_data .text.cdb_cmd_data .text.cdb_read .text.cdb_writ e .text.process_op .text.cdemu_read .text.wait_irq .text.handle_1553 .text.handle_40 .text.handle_13 .text.handle_76 .text.invoke_mouse_handler .text.process_mouse .text.handle_16 .text.handle_1589 .text.handle_14 .text.handle_17 .text.handle_1a .text.handle_70 .text.handle_resume .text.handle_pnp .text.handle_pcibios .text.handle_74 .text.handle_09 .text.handle_0e .text.asm.transition32 .text.asm.transition16 .text.asm.__farcall16 .text.asm.irq_trampoline_0x02 .text.asm.irq_trampoline_0x10 .text.asm.irq_trampoline_0x13 .text.asm.irq_trampoline_0x15 .text.asm.entry_smi .text.asm.entry_smp .text.asm.entry_resume .text.asm.entry_pmm .text.asm.entry_pnp_real .text.asm.entry_apm16 .text.asm.entry_apm32 .text.asm.entry_pcibios32 .text.asm.entry_pcibios16 .text.asm.entry_1589 .text.asm.entry_bios32 .text.asm.irqentry_extrastack .text.asm.irqentry_arg_extrastack .text.asm.entry_13 .text.asm.entry_76 .text.asm.entry_70 .text.asm.entry_74 .text.asm.entry_75 .text.asm.entry_hwpic1 .text.asm.ent ry_19 .text.asm.entry_18 .rodata .rodata.__func__.10501 .rodata.__func__.9961 .rodata.__func__.9285 .rodata.__func__.9243 .rodata.__func__.8917 .rodata.__func__.8897 .rodata.__func__.8122 .rodata.__func__.8164 .rodata.__func__.7497 .rodata.__func__.7521 .rodata.__func__.7388 .rodata.__func__.6574 .rodata.__func__.6635 .rodata.__func__.6583 .rodata.__func__.4214 .rodata.__func__.4529 .rodata.__func__.1830 .rodata.__func__.1817 .rodata.__func__.1809 BFD: rom16offset.o: section `.rodata.__func__.1809' can't be allocated in segment 0 LOAD: .text.set_a20 .text.pic_eoi2 .text.call32_smm_prep .text.call32_smm_post .text.call32_sloppy_prep .text.call32_sloppy_post .text.on_extra_stack .text.memset .text.memcpy .text.enqueue_key .text.ehci_reset_pipe .text.lba2chs .text.stack_hop_back .text.getLCHS .text.putsinglehex.isra.41 .text.puthex.isra.42 .text.puts_cs.isra.45 .text.vring_get_buf.constprop.83 .text.clear_usertimer .text.set_code_success .text.getComAddr .text.getLptAddr .text.__disk_ret_unimplemented.isra.8 .text.__disk_ret.isra.7 .text.basic_access .text.extended_access .text.disk_1300 .text.disk_1308 .text.disk_1310 .text.floppy_disable_controller .text.pci_next .text.timer_read .text.timer_check .text.timer_delay .text.udelay .text.ndelay.constprop.76 .text.putuint.isra.44 .text.fill_generic_edd .text.fill_edd .text.__dprintf .text.dump_regs .text.__warn_timeout .text.i8042_wait_write .text.__i8042_command .text.disk_1305 .text.panic .text.vring_add_buf.constprop.81 .text.handle_12 .text.handle_11 .text.handl e_05 .text.handle_02 .text.call16_smm_helper .text.call16_sloppy_helper .text.call32 .text.call32_params.constprop.91 .text.usb_poll_intr .text._farcall16 .text.__call16_int .text.handle_75 .text.disk_1346.isra.52 .text.disk_13 .text.handle_legacy_disk .text.process_key .text.prockeys .text.procmodkey .text.procscankey .text.check_irqs .text.virtio_blk_op .text.rtc_updating .text.ps2_recvbyte .text.ps2_sendbyte .text.__ps2_command .text.mouse_command .text.mouse_15c201 .text.handle_160a .text.uhci_waittick .text.ehci_send_pipe.constprop.80 .text.floppy_wait_irq .text.floppy_enable_controller .text.floppy_drive_pio .text.floppy_drive_readid.constprop.75 .text.floppy_read .text.floppy_write .text.await_ide.constprop.77 .text.await_not_bsy .text.send_cmd .text.ata_pio_transfer .text.ata_wait_data .text.ata_readwrite .text.atapi_cmd_data .text.uhci_send_pipe.constprop.79 .text.usb_send_pipe.constprop.78 .text.usb_cmd_data .text.uas_cmd_data .text.cdb_cmd_data .text.cdb_read .text.cdb_writ e .text.process_op .text.cdemu_read .text.wait_irq .text.handle_1553 .text.handle_40 .text.handle_13 .text.handle_76 .text.invoke_mouse_handler .text.process_mouse .text.handle_16 .text.handle_1589 .text.handle_14 .text.handle_17 .text.handle_1a .text.handle_70 .text.handle_resume .text.handle_pnp .text.handle_pcibios .text.handle_74 .text.handle_09 .text.handle_0e .text.asm.transition32 .text.asm.transition16 .text.asm.__farcall16 .text.asm.irq_trampoline_0x02 .text.asm.irq_trampoline_0x10 .text.asm.irq_trampoline_0x13 .text.asm.irq_trampoline_0x15 .text.asm.entry_smi .text.asm.entry_smp .text.asm.entry_resume .text.asm.entry_pmm .text.asm.entry_pnp_real .text.asm.entry_apm16 .text.asm.entry_apm32 .text.asm.entry_pcibios32 .text.asm.entry_pcibios16 .text.asm.entry_1589 .text.asm.entry_bios32 .text.asm.irqentry_extrastack .text.asm.irqentry_arg_extrastack .text.asm.entry_13 .text.asm.entry_76 .text.asm.entry_70 .text.asm.entry_74 .text.asm.entry_75 .text.asm.entry_hwpic1 .text.asm.ent ry_19 .text.asm.entry_18 .rodata .rodata.__func__.10501 .rodata.__func__.9961 .rodata.__func__.9285 .rodata.__func__.9243 .rodata.__func__.8917 .rodata.__func__.8897 .rodata.__func__.8122 .rodata.__func__.8164 .rodata.__func__.7497 .rodata.__func__.7521 .rodata.__func__.7388 .rodata.__func__.6574 .rodata.__func__.6635 .rodata.__func__.6583 .rodata.__func__.4214 .rodata.__func__.4529 .rodata.__func__.1830 .rodata.__func__.1817 .rodata.__func__.1809
AFAICT it contains some errors about not being able to relocate certain symbols.
$ gdb out/rom16.o (gdb) target remote localhost:1234 (gdb) set architecture i8086 (gdb) symbol-file rom16offset.o
gdb seems to complain a bit about this too:
Load new symbol table from "rom16offset.o"? (y or n) y Reading symbols from rom16offset.o...warning: Loadable section ".rodata.__func__.1817" outside of ELF segments warning: Loadable section ".rodata.__func__.1809" outside of ELF segments done.
(gdb) break handle_15 (gdb) continue
This seems to work fine while running the bootloader, I can see the breakpoint triggering. But once the FreeBSD kernel is running the breakpoint no longer triggers, although I'm sure handle_15 is being called (at least the debug output from SeaBIOS shows it being called).
Roger.