Pre-filled RAM disk.

Warner Losh imp at bsdimp.com
Thu Sep 21 03:16:44 UTC 2017


On Wed, Sep 20, 2017 at 8:50 PM, Jon Brawn <jon at brawn.org> wrote:

> Wotcha!
>
> I work for Arm for my sins, and in my spare time I’ve been playing with
> FreeBSD. In my day job I work with the CPU core validation team, and one of
> the things we do is take the hardware design of a new core and run it on a
> machine called an emulator. This emulator isn’t the same thing as QEMU, nor
> is it just an FPGA, it’s something in the middle - you compile the hardware
> design and download it to the emulator, and it can then run programs on
> your design at about 1MHz. Which is lovely. Our main bread and butter is to
> take such a design and get it to boot Arm Linux, a very cut down version,
> and then run some tests hosted in the Linux environment. These tests would
> typically thrash the snot out of some particular aspect of the
> architecture, such as memory sharing amongst multiple processor cores. Now,
> we would like to use other operating systems that behave differently to
> Linux, there are some obvious candidates that I’m not going to talk about
> for legal reasons, but one that was suggested was using FreeBSD under
> emulation.
>
> So, what is needed is someway of telling the operating system that it is
> going to use a ram disk for its root filesystem, and that the ram disk is
> going to be at a fixed physical address in the memory map. That way we can
> pre-load root from a file in the emulation environment. In the Linux
> environment we would package the kernel, it’s DRB and the root filesystem
> memory image inside a light-weight bootloader wrapper, load that at the
> right offset into the emulator’s memory map, and twang the virtual reset
> line of the emulated processor. There’s some magic jiggery pokery to get
> console output from what the OS thinks is an AMBA UART, but that’s about
> size of it.
>
> So, what does FreeBSD have to offer in the way of ramdisk functionality?
>

Yes.

See MD_ROOT and friends.

Warner


More information about the freebsd-current mailing list