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.

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

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

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