[Xen-devel] Xen on Arm Arndale Exynos5250

2015-11-05 Thread ed sandberg
I am trying to get xen running on an arndale Exynos5250.  I think I am
close to success because I can boot the hypervisor and interact with the
debug console and I don't see any errors.  I can switch the debug
console from xen mode to Dom0 mode by pressing CTRL-a three times,
however I am not prompted to login to Dom0 and I am not able to type any
commands.  I am unsure if the expected behavior is to receive a login
prompt when I switch to Dom0 mode or if I should be getting output on
the HDMI and that is where I would login to Dom0.

I have attached the putty log showing how I boot with all of the
environment variables I am using and after booting I pressed '*' to
print all diagnostics.

Here are my steps so far. I have done all of the compiling on the
arndale board running the linaro prebuilt image from:

https://releases.linaro.org/14.03/ubuntu/arndale/arndale-saucy_server_20140323-616.img.gz

I have followed the instructions here:

http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Arndale

I initially got the following error compiling Linux:

LD  sound/built-in.o
MK_FW   firmware/edid-1920x1080.fw.gen.S
make[1]: *** No rule to make target `firmware/edid-1920x1080.fw',
needed by `firmware/edid-1920x1080.fw.gen.o'.  Stop.
make: *** [firmware] Error 2

so I changed the value set in /linux/linaro/configs/lt-arndale.conf from
CONFIG_EXTRA_FIRMWARE="edid-1920x1080.fw" to CONFIG_EXTRA_FIRMWARE=""

That is the only thing I did that deviated from the instructions.

My initial thought was that I needed to add a getty process on COM3, so
that when I switched to Dom0 mode I could login.  This page seems to
agree with me:

http://wiki.xenproject.org/wiki/Xen_Serial_Console

I tried to do so by creating a ttyS2.conf file under /etc/init/ that
read as follows:

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -8 115200 ttyS2

with that in place I was still not prompted to login but it had an
effect because the serial connection would become unresponsive after a
few minutes.
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2015.11.05 08:15:55 =~=~=~=~=~=~=~=~=~=~=~=



U-Boot 2013.01.-rc1 (Jul 10 2013 - 15:16:09) for ARNDALE5250


CPU:	Exynos5250@1000MHz


Board:  for ARNDALE5250

I2C:   ready

DRAM:  2 GiB

WARNING: Caches not enabled


Checking Boot Mode ... SDMMC

MMC:   EXYNOS DWMMC: 0, EXYNOS DWMMC: 1, EXYNOS DWMMC: 2

In:serial

Out:   serial

Err:   serial

Net:   No ethernet found.

(Re)start USB...

USB0:   USB EHCI 1.00

scanning bus 0 for devices... 5 USB Device(s) found

   scanning usb for storage devices... 1 Storage Device(s) found

   scanning usb for ethernet devices... 1 Ethernet Device(s) found

Hit any key to stop autoboot:  3  0 

ARNDALE5250 # setenv xen_addr_r 0x5000

ARNDALE5250 # setenv kernel_addr_r 0x6000

ARNDALE5250 # setenv dtb_addr_r 0x4200

ARNDALE5250 # setenv xen_bootargs 'sync_console console=dtuart dtuart=/serial@12C2 dom0_mem=512M'

ARNDALE5250 # setenv dom0_bootargs 'console=hvc0 ignore_loglevel psci=enable clk_ignore_unused root=/dev/mmcblk1p3'

ARNDALE5250 # saveenv

Saving Environment to MMC...

Writing to MMC(0)... done

ARNDALE5250 # fatload mmc 0:2 $kernel_addr_r zImage

reading zImage

5550584 bytes read

ARNDALE5250 # fatload mmc 0:2 $xen_addr_r xen-uImage

reading xen-uImage

787356 bytes read

ARNDALE5250 # fatload mmc 0:2 $dtb_addr_r exynos5250-arndale.dtb

reading exynos5250-arndale.dtb

42095 bytes read

ARNDALE5250 # fdt addr $dtb_addr_r

ARNDALE5250 # fdt resize

ARNDALE5250 # fdt set /chosen xen,xen-bootargs \"$xen_bootargs\"

ARNDALE5250 # fdt set /chosen xen,dom0-bootargs \"$dom0_bootargs\"

ARNDALE5250 # fdt mknode /chosen modules

ARNDALE5250 # fdt set /chosen/modules '#address-cells' <1>

ARNDALE5250 # fdt set /chosen/modules '#size-cells' <1>

ARNDALE5250 # fdt mknode /chosen/modules module@0

ARNDALE5250 # fdt set /chosen/modules/module@0 compatible xen,zimage xen,multiboot-module

ARNDALE5250 # fdt set /chosen/modules/module@0 reg <$kernel_addr_r 0x00a0>

ARNDALE5250 # bootm $xen_addr_r - $dtb_addr_r

## Booting kernel from Legacy Image at 5000 ...

   Image Name:   

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:787292 Bytes = 768.8 KiB

   Load Address: 8020

   Entry Point:  8020

   Verifying Checksum ... OK

## Flattened Device Tree blob at 4200

   Booting using the fdt blob at 0x4200

   Loading Kernel Image ... OK

OK

   reserving fdt memory region: addr=4200 size=b000

   Using Device Tree in place at 4200, end 4200dfff


Starting kernel ...


 Xen 4.7-unstable
