From nobody Mon Feb 07 17:38:44 2022 X-Original-To: freebsd-riscv@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 99E4A19B061C for ; Mon, 7 Feb 2022 17:39:19 +0000 (UTC) (envelope-from jakob@alvermark.net) Received: from out.alvermark.net (out.alvermark.net [185.34.136.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4JstgB2xNMz3vTv; Mon, 7 Feb 2022 17:39:18 +0000 (UTC) (envelope-from jakob@alvermark.net) Received: from c-e841235c.06-431-73746f70.bbcust.telenor.se ([92.35.65.232] helo=mail.alvermark.net) by out.alvermark.net with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91 (FreeBSD)) (envelope-from ) id 1nH7yo-00052b-Hk; Mon, 07 Feb 2022 18:39:10 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=alvermark.net; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: References:To:From:Subject:MIME-Version:Date:Message-ID:Sender:Reply-To:Cc: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=HWGuytMaW1/pE9PnNOtubL6pLXffpo1ujug65anIW10=; b=STAICqHC9gAM6OVWSYEZny3KpX egBwOy6E2/PlCm4N9JyzwOshTBh/kUTW1cvNW64k7OXNEULplmOr0CROS1tRq+hMYUdNfoiUg2j3L S+gkNvW/73yr2XS7v2m4IPa4TtKVLLb5RL6dIhLVZGp9o1+6EToW0VXzOsJZ0VksGXWZBRThQGJey tkHJADU57mMrjLyczFRS/GBzjalHXNXWvG1yusJvxJlLOXX6n/YBa5fRzJcZUOYo5LH489Y5W2/SX HQCY2ZhL/TkFR/Hyfugw49Z3lHiEPj37NSNeJsGByHzYW3p0bI/jeUR0ZEyCpUk+kdbrD8afRa+Ee 2wYFF7GA==; Received: from office.as33885.net ([84.55.65.101] helo=[192.168.3.94]) by mail.alvermark.net with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91 (FreeBSD)) (envelope-from ) id 1nH7yO-0000W9-Ti; Mon, 07 Feb 2022 18:38:44 +0100 Message-ID: <39674ce9-bbc4-a817-57ab-922d9c522fac@alvermark.net> Date: Mon, 7 Feb 2022 18:38:44 +0100 List-Id: FreeBSD on the RISC-V instruction set architecture List-Archive: https://lists.freebsd.org/archives/freebsd-riscv List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-riscv@freebsd.org X-BeenThere: freebsd-riscv@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1 Subject: Re: Sipeed Lichee RV (Allwinner D1) Content-Language: en-US From: Jakob Alvermark To: Mitchell Horne , freebsd-riscv@FreeBSD.org References: <5a74bd6d-4000-c413-02e2-33608f9ae683@freebsd.org> <18b735fb-fd36-daad-9ee7-974ff1955400@alvermark.net> In-Reply-To: <18b735fb-fd36-daad-9ee7-974ff1955400@alvermark.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4JstgB2xNMz3vTv X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=alvermark.net header.s=x header.b=STAICqHC; dmarc=none; spf=pass (mx1.freebsd.org: domain of jakob@alvermark.net designates 185.34.136.138 as permitted sender) smtp.mailfrom=jakob@alvermark.net X-Spamd-Result: default: False [-3.48 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[alvermark.net:s=x]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:185.34.136.138]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[alvermark.net: no valid DMARC record]; NEURAL_HAM_LONG(-1.00)[-1.000]; SH_EMAIL_DBL_DONT_QUERY_IPS(0.00)[0.38.37.160:email,0.91.184.120:email,0.61.87.32:email,0.61.91.8:email]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[alvermark.net:+]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-0.98)[-0.979]; MLMMJ_DEST(0.00)[freebsd-riscv]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:34971, ipnet:185.34.136.0/23, country:IT]; RCVD_TLS_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[] X-ThisMailContainsUnwantedMimeParts: N 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: >>>>> >>> >>>>> 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