Pine64 mainlining
#1
Hi,

since I hate proprietary blobs and running outdated software I've started working on getting together Pine64+ image that can boot with mainline kernel (4.13.0-rc4 as of right now) and U-Boot (2017.09-rc1) - without any boot0 blobs etc.

They seem to build fine - just need to set the ATF load address to 0x44000 in the u-boot config during compile time Smile

For whatever reason the ethernet module did not load, going to debug that further (as it is already mainlined). Just no PMIC and thus lock at ~900MHz atm. And no GPU preumably either. (Did not really test)

So far this is the progress (no rootfs flashed yet):
Code:
U-Boot SPL 2017.09-rc1 (Aug 11 2017 - 15:43:22)
DRAM: 2048 MiB
Trying to boot from MMC1


U-Boot 2017.09-rc1 (Aug 11 2017 - 15:43:22 +0000) Allwinner Technology

CPU:   Allwinner A64 (SUN50I)
Model: Pine64+
DRAM:  2 GiB
MMC:   SUNXI SD/MMC: 0
In:    serial
Out:   serial
Err:   serial
Net:   phy interface7
eth0: [email protected]
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
171 bytes read in 20 ms (7.8 KiB/s)
Ignoring unknown command:   SAY
1:      pine64
Retrieving file: /Image
reading /Image
11563520 bytes read in 588 ms (18.8 MiB/s)
append: ro root=/dev/mmcblk0p2 console=ttyS0,115200
Retrieving file: /allwinner/sun50i-a64-pine64-plus.dtb
reading /allwinner/sun50i-a64-pine64-plus.dtb
10052 bytes read in 36 ms (272.5 KiB/s)
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
   Loading Device Tree to 0000000049ffa000, end 0000000049fff743 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.13.0-rc4 ([email protected]6425e2a6b3c) (gcc version 6.3.0 20170516 (Debian 6.3.0-18)) #3 SMP Fri Aug 11 16:00:22 UTC 2017
