> On Jul 2, 2024, at 1:01 AM, Hiroki Sato <h...@freebsd.org> wrote:
> 
> Hi,
> 
> Zhenlei Huang <z...@freebsd.org> wrote
>  in <6b9a293f-18cf-4fb2-b095-bc468354b...@freebsd.org>:
> 
> zl> I'm recently working on cleaning up malloc(M_WAITOK), and found that the 
> sys/dev/usb
> zl> stack is also used by bootloader. Currently stand/usb fails to compile ( 
> since the
> zl> commit 9e4e7bcaef3f 2022/8/23 ) and I have some WIP patches. I do not 
> find a good
> zl> page about its usage. How can I test stand/usb ? Or it has no usage any 
> more and should
> zl> be retired ?
> 
> The stand/usb directory is used to build the libusbboot.a library
> containing the devsw for umass(4).  The following patch (against a bit
> old tree) should fix the build errors at least:
> 
> https://people.allbsd.org/~hrs/FreeBSD/kshim-fix.20240702-1.diff
> 
> To compile a loader with libusbboot.a, you need to build a
> libusbboot.a with some flags first and link it with a loader.  On the
> loader side, you need to edit conf.c and Makefile.  The above patch
> includes changes for i386/loader, and the following command lines
> should build both (MK_LOADER_ZFS=no because libusbboot.a is too
> large):
> 
> # cd /usr/src/stand/usb/tools && make && make install
> % cd /usr/src/stand/usb && \
>    make obj && \
>    make -DHAVE_UMASS_LOADER -DHAVE_EHCI depend && \
>    make -DHAVE_UMASS_LOADER -DHAVE_EHCI
> % cd /usr/src/stand/i386/loader && \
>    make obj && \
>    make MK_LOADER_ZFS=no depend && \
>    make MK_LOADER_ZFS=no
> # cd /usr/src/stand/i386/loader && \
>    make MK_LOADER_ZFS=no DESTDIR=/tmp install
> 
> and you should be able to find a legacy BIOS loader in
> /tmp/boot/loader.  I did not test whether the build result works
> actually, though.  Note that the first command builds "sysinit" tool
> and installs it into /usr/bin.  You can remove it after testing.
> 
> Also note that the kernel source files used by ones under usb/ will
> use a different malloc implementation defined in
> kshim/bsd_kernel.[ch].  So, malloc(9) flags are simply ignored.  If
> your work intends to check if rewriting of malloc(M_WAITOK) works or
> not, I think you can consider it does not affect the loaders using the
> libusbboot library.

Thanks for the detailed instructions. I'll try that.
> 
> Although the files under kshim/ and usb/ are not maintained well, I
> personally think they are still worth keeping.
> 
> -- Hiroki



Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to