Hi E Sattow, I realize now that my question was outside the scope of the patches series. Thank you for providing more details.
On Thu, 14 Nov 2024 at 23:07, E Shattow <luc...@gmail.com> wrote: > > Hi Anand, > > On Wed, Nov 13, 2024 at 8:42 PM Anand Moon <linux.am...@gmail.com> wrote: > > > > Hi Hal, > > > > On Mon, 11 Nov 2024 at 07:53, Hal Feng <hal.f...@starfivetech.com> wrote: > > > > > > This patchset add OF_UPSTREAM support for StarFive JH7110 based boards. > > > All the JH7110 based boards can use the DT from upstreaming linux kernel. > > > The v1.3b board device tree is set as the default device tree. Support > > > CONFIG_MULTI_DTB_FIT and the SPL selects the correct U-Boot dtb using the > > > EEPROM information. > > > > > > > I am encountering an issue with my Milk-V CM. I am unable to use the > > SD card with the CM4 IO board. > > The onboard SPI switch does not support a boot configuration switch, > > so the default boot is set to eMMC. > > Mars CM and Mars CM Lite are not able to boot from eMMC and SD Card. > There is transistor logic on Mars CM and Mars CM Lite which only > allows UART or SPI NOR Flash depending on the state of nRPIBOOT. > > Perhaps you are thinking of SPI NOR Flash boot of JH7110 which is > jumping execution to SPI NOR Flash offset 0 where, presumed it is > where you have U-Boot SPL? > > From then U-Boot SPL may load U-Boot Main payload depending on the > state of configuration switch, so then UART for UART setting, or SPI > NOR Flash at 0x100000 offset for SPI NOR Flash setting. > > U-Boot Main may then execute as normal including SD Card or eMMC. This > is distinct from the concept of JH7110 zeroth boot loader in mask ROM > loading from SD Card or eMMC. > > > > > Please suggest a method to flash an image onto the eMMC on the CM board. > > This will not work with the OF_UPSTREAM patch set of topic (yet) > because simply Mars CM and Mars CM Lite devicetree do not exist > upstream. > > You may use U-Boot stable release v2024.10 as a recovery tool to flash > U-Boot v2024.10 into SPI NOR Flash which, exclusive of this > OF_UPSTREAM patch series, has some runtime fix-up adjusting the Milk-V > Mars devicetree for Mars CM or Mars CM Lite depending on EEPROM > content. > > For that to work you will also need to verify and perhaps adjust the > EEPROM content of your Mars CM for accuracy per the advisory from > Milk-V; from what information you have shared you may have a 4GB RAM > model with 16GB eMMC and if that is accurate then no change to the > EEPROM content is needed. > > When you have for example U-Boot v2024.10 installed to SPI NOR Flash > and it does have the fix-up at runtime to allow functional eMMC, then > you may use any of the methods available to that version of U-Boot: > > 1. You can load data from TFTP to DRAM address for write operation > onto the eMMC directly but you will have to invent some scripting to > do the required math between byte counts and block unit offsets. > 2. You can load an OS from TFTP to DRAM and boot; for example the > Debian debian-installer netinst Linux kernel and initial ramdisk. > 3. There is not any working JH7110 on-CPU USB driver in U-Boot > v2024.10 so the use of USB (as a reasonable person would attempt) is > not possible. Patches exist for this and is something that will be > possible in future but not yet. You will note that if your Mars CM is > installed to a carrier board that has additionally a VL805 USB > controller on the PCI bus then USB may actually work because the > VisionFive2 has this same PCI+VL805 for USB. It is not typical though > for CM4 carrier boards... but I recall reading that they do exist so > worth a mention here. > Yes, I need to set up TFTP boot to resolve my issue. Let me give this a try. > > > > I have tried the instructions to update the firmware using > > [1] https://milkv.io/docs/mars/compute-module/boot > > Milk-V USB flash tool at the link loads a closed-source SPL binary via > JH7110 UART configuration that postures as a USB endpoint (using the > JH7110 on-CPU USB function) and the companion software that talks to > it is "compiled" closed-source python. Make your own conclusion... > mine is that U-Boot+TFTP is good enough and preferentially it is open > source. > > See: > > https://docs.u-boot.org/en/v2024.10/board/starfive/milk-v_mars_cm.html > > https://github.com/geerlingguy/sbc-reviews/issues/22#issuecomment-1908676618 Cool, thanks for sharing this link. This blog shares almost all the cases needed to resolve my issue so I will try it. > > https://milkv.io/docs/mars/compute-module/update-eeprom > > > > > Thank you so much for your help. > > > > Thanks > > -Anand > > > > --------EEPROM INFO-------- > > Vendor : MILK-V > > Product full SN: MARC-V10-2340-D004E016-00000812 > > data version: 0x2 > > PCB revision: 0xc1 > > BOM revision: A > > Ethernet MAC0 address: 6c:cf:39:00:85:6b > > Ethernet MAC1 address: 6c:cf:39:00:85:6c > > --------EEPROM INFO-------- > > > > starfive_7110_pcie pcie@940000000: Starfive PCIe bus probed. > > starfive_7110_pcie pcie@9c0000000: Starfive PCIe bus probed. > > In: serial@10000000 > > Out: serial@10000000 > > Err: serial@10000000 > > Net: Could not fetch index > > Could not fetch index > > eqos_probe_resources() failed: -22 > > Could not fetch index > > eqos_probe_resources() failed: -22 > > eth1: ethernet@16040000 > > starting USB... > > Bus xhci_pci: Register 5000420 NbrPorts 5 > > Starting the controller > > USB XHCI 1.00 > > scanning bus xhci_pci for devices... Resetting EP 0... > > 3 USB Device(s) found > > scanning usb for storage devices... 1 Storage Device(s) found > > Working FDT set to ff725a10 > > Hit any key to stop autoboot: 0 > > StarFive # mmc info > > Device: mmc@16010000 > > Manufacturer ID: 15 > > OEM: 0 > > Name: AJTD4R > > Bus Speed: 45333334 > > Mode: MMC High Speed (52MHz) > > Rd Block Len: 512 > > MMC version 5.1 > > High Capacity: Yes > > Capacity: 14.6 GiB > > Bus Width: 8-bit > > Erase Group Size: 512 KiB > > HC WP Group Size: 8 MiB > > User Capacity: 14.6 GiB WRREL > > Boot Capacity: 4 MiB ENH > > RPMB Capacity: 4 MiB ENH > > Boot area 0 is not write protected > > Boot area 1 is not write protected > > StarFive # mmc rescan > > StarFive # mmc rescan > > StarFive # > > StarFive # mmc part > > ## Unknown partition table type 0 > > I will say on-topic that although it is a regression in functionality > for U-Boot from the v2024.10 stable release to apply OF_UPSTREAM > series, the absence of Mars CM and Mars CM Lite should not be blockers > for OF_UPSTREAM patch set. It is time to submit these upstream (to > Linux kernel) which is not our problem here, and besides this there > are more JH7110 board support devicetree being accepted upstream which > are not represented here now. The missing functionality will be > restored after this is done. > Alright, I will now flash v2024.10 to address the issue > All users who want to have working Mars CM and Mars CM Lite should > stay with U-Boot stable version v2024.10, and to focus on contributing > with Linux upstream for these boards. > Go that. > -E Thanks -Anand