qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 00/19] hw/arm/raspi: Improve Raspberry Pi 2/3 reliability


From: Philippe Mathieu-Daudé
Subject: [PATCH 00/19] hw/arm/raspi: Improve Raspberry Pi 2/3 reliability
Date: Thu, 26 Sep 2019 19:34:08 +0200

Hi,

I previously posted a RFC for the Raspberry Pi 4:
https://www.mail-archive.com/address@hidden/msg642241.html
and got it almost working (boots Linux kernel to userland, sadly
I'm still having timeout issues with the eMMC block).
However since it is quite usable, I started to clean up to post
the series and realized it is way too big for Peter Maydell, so
I'm following his rule of thumb by splitting in 3 sets of ~20
functional patches.

In this first series, we pay old debts with these models. Linux
evolved and recent kernels were barely usable. U-boot now ticks,
Linux stops to Oops every so and then. We can use more than one
console at a time (think pppd?).

Then we add various tests to confirm our effort made sense, and
to avoid regressions.

Laurent, Cheng, do you mind testing on U-Boot?

In the next part we'll improve/update the MBox/Properties and the
interrupt controller blocks.

Finally the last part adds the raspi4.

Please review.

Regards,

Phil.

---

The tests added are already enabled on our Travis-CI.
It takes me <2min to run all the tests:

$ make aarch64-softmmu/all check-venv
$ ./tests/venv/bin/avocado --show=app,console run -t machine:raspi2 -t 
machine:raspi3 tests/acceptance
JOB ID     : 10bf6593659f0b191941265c19fe3dbf1652c3e7
JOB LOG    : /home/phil/avocado/job-results/job-2019-09-26T19.04-10bf659/job.log
 (1/4) 
tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_uart0: 
\console: [    0.000000] Booting Linux on physical CPU 0xf00
console: [    0.000000] Linux version 4.14.98-v7+ (dom@dom-XPS-13-9370) (gcc 
version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1200 SMP Tue Feb 
12 20:27:48 GMT 2019
console: [    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), 
cr=10c5387d
console: [    0.000000] CPU: div instructions available: patching division code
console: [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing 
instruction cache
console: [    0.000000] OF: fdt: Machine model: Raspberry Pi 2 Model B
console: [    0.000000] earlycon: pl11 at MMIO 0x3f201000 (options '')
console: [    0.000000] bootconsole [pl11] enabled
console: [    0.000000] Memory policy: Data cache writealloc
console: [    0.000000] cma: Reserved 8 MiB at 0x3b800000
console: [    0.000000] percpu: Embedded 17 pages/cpu @baf2e000 s38720 r8192 
d22720 u69632
console: [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 
243600
console: [    0.000000] Kernel command line: printk.time=0 
earlycon=pl011,0x3f201000 console=ttyAMA0
PASS (6.74 s)
 (2/4) 
tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_raspi2_uart1: 
-console: [    0.000000] Booting Linux on physical CPU 0xf00
console: [    0.000000] Linux version 4.14.98-v7+ (dom@dom-XPS-13-9370) (gcc 
version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1200 SMP Tue Feb 
12 20:27:48 GMT 2019
console: [    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), 
cr=10c5387d
console: [    0.000000] CPU: div instructions available: patching division code
console: [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing 
instruction cache
console: [    0.000000] OF: fdt: Machine model: Raspberry Pi 2 Model B
console: [    0.000000] earlycon: uart8250 at MMIO32 0x3f215040 (options '')
console: [    0.000000] bootconsole [uart8250] enabled
console: [    0.000000] Memory policy: Data cache writealloc
console: [    0.000000] cma: Reserved 8 MiB at 0x3b800000
console: [    0.000000] percpu: Embedded 17 pages/cpu @baf2e000 s38720 r8192 
d22720 u69632
console: [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 
243600
console: [    0.000000] Kernel command line: printk.time=0 
earlycon=uart8250,mmio32,0x3f215040 console=ttyS1,115200
PASS (6.69 s)
 (3/4) 
tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_raspi3_initrd_uart0:
 -console: [    0.000000] Booting Linux on physical CPU 0x0
console: [    0.000000] Linux version 4.14.0-3-arm64 (address@hidden) (gcc 
version 7.2.0 (Debian 7.2.0-18)) #1 SMP Debian 4.14.12-2 (2018-01-06)
console: [    0.000000] Boot CPU: AArch64 Processor [410fd034]
console: [    0.000000] Machine model: Raspberry Pi 3 Model B
console: [    0.000000] earlycon: pl11 at MMIO 0x000000003f201000 (options '')
console: [    0.000000] bootconsole [pl11] enabled
console: [    0.000000] efi: Getting EFI parameters from FDT:
console: [    0.000000] efi: UEFI not found.
console: [    0.000000] cma: Reserved 64 MiB at 0x0000000038000000
console: [    0.000000] NUMA: No NUMA configuration found
console: [    0.000000] NUMA: Faking a node at [mem 
0x0000000000000000-0x000000003bffffff]
console: [    0.000000] NUMA: NODE_DATA [mem 0x37fdc380-0x37fdde7f]
console: [    0.000000] Zone ranges:
console: [    0.000000]   DMA      [mem 0x0000000000000000-0x000000003bffffff]
console: [    0.000000]   Normal   empty
console: [    0.000000] Movable zone start for each node
console: [    0.000000] Early memory node ranges
console: [    0.000000]   node   0: [mem 0x0000000000000000-0x000000003bffffff]
console: [    0.000000] Initmem setup node 0 [mem 
0x0000000000000000-0x000000003bffffff]
\console: [    0.000000] /cpus/cpu@1: missing enable-method property
console: [    0.000000] /cpus/cpu@2: missing enable-method property
console: [    0.000000] /cpus/cpu@3: missing enable-method property
console: [    0.000000] random: fast init done
console: [    0.000000] percpu: Embedded 22 pages/cpu @ffff800037fb3000 s51608 
r8192 d30312 u90112
console: [    0.000000] Detected VIPT I-cache on CPU0
console: [    0.000000] CPU features: enabling workaround for ARM erratum 845719
console: [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 
241920
console: [    0.000000] Policy zone: DMA
console: [    0.000000] Kernel command line: printk.time=0 
earlycon=pl011,0x3f201000 console=ttyAMA0 panic=-1 noreboot
console: PID hash table entries: 4096 (order: 3, 32768 bytes)
console: Memory: 879888K/983040K available (8252K kernel code, 1448K rwdata, 
2692K rodata, 4480K init, 601K bss, 37616K reserved, 65536K cma-reserved)
console: Virtual kernel memory layout:
console: modules : 0xffff000000000000 - 0xffff000008000000   (   128 MB)
console: vmalloc : 0xffff000008000000 - 0xffff7dffbfff0000   (129022 GB)
console: .text : 0xffff000008080000 - 0xffff000008890000   (  8256 KB)
console: .rodata : 0xffff000008890000 - 0xffff000008b40000   (  2752 KB)
console: .init : 0xffff000008b40000 - 0xffff000008fa0000   (  4480 KB)
console: .data : 0xffff000008fa0000 - 0xffff00000910a200   (  1449 KB)
console: .bss : 0xffff00000910a200 - 0xffff0000091a0910   (   602 KB)
console: fixed   : 0xffff7dfffe7fd000 - 0xffff7dfffec00000   (  4108 KB)
console: PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000   (    16 MB)
console: vmemmap : 0xffff7e0000000000 - 0xffff800000000000   (  2048 GB maximum)
console: 0xffff7e0000000000 - 0xffff7e0000f00000   (    15 MB actual)
console: memory  : 0xffff800000000000 - 0xffff80003c000000   (   960 MB)
console: ftrace: allocating 30760 entries in 121 pages
\console: Hierarchical RCU implementation.
console: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=1.
console: RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
console: NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
console: arch_timer: WARNING: Invalid trigger for IRQ2, assuming level low
console: arch_timer: WARNING: Please fix your firmware
console: arch_timer: cp15 timer(s) running at 62.50MHz (phys).
console: clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 
0x1cd42e208c, max_idle_ns: 881590405314 ns
console: sched_clock: 56 bits at 62MHz, resolution 16ns, wraps every 
4398046511096ns
console: Console: colour dummy device 80x25
console: Calibrating delay loop (skipped), value calculated using timer 
frequency.. 125.00 BogoMIPS (lpj=250000)
console: pid_max: default: 32768 minimum: 301
console: Security Framework initialized
console: Yama: disabled by default; enable with sysctl kernel.yama.*
console: AppArmor: AppArmor initialized
console: Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
console: Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
console: Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
console: Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
console: ASID allocator initialised with 65536 entries
console: Hierarchical SRCU implementation.
console: EFI services will not be available.
console: smp: Bringing up secondary CPUs ...
console: smp: Brought up 1 node, 1 CPU
console: SMP: Total of 1 processors activated.
console: CPU features: detected feature: 32-bit EL0 Support
console: CPU: All CPU(s) started at EL2
console: alternatives: patching kernel code
|console: devtmpfs: initialized
console: Registered cp15_barrier emulation handler
console: Registered setend emulation handler
console: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, 
max_idle_ns: 7645041785100000 ns
console: futex hash table entries: 256 (order: 3, 32768 bytes)
console: pinctrl core: initialized pinctrl subsystem
console: DMI not present or invalid.
console: NET: Registered protocol family 16
console: cpuidle: using governor ladder
console: cpuidle: using governor menu
console: vdso: 2 pages (1 code @ ffff000008896000, 1 data @ ffff000008fa5000)
console: hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
console: DMA: preallocated 256 KiB pool for atomic allocations
console: Serial: AMBA PL011 UART driver
console: uart-pl011 3f201000.serial: could not find pctldev for node 
/soc/gpio@7e200000/uart0_pins, deferring probe
console: HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
console: ACPI: Interpreter disabled.
console: vgaarb: loaded
console: EDAC MC: Ver: 3.0.0
console: dmi: Firmware registration failed.
/console: clocksource: Switched to clocksource arch_sys_counter
-console: VFS: Disk quotas dquot_6.6.0
console: VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
console: AppArmor: AppArmor Filesystem Enabled
console: pnp: PnP ACPI: disabled
\console: NET: Registered protocol family 2
console: TCP established hash table entries: 8192 (order: 4, 65536 bytes)
console: TCP bind hash table entries: 8192 (order: 5, 131072 bytes)
console: TCP: Hash tables configured (established 8192 bind 8192)
console: UDP hash table entries: 512 (order: 2, 16384 bytes)
console: UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
console: NET: Registered protocol family 1
console: Unpacking initramfs...
console: Freeing initrd memory: 3268K
console: kvm [1]: 8-bit VMID
console: kvm [1]: IDMAP page: 87a000
console: kvm [1]: HYP VA range: 800000000000:ffffffffffff
console: kvm [1]: Invalid trigger for IRQ4, assuming level low
console: kvm [1]: virtual timer IRQ4
console: kvm [1]: Hyp mode initialized successfully
|console: audit: initializing netlink subsys (disabled)
console: audit: type=2000 audit(4.436:1): state=initialized audit_enabled=0 
res=1
console: workingset: timestamp_bits=44 max_order=18 bucket_order=0
console: zbud: loaded
/console: Key type asymmetric registered
console: Asymmetric key parser 'x509' registered
console: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
console: io scheduler noop registered
console: io scheduler deadline registered
console: io scheduler cfq registered (default)
console: io scheduler mq-deadline registered
console: Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
console: bcm2835-aux-uart 3f215040.serial: irq not found - -517
console: Serial: AMBA driver
console: msm_serial: driver initialized
console: cacheinfo: Unable to detect cache hierarchy for CPU 0
console: mousedev: PS/2 mouse device common for all mice
console: ledtrig-cpu: registered to indicate activity on CPUs
console: dmi-sysfs: dmi entry is absent.
console: bcm2835-mbox 3f00b880.mailbox: mailbox enabled
console: NET: Registered protocol family 10
console: Segment Routing with IPv6
console: mip6: Mobile IPv6
console: NET: Registered protocol family 17
console: mpls_gso: MPLS GSO support
console: registered taskstats version 1
console: zswap: loaded using pool lzo/zbud
console: AppArmor: AppArmor sha1 policy hashing enabled
console: ima: No TPM chip found, activating TPM-bypass! (rc=-19)
console: 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 72, base_baud = 0) 
is a PL011 rev2
console: console [ttyAMA0] enabled
console: console [ttyAMA0] enabled
console: bootconsole [pl11] disabled
console: bootconsole [pl11] disabled
console: bcm2835-aux-uart 3f215040.serial: irq not found - -517
console: raspberrypi-firmware soc:firmware: Attached to firmware from 
1970-01-05 00:12
console: bcm2835-aux-uart 3f215040.serial: irq not found - -517
-console: hctosys: unable to open rtc device (rtc0)
console: uart-pl011 3f201000.serial: no DMA platform data
console: Freeing unused kernel memory: 4480K
\console: mount: mounting devtmpfs on /dev failed: Device or resource busy
-console: Starting logging: OK
\console: Initializing random number generator... done.
/console: Starting network: OK
-console: Found console ttyAMA0
\console: Boot successful.
console: cat /proc/cpuinfo
console: / # cat /proc/cpuinfo
|console: processor     : 0
console: BogoMIPS       : 125.00
console: Featuresuname -a
console: : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
console: CPU implementer        : 0x41
console: CPU architecture: 8
console: CPU variant    : 0x0
console: CPU part       : 0xd03
console: CPU revision   : 4
console: / # uname -a
console: Linux buildroot 4.14.0-3-arm64 #1 SMP Debian 4.14.12-2 (2018-01-06) 
aarch64 GNU/Linux
console: reboot
console: / # reboot
/console: / # Found console ttyAMA0
\console: Stopping network: OK
|console: Saving random seed... done.
console: Stopping logging: OK
/console: umount: devtmpfs busy - remounted read-only
console: umount: can't unmount /: Invalid argument
console: The system is going down NOW!
console: Sent SIGTERM to all processes
-console: Sent SIGKILL to all processes
console: Requesting system reboot
\console: kvm: exiting hardware virtualization
console: reboot: Restarting system
PASS (36.65 s)
 (4/4) 
tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_raspi3_initrd_sd_temp:
 /console: [    0.000000] Booting Linux on physical CPU 0x0000000000 
[0x410fd034]
console: [    0.000000] Linux version 4.19.71-v8-13ce09db830e+ 
(sakaki@kurosawa) (gcc version 8.3.0 (Gentoo 8.3.0-r1 p1.1)) #1 SMP PREEMPT Tue 
Sep 10 13:07:40 GMT 2019
console: [    0.000000] Machine model: Raspberry Pi 3 Model B
console: [    0.000000] earlycon: pl11 at MMIO 0x000000003f201000 (options '')
console: [    0.000000] bootconsole [pl11] enabled
console: [    0.000000] efi: Getting EFI parameters from FDT:
console: [    0.000000] efi: UEFI not found.
console: [    0.000000] cma: Reserved 8 MiB at 0x000000003b800000
-console: [    0.000000] random: get_random_bytes called from 
start_kernel+0xa0/0x464 with crng_init=0
console: [    0.000000] percpu: Embedded 24 pages/cpu s57368 r8192 d32744 u98304
console: [    0.000000] Detected VIPT I-cache on CPU0
console: [    0.000000] CPU features: enabling workaround for ARM erratum 843419
console: [    0.000000] CPU features: enabling workaround for ARM erratum 845719
\console: [    0.000000] CPU features: detected: Kernel page table isolation 
(KPTI)
console: [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 
241920
console: [    0.000000] Kernel command line: printk.time=0 
earlycon=pl011,0x3f201000 console=ttyAMA0 root=/dev/mmcblk0 rootwait rw 
panic=-1 noreboot
console: Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
console: Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
console: Memory: 941500K/983040K available (7676K kernel code, 880K rwdata, 
2368K rodata, 2752K init, 918K bss, 33348K reserved, 8192K cma-reserved)
console: SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
console: ftrace: allocating 26487 entries in 104 pages
-console: rcu: Preemptible hierarchical RCU implementation.
console: Tasks RCU enabled.
console: NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
console: arch_timer: cp15 timer(s) running at 62.50MHz (phys).
console: clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 
0x1cd42e208c, max_idle_ns: 881590405314 ns
console: sched_clock: 56 bits at 62MHz, resolution 16ns, wraps every 
4398046511096ns
\console: Console: colour dummy device 80x25
console: Calibrating delay loop (skipped), value calculated using timer 
frequency.. 125.00 BogoMIPS (lpj=62500)
console: pid_max: default: 32768 minimum: 301
console: Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
console: Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
console: ASID allocator initialised with 32768 entries
console: rcu: Hierarchical SRCU implementation.
console: EFI services will not be available.
console: smp: Bringing up secondary CPUs ...
console: Detected VIPT I-cache on CPU1
console: CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
console: Detected VIPT I-cache on CPU2
console: CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
console: Detected VIPT I-cache on CPU3
console: CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
console: smp: Brought up 1 node, 4 CPUs
console: SMP: Total of 4 processors activated.
console: CPU features: detected: 32-bit EL0 Support
|console: CPU: All CPU(s) started at EL2
console: alternatives: patching kernel code
console: devtmpfs: initialized
console: Enabled cp15_barrier support
console: Enabled setend support
console: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, 
max_idle_ns: 1911260446275000 ns
console: futex hash table entries: 1024 (order: 4, 65536 bytes)
console: pinctrl core: initialized pinctrl subsystem
console: DMI not present or invalid.
console: NET: Registered protocol family 16
/console: cpuidle: using governor menu
console: vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
console: hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
console: DMA: preallocated 256 KiB pool for atomic allocations
console: Serial: AMBA PL011 UART driver
console: bcm2835-mbox 3f00b880.mailbox: mailbox enabled
\console: bcm2835-dma 3f007000.dma: DMA legacy API manager at (____ptrval____), 
dmachans=0x1
console: SCSI subsystem initialized
console: usbcore: registered new interface driver usbfs
console: usbcore: registered new interface driver hub
console: usbcore: registered new device driver usb
console: raspberrypi-firmware soc:firmware: Attached to firmware from 
1970-01-05 00:12, variant unknown
console: raspberrypi-firmware soc:firmware: Firmware hash is 
ffffffff08542080ffffff8008023bb0ffffff80
console: clocksource: Switched to clocksource arch_sys_counter
-console: VFS: Disk quotas dquot_6.6.0
console: VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
console: FS-Cache: Loaded
console: CacheFiles: Loaded
\console: NET: Registered protocol family 2
console: tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes)
console: TCP established hash table entries: 8192 (order: 4, 65536 bytes)
console: TCP bind hash table entries: 8192 (order: 5, 131072 bytes)
console: TCP: Hash tables configured (established 8192 bind 8192)
console: UDP hash table entries: 512 (order: 2, 16384 bytes)
console: UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
console: NET: Registered protocol family 1
console: RPC: Registered named UNIX socket transport module.
console: RPC: Registered udp transport module.
console: RPC: Registered tcp transport module.
console: RPC: Registered tcp NFSv4.1 backchannel transport module.
console: hw perfevents: enabled with armv8_cortex_a53 PMU driver, 5 counters 
available
console: Initialise system trusted keyrings
console: workingset: timestamp_bits=46 max_order=18 bucket_order=0
console: FS-Cache: Netfs 'nfs' registered for caching
console: NFS: Registering the id_resolver key type
console: Key type id_resolver registered
console: Key type id_legacy registered
|console: Key type asymmetric registered
console: Asymmetric key parser 'x509' registered
console: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
console: io scheduler noop registered
console: io scheduler deadline registered
console: io scheduler cfq registered (default)
console: io scheduler mq-deadline registered
console: io scheduler kyber registered
console: bcm2835-aux-uart 3f215040.serial: unable to register 8250 port - -22
console: bcm2835-aux-uart: probe of 3f215040.serial failed with error -22
console: bcm2835-rng 3f104000.rng: hwrng registered
console: vc-mem: phys_addr:0x00000000 mem_base=0x00000000 mem_size:0x00000000(0 
MiB)
console: cacheinfo: Unable to detect cache hierarchy for CPU 0
/console: brd: module loaded
console: loop: module loaded
console: Loading iSCSI transport class v2.0-870.
console: libphy: Fixed MDIO Bus: probed
console: usbcore: registered new interface driver lan78xx
console: usbcore: registered new interface driver smsc95xx
console: dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
console: dwc2 3f980000.usb: dwc2_core_reset: HANG! AHB Idle timeout GRSTCTL 
GRSTCTL_AHBIDLE
console: dwc2: probe of 3f980000.usb failed with error -16
console: usbcore: registered new interface driver usb-storage
console: bcm2835_thermal 3f212000.thermal: Clock tsens running at 19200000 Hz 
is outside of the recommended range: 1.92 to 5MHz
console: bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
console: bcm2835-cpufreq: min=700000 max=700000
console: raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 1 config (0 
81)
console: raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 1 config (0 
81)
console: pwrseq_simple: probe of wifi-pwrseq failed with error -5
console: sdhci: Secure Digital Host Controller Interface driver
console: sdhci: Copyright(c) Pierre Ossman
console: sdhost-bcm2835 3f202000.mmc: /aliases ID not available
console: sdhost: log_buf @ (____ptrval____) (fb840000)
-console: mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
console: sdhci-pltfm: SDHCI platform and OF driver helper
console: raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 2 config (0 
82)
console: raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 2 state (0 
82)
console: leds-gpio: probe of leds failed with error -5
console: ledtrig-cpu: registered to indicate activity on CPUs
console: hidraw: raw HID events driver (C) Jiri Kosina
console: usbcore: registered new interface driver usbhid
console: usbhid: USB HID core driver
console: Initializing XFRM netlink socket
console: NET: Registered protocol family 17
console: Key type dns_resolver registered
console: mmc0: host does not support reading read-only switch, assuming 
write-enable
console: mmc0: Problem switching card into high-speed mode!
console: registered taskstats version 1
console: Loading compiled-in X.509 certificates
console: mmc0: new SD card at address 4567
console: mmcblk0: mmc0:4567 QEMU! 10.0 MiB
console: 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 66, base_baud = 0) 
is a PL011 rev2
console: console [ttyAMA0] enabled
console: console [ttyAMA0] enabled
console: bootconsole [pl11] disabled
console: bootconsole [pl11] disabled
console: of_cfs_init
console: of_cfs_init: OK
console: uart-pl011 3f201000.serial: no DMA platform data
console: EXT4-fs (mmcblk0): mounting ext2 file system using the ext4 subsystem
console: EXT4-fs (mmcblk0): mounted filesystem without journal. Opts: (null)
console: VFS: Mounted root (ext2 filesystem) on device 179:0.
\console: devtmpfs: mounted
console: Freeing unused kernel memory: 2752K
console: Run /sbin/init as init process
\console: mount: mounting devtmpfs on /dev failed: Device or resource busy
|console: EXT4-fs (mmcblk0): re-mounted. Opts: (null)
|console: Starting logging: OK
|console: Initializing random number generator... random: dd: uninitialized 
urandom read (512 bytes read)
console: done.
\console: Starting network: OK
/console: Found console ttyAMA0
\console: Boot successful.
console: cat /proc/cpuinfo
|console: / # cat /proc/cpuinfo
/console: processor     : 0
console: BogoMIPS       : 125.00
console: Features       : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
console: CPU implementer        : 0x41
console: CPU architecture: 8
console: CPU variant    : 0x0
console: CPU part       : 0xd03
console: CPU revision   : 4
console: processor      : 1
console: BogoMIPS       : 125.00
console: Features       : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
console: CPU implementer        : 0x41
console: CPU architecture: 8
console: CPU variant    : 0x0
console: CPU part       : 0xd03
console: CPU revision   : 4
console: processor      : 2
console: BogoMIPS       : 125.00
console: Features       : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
console: CPU implementer        : 0x41
console: CPU architecture: 8
console: CPU variant    : 0x0
console: CPU part       : 0xd03
console: CPU revision   : 4
console: processor      : 3
console: BogoMIPS       : 125.00
console: Features       : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
console: CPU implementer        : 0x41
console: CPU architecture: 8
console: CPU variant    : 0x0
console: CPU part       : 0xd03
console: CPU revision   : 4
console: Hardware       : BCM2835
console: Model          : Raspberry Pi 3 Model B
console: cat /sys/devices/virtual/thermal/thermal_zone0/temp
console: / # cat /sys/devices/virtual/thermal/thermal_zone0/temp
console: 25178
console: reboot
-console: / # reboot
\console: / # Found console ttyAMA0
\console: Stopping network: hrtimer: interrupt took 5480528 ns
/console: OK
\console: Saving random seed... random: dd: uninitialized urandom read (512 
bytes read)
console: done.
/console: Stopping logging: OK
\console: umount: devtmpfs busy - remounted read-only
console: EXT4-fs (mmcblk0): re-mounted. Opts: (null)
console: The system is going down NOW!
console: Sent SIGTERM to all processes
|console: Sent SIGKILL to all processes
console: Requesting system reboot
/console: reboot: Restarting system
PASS (66.14 s)
RESULTS    : PASS 4 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME   : 116.67 s

Philippe Mathieu-Daudé (19):
  hw/arm/raspi: Use the IEC binary prefix definitions
  hw/arm/bcm2835_peripherals: Improve logging
  hw/arm/bcm2835_peripherals: Name various address spaces
  hw/arm/bcm2835: Rename some definitions
  hw/arm/bcm2835: Add various unimplemented peripherals
  hw/char/bcm2835_aux: Add trace events
  hw/misc/bcm2835_mbox: Add trace events
  hw/misc/bcm2835_thermal: Add a dummy BCM2835 thermal sensor
  hw/arm/bcm2835_peripherals: Use the thermal sensor block
  hw/timer/bcm2835: Add the BCM2835 SYS_timer
  hw/arm/bcm2835_peripherals: Use the SYS_timer
  hw/arm/bcm2835_peripherals: Add Clock/Power/Reset Manager blocks
  hw/arm/raspi: Define various blocks base addresses
  python/qemu/machine: Allow to use other serial consoles than default
  tests/boot_linux_console: Extract the gunzip() helper
  tests/boot_linux_console: Add a test for the Raspberry Pi 2
  tests/boot_linux_console: Test the raspi2 UART1 (16550 based)
  tests/boot_linux_console: Boot Linux and run few commands on raspi3
  tests/boot_linux_console: Test SDHCI and termal sensor on raspi3

 hw/arm/bcm2835_peripherals.c           |  86 +++++-
 hw/arm/bcm2836.c                       |   2 +-
 hw/arm/raspi.c                         |   4 +-
 hw/char/bcm2835_aux.c                  |  60 ++--
 hw/char/trace-events                   |   4 +
 hw/display/bcm2835_fb.c                |   2 +-
 hw/dma/bcm2835_dma.c                   |  10 +-
 hw/intc/bcm2836_control.c              |   7 +-
 hw/misc/Makefile.objs                  |   2 +
 hw/misc/bcm2835_cprman.c               | 383 +++++++++++++++++++++++++
 hw/misc/bcm2835_mbox.c                 |  14 +-
 hw/misc/bcm2835_property.c             |  20 +-
 hw/misc/bcm2835_thermal.c              | 109 +++++++
 hw/misc/trace-events                   |  14 +
 hw/timer/Makefile.objs                 |   1 +
 hw/timer/bcm2835_systmr.c              | 100 +++++++
 hw/timer/trace-events                  |   4 +
 include/hw/arm/bcm2835_peripherals.h   |  18 ++
 include/hw/arm/raspi_platform.h        |  70 +++--
 include/hw/misc/bcm2835_cprman.h       |  32 +++
 include/hw/misc/bcm2835_thermal.h      |  27 ++
 include/hw/timer/bcm2835_systmr.h      |  30 ++
 python/qemu/machine.py                 |   5 +-
 tests/acceptance/boot_linux_console.py | 147 +++++++++-
 24 files changed, 1087 insertions(+), 64 deletions(-)
 create mode 100644 hw/misc/bcm2835_cprman.c
 create mode 100644 hw/misc/bcm2835_thermal.c
 create mode 100644 hw/timer/bcm2835_systmr.c
 create mode 100644 include/hw/misc/bcm2835_cprman.h
 create mode 100644 include/hw/misc/bcm2835_thermal.h
 create mode 100644 include/hw/timer/bcm2835_systmr.h

-- 
2.20.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]