Guidance Required: Booting from eMMC after TFTP/Serial Boot on Custom AM3359 EVM

We are working with Begale bone black board , which have some issue in the sd crad interface. so, Instead, we are currently using Serial and TFTP boot methods for initial loading and testing.

Current Progress:
Using TFTP, we have successfully transferred the following files into RAM:

u-boot-spl.bin

u-boot.img

zImage (which contains a RAM-based root filesystem)

Device Tree Blob (.dtb)

The system boots successfully from RAM, and we have verified that the zImage with embedded initramfs works perfectly during this temporary setup.

Objective:
We now want to permanently boot from eMMC memory—i.e., after every power-off and power-on cycle, the system should boot entirely from eMMC without needing serial or TFTP

Request for Guidance:
We would appreciate your detailed guidance on the following points:

Steps to Copy Files from RAM to eMMC
Once we load files (zImage, dtb, etc.) into RAM via TFTP, how do we copy them into the correct locations in eMMC using U-Boot commands?

U-Boot Environment Setup
Is it necessary to create a boot script like uEnv.txt in eMMC for booting? If so:

Where exactly should this file be placed?

What should be its content for booting zImage with RAM filesystem?

Handling saveenv Failure
When attempting to use saveenv, U-Boot returns an error such as:

*** Warning - bad CRC, using default environment
Failed to save environment to MMC…
We suspect this may be due to a misconfiguration in the environment storage area.

Could you help us identify where and how to properly configure CONFIG_ENV_IS_IN_MMC or the environment offset in U-Boot to ensure the environment variables are saved correctly to eMMC?

Expected Partition Layout
What should be the recommended eMMC partition layout for:

U-Boot

Kernel image

DTB

Optional boot scripts (uEnv.txt)

Automating Boot from eMMC
Once files are copied into eMMC, what are the required environment variables to configure in U-Boot so that the boot process automatically uses eMMC (mmc1) as the boot source?

Environment Info:
Processor: AM335x

Boot mode: TFTP/Serial (initially)

Target: Boot entirely from eMMC

SDK version: TI Processor SDK Linux AM335x 05.00.00.15

U-Boot version: 2018.01 (TI release)

We look forward to your technical input on the correct procedure to copy images into eMMC and configure U-Boot for a stable eMMC boot process.

Thank you again for your support.

Best regards,
Raj