[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
- [PATCH 00/19] hw/arm/raspi: Improve Raspberry Pi 2/3 reliability,
Philippe Mathieu-Daudé <=
- [PATCH 01/19] hw/arm/raspi: Use the IEC binary prefix definitions, Philippe Mathieu-Daudé, 2019/09/26
- [PATCH 02/19] hw/arm/bcm2835_peripherals: Improve logging, Philippe Mathieu-Daudé, 2019/09/26
- [PATCH 03/19] hw/arm/bcm2835_peripherals: Name various address spaces, Philippe Mathieu-Daudé, 2019/09/26
- [PATCH 04/19] hw/arm/bcm2835: Rename some definitions, Philippe Mathieu-Daudé, 2019/09/26
- [PATCH 05/19] hw/arm/bcm2835: Add various unimplemented peripherals, Philippe Mathieu-Daudé, 2019/09/26