(XEN) Xen version 4.7-unstable (root@) (gcc (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1) debug=y Tue Nov  3 19:30:47 UTC 2015
(XEN) Latest ChangeSet: Wed Oct 21 16:18:30 2015 +0100 git:e294a0c
(XEN) Console output is synchronous.
(XEN) Processor: 410fc0f4: "ARM Limited", variant: 0x0, part 0xc0f, rev 0x4
(XEN) 32-bit Execution:
(XEN)   Processor Features: 

Re: [Xen-devel] Xen on Arm Arndale Exynos5250

2015-11-06 Thread ed sandberg
Thanks for the help Ian,

I tried using ttySAC2 in /etc/init/ttySAC2.conf but I still am not
prompted to login on the serial output.  I also tried creating
/etc/init/ttyhvc0.conf.  I think that is the correct place to start
getty from.  There are other similar files in that location and this page:

https://help.ubuntu.com/community/SerialConsoleHowto

says that karmic and newer start console processes from /etc/init/
files.  I have also tried using /etc/inittab but that doesn't seem to
help.

The linaro prebuilt image (no xen) boots and I am prompted to log in so
I tried comparing the boot process.  I found that the boot.txt file on
the boot partition had the following line:

setenv bootargs "console=tty0 console=ttySAC2,115200n8
drm_kms_helper.edid_firmware=edid-1920x1080.fw
root=UUID=bf05a5f4-06bf-4c99-8729-e20678372aea rootwait ro"

that makes me confident that you are correct about the console name
being ttySAC2.  I tried editing my environment variables to be more
similar to this as such:

# setenv xen_bootargs 'console=dtuart dtuart=/serial@12C2 dom0_mem=512M'
# setenv dom0_bootargs 'console=hvc0 console=ttySAC2,115200n8
ignore_loglevel psci=enable clk_ignore_unused root=/dev/mmcblk1p3'

but that brings me to the same debug console with this instruction:

(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch
input to Xen)

I can switch input to Xen and then I can get diagnostic info but that is
a far as I get.


On 11/06/2015 02:52 AM, Ian Campbell wrote:
> On Thu, 2015-11-05 at 12:59 -0600, ed sandberg wrote:
>>
> 
>> My initial thought was that I needed to add a getty process on COM3, so
>> that when I switched to Dom0 mode I could login.  This page seems to
>> agree with me:
>>
>> http://wiki.xenproject.org/wiki/Xen_Serial_Console
>>
>> I tried to do so by creating a ttyS2.conf file under /etc/init/ that
>> read as follows:
>>
>> start on stopped rc RUNLEVEL=[2345]
>> stop on runlevel [!2345]
>>
>> respawn
>> exec /sbin/getty -8 115200 ttyS2
>>
>> with that in place I was still not prompted to login but it had an
>> effect because the serial connection would become unresponsive after a
>> few minutes.
> 
> IIRC Linux's name for the console serial device on Arndale is ttySAC2,
> so that is what you would want when booting natively (unless Linaro
> have done some pretty extreme patching, which I wouldn't expect. I've
> only used mainline on this platform).
> 
> If you are running as dom0 under Xen you want to have a getty on
> "/dev/hvc0", the Xen PV console device, since the real UART will be
> owned by Xen (due to the "dtuart=/serial@12C2" which you will be
> passing on Xen's command line).
> 
> I don't think any of the Arndale devices have multiple serial ports
> exposed, but if they did then you could use separate ones for Xen's and
> dom0's console, but the Linux name for dom0 would still be ttySAC
> not ttyS.
> 
> When you created /etc/init/ttyS2.conf were there other similar files
> around in that directory? I ask because that sounds like an upstart
> path and I'm unsure if Saucy still uses upstart.
> 
> Ian.
> 
> ___
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
> 

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] Xen on Arm Arndale Exynos5250

2015-11-06 Thread ed sandberg

> Does your kernel have the Xen drivers (CONFIG_XEN and all which is
> gated on that) enabled. In particular CONFIG_HVC_XEN.
> 
Yes the config file I used to compile has CONFIG_XEN=y and
CONFIG_HVC_XEN=y.  Config file is attached.
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 4.3.0-rc6 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y
CONFIG_MIGHT_HAVE_PCI=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_HAVE_PROC_CPU=y
CONFIG_NO_IOPORT_MAP=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_BANDGAP=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_VECTORS_BASE=0x
CONFIG_ARM_PATCH_PHYS_VIRT=y
CONFIG_GENERIC_BUG=y
CONFIG_PGTABLE_LEVELS=3
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_FHANDLE=y
CONFIG_USELIB=y
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_HANDLE_DOMAIN_IRQ=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
# CONFIG_TASKSTATS is not set

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_SRCU=y
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_EXPEDITE_BOOT is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=16
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_GENERIC_SCHED_CLOCK=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_CGROUP_FREEZER is not set
# CONFIG_CGROUP_PIDS is not set
# CONFIG_CGROUP_DEVICE is not set
# CONFIG_CPUSETS is not set
# CONFIG_CGROUP_CPUACCT is not set
# CONFIG_MEMCG is not set
# CONFIG_CGROUP_PERF is not set
# CONFIG_CGROUP_SCHED is not set
# CONFIG_BLK_CGROUP is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
# CONFIG_USER_NS is not set
CONFIG_PID_NS=y
CONFIG_NET_NS=y
# CONFIG_SCHED_AUTOGROUP is not set
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_BPF=y
CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_MULTIUSER=y
# CONFIG_SGETMASK_SYSCALL is not set
CONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
# CONFIG_BPF_SYSCALL is not set
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_ADVISE_SYSCALLS=y
# CONFIG_USERFAULTFD is not set
CONFIG_MEMBARRIER=y
CONFIG_EMBEDDED=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_OPROFILE=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
# CONFIG_JUMP_LABEL is not set
# CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HA

Re: [Xen-devel] Xen on Arm Arndale Exynos5250

2015-11-11 Thread ed sandberg
> So does it still not work if you add a getty onto "hvc0" instead of
> "ttySA2"?

Correct, adding getty to hvc0 also does not work.


Ed

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel