Jump to content

dippywood

Members
  • Posts

    11
  • Joined

  • Last visited

Posts posted by dippywood

  1. @SecT0uchIf you are able to mount the image on another system then you could make the update in place

     

    Something along the lines of (adjust paths to suit your setup)

    mkdir /tmp/image
    mount -v -o offset=4194304 -t ext4 /Path/To/Armbian_21.02.3_Pine64so_focal_current_5.10.21.img /tmp/image
    dtc -O dtb -o /tmp/image/boot/allwinner/dtb/sun50i-a64-sopine-baseboard.dtb -b 0 sun50i-a64-sopine-baseboard.dts
    umount /tmp/image

     

    Then write the image as usual

     

    You can mount this from another Linux system. from WSL2 or whatever, as long as you have the dtc command avaialble. 

  2. So, here's the problem, and its resolution:

     

    Comparing the decompiled DTBs for the SOPine for 21.02.1 and 21.02.3, diff gives me 

    565d564
    <                       non-removable;
    600c599
    <                       max-frequency = <0xbebc200>;
    ---
    >                       max-frequency = <0x8f0d180>;
    681a681,682
    >                       phys = <0x2d 0x00>;
    >                       phy-names = "usb";
    691a693,694
    >                       phys = <0x2d 0x00>;
    >                       phy-names = "usb";

     

    Working through these show that only the first of these seems to make a difference. The definition for mmc@1c0f000 no longer contained the 'non-removable' entry. 

     

    Therefore, inserting "non-removable;" at line 565 of sun50i-a64-sopine-baseboard.dts and compiling to /boot/dtb/allwinner/sun50i-a64-sopine-baseboard.dtb resolves this issue.

     

    I can supply a patched focal image if requested.

     

     

  3. Just in case this provokes an 'ah-ha!' - this problem is somewhere within the DTB.

     

    I purchased a baseboard so that I can reboot on command, and by selectively releasing the hold on package upgrades, this shows that the problem is only apparent when linux-dtb-current-sunbix64 is upgraded 

     

    If there is no light-bulb moment then I'll start digging through the dtbs and see what I can find.

  4. @IgorPlease do not think that your efforts are unappreciated - they are, and greatly so. I was simply concerned that the board status was not what I expected. 

     

    I also agree with the work-around - and thus me taking the builds and working out which would work for @robocone

     

    I am also not adverse to providing workarounds when I can, and, as time allows, I will attempt to identify exactly where the problem is, and share same.

     

    Once more, the efforts here are greatly appreciated (at least by myself) and I remain grateful for all of your efforts. If I can find the cause then I shall do so, but. for me. the 'free' is very valuable

     

  5. I have the same problem -so, to help things along a little - 21.02.1 WILL boot - 21.02.3 does not.

     

    Upgrading via apt will prevent booting unless frozen.

     

    @TRS-80(it seems that you might be a good person to ask) I note that, in the first post, this has been flagged as having a board that is not on the list - this board is the Sopine A64 compute module, which is intended for use in the 'baseboard' and the 'clusterboard'  The Sopine A64 is explicitly listed as supported. Is it that this compute module is only supported when used with the baseboard? It seems as though the clusterboard has been supported until now, with changes having been made to support networking just recently

  6. I posted just such a script on the clusterboard Pine64 forum, but here you are anyway

    #!/bin/bash
    
    DTB_NAME=sun50i-a64-sopine-baseboard.dtb
    DTB_PATH=/boot/dtb/allwinner
    TMPFILE=/tmp/tmp.dts
    NEWFILE=/tmp/new.dts
    
    clean_up() {
            rm $TMPFILE $NEWFILE > /dev/null 2>&1
    }
    
    if [ ! -f $DTB_PATH/$DTB_NAME ]
    then
            echo dtb file not found
            exit 999
    fi
    
    
    dtc -I dtb -O dts -o $TMPFILE $DTB_PATH/$DTB_NAME > /dev/null 2>&1
    if [ $? != 0 ]
    then
            echo Cannot extract dts from $DTB_PATH/$DTB_NAME
            exit 998
    fi
    
    retcode=0
    grep 'allwinner,tx-delay-ps' $TMPFILE > /dev/null 2>&1
    if [ $? != 0 ]
    then
            sed -e '/ethernet@1c30000 {$/,/phandle = <0x88>;/!b;/phandle = <0x88>;/a\\t\t\tallwinner,tx-delay-ps = <500>;' $TMPFILE > $NEWFILE
            if [ $? != 0 ]
            then
                    echo Could not update temporary DTS file
                    retcode=997
            else
                    dtc -O dtb -o $DTB_PATH/$DTB_NAME -b 0 $NEWFILE > /dev/null 2>&1
                    if [ $? != 0 ]
                    then
                            echo Could not create new dts file
                            retcode=996
                    fi
            fi
    
    else
            echo Fix already in place
    fi
    
    clean_up
    
    exit $retcode

     

    I hope you find it useful

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines