[PATCH 3/3] sunxi: H616: Add OrangePi Zero 3 board support

Andre Przywara andre.przywara at arm.com
Tue Nov 28 02:37:46 CET 2023


On Mon, 27 Nov 2023 14:31:19 -0800
Stephen Graf <stephen.graf at gmail.com> wrote:

Hi,

> Since the last test I rebuilt u-boot without the
> "CONFIG_DRAM_CLK=792" in the defconfig and got the wrong DRAM size 
> problem (showing 2G instead of 1G). I had to do a power down/up to see this.
> Are you planning to add this parameter to your patch?

This symptom is pretty surely not directly related to the DRAM
frequency, it's caused by a missing barrier or delay *somewhere*.
People report that this is fixed by adding another "dsb();" at the
beginning of the mctl_mem_matches() function, but I don't have a good
explanation why exactly there, and would like to avoid submitting
patches that "just seem to work (TM)".

If I find some time, I will try to setup some automated environment
where I can run some experiments with different barrier locations.
I can offer some rationale for putting it at the end of the function(s)
that call mctl_mem_matches(), so hope that this fixes it.

Cheers,
Andre

> U-Boot 2024.01-rc3-00012-g1fcf078f54-dirty (Nov 27 2023 - 12:25:33 
> -0800) Allwin                                                      ner 
> Technology
> 
> CPU:   Allwinner H616 (SUN50I)
> Model: OrangePi Zero3
> DRAM:  2 GiB
> 
> 
> On 2023-11-27 12:21 p.m., Stephen Graf wrote:
> > Yes I forgot about the zBIT patch. With this patch also included I built 
> > and retested u-boot loaded from SPI flash.  The two warning/error 
> > messages disappeared and the flash worked properly and booted from a USB 
> > device.
> > 
> > There was one message that I did not understand:
> > "Loading Environment from SPIFlash... SF: Detected zb25vq128 with page 
> > size 256 Bytes, erase size 4 KiB, total 16 MiB
> > *** Warning - bad CRC, using default environment"
> > 
> > I tried to follow the u-boot documentation on writing the SPI flash but 
> > had problems with the write command.  When issued it returned 
> > immediately. The erase command took about 5 sec to execute. I researched 
> > use of mtd commands and got a suggestion to use cat instead, which worked.
> > 
> > "root at orangepizero3:~# mtdinfo
> > Count of MTD devices:           1
> > Present MTD devices:            mtd0
> > Sysfs interface supported:      yes
> > root at orangepizero3:~# mtd_debug erase /dev/mtd0 0 0xf0000
> > Erased 983040 bytes from address 0x00000000 in flash
> > root at orangepizero3:~# mtd_debug write /dev/mtd0 0 0xf0000 
> > /home/sysadmin/u-boot-sunxi-with-spl.bin
> > file_to_flash: fread, size 0xf0000, n 0xf0000
> > fread(): Success
> > root at orangepizero3:~# cat /home/sysadmin/u-boot-sunxi-with-spl.bin > 
> > /dev/mtd0
> > 
> > 
> > Console log of boot:
> > 
> > U-Boot SPL 2024.01-rc3-00012-g1fcf078f54-dirty (Nov 27 2023 - 10:17:46 
> > -0800)
> > DRAM: 1024 MiB
> > Trying to boot from sunxi SPI
> > NOTICE:  BL31: v2.10.0  (debug):v2.10.0
> > NOTICE:  BL31: Built : 18:07:18, Nov 23 2023
> > NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
> > NOTICE:  BL31: Found U-Boot DTB at 0x4a0b2798, model: OrangePi Zero3
> > INFO:    ARM GICv2 driver initialized
> > INFO:    Configuring SPC Controller
> > INFO:    PMIC: Probing AXP305 on RSB
> > ERROR:   RSB: set run-time address: 0x10003
> > INFO:    Could not init RSB: -65539
> > INFO:    BL31: Platform setup done
> > INFO:    BL31: Initializing runtime services
> > INFO:    BL31: cortex_a53: CPU workaround for erratum 855873 was applied
> > INFO:    BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
> > INFO:    PSCI: Suspend is unavailable
> > INFO:    BL31: Preparing for EL3 exit to normal world
> > INFO:    Entry point address = 0x4a000000
> > INFO:    SPSR = 0x3c9
> > INFO:    Changed devicetree.
> > 
> > 
> > U-Boot 2024.01-rc3-00012-g1fcf078f54-dirty (Nov 27 2023 - 10:17:46 
> > -0800) Allwinner Technology
> > 
> > CPU:   Allwinner H616 (SUN50I)
> > Model: OrangePi Zero3
> > DRAM:  1 GiB
> > Core:  57 devices, 25 uclasses, devicetree: separate
> > WDT:   Not starting watchdog at 30090a0
> > MMC:   mmc at 4020000: 0
> > Loading Environment from SPIFlash... SF: Detected zb25vq128 with page 
> > size 256 Bytes, erase size 4 KiB, total 16 MiB
> > *** Warning - bad CRC, using default environment
> > 
> > Loading Environment from FAT... Card did not respond to voltage select! 
> > : -110
> > ** Bad device specification mmc 0 **
> > In:    serial at 5000000
> > Out:   serial at 5000000
> > Err:   serial at 5000000
> > Allwinner mUSB OTG (Peripheral)
> > Net:   eth0: ethernet at 5020000using musb-hdrc, OUT ep1out IN ep1in STATUS 
> > ep2in
> > MAC de:ad:be:ef:00:01
> > HOST MAC de:ad:be:ef:00:00
> > RNDIS ready
> > , eth1: usb_ether
> > starting USB...
> > Bus usb at 5200000: USB EHCI 1.00
> > Bus usb at 5200400: USB OHCI 1.0
> > scanning bus usb at 5200000 for devices... Device NOT ready
> >     Request Sense returned 02 3A 00
> > Device NOT ready
> >     Request Sense returned 02 3A 00
> > Device NOT ready
> >     Request Sense returned 02 3A 00
> > 2 USB Device(s) found
> > scanning bus usb at 5200400 for devices... 1 USB Device(s) found
> >         scanning usb for storage devices... 1 Storage Device(s) found
> > Hit any key to stop autoboot:  0
> > Card did not respond to voltage select! : -110
> > 
> > Device 0: Vendor: Generic- Rev: 1.00 Prod: SD/MMC
> >              Type: Removable Hard Disk
> >              Capacity: 3828.0 MB = 3.7 GB (7839744 x 512)
> > ... is now current device
> > Scanning usb 0:1...
> > Found U-Boot script /boot.scr
> > 1575 bytes read in 1 ms (1.5 MiB/s)
> > ## Executing script at 4fc00000
> > Mainline u-boot / new-style environment detected.
> > This installer medium does not contain a suitable device-tree file for
> > this system (allwinner/sun50i-h618-orangepi-zero3.dtb). Aborting boot 
> > process.
> > SCRIPT FAILED: continuing...
> > Found U-Boot script /boot/boot.scr
> > 621 bytes read in 2 ms (302.7 KiB/s)
> > ## Executing script at 4fc00000
> > 19472 bytes read in 3 ms (6.2 MiB/s)
> > Working FDT set to 4fa00000
> > 7088139 bytes read in 326 ms (20.7 MiB/s)
> > 22491144 bytes read in 1031 ms (20.8 MiB/s)
> > Moving Image from 0x40080000 to 0x40200000, end=41800000
> > ## Loading init Ramdisk from Legacy Image at 4ff00000 ...
> >     Image Name:   uInitrd
> >     Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
> >     Data Size:    7088075 Bytes = 6.8 MiB
> >     Load Address: 00000000
> >     Entry Point:  00000000
> >     Verifying Checksum ... OK
> > ## Flattened Device Tree blob at 4fa00000
> >     Booting using the fdt blob at 0x4fa00000
> > Working FDT set to 4fa00000
> >     Loading Ramdisk to 4993d000, end 49fff7cb ... OK
> >     Loading Device Tree to 00000000498cf000, end 000000004993cfff ... OK
> > Working FDT set to 498cf000
> > 
> > Starting kernel ...
> > 
> > [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
> > [    0.000000] Linux version 6.6.2 (orangepi at orangepizero3) (gcc (Debian 
> > 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP Sat Nov 
> > 25 18:37:47 UTC 2023
> > 
> > 
> > On 2023-11-26 4:23 a.m., Andre Przywara wrote:  
> >> On Sat, 25 Nov 2023 20:27:05 -0800
> >> Stephen Graf <stephen.graf at gmail.com> wrote:
> >>
> >> Hi Stephen,
> >>  
> >>> I built u-boot with the additional parameter for usb and it works, I 
> >>> think.  There was one message that might be of concern "
> >>> Card did not respond to voltage select! : -110".  
> >>
> >> This is a normal, though admittedly confusing message if no SD card is
> >> inserted. The code tries to (unconditionally) access the SD card, and
> >> sees that no card is there, the missing respond to the voltage select
> >> command is just the first real proof of this.
> >>  
> >>> I am not sure of the details of the boot.cmd. The output below came from
> >>> the supplier image on an SD plugged into a USB card reader. The SD 
> >>> slot of the board was empty.
> >>>
> >>> I was able to install u-boot to the SPI flash memory and there is a 
> >>> warning message from that also: "
> >>> Loading Environment from SPIFlash... jedec_spi_nor flash at 0: 
> >>> unrecognized JEDEC id bytes: 5e, 40, 18
> >>> *** Warning - spi_flash_probe_bus_cs() failed, using default 
> >>> environment"  
> >>
> >> So for a start there is no environment on the SPI flash yet, so it
> >> wouldn't do anything. But the "unrecognised JEDEC id bytes" message
> >> doesn't sound right. Can you dig into this? Do you have patch 1/3
> >> applied, which tells U-Boot about 0x5e meaning zBIT?
> >>  
> 



More information about the U-Boot mailing list