Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2017 21:50:46 -0500
From:      Jon Brawn <jon@brawn.org>
To:        current@freebsd.org
Subject:   Pre-filled RAM disk.
Message-ID:  <AEDBF95D-5D91-41A0-AEFF-56840FAB755C@brawn.org>

next in thread | raw e-mail | index | archive | help
Wotcha!

I work for Arm for my sins, and in my spare time I=E2=80=99ve 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=E2=80=99=
t the same thing as QEMU, nor is it just an FPGA, it=E2=80=99s 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=E2=80=99m 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=E2=80=99s DRB and the =
root filesystem memory image inside a light-weight bootloader wrapper, =
load that at the right offset into the emulator=E2=80=99s memory map, =
and twang the virtual reset line of the emulated processor. There=E2=80=99=
s some magic jiggery pokery to get console output from what the OS =
thinks is an AMBA UART, but that=E2=80=99s about size of it.

So, what does FreeBSD have to offer in the way of ramdisk functionality?

Jon.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AEDBF95D-5D91-41A0-AEFF-56840FAB755C>