Date: Mon, 7 Feb 2022 18:38:44 +0100 From: Jakob Alvermark <jakob@alvermark.net> To: Mitchell Horne <mhorne@freebsd.org>, freebsd-riscv@FreeBSD.org Subject: Re: Sipeed Lichee RV (Allwinner D1) Message-ID: <39674ce9-bbc4-a817-57ab-922d9c522fac@alvermark.net> In-Reply-To: <18b735fb-fd36-daad-9ee7-974ff1955400@alvermark.net> References: <bdf1ae3d-6246-1445-49e4-534374986c3d@alvermark.net> <d313d20e-46ed-d088-8327-d84fe535ac4f@freebsd.org> <ed5d7751-bf2c-1d17-50da-06b566059a2b@alvermark.net> <5a74bd6d-4000-c413-02e2-33608f9ae683@freebsd.org> <18b735fb-fd36-daad-9ee7-974ff1955400@alvermark.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 1/29/22 16:12, Jakob Alvermark wrote: > > On 1/28/22 16:29, Mitchell Horne wrote: >> On 1/19/22 18:05, Jakob Alvermark wrote: >>> >>> On 1/19/22 17:24, Mitchell Horne wrote: >>>> >>>> >>>> On 1/17/22 15:02, Jakob Alvermark wrote: >>>>> Hi, >>>>> >>>>> >>>>> With RISC-V SBCs now coming down in price, I got curios and got >>>>> myself a Lichee RV (with the dock). >>>>> >>>>> https://linux-sunxi.org/Sipeed_Lichee_RV >>>>> >>>>> The instructions here, https://linux-sunxi.org/Allwinner_Nezha >>>>> along with some patching got me a working U-boot. >>>>> >>>>> Cross-building and putting together and image for and SD card got >>>>> me this far: >>>>> >>> <snip> >>>>> Loading kernel... >>>>> /boot/kernel/kernel text=0x609ddc text=0x133abc data=0xf4420 >>>>> data=0xb54+0x1d73e4 syms=[0x8+0xcd188+0x8+0xee5ae] >>>>> Loading configured modules... >>>>> can't find '/etc/hostid' >>>>> can't find '/boot/entropy' >>>>> Using DTB provided by EFI at 0x47ef5000. >>>>> Kernel entry at 0x56a0002e... >>>>> Kernel args: (null) >>>>> >>>>> ----- >>>>> >>>>> And here it stops for ~16 seconds then restarts, that's the >>>>> watchdog resetting it. >>>>> >>>>> So where do I go from here? >>>>> >>>> Hi Jakob, >>>> >>>> Looks like it bails somewhere in the initial kernel setup, before >>>> the first output to the console. This is a wide range, so it's >>>> difficult to say exactly where things are going wrong. >>>> >>>> I will say that generally FreeBSD is not expected to work on the >>>> D1; as far as I know you are the first to try it. This hardware has >>>> some quirks requiring special support, which we are entirely >>>> lacking. Specifically, there is one related to virtual memory >>>> management, which requires custom (spec-breaking) bits in the page >>>> tables to be set, to properly specify the attributes of physical >>>> and device memory. This _may_ have something to do with why it is >>>> failing where it is. It would take a motivated party to add the >>>> support required for this SoC, and I'm not aware of anyone >>>> currently taking this on. This board has caused some headaches in >>>> Linux-land for the same reasons, but there are more hands to do the >>>> work there. I just want to set the expectations properly :) >>>> >>>> If you wanted to debug this further, you might rebuild the kernel >>>> after adding 'options EARLY_PRINTF' to the config file, as this >>>> should enable a couple early outputs and narrow down the search >>>> slightly. >>> >>> >>> Hi Mitchell, >>> >>> >>> I did not expect it to work. But it would be nice if it did. >>> >>> I have a long experience with FreeBSD and I have played around with >>> a couple of different ARM-boards, but I'm not very experienced with >>> kernel hacking. >>> >>> I built a kernel with EARLY_PRINTF, but it did not give me any more >>> output... >>> >>> Is there anything else I could try? >>> >> >> Yes, I missed an important detail: the required uart driver is >> missing from the kernel. Please add 'device uart_snps' to the kernel >> config as well, and see if this results in any output. > > > Hi, I tried that, but sadly it did not make any difference. > > I looked at what they have done in Linux, and this commit seems to > have some interesting bits: > > https://github.com/smaeul/linux/commit/c1bc61cee73e236c3cd69fe6c998b7f80c654263#diff-4f4bb4eea826b523d76ddb1c539dad5685a0e7fd7cc8f1089a0493efd0e8e5b8 > Hi again, I noticed they have updated the U-Boot code to specifically support this board. With nothing to loose, I decided to try it. Now I get a little more: [35]HELLO! BOOT0 is starting! [38]BOOT0 commit : 525883d-dirty [41]set pll start [43]periph0 has been enabled [46]set pll end [47]board init ok [49]DRAM only have internal ZQ!! [52]get_pmu_exist() = -1 [55]ddr_efuse_type: 0x0 [58][AUTO DEBUG] single rank and full DQ! [62]ddr_efuse_type: 0x0 [65][AUTO DEBUG] rank 0 row = 15 [68][AUTO DEBUG] rank 0 bank = 8 [71][AUTO DEBUG] rank 0 page size = 2 KB [75]DRAM BOOT DRIVE INFO: V0.24 [77]DRAM CLK = 792 MHz [80]DRAM Type = 3 (2:DDR2,3:DDR3) [83]DRAMC ZQ value: 0x7b7bfb [85]DRAM ODT value: 0x42. [88]ddr_efuse_type: 0x0 [91]DRAM SIZE =512 M [94]DRAM simple test OK. [96]dram size =512 [98]card no is 0 [100]sdcard 0 line count 4 [102][mmc]: mmc driver ver 2021-04-2 16:45 [112][mmc]: Wrong media type 0x0 [115][mmc]: ***Try SD card 0*** [132][mmc]: HSSDR52/SDR25 4 bit [135][mmc]: 50000000 Hz [137][mmc]: 15193 MB [139][mmc]: ***SD/MMC 0 init OK!!!*** [176]Loading boot-pkg Succeed(index=1). [180]Entry_name = opensbi [183]Entry_name = dtb [185]Entry_name = u-boot [189]Adding DRAM info to DTB. [193]Jump to second Boot. OpenSBI v1.0 ____ _____ ____ _____ / __ \ / ____| _ \_ _| | | | |_ __ ___ _ __ | (___ | |_) || | | | | | '_ \ / _ \ '_ \ \___ \| _ < | | | |__| | |_) | __/ | | |____) | |_) || |_ \____/| .__/ \___|_| |_|_____/|____/_____| | | |_| Platform Name : Sipeed Lichee RV Dock Platform Features : medeleg Platform HART Count : 1 Platform IPI Device : aclint-mswi Platform Timer Device : aclint-mtimer @ 24000000Hz Platform Console Device : uart8250 Platform HSM Device : --- Platform Reboot Device : sunxi-wdt-reset Platform Shutdown Device : --- Firmware Base : 0x40000000 Firmware Size : 264 KB Runtime SBI Version : 0.3 Domain0 Name : root Domain0 Boot HART : 0 Domain0 HARTs : 0* Domain0 Region00 : 0x0000000014008000-0x000000001400bfff (I) Domain0 Region01 : 0x0000000014000000-0x0000000014007fff (I) Domain0 Region02 : 0x0000000040000000-0x000000004007ffff () Domain0 Region03 : 0x0000000000000000-0xffffffffffffffff (R,W,X) Domain0 Next Address : 0x000000004a000000 Domain0 Next Arg1 : 0x0000000044000000 Domain0 Next Mode : S-mode Domain0 SysReset : yes Boot HART ID : 0 Boot HART Domain : root Boot HART ISA : rv64imafdcvsux Boot HART Features : scounteren,mcounteren,mcountinhibit,time Boot HART PMP Count : 16 Boot HART PMP Granularity : 2048 Boot HART PMP Address Bits: 38 Boot HART MHPM Count : 0 Boot HART MIDELEG : 0x0000000000000222 Boot HART MEDELEG : 0x000000000000b109 U-Boot 2022.01-32931-gc249924b17-dirty (Feb 06 2022 - 17:29:00 +0100) DRAM: 512 MiB Core: 43 devices, 18 uclasses, devicetree: board WDT: Started watchdog@6011000 with servicing (16s timeout) MMC: mmc@4020000: 0, mmc@4021000: 1 Loading Environment from nowhere... OK In: serial@2500000 Out: serial@2500000 Err: serial@2500000 Net: No ethernet found. Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... ** Unable to read file / ** Failed to load '/' libfdt fdt_check_header(): FDT_ERR_BADMAGIC Scanning disk mmc@4020000.blk... Scanning disk mmc@4021000.blk... Disk mmc@4021000.blk not ready Found 3 disks ** Unable to read file ubootefi.var ** Failed to load EFI variables BootOrder not defined EFI boot manager: Cannot load any image Found EFI removable media binary efi/boot/bootriscv64.efi 1409436 bytes read in 248 ms (5.4 MiB/s) libfdt fdt_check_header(): FDT_ERR_BADMAGIC Booting /efi\boot\bootriscv64.efi Consoles: EFI console Reading loader env vars from /efi/freebsd/loader.env Setting currdev to disk0p1: FreeBSD/riscv EFI loader, Revision 1.1 (Fri Jan 14 13:21:23 CET 2022 root@legion) Command line arguments: l Image base: 0x5e9d8000 EFI version: 2.90 EFI Firmware: Das U-Boot (rev 8226.256) Console: comconsole (0) Load Path: /efi\boot\bootriscv64.efi Load Device: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(1,GPT,1ab17495-7795-11ec-9e49-f875a47d4ead,0xa1f8,0x10418) Trying ESP: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(1,GPT,1ab17495-7795-11ec-9e49-f875a47d4ead,0xa1f8,0x10418) Setting currdev to disk0p1: Trying: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(2,GPT,2973d4b3-7795-11ec-9e49-f875a47d4ead,0x1a610,0x200000) Setting currdev to disk0p2: Loading /boot/defaults/loader.conf Loading /boot/defaults/loader.conf Loading /boot/device.hints Loading /boot/loader.conf Loading /boot/loader.conf.local / ______ ____ _____ _____ | ____| | _ \ / ____| __ \ | |___ _ __ ___ ___ | |_) | (___ | | | | | ___| '__/ _ \/ _ \| _ < \___ \| | | | | | | | | __/ __/| |_) |____) | |__| | | | | | | | || | | | |_| |_| \___|\___||____/|_____/|_____/ ``` ` s` `.....---.......--.``` -/ +---------- Welcome to FreeBSD -----------+ +o .--` /y:` +. | | yo`:. :o `+- | 1. Boot Multi user [Enter] | y/ -/` -o/ | 2. Boot Single user | .- ::/sy+:. | 3. Escape to loader prompt | / `-- / | 4. Reboot | `: :` | 5. Cons: Video | `: :` | | / / | Options: | .- -. | 6. Kernel: default/kernel (1 of 1) | -- -. | 7. Boot Options | `:` `:` | | .-- `--. | | .---.....----. +-----------------------------------------+ Autoboot in 0 seconds. [Space] to pause Loading kernel... /boot/kernel/kernel text=0x5ef0ec text=0x1704dc data=0xf7900 data=0xbcc+0x2741cc syms=[0x8+0xd0290+0x8+0xf1d3e] Loading configured modules... can't find '/boot/entropy' can't find '/etc/hostid' Using DTB provided by EFI at 0x47ef6000. Kernel entry at 0x56a0002e... Kernel args: (null) ERROR loading DTB panic: Boot hart ID was not properly set cpuid = 0 time = 1 KDB: stack backtrace: Uptime: 1s
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39674ce9-bbc4-a817-57ab-922d9c522fac>