On 23:20-20240119, Apurva Nandan wrote: [...]
> +void k3_spl_init(void) > +{ > + struct udevice *dev; > + int ret; > + > + /* > + * Cannot delay this further as there is a chance that > + * K3_BOOT_PARAM_TABLE_INDEX can be over written by SPL MALLOC section. > + */ > + store_boot_info_from_rom(); > + > + /* Make all control module registers accessible */ > + ctrl_mmr_unlock(); > + > + if (IS_ENABLED(CONFIG_CPU_V7R)) { > + disable_linefill_optimization(); > + setup_k3_mpu_regions(); > + } > + > + /* Init DM early */ > + ret = spl_early_init(); > + > + /* Prepare console output */ > + preloader_console_init(); > + > + if (IS_ENABLED(CONFIG_CPU_V7R)) { > + /* > + * Process pinctrl for the serial0 a.k.a. WKUP_UART0 module and > continue > + * regardless of the result of pinctrl. Do this without probing > the > + * device, but instead by searching the device that would > request the > + * given sequence number if probed. The UART will be used by > the system > + * firmware (SYSFW) image for various purposes and SYSFW > depends on us Nit pick - there is no SYSFW image anymore - it is either TIFS or DM. > + * to initialize its pin settings. > + */ > + ret = uclass_find_device_by_seq(UCLASS_SERIAL, 0, &dev); > + if (!ret) > + pinctrl_select_state(dev, "default"); > + > + /* > + * Load, start up, and configure system controller firmware. > Provide > + * the U-Boot console init function to the SYSFW post-PM > configuration > + * callback hook, effectively switching on (or over) the console > + * output. > + */ > + k3_sysfw_loader(is_rom_loaded_sysfw(&bootdata), NULL, NULL); > + > + if (IS_ENABLED(CONFIG_SPL_CLK_K3)) { > + /* > + * Force probe of clk_k3 driver here to ensure basic > default clock > + * configuration is always done for enabling PM > services. > + */ > + ret = uclass_get_device_by_driver(UCLASS_CLK, > + DM_DRIVER_GET(ti_clk), > + &dev); > + if (ret) > + panic("Failed to initialize clk-k3!\n"); > + } > + > + remove_fwl_configs(cbass_hc_cfg0_fwls, > ARRAY_SIZE(cbass_hc_cfg0_fwls)); > + remove_fwl_configs(cbass_hc2_fwls, ARRAY_SIZE(cbass_hc2_fwls)); > + remove_fwl_configs(cbass_rc_cfg0_fwls, > ARRAY_SIZE(cbass_rc_cfg0_fwls)); > + remove_fwl_configs(infra_cbass0_fwls, > ARRAY_SIZE(infra_cbass0_fwls)); > + remove_fwl_configs(mcu_cbass0_fwls, > ARRAY_SIZE(mcu_cbass0_fwls)); > + remove_fwl_configs(wkup_cbass0_fwls, > ARRAY_SIZE(wkup_cbass0_fwls)); > + remove_fwl_configs(navss_cbass0_fwls, > ARRAY_SIZE(navss_cbass0_fwls)); > + } > + > + /* Output System Firmware version info */ > + k3_sysfw_print_ver(); > +} > + > +void k3_mem_init(void) > +{ > + struct udevice *dev; > + int ret, ctr = 1; > + > + if (IS_ENABLED(CONFIG_K3_J721E_DDRSS)) { > + ret = uclass_get_device(UCLASS_RAM, 0, &dev); > + if (ret) > + panic("DRAM 0 init failed: %d\n", ret); > + > + while (dev) { why loop on dev? is it possible to have ret != 0 and dev = 0? > + ret = uclass_next_device_err(&dev); > + if (ret) { > + printf("Initialized %d DRAM controllers\n", > ctr); > + break; > + } > + ctr++; What is the use of ctr++ ?? please do a limit check for instances. [...] Next time, please respond to the review comment questions so that I know that you have considered and decided something is not necessary or something was missed in the new version - for example what happened to mmc_stop/restart? -- Regards, Nishanth Menon Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D