On Fri, Jun 10, 2016 at 05:17:35AM +0900, SASANO Takayoshi wrote: > Hello, > > Is there any reports which succeeded to run OpenBSD/armv7 > on Banana Pi BPI-M1? > I am trying now but it reboots with undefined instruction exception. > > What should I do to solve this problem?
It seems you aren't using the version of u-boot from ports with the patch to correct the efi loader? For non-imx platforms u-boot must have the following commit, that is included with u-boot v2016.07-rc1 or later. commit 74c16acce30bb882ad5951829d8dafef8eea564c Author: Alexander Graf <ag...@suse.de> Date: Fri May 27 12:25:03 2016 +0200 efi_loader: Don't allocate from memory holes When a payload calls our memory allocator with the exact address hint, we happily allocate memory from completely unpopulated regions. Payloads however expect this to only succeed if they would be allocating from free conventional memory. This patch makes the logic behind those checks a bit more obvious and ensures that we always allocate from known good free conventional memory regions if we want to allocate ram. Reported-by: Jonathan Gray <j...@jsg.id.au> Signed-off-by: Alexander Graf <ag...@suse.de> Further for sunxi because sunxi has a colon in the stdout-path the following pending diff is required to find the console. ie, stdout-path = "serial0:115200n8" This patch will be in the next snapshot. Index: armv7_machdep.c =================================================================== RCS file: /cvs/src/sys/arch/armv7/armv7/armv7_machdep.c,v retrieving revision 1.29 diff -u -p -r1.29 armv7_machdep.c --- armv7_machdep.c 8 Jun 2016 15:27:05 -0000 1.29 +++ armv7_machdep.c 9 Jun 2016 14:45:36 -0000 @@ -904,13 +904,21 @@ void * fdt_find_cons(const char *name) { char *alias = "serial0"; + char buf[128]; char *stdout = NULL; + char *p; void *node; /* First check if "stdout-path" is set. */ node = fdt_find_node("/chosen"); if (node) { if (fdt_node_property(node, "stdout-path", &stdout)) { + if (strchr(stdout, ':') != NULL) { + strlcpy(buf, stdout, sizeof(buf)); + if ((p = strchr(buf, ':')) != NULL) + *p = '\0'; + stdout = buf; + } if (stdout[0] != '/') { /* It's an alias. */ alias = stdout;