From d233ccb1d84b901f7e23e6d9b4f2c6a57198b23b Mon Sep 17 00:00:00 2001 From: "Derald D. Woods" Date: Mon, 26 Feb 2018 17:52:58 -0600 Subject: [PATCH] ARM: omap3: beagle: Enable DM_SERIAL, update distro usage and NAND layout This commit does the following for BeagleBoard{-xM}: - Enable DM_SERIAL which also enables SPL_DM_SERIAL - Misc. config updates in support of DM_SERIAL - Use updated NAND layout (BeagleBoard): device nand0 , # parts = 6 #: name size offset ------------------------------------------------- 0: spl 0x00080000(512k) 0x00000000 1: u-boot 0x001e0000(1920k) 0x00080000 2: u-boot-env 0x00020000(128k) 0x00260000 3: dtb 0x00020000(128k) 0x00280000 4: kernel 0x00600000(6m) 0x002a0000 5: rootfs 0x0f760000(-) 0x008a0000 ------------------------------------------------- - Use MMC and UBIFS support from config_distro_bootcmd.h - Use LEGACY_MMC and NAND support defined in omap3_beagle.h [MMC(0:1)/extlinux/extlinux.conf] ---8<------------------------------------------------------------------- default omap3-beagle-mmc-fat label omap3-beagle-mmc-fat kernel /zImage fdt /omap3-beagle.dtb append console=ttyO2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait ---8<------------------------------------------------------------------- [LEGACY_MMC(0:2)/boot/extlinux/extlinux.conf] ---8<------------------------------------------------------------------- default omap3-beagle-mmc-ext4 label omap3-beagle-mmc-ext4 kernel /boot/zImage fdt /boot/omap3-beagle.dtb append console=ttyO2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait ---8<------------------------------------------------------------------- [UBIFS(ubi0:rootfs)/boot/extlinux/extlinux.conf] ---8<------------------------------------------------------------------- default omap3-beagle-nand-ubifs label omap3-beagle-nand-ubifs kernel /boot/zImage fdt /boot/omap3-beagle.dtb append console=ttyO2,115200n8 root=ubi0:rootfs rw ubi.mtd=rootfs rootfstype=ubifs rootwait ---8<------------------------------------------------------------------- The board's 'bootcmd' can also be overridden with: CONFIG_BOOTCOMMAND="run findfdt; run mmcboot" CONFIG_BOOTCOMMAND="run findfdt; run nandboot" CONFIG_BOOTCOMMAND="run findfdt; run ramboot" or CONFIG_BOOTCOMMAND="run findfdt; run somethingelse" The use of 'run findfdt' is required. Signed-off-by: Derald D. Woods --- configs/omap3_beagle_defconfig | 25 ++++- include/configs/omap3_beagle.h | 239 +++++++++++++++++++++++------------------ 2 files changed, 152 insertions(+), 112 deletions(-) diff --git a/configs/omap3_beagle_defconfig b/configs/omap3_beagle_defconfig index f0169a4..35e0b3c 100644 --- a/configs/omap3_beagle_defconfig +++ b/configs/omap3_beagle_defconfig @@ -4,32 +4,41 @@ CONFIG_SYS_TEXT_BASE=0x80100000 CONFIG_TARGET_OMAP3_BEAGLE=y CONFIG_DEFAULT_DEVICE_TREE="omap3-beagle" CONFIG_DISTRO_DEFAULTS=y -# CONFIG_USE_BOOTCOMMAND is not set +CONFIG_BOOTCOMMAND="run findfdt; run distro_bootcmd" CONFIG_SYS_CONSOLE_INFO_QUIET=y CONFIG_DEFAULT_FDT_FILE="omap3-beagle.dtb" CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y +# CONFIG_SPL_EXT_SUPPORT is not set CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_OS_BOOT=y +CONFIG_SYS_PROMPT="BeagleBoard # " CONFIG_FASTBOOT=y CONFIG_FASTBOOT_BUF_ADDR=0x82000000 CONFIG_CMD_SPL=y -CONFIG_CMD_SPL_NAND_OFS=0x240000 +CONFIG_CMD_SPL_NAND_OFS=0x280000 +CONFIG_CMD_SPL_WRITE_SIZE=0x20000 CONFIG_CMD_ASKENV=y # CONFIG_CMD_FLASH is not set CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y CONFIG_CMD_NAND=y +CONFIG_CMD_NAND_TRIMFFS=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT4_WRITE=y -CONFIG_CMD_MTDPARTS=y -CONFIG_MTDIDS_DEFAULT="nand0=nand" -CONFIG_MTDPARTS_DEFAULT="mtdparts=nand:512k(x-loader),1920k(u-boot),128k(u-boot-env),4m(kernel),-(fs)" +CONFIG_CMD_FS_UUID=y +CONFIG_MTDIDS_DEFAULT="nand0=omap2-nand.0" +CONFIG_MTDPARTS_DEFAULT="mtdparts=omap2-nand.0:512k(spl),1920k(u-boot),128k(u-boot-env),128k(dtb),6m(kernel),-(rootfs)" +CONFIG_CMD_UBI=y +# CONFIG_ISO_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +CONFIG_SPL_PARTITION_UUIDS=y CONFIG_OF_CONTROL=y CONFIG_ENV_IS_IN_NAND=y +CONFIG_SPL_DM=y CONFIG_LED_STATUS=y CONFIG_LED_STATUS0=y CONFIG_LED_STATUS_BIT=1 @@ -45,11 +54,15 @@ CONFIG_LED_STATUS_CMD=y CONFIG_MMC_OMAP_HS=y CONFIG_NAND=y CONFIG_SYS_NAND_BUSWIDTH_16BIT=y +CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y +CONFIG_SYS_NAND_U_BOOT_OFFS=0x80000 CONFIG_SPL_NAND_SIMPLE=y +CONFIG_DM_SERIAL=y CONFIG_SYS_NS16550=y CONFIG_OMAP3_SPI=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y +CONFIG_USB_OMAP3=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_MUSB_OMAP2PLUS=y CONFIG_TWL4030_USB=y @@ -65,3 +78,5 @@ CONFIG_USB_ETHER_MCS7830=y CONFIG_USB_ETHER_SMSC95XX=y CONFIG_FAT_WRITE=y CONFIG_BCH=y +CONFIG_SPL_OF_LIBFDT=y +# CONFIG_EFI_LOADER is not set diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h index ff4e601..85b8352 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@ -12,7 +12,7 @@ #ifndef __CONFIG_H #define __CONFIG_H -#define CONFIG_NR_DRAM_BANKS 2 /* CS1 may or may not be populated */ +#define CONFIG_NR_DRAM_BANKS 2 /* CS1 may or may not be populated */ #include @@ -45,22 +45,17 @@ #define CONFIG_SYS_NAND_ECCBYTES 3 #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW_DETECTION_SW #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x80000 -#define CONFIG_ENV_IS_IN_NAND 1 -#define CONFIG_ENV_SIZE (128 << 10) /* 128 KiB */ -#define CONFIG_SYS_ENV_SECT_SIZE (128 << 10) /* 128 KiB */ +#define CONFIG_SYS_ENV_SECT_SIZE SZ_128K #define CONFIG_ENV_OFFSET 0x260000 #define CONFIG_ENV_ADDR 0x260000 #define CONFIG_ENV_OVERWRITE #define CONFIG_MTD_PARTITIONS /* required for UBI partition support */ /* NAND: SPL falcon mode configs */ #if defined(CONFIG_SPL_OS_BOOT) -#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x280000 +#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x2a0000 #endif /* CONFIG_SPL_OS_BOOT */ #endif /* CONFIG_NAND */ -/* MUSB */ -#define CONFIG_USB_OMAP3 - /* USB EHCI */ #define CONFIG_OMAP_EHCI_PHY1_RESET_GPIO 147 @@ -73,88 +68,75 @@ /* TWL4030 LED Support */ #define CONFIG_TWL4030_LED +/* Environment */ +#define CONFIG_ENV_SIZE SZ_128K + +#define CONFIG_PREBOOT "usb start" + +#define MEM_LAYOUT_ENV_SETTINGS \ + DEFAULT_LINUX_BOOT_ENV + +#define BOOTENV_DEV_LEGACY_MMC(devtypeu, devtypel, instance) \ + "bootcmd_" #devtypel #instance "=" \ + "setenv mmcdev " #instance "; " \ + "run mmcboot\0" +#define BOOTENV_DEV_NAME_LEGACY_MMC(devtypeu, devtypel, instance) \ + #devtypel #instance " " + +#if defined(CONFIG_NAND) + +#define BOOTENV_DEV_NAND(devtypeu, devtypel, instance) \ + "bootcmd_" #devtypel #instance "=" \ + "if test ${mtdids} = '' || test ${mtdparts} = '' ; then " \ + "echo NAND boot disabled: No mtdids and/or mtdparts; " \ + "else " \ + "run nandboot; " \ + "fi\0" +#define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \ + #devtypel #instance " " + #define BOOT_TARGET_DEVICES(func) \ - func(MMC, mmc, 0) - -#define CONFIG_BOOTCOMMAND \ - "run findfdt; " \ - "run distro_bootcmd; " \ - "mmc dev ${mmcdev}; if mmc rescan; then " \ - "if run userbutton; then " \ - "setenv bootenv uEnv.txt;" \ - "else " \ - "setenv bootenv user.txt;" \ - "fi;" \ - "echo SD/MMC found on device ${mmcdev};" \ - "if run loadbootenv; then " \ - "echo Loaded environment from ${bootenv};" \ - "run importbootenv;" \ - "fi;" \ - "if test -n $uenvcmd; then " \ - "echo Running uenvcmd ...;" \ - "run uenvcmd;" \ - "fi;" \ - "if run loadbootscript; then " \ - "run bootscript; " \ - "else " \ - "if run loadimage; then " \ - "run loadfdt;" \ - "run mmcboot;" \ - "fi;" \ - "fi; " \ - "fi;" \ - "run nandboot;" \ - "setenv bootfile zImage;" \ - "if run loadimage; then " \ - "run loadfdt;" \ - "run mmcbootz; " \ - "fi; " \ + func(MMC, mmc, 0) \ + func(LEGACY_MMC, legacy_mmc, 0) \ + func(UBIFS, ubifs, 0) \ + func(NAND, nand, 0) + +#else /* !CONFIG_NAND */ + +#define BOOT_TARGET_DEVICES(func) \ + func(MMC, mmc, 0) \ + func(LEGACY_MMC, legacy_mmc, 0) + +#endif /* CONFIG_NAND */ #include #define CONFIG_EXTRA_ENV_SETTINGS \ - DEFAULT_LINUX_BOOT_ENV \ + MEM_LAYOUT_ENV_SETTINGS \ + "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \ "fdt_high=0xffffffff\0" \ - "usbtty=cdc_acm\0" \ - "bootfile=uImage\0" \ - "ramdisk=ramdisk.gz\0" \ + "console=ttyO2,115200n8\0" \ "bootdir=/boot\0" \ + "bootenv=uEnv.txt\0" \ + "bootfile=zImage\0" \ "bootpart=0:2\0" \ - "console=ttyO2,115200n8\0" \ + "bootubivol=rootfs\0" \ + "bootubipart=rootfs\0" \ + "usbtty=cdc_acm\0" \ "mpurate=auto\0" \ "buddy=none\0" \ - "optargs=\0" \ "camera=none\0" \ "vram=12M\0" \ "dvimode=640x480MR-16@60\0" \ "defaultdisplay=dvi\0" \ - "mmcdev=0\0" \ - "mmcroot=/dev/mmcblk0p2 rw\0" \ - "mmcrootfstype=ext4 rootwait\0" \ - "nandroot=ubi0:rootfs ubi.mtd=4\0" \ - "nandrootfstype=ubifs\0" \ - "ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=0x81000000,64M\0" \ - "ramrootfstype=ext2\0" \ - "mmcargs=setenv bootargs console=${console} " \ - "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ - "camera=${camera} "\ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ - "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ - "nandargs=setenv bootargs console=${console} " \ - "${optargs} " \ + "defaultargs=setenv defargs " \ "mpurate=${mpurate} " \ "buddy=${buddy} "\ "camera=${camera} "\ "vram=${vram} " \ "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ - "root=${nandroot} " \ - "rootfstype=${nandrootfstype}\0" \ + "omapdss.def_disp=${defaultdisplay}\0" \ + "optargs=\0" \ "findfdt=" \ "if test $beaglerev = AxBx; then " \ "setenv fdtfile omap3-beagle.dtb; fi; " \ @@ -167,49 +149,92 @@ "if test $beaglerev = xMC; then " \ "setenv fdtfile omap3-beagle-xm.dtb; fi; " \ "if test $fdtfile = undefined; then " \ - "echo WARNING: Could not determine device tree to use; fi; \0" \ + "echo WARNING: Could not determine device tree to use; fi\0" \ + "mmcdev=0\0" \ + "mmcpart=2\0" \ + "mmcroot=/dev/mmcblk0p2 rw\0" \ + "mmcrootfstype=ext4 rootwait\0" \ + "mmcargs=run defaultargs; setenv bootargs console=${console} " \ + "${mtdparts} " \ + "${defargs} " \ + "${optargs} " \ + "root=${mmcroot} " \ + "rootfstype=${mmcrootfstype}\0" \ + "userbutton_xm=gpio input 4;\0" \ + "userbutton_nonxm=gpio input 7;\0" \ + "userbutton=if gpio input 173; then " \ + "run userbutton_xm; " \ + "else " \ + "run userbutton_nonxm; " \ + "fi;\0" \ + "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ + "ext4bootenv=ext4load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootenv}\0" \ + "importbootenv=echo Importing environment from mmc${mmcdev} ...; " \ + "env import -t ${loadaddr} ${filesize}\0" \ + "mmcbootenv=setenv bootpart ${mmcdev}:${mmcpart}; " \ + "mmc dev ${mmcdev}; " \ + "if mmc rescan; then " \ + "if run userbutton; then " \ + "setenv bootenv uEnv.txt;" \ + "else " \ + "setenv bootenv user.txt;" \ + "fi;" \ + "run loadbootenv && run importbootenv; " \ + "run ext4bootenv && run importbootenv; " \ + "if test -n $uenvcmd; then " \ + "echo Running uenvcmd ...; " \ + "run uenvcmd; " \ + "fi; " \ + "fi\0" \ "validatefdt=" \ "if test $beaglerev = xMAB; then " \ "if test ! -e mmc ${bootpart} ${bootdir}/${fdtfile}; then " \ "setenv fdtfile omap3-beagle-xm.dtb; " \ "fi; " \ "fi; \0" \ - "bootenv=uEnv.txt\0" \ - "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ - "importbootenv=echo Importing environment from mmc ...; " \ - "env import -t -r $loadaddr $filesize\0" \ - "ramargs=setenv bootargs console=${console} " \ + "loadimage=ext4load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ + "loaddtb=run validatefdt; ext4load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ + "mmcboot=run mmcbootenv; " \ + "if run loadimage && run loaddtb; then " \ + "echo Booting ${bootdir}/${bootfile} from mmc ${bootpart} ...; " \ + "run mmcargs; " \ + "if test ${bootfile} = uImage; then " \ + "bootm ${loadaddr} - ${fdtaddr}; " \ + "fi; " \ + "if test ${bootfile} = zImage; then " \ + "bootz ${loadaddr} - ${fdtaddr}; " \ + "fi; " \ + "fi\0" \ + "nandroot=ubi0:rootfs ubi.mtd=rootfs rw\0" \ + "nandrootfstype=ubifs rootwait\0" \ + "nandargs=run defaultargs; setenv bootargs console=${console} " \ + "${mtdparts} " \ + "${defargs} " \ "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ - "root=${ramroot} " \ - "rootfstype=${ramrootfstype}\0" \ - "loadramdisk=load mmc ${bootpart} ${rdaddr} ${bootdir}/${ramdisk}\0" \ - "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ - "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \ - "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \ - "source ${loadaddr}\0" \ - "loadfdt=run validatefdt; load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ - "mmcboot=echo Booting ${bootfile} with DT from mmc${mmcdev} ...; " \ - "run mmcargs; " \ - "bootm ${loadaddr} - ${fdtaddr}\0" \ - "mmcbootz=echo Booting ${bootfile} with DT from mmc${mmcdev} ...; " \ - "run mmcargs; " \ - "bootz ${loadaddr} - ${fdtaddr}\0" \ - "nandboot=echo Booting from nand ...; " \ - "run nandargs; " \ - "nand read ${loadaddr} 280000 400000; " \ - "bootm ${loadaddr}\0" \ - "ramboot=echo Booting from ramdisk ...; " \ - "run ramargs; " \ - "bootm ${loadaddr}\0" \ - "userbutton=if gpio input 173; then run userbutton_xm; " \ - "else run userbutton_nonxm; fi;\0" \ - "userbutton_xm=gpio input 4;\0" \ - "userbutton_nonxm=gpio input 7;\0" \ + "root=${nandroot} " \ + "rootfstype=${nandrootfstype}\0" \ + "nandboot=if nand read ${loadaddr} kernel && nand read ${fdtaddr} dtb; then " \ + "echo Booting uImage from NAND MTD 'kernel' partition ...; " \ + "run nandargs; " \ + "bootm ${loadaddr} - ${fdtaddr}; " \ + "fi\0" \ + "loadramdisk=ext4load mmc ${bootpart} ${rdaddr} ${bootdir}/${ramdisk}\0" \ + "ramdisk=rootfs.ext2.gz.uboot\0" \ + "ramdisk_size=16384\0" \ + "ramroot=/dev/ram rw\0" \ + "ramrootfstype=ext2\0" \ + "ramargs=run defaultargs; setenv bootargs console=${console} " \ + "${mtdparts} " \ + "${defargs} " \ + "${optargs} " \ + "root=${ramroot} ramdisk_size=${ramdisk_size} " \ + "rootfstype=${ramrootfstype}\0" \ + "ramboot=run mmcbootenv; " \ + "if run loadimage && run loaddtb && run loadramdisk; then " \ + "echo Booting ${bootdir}/${bootfile} from mmc ${bootpart} w/ramdisk ...; " \ + "run ramargs; " \ + "bootz ${loadaddr} ${rdaddr} ${fdtaddr}; " \ + "fi\0" \ BOOTENV #endif /* __CONFIG_H */ -- 2.7.4