With LOADER_FIREWIRE_SUPPORT=yes the loader includes firewire support. In /usr/src/sys/boot/i386/libfirewire/firewire.c the call of the function biospci_write_config is not correct (the second and third parameter must be swapped). Some hardware complains about this, some do not. Also only the first firewire device is supported - in my opinion unnecessarily. Fix: Patch attached with submission follows: How-To-Repeat: Try to use the loader over firewire.
Responsible Changed From-To: freebsd-i386->freebsd-bugs reclassify.
For bugs matching the following criteria: Status: In Progress Changed: (is less than) 2014-06-01 Reset to default assignee and clear in-progress tags. Mail being skipped
A commit references this bug: Author: imp Date: Tue Jan 8 20:01:57 UTC 2019 New revision: 342865 URL: https://svnweb.freebsd.org/changeset/base/342865 Log: biospci_write_config args were backwards biospci_write_config args swapped length and value to write. Some hardware coped just fine, while other hardware had issues. PR: 155441 Submitted by: longwitz at incore dot de Changes: head/stand/i386/libfirewire/firewire.c
Ooops... need to leave open for MFC
The commit 342865 includes the first part of the original patch. Please can somebody explain whether something is wrong with the second part of the patch.
A commit references this bug: Author: kevans Date: Sun Apr 21 03:36:07 UTC 2019 New revision: 346476 URL: https://svnweb.freebsd.org/changeset/base/346476 Log: MFC r341253, r341328, r342619, r342626, r342707, r342785, r342865 r341253: The libstand's panic() appends its own '\n' to the message, so that users of the API don't need to supply one. r341328: loader: create separate lists for fd, cd and hd, merge bioscd with biosdisk Create unified block IO implementation in BIOS version, like it is done in UEFI side. Implement fd, disk and cd device lists, this will split floppy devices from disks and will allow us to have consistent, predictable device naming (modulo BIOS issues). r342619: loader: create bio_alloc and bio_free for bios bounce buffer We do have 16KB buffer space defined in pxe.c, move it to bio.c and implement bio_alloc()/bio_free() interface to make it possible to use this space for other BIOS calls (notably, from biosdisk.c). r342626: Add Copyright. r342707: i386_parsedev() needs to support fd devices r342785: With buggy int13 ah=15, we can mis-identify the floppy devices. We have no option than trust INT13 ah=08 return code during the init phase. r342865: biospci_write_config args were backwards biospci_write_config args swapped length and value to write. Some hardware coped just fine, while other hardware had issues. PR: 155441, 234460 Changes: _U stable/11/ stable/11/stand/common/interp_forth.c stable/11/stand/i386/libfirewire/firewire.c stable/11/stand/i386/libi386/Makefile stable/11/stand/i386/libi386/bio.c stable/11/stand/i386/libi386/bioscd.c stable/11/stand/i386/libi386/biosdisk.c stable/11/stand/i386/libi386/bootinfo32.c stable/11/stand/i386/libi386/devicename.c stable/11/stand/i386/libi386/libi386.h stable/11/stand/i386/libi386/pxe.c stable/11/stand/i386/loader/chain.c stable/11/stand/i386/loader/conf.c stable/11/stand/i386/loader/main.c stable/11/stand/libsa/arp.c stable/11/stand/libsa/assert.c stable/11/stand/libsa/bzipfs.c stable/11/stand/libsa/netif.c stable/11/stand/libsa/sbrk.c stable/11/stand/uboot/lib/copy.c stable/11/stand/uboot/lib/net.c
A commit references this bug: Author: kevans Date: Thu Oct 24 02:28:28 UTC 2019 New revision: 353972 URL: https://svnweb.freebsd.org/changeset/base/353972 Log: MFC r342865: biospci_write_config args were backwards biospci_write_config args swapped length and value to write. Some hardware coped just fine, while other hardware had issues. PR: 155441 Changes: _U stable/12/ stable/12/stand/i386/libfirewire/firewire.c