[    0.000000] Boot CPU: AArch64 Processor [410fd034]
[    0.000000] Machine model: Pine64+
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 16 MiB at 0x00000000bf000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv0.2 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] percpu: Embedded 26 pages/cpu @ffff80007ef7d000 s66200 r8192 d32104 u106496
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: ro root=/dev/mmcblk0p2 console=ttyS0,115200
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Memory: 2032660K/2097152K available (7420K kernel code, 604K rwdata, 2660K rodata, 576K init, 390K bss, 48108K reserved, 16384K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffff000000000000 - 0xffff000008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffff000008000000 - 0xffff7dffbfff0000   (129022 GB)
[    0.000000]       .text : 0xffff000008080000 - 0xffff0000087c0000   (  7424 KB)
[    0.000000]     .rodata : 0xffff0000087c0000 - 0xffff000008a60000   (  2688 KB)
[    0.000000]       .init : 0xffff000008a60000 - 0xffff000008af0000   (   576 KB)
[    0.000000]       .data : 0xffff000008af0000 - 0xffff000008b87200   (   605 KB)
[    0.000000]        .bss : 0xffff000008b87200 - 0xffff000008be8ab0   (   391 KB)
[    0.000000]     fixed   : 0xffff7dfffe7fd000 - 0xffff7dfffec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffff7e0000000000 - 0xffff800000000000   (  2048 GB maximum)
[    0.000000]               0xffff7e0000000000 - 0xffff7e0002000000   (    32 MB actual)
[    0.000000]     memory  : 0xffff800000000000 - 0xffff800080000000   (  2048 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000004] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000185] Console: colour dummy device 80x25
[    0.000209] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.000221] pid_max: default: 32768 minimum: 301
[    0.000299] Security Framework initialized
[    0.000355] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000379] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.001366] ASID allocator initialised with 65536 entries
[    0.001430] Hierarchical SRCU implementation.
[    0.001722] EFI services will not be available.
[    0.001847] smp: Bringing up secondary CPUs ...
[    0.002789] Detected VIPT I-cache on CPU1
[    0.002837] CPU1: Booted secondary processor [410fd034]
[    0.003458] Detected VIPT I-cache on CPU2
[    0.003484] CPU2: Booted secondary processor [410fd034]
[    0.004064] Detected VIPT I-cache on CPU3
[    0.004090] CPU3: Booted secondary processor [410fd034]
[    0.004144] smp: Brought up 1 node, 4 CPUs
[    0.004165] SMP: Total of 4 processors activated.
[    0.004173] CPU features: detected feature: 32-bit EL0 Support
[    0.004283] CPU: All CPU(s) started at EL2
[    0.004304] alternatives: patching kernel code
[    0.005456] devtmpfs: initialized
[    0.007580] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.007599] futex hash table entries: 1024 (order: 5, 131072 bytes)
[    0.008293] pinctrl core: initialized pinctrl subsystem
[    0.008774] DMI not present or invalid.
[    0.009007] random: get_random_u32 called from bucket_table_alloc+0xf8/0x280 with crng_init=0
[    0.009090] NET: Registered protocol family 16
[    0.009451] random: fast init done
[    0.009931] cpuidle: using governor menu
[    0.010245] vdso: 2 pages (1 code @ ffff0000087c6000, 1 data @ ffff000008af4000)
[    0.010262] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.011194] DMA: preallocated 256 KiB pool for atomic allocations
[    0.011306] Serial: AMBA PL011 UART driver
[    0.021490] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.022264] ACPI: Interpreter disabled.
[    0.022814] vgaarb: loaded
[    0.023088] SCSI subsystem initialized
[    0.023297] usbcore: registered new interface driver usbfs
[    0.023350] usbcore: registered new interface driver hub
[    0.023422] usbcore: registered new device driver usb
[    0.023612] media: Linux media interface: v0.10
[    0.023649] Linux video capture interface: v2.00
[    0.023734] pps_core: LinuxPPS API ver. 1 registered
[    0.023741] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    0.023765] PTP clock support registered
[    0.023909] dmi: Firmware registration failed.
[    0.024705] clocksource: Switched to clocksource arch_sys_counter
[    0.024866] VFS: Disk quotas dquot_6.6.0
[    0.024928] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.025137] pnp: PnP ACPI: disabled
[    0.031332] NET: Registered protocol family 2
[    0.031789] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    0.031947] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[    0.032298] TCP: Hash tables configured (established 16384 bind 16384)
[    0.032426] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    0.032487] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    0.032658] NET: Registered protocol family 1
[    0.033723] RPC: Registered named UNIX socket transport module.
[    0.033734] RPC: Registered udp transport module.
[    0.033739] RPC: Registered tcp transport module.
[    0.033744] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.035897] audit: initializing netlink subsys (disabled)
[    0.036030] audit: type=2000 audit(0.035:1): state=initialized audit_enabled=0 res=1
[    0.036258] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.043179] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.043669] NFS: Registering the id_resolver key type
[    0.043696] Key type id_resolver registered
[    0.043701] Key type id_legacy registered
[    0.043715] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.043892] SGI XFS with ACLs, security attributes, no debug enabled
[    0.047481] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    0.047498] io scheduler noop registered
[    0.047615] io scheduler cfq registered (default)
[    0.047621] io scheduler mq-deadline registered
[    0.047627] io scheduler kyber registered
[    0.048259] sun4i-usb-phy 1c19400.phy: failed to get clock usb0_phy
[    0.050903] sun50i-a64-r-pinctrl 1f02c00.pinctrl: initialized sunXi PIO driver
[    0.056258] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.057626] dw-apb-uart 1c28000.serial: could not find pctldev for node /soc/[email protected]/[email protected], deferring probe
[    0.058252] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.063963] loop: module loaded
[    0.064789] libphy: Fixed MDIO Bus: probed
[    0.065346] VFIO - User Level meta-driver version: 0.3
[    0.065506] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.065513] ehci-pci: EHCI PCI platform driver
[    0.065579] ehci-platform: EHCI generic platform driver
[    0.065785] ehci-platform 1c1a000.usb: EHCI Host Controller
[    0.065813] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[    0.066146] ehci-platform 1c1a000.usb: irq 8, io mem 0x01c1a000
[    0.080778] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[    0.081469] hub 1-0:1.0: USB hub found
[    0.081506] hub 1-0:1.0: 1 port detected
[    0.082040] usbcore: registered new interface driver usb-storage
[    0.082862] sun6i-rtc 1f00000.rtc: rtc core: registered rtc-sun6i as rtc0
[    0.082871] sun6i-rtc 1f00000.rtc: RTC enabled
[    0.082904] i2c /dev entries driver
[    0.083007] mv64xxx_i2c 1c2b000.i2c: could not find pctldev for node /soc/[email protected]/i2c1_pins, deferring probe
[    0.083539] sdhci: Secure Digital Host Controller Interface driver
[    0.083545] sdhci: Copyright(c) Pierre Ossman
[    0.083656] sunxi-mmc 1c0f000.mmc: could not find pctldev for node /soc/[email protected]/mmc0-pins, deferring probe
[    0.083741] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.084093] ledtrig-cpu: registered to indicate activity on CPUs
[    0.084377] usbcore: registered new interface driver usbhid
[    0.084383] usbhid: USB HID core driver
[    0.084853] NET: Registered protocol family 17
[    0.084939] Key type dns_resolver registered
[    0.085461] registered taskstats version 1
[    0.093139] sun50i-a64-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.093617] console [ttyS0] disabled
[    0.113758] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 15, base_baud = 1500000) is a U6_16550A
[    0.997728] console [ttyS0] enabled
[    1.001666] ehci-platform 1c1b000.usb: EHCI Host Controller
[    1.007267] ehci-platform 1c1b000.usb: new USB bus registered, assigned bus number 2
[    1.015515] ehci-platform 1c1b000.usb: irq 10, io mem 0x01c1b000
[    1.036720] ehci-platform 1c1b000.usb: USB 2.0 started, EHCI 1.00
[    1.043386] hub 2-0:1.0: USB hub found
[    1.047168] hub 2-0:1.0: 1 port detected
[    1.051605] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    1.062544] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    1.068300] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 3
[    1.076641] hub 3-0:1.0: USB hub found
[    1.080429] hub 3-0:1.0: 1 port detected
[    1.085860] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    1.128720] sunxi-mmc 1c0f000.mmc: base:0xffff000008072000 irq:6
[    1.134914] sun6i-rtc 1f00000.rtc: setting system clock to 1970-01-01 00:00:04 UTC (4)
[    1.143361] VFS: Cannot open root device "mmcblk0p2" or unknown-block(0,0): error -6
[    1.151103] Please append a correct "root=" boot option; here are the available partitions:
[    1.159452] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.167706] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.13.0-rc4 #3
[    1.173961] Hardware name: Pine64+ (DT)
[    1.177790] Call trace:
[    1.180245] [<ffff0000080880e8>] dump_backtrace+0x0/0x210
[    1.185638] [<ffff00000808834c>] show_stack+0x14/0x20
[    1.189709] mmc0: new high speed SDHC card at address 0001
[    1.190031] mmcblk0: mmc0:0001 SD16G 14.6 GiB
[    1.191279]  mmcblk0: p1 p2 p3
[    1.203636] [<ffff00000879e168>] dump_stack+0x98/0xb8
[    1.208682] [<ffff0000080a2080>] panic+0x114/0x264
[    1.213471] [<ffff000008a610b0>] mount_block_root+0x180/0x258
[    1.219210] [<ffff000008a612a4>] mount_root+0x11c/0x134
[    1.224429] [<ffff000008a613ec>] prepare_namespace+0x130/0x178
[    1.230254] [<ffff000008a60cf4>] kernel_init_freeable+0x204/0x228
[    1.236340] [<ffff0000087af6c8>] kernel_init+0x10/0x100
[    1.241559] [<ffff000008082ec0>] ret_from_fork+0x10/0x50
[    1.246867] SMP: stopping secondary CPUs
[    1.250785] Kernel Offset: disabled
[    1.254270] CPU features: 0x002004
[    1.257665] Memory Limit: none
[    1.260719] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
  Reply
