On 04/07/16 10:12, Jonathan Gray wrote:
On Mon, Jul 04, 2016 at 09:49:57AM +0100, David Barrass wrote:
Myself and a colleague are developing a new Cortex-A9-based router. I would
like to use OpenBSD as the O.S. for reasons of the security credentials that
OpenBSD has.
I have made a start in getting OpenBSD running on the hardware but at the
moment, the only tool I can use for debugging is a JTAG debugger as I am
working on getting a serial-port driver working. I would very much
appreciate some assistance from the ARM hardware gurus on this list to make
sure that I am doing things the "OpenBSD way" and not making any fundamental
errors through ignorance. If I was trying to get FreeBSD running, what I
would do as a first step would be to build an image using the nearest
supported platform. The OpenBSD sources only appear to use the GENERIC and
RAMDISK templates. I have built the cross tools here on my development
machine which is running OpenBSD5.9 and am using the source from this
release as the starting-point for development.
I have a BeagleBoneBlack which runs the bsd.rd.OMAP.umg from the 6.0 tree. I
then tried building a BEAGLEBONE image using the RAMDISK template as my
starting point. This works and produces a bsd ELF-32 kernel image. I can
tftp this across to the BeagleBoneBlack using the U-boot that comes with the
board but when I try running this, bootm does not recognize the image as a
valid one.
What I would appreciate in the first instance is a list of step-by-step
instructions on how to recreate the bsd.rd.OMAP.umg image on my development
machine in order to validate the build process and build environment on my
machine. I have spent many hours looking through the archives of this list
looking for relevant threads. In the past, I have worked on a PCI-based WiFi
card fitted to a PC and am happy with building the native GENERIC kernel and
hacking the source code to get the WiFi card working but I have never built
a bsd kernel for a new non-x86 hardware platform. I have read the relevant
config and related man pages and have a copy of M.W. Lucas' book "Absolute
OpenBSD" book and read the relevant section. The code I have built for my
prototype hardware is valid ARM code and starts to run but falls over just
after enabling the MMU. It is falling over somewhere in the initarm function
but I am not sure where yet.
Apologies for the length of this email - I was hoping to keep it short but
with just enough detail to pique the interest of any guru who might be
interested in offering some assistance and not annoy those who are not
interested.
Thank you in anticipation.
David
If you're going to target anything target -current. There is now an
efi bootloader instead of umg files. The hardcoded board id driven
device tables are being migrated to dynamic device tree based
configuration but that is not finished yet.
Cortex A9 is rather vague, if you have specific problems with a specific
soc mention them.
cross-tools is intended for bootstrapping new architectures, build
on real hardware.
Keep in mind there is a reason the armv7 port is filed under
"current porting events" rather than "supported platforms" on the
platforms page, there is still a lot of things to work on.
Thank you, bootstrapping a new hardware platform is exactly what I am
doing at the moment. I am keeping up-to-date with -current but as a
separate project for reference rather than my main target. I will
gratefully accept this advice.
I have been following the efi bootloader thread - I will look more
closely at this.
Thank you for your reply and advice - much appreciated.
David