On Fri, 16 Sep 2022, 10:58 PM Pali Rohár, <p...@kernel.org> wrote: > On Friday 16 September 2022 16:54:22 Chris Packham wrote: > > +&spi0 { > > + status = "okay"; > > + > > + spiflash0: flash@0 { > > + compatible = "jedec,spi-nor"; > > + spi-max-frequency = <50000000>; > > + spi-tx-bus-width = <1>; /* 1-single, 2-dual, 4-quad */ > > + spi-rx-bus-width = <1>; /* 1-single, 2-dual, 4-quad */ > > + reg = <0>; > > + > > + #address-cells = <1>; > > + #size-cells = <1>; > > + > > + partition@0 { > > + label = "spi_flash_part0"; > > I guess such label is useless. There is something stored, so it would be > a wise idea to put there correct label. I do not know how it is on this > platform, but on A3720 at offset 0 is "firmware", which consist of CM3 > part, A53 part and U-Boot. It is not even U-Boot itself. >
These are the names from the Linux SDK for the board. The first part will be the bootloader (mvddr+atf+u-boot). Somewhere in there is also the u-boot environment. I'm tempted just to drop the partitions altogether, they don't do anything useful for u-boot. > > > + reg = <0x0 0x800000>; > > + }; > > + > > + parition@1 { > > + label = "spi_flash_part1"; > > + reg = <0x800000 0x700000>; > > + }; > > + > > + parition@2 { > > + label = "spi_flash_part2"; > > + reg = <0xF00000 0x100000>; > > + }; > > + }; > > +}; > > ... > > > +/* Default Env vars */ > > +#define CONFIG_IPADDR 0.0.0.0 /* In order to cause an error */ > > +#define CONFIG_SERVERIP 0.0.0.0 /* In order to cause an error */ > > +#define CONFIG_NETMASK 255.255.255.0 > > +#define CONFIG_GATEWAYIP 0.0.0.0 > > +#define CONFIG_ETHPRIME "eth0" > > +#define CONFIG_ROOTPATH "/srv/nfs/" /* Default Dir for > NFS */ > > +#define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ > > +#define CONFIG_EXTRA_ENV_SETTINGS "bootcmd=run get_images; " \ > > + "run set_bootargs; " \ > > + "booti $kernel_addr_r " \ > > + "$ramdisk_addr_r " \ > > + "$fdt_addr_r\0" \ > > + "extra_params=pci=pcie_bus_safe\0" \ > > + "kernel_addr_r=0x202000000\0" \ > > + "initrd_addr=0x206000000\0" \ > > + "initrd_size=0x2000000\0" \ > > + "fdt_addr_r=0x201000000\0" \ > > + "loadaddr=0x202000000\0" \ > > + "hostname=marvell\0" \ > > + "ramdisk_addr_r=0x206000000\0" \ > > + "ramfs_name=-\0" \ > > + "cpuidle=cpuidle.off=1\0" \ > > + "fdt_name=fdt.dtb\0" \ > > + "netdev=eth0\0" \ > > + "ethaddr=00:51:82:11:22:00\0" \ > > + "eth1addr=00:51:82:11:22:01\0" \ > > + "image_name=Image\0" \ > > + "get_ramfs=if test \"${ramfs_name}\"" \ > > + " != \"-\"; then setenv " \ > > + "ramdisk_addr_r 0x8000000; " \ > > + "tftpboot $ramdisk_addr_r " \ > > + "$ramfs_name; else setenv " \ > > + "ramdisk_addr_r -;fi\0" \ > > + "get_images=tftpboot $kernel_addr_r " \ > > + "$image_name; tftpboot " \ > > + "$fdt_addr_r $fdt_name; " \ > > + "run get_ramfs\0" \ > > + "console=" "console=ttyS0,115200 "\ > > + "earlycon=uart8250,mmio32,0xf0512000\0"\ > > + "root=root=/dev/nfs rw\0" \ > > + "set_bootargs=setenv bootargs $console"\ > > + " $root ip=$ipaddr:$serverip:" \ > > + "$gatewayip:$netmask:$hostname"\ > > + ":$netdev:none nfsroot="\ > > + "$serverip:$rootpath,tcp,v3 " \ > > + "$extra_params " \ > > + "$cpuidle" > > This is hard to read, where is the variable name, where there is its > value, etc... > > And it would be better to use distroboot instead of manually written > boot script. > Yep I'll try to clean that up. Again this is straight from the older SDK so it'snot follow current best practice. >