
On Fri, 16 Sep 2022, 10:58 PM Pali Rohár, pali@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.