> Am 06.06.2015 um 16:47 schrieb Jonathan Gray <j...@jsg.id.au>:
> 
> On Sat, Jun 06, 2015 at 03:43:46PM +0200, Patrick Wildt wrote:
>> 
>>> Am 06.06.2015 um 15:06 schrieb Jonathan Gray <j...@jsg.id.au>:
>>> 
>>> On Sun, May 24, 2015 at 02:34:04AM +0200, Patrick Wildt wrote:
>>>> Just some random input.
>>>> 
>>>> QEMU supports emulating a few ARM boards. One of those is
>>>> the cubieboard which OpenBSD already supports. Unfortunately
>>>> it looks like that even though it does emulate its ethernet controller,
>>>> it does not emulate any storage.
>>>> 
>>>> Qemu also supports emulating a ???virt??? machine. This is essentially
>>>> a basic machine that only provides virtio devices. This means that
>>>> if you use the virtio mmio interface you can get access to peripherals
>>>> like storage, ethernet, random number generator, and some more.
>>>> 
>>>> Now this platform is very simple to support if you have FDT, but
>>>> even without it, it???s easily doable.
>>>> 
>>>> As far as I know that platform is supported by Bitrig and recently
>>>> also FreeBSD.
>>>> 
>>>> The people who work on the ARM subtree already have enough
>>>> on their plates to worry about another platform. If you want this
>>>> to happen, feel free to step up and have a look. It???s not that hard
>>>> and I bet it???s a chance for people to get into hacking OpenBSD.
>>>> 
>>>> \Patrick
>>> 
>>> The virt target sets a board id of -1.
>> 
>> Yes, because they expect you to go with time and use the device
>> tree tables. I think there???s a big push to go away from these board
>> ids and they start to not be reliable anymore. -1 probably means
>> ???don???t use it???.
> 
> Right, -1 seems to mean "use fdt".  You might want to change
> "BOARD_ID_VIRT 0xffffffff" and the code that uses it in case
> real hardware sets it.

Yeah, I removed that define quite a while ago. I have 4 boards and
SoCs that run FDT only and don’t care about any boardid.

> 
>> 
>> I have FreeScale LS1021A TWR which doesn???t even set the
>> boardid and it???s random everytime I boot it up. But in that case
>> you can set it in the u-boot env. One could probably patch the
>> qemu in ports to set some other id.
> 
> I'd rather avoid patching qemu, it's unlikely anyone other
> than OpenBSD would care about such patches.

Agreed. My idea was an OpenBSD-ports-only patch, but it would
be better if one just doesn't rely on the boardid at all.

> 
>> 
>>> The virtio ranges are present
>>> in the vexpress-a9 and vexpress-a15 targets which annoyingly have
>>> different load addresses and memory maps but share the same
>>> board id.
>>> 
>>> Seems to be an interrupt problem of some sort with the a15
>>> target but the a9 one works.
>> 
>> Oh, I had enough of those??? We have some changes in the
>> Bitrig agtimer which might make it work better. No guarantees.
> 
> Thanks, turns out only the interrupt for the "secure physical timer" (29)
> was hooked up, and not the interrupt for "non-secure physical timer" (30).
> 
> Works with that hooked up.

Great!

> 
> OpenBSD/vexpress booting ...
> arg0 0x0 arg1 0x8e0 arg2 0x80000100
> atag core flags 1 pagesize 1000 rootdev 0
> atag mem start 0x80000000 size 0x8000000
> atag cmdline [sd0a]
> bootfile: sd0a
> bootargs: 
> memory size derived from u-boot
> bootconf.mem[0].address = 80000000 pages 32768/0x08000000
> Allocating page tables
> freestart = 0x80767000, free_pages = 30873 (0x00007899)
> IRQ stack: p0x80795000 v0xc0795000
> ABT stack: p0x80796000 v0xc0796000
> UND stack: p0x80797000 v0xc0797000
> SVC stack: p0x80798000 v0xc0798000
> Creating L1 page table at 0x80768000
> Mapping kernel
> Constructing L2 page tables
> undefined page pmap [ using 384116 bytes of bsd ELF symbol table ]
> board type: 2272
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>        The Regents of the University of California.  All rights reserved.
> Copyright (c) 1995-2015 OpenBSD. All rights reserved.  http://www.OpenBSD.org
> 
> OpenBSD 5.7-current (GENERIC) #78: Sun Jun  7 00:03:42 AEST 2015
>    j...@imx.jsg.id.au:/usr/src/sys/arch/armv7/compile/GENERIC
> real mem  = 134217728 (128MB)
> avail mem = 123506688 (117MB)
> warning: no entropy supplied by boot loader
> mainbus0 at root
> cortex0 at mainbus0
> ampintc0 at cortex0 nirq 160
> agtimer0 at cortex0: tick rate 24000 KHz
> cpu0 at mainbus0: ARM Cortex A15 R2 rev 1 (ARMv7 core)
> cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
> cpu0: 32KB(64b/l,2way) I-cache, 32KB(64b/l,2way) wr-back D-cache
> vexpress0 at mainbus0: ARM VExpress
> pluart0 at vexpress0 console
> virtio0 at vexpress0: Virtio Entropy Device
> viornd0 at virtio0
> virtio1 at vexpress0: Virtio Memory Balloon Device
> viomb0 at virtio1
> virtio2 at vexpress0: Virtio Network Device
> vio0 at virtio2: address 52:54:00:12:34:56
> virtio3 at vexpress0: Virtio SCSI host Device
> vioscsi0 at virtio3: qsize 1024
> scsibus0 at vioscsi0: 255 targets
> sd0 at scsibus0 targ 0 lun 0: <QEMU, QEMU HARDDISK, 2.3.> SCSI3 0/direct fixed
> sd0: 1024MB, 512 bytes/sector, 2097152 sectors, thin
> cd0 at scsibus0 targ 2 lun 0: <QEMU, QEMU CD-ROM, 2.3.> SCSI3 5/cdrom 
> removable
> vscsi0 at root
> scsibus1 at vscsi0: 256 targets
> softraid0 at root
> scsibus2 at softraid0: 256 targets
> boot device: sd0
> root on sd0a (bfa4a02f29558655.a) swap on sd0b dump on sd0b
> WARNING: CHECK AND RESET THE DATE!
> Automatic boot in progress: starting file system checks.
> /dev/rsd0a: file system is clean; not checking
> setting tty flags
> pf enabled
> starting network
> DHCPREQUEST on vio0 to 255.255.255.255
> DHCPACK from 192.168.1.1 (00:60:e0:48:36:c0)
> bound to 192.168.1.159 -- renewal in 21600 seconds.
> starting early daemons: syslogd pflogd ntpd.
> starting RPC daemons:.
> savecore: no core dump
> checking quotas: done.
> clearing /tmp
> kern.securelevel: 0 -> 1
> creating runtime link editor directory cache.
> preserving editor files.
> starting network daemons: sshd smtpd sndiod.
> starting local daemons: cron.
> Sat Jun  6 23:04:07 AEST 2015
> 
> OpenBSD/armv7 (vexpress.jsg.id.au) (console)
> 
> login: 


Reply via email to