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)
>> 
> 
> 


Reply via email to