From f3be10b7fce412f040bbcc04174d1cbc8d5c800e Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Wed, 24 Feb 2016 20:26:39 -0300 Subject: uboot-omap3_beagle: add new package to [libre] --- .../0001-parabola-arm-modifications.patch | 308 -------------------- libre/uboot-beagleboard-linux-libre/PKGBUILD | 44 --- libre/uboot-beagleboard-linux-libre/uEnv.txt | 0 .../0001-parabola-arm-modifications.patch | 312 +++++++++++++++++++++ libre/uboot-omap3_beagle/PKGBUILD | 51 ++++ libre/uboot-omap3_beagle/extlinux.conf | 46 +++ libre/uboot-omap3_beagle/uEnv.txt | 0 .../uboot-omap3_beagle/uboot-omap3_beagle.install | 11 + 8 files changed, 420 insertions(+), 352 deletions(-) delete mode 100644 libre/uboot-beagleboard-linux-libre/0001-parabola-arm-modifications.patch delete mode 100644 libre/uboot-beagleboard-linux-libre/PKGBUILD delete mode 100644 libre/uboot-beagleboard-linux-libre/uEnv.txt create mode 100644 libre/uboot-omap3_beagle/0001-parabola-arm-modifications.patch create mode 100644 libre/uboot-omap3_beagle/PKGBUILD create mode 100644 libre/uboot-omap3_beagle/extlinux.conf create mode 100644 libre/uboot-omap3_beagle/uEnv.txt create mode 100644 libre/uboot-omap3_beagle/uboot-omap3_beagle.install diff --git a/libre/uboot-beagleboard-linux-libre/0001-parabola-arm-modifications.patch b/libre/uboot-beagleboard-linux-libre/0001-parabola-arm-modifications.patch deleted file mode 100644 index dbca32bb5..000000000 --- a/libre/uboot-beagleboard-linux-libre/0001-parabola-arm-modifications.patch +++ /dev/null @@ -1,308 +0,0 @@ -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 7b37fbe..ff986ff 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -56,6 +56,7 @@ - #define BBTOYS_WIFI 0x01000B00 - #define BBTOYS_VGA 0x02000B00 - #define BBTOYS_LCD 0x03000B00 -+#define BBTOYS_ULCD 0x04000B00 - #define BCT_BRETTL3 0x01000F00 - #define BCT_BRETTL4 0x02000F00 - #define LSR_COM6L_ADPT 0x01001300 -@@ -211,25 +212,25 @@ void get_board_mem_timings(struct board_sdrc_timings *timings) - * bus 1 for the availability of an AT24C01B serial EEPROM. - * returns the device_vendor field from the EEPROM - */ --static unsigned int get_expansion_id(void) -+static unsigned int get_expansion_id(int eeprom_address) - { - i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS); - - /* return BEAGLE_NO_EEPROM if eeprom doesn't respond */ -- if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) { -+ if (i2c_probe(eeprom_address) == 1) { - i2c_set_bus_num(TWL4030_I2C_BUS); - return BEAGLE_NO_EEPROM; - } - - /* read configuration data */ -- i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config, -+ i2c_read(eeprom_address, 0, 1, (u8 *)&expansion_config, - sizeof(expansion_config)); - - /* retry reading configuration data with 16bit addressing */ - if ((expansion_config.device_vendor == 0xFFFFFF00) || - (expansion_config.device_vendor == 0xFFFFFFFF)) { - printf("EEPROM is blank or 8bit addressing failed: retrying with 16bit:\n"); -- i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 2, (u8 *)&expansion_config, -+ i2c_read(eeprom_address, 0, 2, (u8 *)&expansion_config, - sizeof(expansion_config)); - } - -@@ -341,15 +342,18 @@ int misc_init_r(void) - case REVISION_AXBX: - printf("Beagle Rev Ax/Bx\n"); - setenv("beaglerev", "AxBx"); -+ setenv("musb", "musb_hdrc.fifo_mode=5"); - break; - case REVISION_CX: - printf("Beagle Rev C1/C2/C3\n"); - setenv("beaglerev", "Cx"); -+ setenv("musb", "musb_hdrc.fifo_mode=5"); - MUX_BEAGLE_C(); - break; - case REVISION_C4: - printf("Beagle Rev C4\n"); - setenv("beaglerev", "C4"); -+ setenv("musb", "musb_hdrc.fifo_mode=5"); - MUX_BEAGLE_C(); - /* Set VAUX2 to 1.8V for EHCI PHY */ - twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, -@@ -390,7 +394,7 @@ int misc_init_r(void) - generate_fake_mac = true; - } - -- switch (get_expansion_id()) { -+ switch (get_expansion_id(EXPANSION_EEPROM_I2C_ADDRESS)) { - case TINCANTOOLS_ZIPPY: - printf("Recognized Tincantools Zippy board (rev %d %s)\n", - expansion_config.revision, -@@ -473,6 +477,30 @@ int misc_init_r(void) - if (expansion_config.content == 1) - setenv(expansion_config.env_var, expansion_config.env_setting); - -+ /* Scan 0x51 as well for loop-thru boards */ -+ switch (get_expansion_id(EXPANSION_EEPROM_I2C_ADDRESS + 1)) { -+ case BBTOYS_ULCD: -+ printf("Recognized BeagleBoardToys uLCD-lite board\n"); -+ setenv("buddy2", "bbtoys-ulcd"); -+ setenv("defaultdisplay", "dvi"); -+ setenv("dvimode", "800x480MR-16@60"); -+ setenv("lcd1", "i2c mw 40 00 00; i2c mw 40 04 80; i2c mw 40 0d 05"); -+ setenv("lcdcmd", "i2c dev 1 ; run lcd1; i2c dev 0"); -+ setenv("kmsmode", "video=DVI-D-1:800x480"); -+ break; -+ case BEAGLE_NO_EEPROM: -+ printf("No EEPROM on expansion board\n"); -+ setenv("buddy2", "none"); -+ break; -+ default: -+ printf("Unrecognized expansion board: %x\n", -+ expansion_config.device_vendor); -+ setenv("buddy2", "unknown"); -+ } -+ -+ if (expansion_config.content == 1) -+ setenv(expansion_config.env_var, expansion_config.env_setting); -+ - twl4030_power_init(); - switch (get_board_revision()) { - case REVISION_XM_AB: -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index f25a940..9f15cf1 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -90,6 +90,12 @@ - #define CONFIG_USB_ETHER_MCS7830 - #define CONFIG_USB_ETHER_SMSC95XX - -+/* Parabola GNU/Linux-libre extras */ -+#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre" -+#define CONFIG_SUPPORT_RAW_INITRD -+#define CONFIG_CMD_PART -+#define CONFIG_PARTITION_UUIDS -+ - /* GPIO banks */ - #define CONFIG_OMAP3_GPIO_5 /* GPIO128..159 is in GPIO bank 5 */ - #define CONFIG_OMAP3_GPIO_6 /* GPIO160..191 is in GPIO bank 6 */ -@@ -129,50 +135,62 @@ - /* devices */ - - #define CONFIG_EXTRA_ENV_SETTINGS \ -- "loadaddr=0x80200000\0" \ -- "rdaddr=0x81000000\0" \ -+ "loadaddr=0x82000000\0" \ -+ "rdaddr=0x88080000\0" \ - "fdt_high=0xffffffff\0" \ -- "fdtaddr=0x80f80000\0" \ -- "usbtty=cdc_acm\0" \ -- "bootfile=uImage\0" \ -- "ramdisk=ramdisk.gz\0" \ -- "bootdir=/boot\0" \ -- "bootpart=0:2\0" \ -+ "fdtaddr=0x88000000\0" \ - "console=ttyO2,115200n8\0" \ -- "mpurate=auto\0" \ -- "buddy=none\0" \ -- "optargs=\0" \ -- "camera=none\0" \ -- "vram=12M\0" \ -- "dvimode=640x480MR-16@60\0" \ -- "defaultdisplay=dvi\0" \ -+ "fdtfile=undefined\0" \ -+ "bootpart=0:1\0" \ -+ "bootdir=/\0" \ -+ "fdtdir=/dtbs/linux-libre\0" \ -+ "bootfile=vmlinuz-linux-libre\0" \ -+ "rdfile=initramfs-linux-libre.img\0" \ - "mmcdev=0\0" \ -- "mmcroot=/dev/mmcblk0p2 rw\0" \ -- "mmcrootfstype=ext3 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" \ -+ "optargs=\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} " \ -- "mpurate=${mpurate} " \ -- "buddy=${buddy} "\ -- "camera=${camera} "\ -- "vram=${vram} " \ -- "omapfb.mode=dvi:${dvimode} " \ -- "omapdss.def_disp=${defaultdisplay} " \ -- "root=${nandroot} " \ -- "rootfstype=${nandrootfstype}\0" \ -+ "root=${root} " \ -+ "${musb} " \ -+ "${cmdline}\0" \ -+ "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ -+ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \ -+ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \ -+ "mmcboot=usb start;" \ -+ "for devtype in mmc usb; do " \ -+ "setenv devnum 0;" \ -+ "while ${devtype} dev ${devnum}; do " \ -+ "echo ${devtype} found on device ${devnum};" \ -+ "setenv bootpart ${devnum}:1;" \ -+ "if test ${devtype} = mmc; then part uuid mmc ${devnum}:2 uuid; else part uuid ${devtype} ${devnum}:1 uuid; fi;" \ -+ "part uuid ${devtype} ${rootpart} uuid;" \ -+ "setenv root PARTUUID=${uuid} rw rootwait;" \ -+ "echo Checking for: ${bootdir}/uEnv.txt ...;" \ -+ "if test -e ${devtype} ${bootpart} ${bootdir}/uEnv.txt; then " \ -+ "load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/uEnv.txt;" \ -+ "env import -t ${loadaddr} ${filesize};" \ -+ "echo Loaded environment from ${bootdir}/uEnv.txt;" \ -+ "echo Checking if uenvcmd is set ...;" \ -+ "if test -n ${uenvcmd}; then " \ -+ "echo Running uenvcmd ...;" \ -+ "run uenvcmd;" \ -+ "fi;" \ -+ "fi;" \ -+ "if run loadimage; then " \ -+ "run mmcargs;" \ -+ "if run loadfdt; then " \ -+ "if run loadrd; then " \ -+ "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \ -+ "else " \ -+ "bootz ${loadaddr} - ${fdtaddr};" \ -+ "fi;" \ -+ "fi;" \ -+ "else " \ -+ "echo No kernel found;" \ -+ "fi;" \ -+ "setexpr devnum ${devnum} + 1;" \ -+ "done;" \ -+ "done;\0" \ - "findfdt=" \ - "if test $beaglerev = AxBx; then " \ - "setenv fdtfile omap3-beagle.dtb; fi; " \ -@@ -185,81 +203,11 @@ - "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" \ -- "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} " \ -- "${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 from mmc ...; " \ -- "run mmcargs; " \ -- "bootm ${loadaddr}\0" \ -- "mmcbootz=echo Booting 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" --/* "run userbutton" will return 1 (false) if pressed and 0 (true) if not */ -+ "echo WARNING: Could not determine device tree to use; fi; \0" -+ - #define CONFIG_BOOTCOMMAND \ - "run findfdt; " \ -- "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 mmcboot;" \ -- "fi;" \ -- "fi; " \ -- "fi;" \ -- "run nandboot;" \ -- "setenv bootfile zImage;" \ -- "if run loadimage; then " \ -- "run loadfdt;" \ -- "run mmcbootz; " \ -- "fi; " \ -+ "run mmcboot" - - /* - * OMAP3 has 12 GP timers, they can be driven by the system clock --- -2.4.2 - diff --git a/libre/uboot-beagleboard-linux-libre/PKGBUILD b/libre/uboot-beagleboard-linux-libre/PKGBUILD deleted file mode 100644 index 8cf7ecca5..000000000 --- a/libre/uboot-beagleboard-linux-libre/PKGBUILD +++ /dev/null @@ -1,44 +0,0 @@ -# U-Boot: BeagleBoard and BeagleBoard-xM -# Maintainer (Arch): Kevin Mihelich -# Contributor: André Silva - -buildarch=4 - -_pkgname=linux-libre -pkgname=uboot-beagleboard-${_pkgname} -pkgver=2015.04 -pkgrel=1 -pkgdesc="U-Boot for BeagleBoard and BeagleBoard-xM (built for the linux-libre kernel package)" -arch=('armv7h') -url="http://git.denx.de/u-boot.git/" -license=('GPL') -depends=('linux-libre') -makedepends=('bc') -replaces=('uboot-beagleboard') -source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2" - '0001-parabola-arm-modifications.patch' - 'uEnv.txt') -md5sums=('570bdc2c47270c2a98ca60ff6c5c74cd' - '98d94d7e1ac1302da57c89dc3b5b9f5b' - 'd41d8cd98f00b204e9800998ecf8427e') - -prepare() { - cd u-boot-${pkgver} - patch -Np1 -i ../0001-parabola-arm-modifications.patch -} - -build() { - cd u-boot-${pkgver} - - unset LDFLAGS CFLAGS CXXFLAGS - - make distclean - make omap3_beagle_config - make -} - -package() { - cd u-boot-${pkgver} - mkdir -p "${pkgdir}/boot/${pkgname}" - cp MLO u-boot.img "${srcdir}"/uEnv.txt "${pkgdir}/boot/${pkgname}" -} diff --git a/libre/uboot-beagleboard-linux-libre/uEnv.txt b/libre/uboot-beagleboard-linux-libre/uEnv.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/libre/uboot-omap3_beagle/0001-parabola-arm-modifications.patch b/libre/uboot-omap3_beagle/0001-parabola-arm-modifications.patch new file mode 100644 index 000000000..c99cd89b8 --- /dev/null +++ b/libre/uboot-omap3_beagle/0001-parabola-arm-modifications.patch @@ -0,0 +1,312 @@ +diff -Nur u-boot-2016.01.orig/board/ti/beagle/beagle.c u-boot-2016.01/board/ti/beagle/beagle.c +--- u-boot-2016.01.orig/board/ti/beagle/beagle.c 2016-01-12 11:06:54.000000000 -0300 ++++ u-boot-2016.01/board/ti/beagle/beagle.c 2016-02-24 19:45:05.779336247 -0300 +@@ -56,6 +56,7 @@ + #define BBTOYS_WIFI 0x01000B00 + #define BBTOYS_VGA 0x02000B00 + #define BBTOYS_LCD 0x03000B00 ++#define BBTOYS_ULCD 0x04000B00 + #define BCT_BRETTL3 0x01000F00 + #define BCT_BRETTL4 0x02000F00 + #define LSR_COM6L_ADPT 0x01001300 +@@ -211,25 +212,25 @@ + * bus 1 for the availability of an AT24C01B serial EEPROM. + * returns the device_vendor field from the EEPROM + */ +-static unsigned int get_expansion_id(void) ++static unsigned int get_expansion_id(int eeprom_address) + { + i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS); + + /* return BEAGLE_NO_EEPROM if eeprom doesn't respond */ +- if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) { ++ if (i2c_probe(eeprom_address) == 1) { + i2c_set_bus_num(TWL4030_I2C_BUS); + return BEAGLE_NO_EEPROM; + } + + /* read configuration data */ +- i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config, ++ i2c_read(eeprom_address, 0, 1, (u8 *)&expansion_config, + sizeof(expansion_config)); + + /* retry reading configuration data with 16bit addressing */ + if ((expansion_config.device_vendor == 0xFFFFFF00) || + (expansion_config.device_vendor == 0xFFFFFFFF)) { + printf("EEPROM is blank or 8bit addressing failed: retrying with 16bit:\n"); +- i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 2, (u8 *)&expansion_config, ++ i2c_read(eeprom_address, 0, 2, (u8 *)&expansion_config, + sizeof(expansion_config)); + } + +@@ -341,15 +342,18 @@ + case REVISION_AXBX: + printf("Beagle Rev Ax/Bx\n"); + setenv("beaglerev", "AxBx"); ++ setenv("musb", "musb_hdrc.fifo_mode=5"); + break; + case REVISION_CX: + printf("Beagle Rev C1/C2/C3\n"); + setenv("beaglerev", "Cx"); ++ setenv("musb", "musb_hdrc.fifo_mode=5"); + MUX_BEAGLE_C(); + break; + case REVISION_C4: + printf("Beagle Rev C4\n"); + setenv("beaglerev", "C4"); ++ setenv("musb", "musb_hdrc.fifo_mode=5"); + MUX_BEAGLE_C(); + /* Set VAUX2 to 1.8V for EHCI PHY */ + twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, +@@ -390,7 +394,7 @@ + generate_fake_mac = true; + } + +- switch (get_expansion_id()) { ++ switch (get_expansion_id(EXPANSION_EEPROM_I2C_ADDRESS)) { + case TINCANTOOLS_ZIPPY: + printf("Recognized Tincantools Zippy board (rev %d %s)\n", + expansion_config.revision, +@@ -471,6 +475,30 @@ + } + + if (expansion_config.content == 1) ++ setenv(expansion_config.env_var, expansion_config.env_setting); ++ ++ /* Scan 0x51 as well for loop-thru boards */ ++ switch (get_expansion_id(EXPANSION_EEPROM_I2C_ADDRESS + 1)) { ++ case BBTOYS_ULCD: ++ printf("Recognized BeagleBoardToys uLCD-lite board\n"); ++ setenv("buddy2", "bbtoys-ulcd"); ++ setenv("defaultdisplay", "dvi"); ++ setenv("dvimode", "800x480MR-16@60"); ++ setenv("lcd1", "i2c mw 40 00 00; i2c mw 40 04 80; i2c mw 40 0d 05"); ++ setenv("lcdcmd", "i2c dev 1 ; run lcd1; i2c dev 0"); ++ setenv("kmsmode", "video=DVI-D-1:800x480"); ++ break; ++ case BEAGLE_NO_EEPROM: ++ printf("No EEPROM on expansion board\n"); ++ setenv("buddy2", "none"); ++ break; ++ default: ++ printf("Unrecognized expansion board: %x\n", ++ expansion_config.device_vendor); ++ setenv("buddy2", "unknown"); ++ } ++ ++ if (expansion_config.content == 1) + setenv(expansion_config.env_var, expansion_config.env_setting); + + twl4030_power_init(); +diff -Nur u-boot-2016.01.orig/include/configs/omap3_beagle.h u-boot-2016.01/include/configs/omap3_beagle.h +--- u-boot-2016.01.orig/include/configs/omap3_beagle.h 2016-01-12 11:06:54.000000000 -0300 ++++ u-boot-2016.01/include/configs/omap3_beagle.h 2016-02-24 19:50:25.959802093 -0300 +@@ -91,6 +91,12 @@ + #define CONFIG_USB_ETHER_MCS7830 + #define CONFIG_USB_ETHER_SMSC95XX + ++/* Parabola GNU/Linux-libre extras */ ++#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre" ++#define CONFIG_SUPPORT_RAW_INITRD ++#define CONFIG_CMD_PART ++#define CONFIG_PARTITION_UUIDS ++ + /* GPIO banks */ + #define CONFIG_OMAP3_GPIO_5 /* GPIO128..159 is in GPIO bank 5 */ + #define CONFIG_OMAP3_GPIO_6 /* GPIO160..191 is in GPIO bank 6 */ +@@ -124,51 +130,71 @@ + #define CONFIG_SYS_MAX_NAND_DEVICE 1 /* Max number of NAND */ + /* devices */ + ++/* Enable Extlinux boot support */ ++#define CONFIG_CMD_PXE ++#define CONFIG_MENU ++#define BOOT_TARGET_DEVICES(func) ++#include ++ + #define CONFIG_EXTRA_ENV_SETTINGS \ +- "loadaddr=0x80200000\0" \ +- "rdaddr=0x81000000\0" \ ++ BOOTENV \ ++ "loadaddr=0x82000000\0" \ ++ "rdaddr=0x88080000\0" \ + "fdt_high=0xffffffff\0" \ +- "fdtaddr=0x80f80000\0" \ +- "usbtty=cdc_acm\0" \ +- "bootfile=uImage\0" \ +- "ramdisk=ramdisk.gz\0" \ +- "bootdir=/boot\0" \ +- "bootpart=0:2\0" \ ++ "fdtaddr=0x88000000\0" \ + "console=ttyO2,115200n8\0" \ +- "mpurate=auto\0" \ +- "buddy=none\0" \ +- "optargs=\0" \ +- "camera=none\0" \ +- "vram=12M\0" \ +- "dvimode=640x480MR-16@60\0" \ +- "defaultdisplay=dvi\0" \ ++ "fdtfile=undefined\0" \ ++ "bootpart=0:1\0" \ ++ "bootdir=\0" \ ++ "fdtdir=/dtbs\0" \ ++ "bootfile=zImage\0" \ ++ "rdfile=initramfs-linux.img\0" \ + "mmcdev=0\0" \ +- "mmcroot=/dev/mmcblk0p2 rw\0" \ +- "mmcrootfstype=ext3 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" \ ++ "optargs=\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} " \ +- "mpurate=${mpurate} " \ +- "buddy=${buddy} "\ +- "camera=${camera} "\ +- "vram=${vram} " \ +- "omapfb.mode=dvi:${dvimode} " \ +- "omapdss.def_disp=${defaultdisplay} " \ +- "root=${nandroot} " \ +- "rootfstype=${nandrootfstype}\0" \ ++ "root=${root} " \ ++ "${musb} " \ ++ "${cmdline}\0" \ ++ "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ ++ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \ ++ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \ ++ "mmcboot=usb start;" \ ++ "for devtype in mmc usb; do " \ ++ "setenv devnum 0;" \ ++ "while ${devtype} dev ${devnum}; do " \ ++ "echo ${devtype} found on device ${devnum};" \ ++ "setenv bootpart ${devnum}:1;" \ ++ "if test ${devtype} = mmc; then part uuid mmc ${devnum}:2 uuid; else part uuid ${devtype} ${devnum}:1 uuid; fi;" \ ++ "part uuid ${devtype} ${rootpart} uuid;" \ ++ "setenv root PARTUUID=${uuid} rw rootwait;" \ ++ "echo Checking for: ${bootdir}/uEnv.txt ...;" \ ++ "if test -e ${devtype} ${bootpart} ${bootdir}/uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from ${bootdir}/uEnv.txt;" \ ++ "echo Checking if uenvcmd is set ...;" \ ++ "if test -n ${uenvcmd}; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "fi;" \ ++ "run scan_dev_for_boot;" \ ++ "if run loadimage; then " \ ++ "run mmcargs;" \ ++ "if run loadfdt; then " \ ++ "if run loadrd; then " \ ++ "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \ ++ "else " \ ++ "bootz ${loadaddr} - ${fdtaddr};" \ ++ "fi;" \ ++ "fi;" \ ++ "else " \ ++ "echo No kernel found;" \ ++ "fi;" \ ++ "setexpr devnum ${devnum} + 1;" \ ++ "done;" \ ++ "done;\0" \ + "findfdt=" \ + "if test $beaglerev = AxBx; then " \ + "setenv fdtfile omap3-beagle.dtb; fi; " \ +@@ -181,81 +207,11 @@ + "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" \ +- "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} " \ +- "${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 from mmc ...; " \ +- "run mmcargs; " \ +- "bootm ${loadaddr}\0" \ +- "mmcbootz=echo Booting 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" +-/* "run userbutton" will return 1 (false) if pressed and 0 (true) if not */ ++ "echo WARNING: Could not determine device tree to use; fi; \0" ++ + #define CONFIG_BOOTCOMMAND \ + "run findfdt; " \ +- "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 mmcboot;" \ +- "fi;" \ +- "fi; " \ +- "fi;" \ +- "run nandboot;" \ +- "setenv bootfile zImage;" \ +- "if run loadimage; then " \ +- "run loadfdt;" \ +- "run mmcbootz; " \ +- "fi; " \ ++ "run mmcboot" + + /* + * OMAP3 has 12 GP timers, they can be driven by the system clock diff --git a/libre/uboot-omap3_beagle/PKGBUILD b/libre/uboot-omap3_beagle/PKGBUILD new file mode 100644 index 000000000..3fdd5a274 --- /dev/null +++ b/libre/uboot-omap3_beagle/PKGBUILD @@ -0,0 +1,51 @@ +# U-Boot: BeagleBoard and BeagleBoard-xM +# Maintainer: André Silva + +buildarch=4 + +pkgname=uboot-omap3_beagle +pkgver=2016.01 +pkgrel=1 +pkgdesc="U-Boot for BeagleBoard and BeagleBoard-xM" +arch=('armv7h') +url="http://git.denx.de/u-boot.git/" +license=('GPL') +replaces=('uboot-beagleboard-linux-libre' 'uboot-beagleboard-linux-libre-lts' + 'uboot-beagleboard-linux-libre-grsec' 'uboot-beagleboard-linux-libre-pck' + 'uboot-beagleboard') +conflicts=('uboot-beagleboard-linux-libre' 'uboot-beagleboard-linux-libre-lts' + 'uboot-beagleboard-linux-libre-grsec' 'uboot-beagleboard-linux-libre-pck' + 'uboot-beagleboard' 'uboot4grub-omap3_beagle') +makedepends=('bc') +backup=(boot/extlinux/extlinux.conf) +install=${pkgname}.install +source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2" + '0001-parabola-arm-modifications.patch' + 'extlinux.conf' + 'uEnv.txt') +md5sums=('7d4f65fd43d4d706f5c5650e020d899d' + 'da3d52f785bce02602f88fb85f74de2f' + '12c61073bb860f4c8d8ec59145c267ed' + 'd41d8cd98f00b204e9800998ecf8427e') + +prepare() { + cd u-boot-${pkgver} + patch -Np1 -i ../0001-parabola-arm-modifications.patch +} + +build() { + cd u-boot-${pkgver} + + unset LDFLAGS CFLAGS CXXFLAGS + + make distclean + make omap3_beagle_config + make +} + +package() { + cd u-boot-${pkgver} + mkdir -p "${pkgdir}"/boot/extlinux + cp MLO u-boot.img "${srcdir}"/uEnv.txt "${pkgdir}"/boot + cp "${srcdir}"/extlinux.conf "${pkgdir}"/boot/extlinux +} diff --git a/libre/uboot-omap3_beagle/extlinux.conf b/libre/uboot-omap3_beagle/extlinux.conf new file mode 100644 index 000000000..725121811 --- /dev/null +++ b/libre/uboot-omap3_beagle/extlinux.conf @@ -0,0 +1,46 @@ +menu title Welcome to U-Boot with Extlinux support! + +label Parabola GNU/Linux-libre, linux-libre kernel + kernel /boot/vmlinuz-linux-libre + append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 + fdtdir /boot/dtbs/linux-libre + +#label Parabola GNU/Linux-libre, linux-libre-lts kernel +# kernel /boot/vmlinuz-linux-libre-lts +# append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 +# fdtdir /boot/dtbs/linux-libre-lts + +#label Parabola GNU/Linux-libre, linux-libre-knock kernel +# kernel /boot/vmlinuz-linux-libre-knock +# append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 +# fdtdir /boot/dtbs/linux-libre-knock + +#label Parabola GNU/Linux-libre, linux-libre-lts-knock kernel +# kernel /boot/vmlinuz-linux-libre-lts-knock +# append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 +# fdtdir /boot/dtbs/linux-libre-lts-knock + +#label Parabola GNU/Linux-libre, linux-libre-grsec kernel +# kernel /boot/vmlinuz-linux-libre-grsec +# append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 +# fdtdir /boot/dtbs/linux-libre-grsec + +#label Parabola GNU/Linux-libre, linux-libre-grsec-knock kernel +# kernel /boot/vmlinuz-linux-libre-grsec-knock +# append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 +# fdtdir /boot/dtbs/linux-libre-grsec-knock + +#label Parabola GNU/Linux-libre, linux-libre-audit kernel +# kernel /boot/vmlinuz-linux-libre-audit +# append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 +# fdtdir /boot/dtbs/linux-libre-audit + +#label Parabola GNU/Linux-libre, linux-libre-pck kernel +# kernel /boot/vmlinuz-linux-libre-pck +# append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 +# fdtdir /boot/dtbs/linux-libre-pck + +#label Parabola GNU/Linux-libre, linux-libre-rt kernel +# kernel /boot/vmlinuz-linux-libre-rt +# append root=/dev/mmcblk0p1 rw console=ttyO2,115200n8 +# fdtdir /boot/dtbs/linux-libre-rt diff --git a/libre/uboot-omap3_beagle/uEnv.txt b/libre/uboot-omap3_beagle/uEnv.txt new file mode 100644 index 000000000..e69de29bb diff --git a/libre/uboot-omap3_beagle/uboot-omap3_beagle.install b/libre/uboot-omap3_beagle/uboot-omap3_beagle.install new file mode 100644 index 000000000..249f69df3 --- /dev/null +++ b/libre/uboot-omap3_beagle/uboot-omap3_beagle.install @@ -0,0 +1,11 @@ +extlinux_warning() { + echo ">>> WARNING: for entries, edit /boot/extlinux/extlinux.conf" +} + +post_install() { + extlinux_warning +} + +post_upgrade() { + extlinux_warning +} -- cgit v1.2.3-54-g00ecf