#2
(08-11-2017, 10:21 AM)CallMeFoxie Wrote: For whatever reason the ethernet module did not load
(no rootfs flashed yet)

Of course, if you don't have any rootfs yet, how ethernet could start working without any service and/or configs.
  Reply
#3
Actually no, I accidentaly compiled it as a module and no rootfs = no modules Tongue It will still hotplug when the kernel and module is loaded even without config.

So yeah, rootfs Stretch works, Kernel 4.13-rc4, U-Boot 2017.09-rc1 all boot fine. No boot0 blob, all easily compiled Tongue

I am going to build an image (and a toolset to build it yourself) and publish kernels on some repo (installable via apt-get) hopefully this weekend.

(Uses extlinux.conf to setup the kernel and FDT directly from U-Boot.)
  Reply
#4
Has there been any further updates?

[ snip ]

Oh! - This is continued here:  https://forum.pine64.org/showthread.php?tid=4931

 Big Grin
  Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  Manjaro arm on pine64+ roel 2 189 10-19-2019, 05:13 AM
Last Post: roel
  Volumio for PINE64 Released mikelangeloz 11 6,570 03-22-2019, 09:25 AM
Last Post: llungster
  I2S Audio patches for Pine64+ uploaded to GitHub ramstadt 1 269 01-19-2019, 11:31 AM
Last Post: ramstadt
  Pine64: Minimal SDL config Max11 3 523 01-04-2019, 03:47 PM
Last Post: Max11
  Fedora 27 on Pine64 gregjo 18 7,319 01-02-2019, 10:42 PM
Last Post: heatfanjohn
  Official build procedure of ayufan pine64 r.tanaka 0 592 08-21-2018, 10:54 PM
Last Post: r.tanaka
  DKMS on kernel 3.10.107-pine64 obrienmd 5 733 06-21-2018, 05:45 PM
Last Post: evilbunny
  Programming languages support under PINE64 baryluk 5 3,176 03-09-2018, 01:52 AM
Last Post: kaokaobang
  Gentoo for pine64 - longsleep kernel incoherent 0 856 12-09-2017, 08:14 AM
Last Post: incoherent
  Fedora Running On Pine64! cztian 26 5,390 10-26-2017, 05:51 PM
Last Post: gregjo

Forum Jump:


Users browsing this thread: 1 Guest(s)