iirc this is the core of the issue: The L1 Section descriptors access permissions are still the old ones, not the v7 versions.
arm/include/pmap.h: #define L1_S_PROT_U (L1_S_AP(AP_U)) #define L1_S_PROT_W (L1_S_AP(AP_W)) #define L1_S_PROT_MASK (L1_S_PROT_U|L1_S_PROT_W) #define L1_S_PROT(ku, pr) ((((ku) == PTE_USER) ? L1_S_PROT_U : 0) | \ (((pr) & VM_PROT_WRITE) ? L1_S_PROT_W : 0)) arm/include/pte.h: #define L1_S_AP(x) ((x) << 10) /* access permissions */ #define L1_S_V7_AP(x) ((((x) & 0x4) << 13) | (((x) & 3) << 10)) /* AP */ \Patrick > Am 02.10.2014 um 21:16 schrieb Patrick Wildt <m...@patrick-wildt.de>: > > Hi, > > I remember that there has been an issue, only seen on Cortex-A7/A15, like the > Allwinner A20. > > The fix for that issue is somewhere here[0]. > > Try this[1] kernel and have a look if it has the same issue or not. > > I do not have an A20, so I can’t test it, sorry. But I’ll probably buy > this[2][3] one once it’s available. > > \Patrick > > [0] > https://github.com/bitrig/bitrig/commit/f1932308435a4b2c3daf0e880dc0adc829f5803d > [1] https://www.blueri.se/bitrig/armv7/20140925/bsd.rd.SUNXI.umg > [2] > http://www.allnet.de/at/allnet-brand/produkte/neuheiten/p/banana-pi-router-board/ > [3] http://www.sinovoip.com.cn/ecp_view.asp?id=554 > >> Am 02.10.2014 um 20:56 schrieb SASANO Takayoshi <u...@mx5.nisiq.net>: >> >> Hello, >> >> I tried bsd.rd.SUNXI.umg snapshot on Banana Pi, cheap Allwinner A20 >> board like Raspberry Pi (see http://www.lemaker.org/). >> >> It booted but something wrong. Arch Linux (for Banana Pi) works fine >> so I think the board is not broken. >> >> This is my first OpenBSD/armv7 experience and I don't know what is >> happening. What can I do for solving this problem? >> >> -- >> SASANO Takayoshi <u...@mx5.nisiq.net> >> >> [uEnv.txt] >> mmcboot=mmc rescan; fatload mmc 0 0x60000000 bsd.umg && bootm 0x60000000; >> bootargs=sd0a:/bsd; >> uenvcmd=run mmcboot; >> >> >> [1st try - hang up] ---------------------------------------------------- >> U-Boot SPL 2014.04-10694-g2ae8b32-dirty (Oct 01 2014 - 17:40:04) >> Board: Bananapi >> DRAM: 1024 MiB >> CPU: 960000000Hz, AXI/AHB/APB: 3/2/2 >> spl: not an uImage at 1600 >> >> >> U-Boot 2014.04-10694-g2ae8b32-dirty (Oct 01 2014 - 17:40:04) Allwinner >> Technology >> >> CPU: Allwinner A20 (SUN7I) >> Board: Bananapi >> I2C: ready >> DRAM: 1 GiB >> MMC: SUNXI SD/MMC: 0 >> *** Warning - bad CRC, using default environment >> >> In: serial >> Out: serial >> Err: serial >> Net: dwmac.1c50000 >> Hit any key to stop autoboot: 0 >> reading uEnv.txt >> 116 bytes read in 16 ms (6.8 KiB/s) >> Loaded environment from uEnv.txt >> Running uenvcmd ... >> reading bsd.umg >> 7387788 bytes read in 367 ms (19.2 MiB/s) >> ## Booting kernel from Legacy Image at 60000000 ... >> Image Name: boot >> Image Type: ARM Linux Kernel Image (uncompressed) >> Data Size: 7387724 Bytes = 7 MiB >> Load Address: 40800000 >> Entry Point: 40800000 >> Verifying Checksum ... OK >> Loading Kernel Image ... OK >> >> Starting kernel ... >> >> >> OpenBSD/sunxi booting ... >> arg0 0x0 arg1 0x10bb arg2 0x40000100 >> atag core flags 0 pagesize 0 rootdev 0 >> atag cmdline [sd0a:/bsd;] >> atag mem start 0x40000000 size 0x40000000 >> bootfile: sd0a:/bsd; >> bootargs: >> memory size derived from u-boot >> bootconf.mem[0].address = 40000000 pages 262144/0x40000000 >> Allocating page tables >> freestart = 0x40f0c000, free_pages = 258292 (0x0003f0f4) >> IRQ stack: p0x40f3a000 v0xc0f3a000 >> ABT stack: p0x40f3b000 v0xc0f3b000 >> UND stack: p0x40f3c000 v0xc0f3c000 >> SVC stack: p0x40f3d000 v0xc0f3d000 >> Creating L1 page table at 0x40f0c000 >> Mapping kernel >> Constructing L2 page tables >> undefined page pmap [ using 169296 bytes of bsd ELF symbol table ] >> Copyright (c) 1982, 1986, 1989, 1991, 1993 >> The Regents of the University of California. All rights reserved. >> Copyright (c) 1995-2014 OpenBSD. All rights reserved. http://www.OpenBSD.org >> >> OpenBSD 5.6 (RAMDISK-SUNXI) #3: Sun Aug 31 18:46:49 EDT 2014 >> r...@pandaes.in.nickh.org:/usr/src/sys/arch/armv7/compile/RAMDISK-SUNXI >> real mem = 1073741824 (1024MB) >> avail mem = 1036165120 (988MB) >> warning: no entropy supplied by boot loader >> mainbus0 at root >> cortex0 at mainbus0 >> ampintc0 at cortex0 nirq 160 >> cpu0 at mainbus0: ARM Cortex A7 rev 4 (ARMv7 core) >> cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled >> cpu0: 32KB(32b/l,2way) I-cache, 32KB(64b/l,4way) wr-back D-cache >> sunxi0 at mainbus0: A20 >> sxipio0 at sunxi0 >> sxiccmu0 at sunxi0 >> sxitimer0 at sunxi0: ticktimer 100hz @ 32KHz >> sxitimer1 at sunxi0: stattimer 128hz @ 32KHz >> sxitimer2 at sunxi0: cntrtimer @ 32KHz >> sxidog0 at sunxi0 >> sxirtc0 at sunxi0 >> sxiuart0 at sunxi0: console >> sxiuart1 at sunxi0 >> sxiuart2 at sunxi0 >> sxiuart3 at sunxi0 >> sxiuart4 at sunxi0 >> sxiuart5 at sunxi0 >> sxiuart6 at sunxi0 >> sxiuart7 at sunxi0 >> sxie0 at sunxi0, address 02:99:03:c2:d2:6e >> ukphy0 at sxie0 phy 0: Generic IEEE 802.3u media interface, rev. 5: OUI >> 0x000732, model 0x0011 >> ukphy1 at sxie0 phy 1: Generic IEEE 802.3u media interface, rev. 5: OUI >> 0x000732, model 0x0011 >> ahci0 at sunxi0 AHCI 1.1 >> scsibus0 at ahci0: 32 targets >> ehci0 at sunxi0 >> usb0 at ehci0: USB revision 2.0 >> uhub0 at usb0 "Allwinner EHCI root hub" rev 2.00/1.00 addr 1 >> ehci1 at sunxi0 >> usb1 at ehci1: USB revision 2.0 >> uhub1 at usb1 "Allwinner EHCI root hub" rev 2.00/1.00 addr 1 >> (hang up here) >> >> >> [2nd try - ddb invoked] ------------------------------------------------ >> U-Boot SPL 2014.04-10694-g2ae8b32-dirty (Oct 01 2014 - 17:40:04) >> Board: Bananapi >> DRAM: 1024 MiB >> CPU: 960000000Hz, AXI/AHB/APB: 3/2/2 >> spl: not an uImage at 1600 >> >> >> U-Boot 2014.04-10694-g2ae8b32-dirty (Oct 01 2014 - 17:40:04) Allwinner >> Technology >> >> CPU: Allwinner A20 (SUN7I) >> Board: Bananapi >> I2C: ready >> DRAM: 1 GiB >> MMC: SUNXI SD/MMC: 0 >> *** Warning - bad CRC, using default environment >> >> In: serial >> Out: serial >> Err: serial >> Net: dwmac.1c50000 >> Hit any key to stop autoboot: 0 >> reading uEnv.txt >> 116 bytes read in 16 ms (6.8 KiB/s) >> Loaded environment from uEnv.txt >> Running uenvcmd ... >> reading bsd.umg >> 7387788 bytes read in 370 ms (19 MiB/s) >> ## Booting kernel from Legacy Image at 60000000 ... >> Image Name: boot >> Image Type: ARM Linux Kernel Image (uncompressed) >> Data Size: 7387724 Bytes = 7 MiB >> Load Address: 40800000 >> Entry Point: 40800000 >> Verifying Checksum ... OK >> Loading Kernel Image ... OK >> >> Starting kernel ... >> >> >> OpenBSD/sunxi booting ... >> arg0 0x0 arg1 0x10bb arg2 0x40000100 >> atag core flags 0 pagesize 0 rootdev 0 >> atag cmdline [sd0a:/bsd;] >> atag mem start 0x40000000 size 0x40000000 >> bootfile: sd0a:/bsd; >> bootargs: >> memory size derived from u-boot >> bootconf.mem[0].address = 40000000 pages 262144/0x40000000 >> Allocating page tables >> freestart = 0x40f0c000, free_pages = 258292 (0x0003f0f4) >> IRQ stack: p0x40f3a000 v0xc0f3a000 >> ABT stack: p0x40f3b000 v0xc0f3b000 >> UND stack: p0x40f3c000 v0xc0f3c000 >> SVC stack: p0x40f3d000 v0xc0f3d000 >> Creating L1 page table at 0x40f0c000 >> Mapping kernel >> Constructing L2 page tables >> undefined page pmap [ using 169296 bytes of bsd ELF symbol table ] >> Copyright (c) 1982, 1986, 1989, 1991, 1993 >> The Regents of the University of California. All rights reserved. >> Copyright (c) 1995-2014 OpenBSD. All rights reserved. http://www.OpenBSD.org >> >> OpenBSD 5.6 (RAMDISK-SUNXI) #3: Sun Aug 31 18:46:49 EDT 2014 >> r...@pandaes.in.nickh.org:/usr/src/sys/arch/armv7/compile/RAMDISK-SUNXI >> real mem = 1073741824 (1024MB) >> avail mem = 1036165120 (988MB) >> warning: no entropy supplied by boot loader >> mainbus0 at root >> cortex0 at mainbus0 >> ampintc0 at cortex0 nirq 160 >> cpu0 at mainbus0: ARM Cortex A7 rev 4 (ARMv7 core) >> cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled >> cpu0: 32KB(32b/l,2way) I-cache, 32KB(64b/l,4way) wr-back D-cache >> sunxi0 at mainbus0: A20 >> sxipio0 at sunxi0 >> sxiccmu0 at sunxi0 >> sxitimer0 at sunxi0: ticktimer 100hz @ 32KHz >> sxitimer1 at sunxi0: stattimer 128hz @ 32KHz >> sxitimer2 at sunxi0: cntrtimer @ 32KHz >> sxidog0 at sunxi0 >> sxirtc0 at sunxi0 >> sxiuart0 at sunxi0: console >> sxiuart1 at sunxi0 >> sxiuart2 at sunxi0 >> sxiuart3 at sunxi0 >> sxiuart4 at sunxi0 >> sxiuart5 at sunxi0 >> sxiuart6 at sunxi0 >> sxiuart7 at sunxi0 >> sxie0 at sunxi0, address 02:99:03:c2:d2:6e >> ukphy0 at sxie0 phy 0: Generic IEEE 802.3u media interface, rev. 5: OUI >> 0x000732, model 0x0011 >> ukphy1 at sxie0 phy 1: Generic IEEE 802.3u media interface, rev. 5: OUI >> 0x000732, model 0x0011 >> ahci0 at sunxi0 AHCI 1.1 >> scsibus0 at ahci0: 32 targets >> ehci0 at sunxi0 >> usb0 at ehci0: USB revision 2.0 >> uhub0 at usb0 "Allwinner EHCI root hub" rev 2.00/1.00 addr 1 >> ehci1 at sunxi0 >> usb1 at ehci1: USB revision 2.0 >> uhub1 at usb1 "Allwinner EHCI root hub" rev 2.00/1.00 addr 1 >> pmap_fault_fixup: va ca57c000 ftype 2 s pte 7ff7701e >> >> uvm_fault(0xc0e9f724, ca57c000, 2, 0) -> e >> Fatal kernel mode data abort: 'Translation Fault (P)' >> trapframe: 0xc0f3ee88 >> DFSR=000008f7, DFAR=ca57cfc8, spsr=60000153 >> r0 =c0ec0038, r1 =ca57c000, r2 =ca57cfc8, r3 =00000000 >> r4 =ca57c000, r5 =c0ec0038, r6 =00000000, r7 =c0ec0038 >> r8 =c0ebc90c, r9 =00000000, r10=00000004, r11=c0f3ef00 >> r12=c0f3ef04, ssp=c0f3eed4, slr=c0838250, pc =c08374e0 >> >> Stopped at pool_prime_page+0x24: str r3, [r2] >> ddb> trace >> pool_prime_page+0xc >> scp=0xc08374c8 rlv=0xc0838250 (pool_do_get+0x120) >> rsp=0xc0f3ef04 rfp=0xc0f3ef38 >> r10=0xc0ebc774 r9=0xc0ebd5dc r8=0xc0ebc90c r7=0x00000002 >> r6=0x00000000 r5=0xc0ec0038 r4=0xca57c000 >> pool_do_get+0x10 >> scp=0xc0838140 rlv=0xc0837e10 (pool_get+0x3c) >> rsp=0xc0f3ef3c rfp=0xc0f3ef58 >> r7=0x00001202 r6=0xc08325ac r5=0x00000002 r4=0xc0ec0038 >> pool_get+0x10 >> scp=0xc0837de4 rlv=0xc082e894 (workq_add_task+0x34) >> rsp=0xc0f3ef5c rfp=0xc0f3ef84 >> r6=0xc08325ac r5=0x00000000 r4=0x00000000 >> workq_add_task+0x10 >> scp=0xc082e870 rlv=0xc08327cc (disk_attach+0xf0) >> rsp=0xc0f3ef88 rfp=0xc0f3efa8 >> r7=0xc0ebc5f8 r6=0x00000000 r5=0xc5573500 r4=0xc5573530 >> disk_attach+0xc >> scp=0xc08326e8 rlv=0xc0815470 (main+0x374) >> rsp=0xc0f3efac rfp=0xc0f3efec >> r6=0x00000000 r5=0xc0ebc574 r4=0xc0970714 >> main+0x10 >> --db_more-- >> scp=0xc081510c rlv=0xc080017c (kernel_text+0x4c) >> rsp=0xc0f3eff0 rfp=0xc0f3effc >> r10=0x7ffb9eac r9=0x7fb65f0c r8=0x40000100 r7=0x000010bb >> r6=0x40000100 r5=0x000010bb r4=0x40800120 >> kernel_text+0x48 >> scp=0xc0800178 rlv=0xc090655c (initarm+0x820) >> rsp=0xc0f3f000 rfp=0x00000000 >> ddb> ps >> PID PPID PGRP UID S FLAGS WAIT COMMAND >> * 0 -1 0 0 7 0x10200 swapper >> ddb> boot reboot >> boot: howto=00004804 curproc=0xc0ebc774 >> rebooting... >> >> >> [3rd try - hangs up at ddb] >> U-Boot SPL 2014.04-10694-g2ae8b32-dirty (Oct 01 2014 - 17:40:04) >> Board: Bananapi >> DRAM: 1024 MiB >> CPU: 960000000Hz, AXI/AHB/APB: 3/2/2 >> spl: not an uImage at 1600 >> >> >> U-Boot 2014.04-10694-g2ae8b32-dirty (Oct 01 2014 - 17:40:04) Allwinner >> Technology >> >> CPU: Allwinner A20 (SUN7I) >> Board: Bananapi >> I2C: ready >> DRAM: 1 GiB >> MMC: SUNXI SD/MMC: 0 >> *** Warning - bad CRC, using default environment >> >> In: serial >> Out: serial >> Err: serial >> Net: dwmac.1c50000 >> Hit any key to stop autoboot: 0 >> reading uEnv.txt >> 116 bytes read in 16 ms (6.8 KiB/s) >> Loaded environment from uEnv.txt >> Running uenvcmd ... >> reading bsd.umg >> 7387788 bytes read in 367 ms (19.2 MiB/s) >> ## Booting kernel from Legacy Image at 60000000 ... >> Image Name: boot >> Image Type: ARM Linux Kernel Image (uncompressed) >> Data Size: 7387724 Bytes = 7 MiB >> Load Address: 40800000 >> Entry Point: 40800000 >> Verifying Checksum ... OK >> Loading Kernel Image ... OK >> >> Starting kernel ... >> >> >> OpenBSD/sunxi booting ... >> arg0 0x0 arg1 0x10bb arg2 0x40000100 >> atag core flags 0 pagesize 0 rootdev 0 >> atag cmdline [sd0a:/bsd;] >> atag mem start 0x40000000 size 0x40000000 >> bootfile: sd0a:/bsd; >> bootargs: >> memory size derived from u-boot >> bootconf.mem[0].address = 40000000 pages 262144/0x40000000 >> Allocating page tables >> freestart = 0x40f0c000, free_pages = 258292 (0x0003f0f4) >> IRQ stack: p0x40f3a000 v0xc0f3a000 >> ABT stack: p0x40f3b000 v0xc0f3b000 >> UND stack: p0x40f3c000 v0xc0f3c000 >> SVC stack: p0x40f3d000 v0xc0f3d000 >> Creating L1 page table at 0x40f0c000 >> Mapping kernel >> Constructing L2 page tables >> undefined page pmap [ using 169296 bytes of bsd ELF symbol table ] >> Copyright (c) 1982, 1986, 1989, 1991, 1993 >> The Regents of the University of California. All rights reserved. >> Copyright (c) 1995-2014 OpenBSD. All rights reserved. http://www.OpenBSD.org >> >> OpenBSD 5.6 (RAMDISK-SUNXI) #3: Sun Aug 31 18:46:49 EDT 2014 >> r...@pandaes.in.nickh.org:/usr/src/sys/arch/armv7/compile/RAMDISK-SUNXI >> real mem = 1073741824 (1024MB) >> avail mem = 1036165120 (988MB) >> warning: no entropy supplied by boot loader >> pmap_fault_fixup: va ca580000 ftype 2 s pte 7ffa001e >> >> uvm_fault(0xc0e9f724, ca580000, 2, 0) -> e >> Fatal kernel mode data abort: 'Translation Fault (P)' >> trapframe: 0xc0f3ee58 >> DFSR=000008f7, DFAR=ca580fc8, spsr=600001d3 >> r0 =c0ed5cf4, r1 =ca580000, r2 =ca580fc8, r3 =00000000 >> r4 =ca580000, r5 =c0ed5cf4, r6 =00000000, r7 =c0ed5cf4 >> r8 =c0ebc90c, r9 =00000000, r10=00000004, r11=c0f3eed0 >> r12=c0f3eed4, ssp=c0f3eea4, slr=c0838250, pc =c08374e0 >> >> Stopped at pool_prime_page+0x24: str r3, [r2] >> pool_prime_page+0xc >> scp=0xc08374c8 rlv=0xc0838250 (pool_do_get+0x120) >> rsp=0xc0f3eed4 rfp=0xc0f3ef08 >> r10=0xc0ebc774 r9=0xc0ebd5dc r8=0xc0ebc90c r7=0x00000001 >> r6=0x00000000 r5=0xc0ed5cf4 r4=0xca580000 >> pool_do_get+0x10 >> scp=0xc0838140 rlv=0xc0837e10 (pool_get+0x3c) >> rsp=0xc0f3ef0c rfp=0xc0f3ef28 >> r7=0xc0000000 r6=0xc0000000 r5=0x00000001 r4=0xc0ed5cf4 >> pool_get+0x10 >> scp=0xc0837de4 rlv=0xc08bbc64 (uaddr_rnd_create+0x24) >> rsp=0xc0f3ef2c rfp=0xc0f3ef44 >> r6=0xc0000000 r5=0xc0000000 r4=0x00001000 >> uaddr_rnd_create+0xc >> scp=0xc08bbc4c rlv=0xc08c5b90 (uvm_map_setup_md+0x30) >> rsp=0xc0f3ef48 rfp=0xc0f3ef64 >> r5=0x00001000 r4=0xc0ebc574 >> uvm_map_setup_md+0xc >> scp=0xc08c5b6c rlv=0xc08c86d0 (uvm_map_setup+0x120) >> rsp=0xc0f3ef68 rfp=0xc0f3ef84 >> r6=0x00000041 r5=0xc0ebc578 r4=0xc0ebc574 >> --db_more-- >> (hang up here) >> > >