diff options
| author | Paul Sokolovsky <pmiscml@gmail.com> | 2007-02-18 09:15:16 +0000 |
|---|---|---|
| committer | Paul Sokolovsky <pmiscml@gmail.com> | 2007-02-18 09:15:16 +0000 |
| commit | 216d5f022fa56d81d52118945476a6b9acce0132 (patch) | |
| tree | f4d5ba584865e9f3823f15a2ee6a3e673c64e573 /packages/arm-kernel-shim | |
| parent | 17b59827785d3f488a9b72d9c9a6d51ba5c933c4 (diff) | |
| parent | 9c9415a87de6a1cf058b99d304b31c78e4f31438 (diff) | |
merge of '8cde5e5064761c45e322d841a3b3313245cb264a'
and 'd6f1925c439f5b0608c0189c89b17a335f9fbbb6'
Diffstat (limited to 'packages/arm-kernel-shim')
| -rw-r--r-- | packages/arm-kernel-shim/arm-kernel-shim_1.2.bb | 52 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/arm-kernel-shim_1.3.bb | 77 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/files/cmdline_if_none.patch | 45 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/files/config-dsmg600.h | 19 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/files/config-fsg3.h | 5 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/files/config-nas100d.h | 7 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/files/config-nslu2.h | 7 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/files/disable-commandline.patch | 28 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/files/passthrough-atags.patch | 20 | ||||
| -rw-r--r-- | packages/arm-kernel-shim/files/place-boot-section.patch | 12 |
10 files changed, 174 insertions, 98 deletions
diff --git a/packages/arm-kernel-shim/arm-kernel-shim_1.2.bb b/packages/arm-kernel-shim/arm-kernel-shim_1.2.bb deleted file mode 100644 index aa7c7cd64c..0000000000 --- a/packages/arm-kernel-shim/arm-kernel-shim_1.2.bb +++ /dev/null @@ -1,52 +0,0 @@ -DESCRIPTION = "ARM Kernel Shim" -SECTION = "" -PRIORITY = "optional" -HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" -LICENSE = "GPL" -PR = "r1" - -COMPATIBLE_MACHINE = "(ixp4xx|nslu2)" - -SRC_URI = "ftp://ftp.buici.com/pub/arm/arm-kernel-shim/arm-kernel-shim-${PV}.tar.gz \ - file://place-boot-section.patch;patch=1 \ - file://config-nslu2.h \ - file://config-nas100d.h \ - file://config-dsmg600.h \ - file://config-fsg3.h" - -S = ${WORKDIR}/arm-kernel-shim-${PV} - -EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" - -oe_runmake() { - mv ${S}/config.h ${S}/config.h.orig - # NSLU2 - cp ${WORKDIR}/config-nslu2.h ${S}/config.h - rm -f ${S}/main.o - oenote make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2 - make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2 || die "oe_runmake failed" - # NAS100d - cp ${WORKDIR}/config-nas100d.h ${S}/config.h - rm -f ${S}/main.o - oenote make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d - make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d || die "oe_runmake failed" - # DSMG-600 - cp ${WORKDIR}/config-dsmg600.h ${S}/config.h - rm -f ${S}/main.o - oenote make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600 - make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600 || die "oe_runmake failed" - # FSG-3 - cp ${WORKDIR}/config-fsg3.h ${S}/config.h - rm -f ${S}/main.o - oenote make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3 - make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3 || die "oe_runmake failed" - mv ${S}/config.h.orig ${S}/config.h -} - -do_populate_staging() { - install -d ${STAGING_LOADER_DIR} - cp ${S}/arm-kernel-shim-nslu2.bin ${STAGING_LOADER_DIR}/ - cp ${S}/arm-kernel-shim-nas100d.bin ${STAGING_LOADER_DIR}/ - cp ${S}/arm-kernel-shim-dsmg600.bin ${STAGING_LOADER_DIR}/ - cp ${S}/arm-kernel-shim-fsg3.bin ${STAGING_LOADER_DIR}/ -} diff --git a/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb b/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb new file mode 100644 index 0000000000..4014d9e866 --- /dev/null +++ b/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb @@ -0,0 +1,77 @@ +DESCRIPTION = "ARM Kernel Shim" +SECTION = "" +PRIORITY = "optional" +HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" +LICENSE = "GPL" +PR = "r4" + +COMPATIBLE_MACHINE = "(ixp4xx|nslu2)" + +SRC_URI = "ftp://ftp.buici.com/pub/arm/arm-kernel-shim/arm-kernel-shim-${PV}.tar.gz \ + file://passthrough-atags.patch;patch=1 \ + file://cmdline_if_none.patch;patch=1 \ + file://config-nslu2.h \ + file://config-nas100d.h \ + file://config-dsmg600.h \ + file://config-fsg3.h" + +S = ${WORKDIR}/arm-kernel-shim-${PV}/${PV} + +EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" + +oe_runmake() { + mv ${S}/config.h ${S}/config.h.orig + # NSLU2 + if [ ${SITEINFO_ENDIANESS} == "be" ] ; then + sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \ + ${WORKDIR}/config-nslu2.h > ${S}/config.h + else + sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \ + ${WORKDIR}/config-nslu2.h > ${S}/config.h + fi + rm -f ${S}/main.o + oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2 + make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2 || die "oe_runmake failed" + # NAS100d + if [ ${SITEINFO_ENDIANESS} == "be" ] ; then + sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \ + ${WORKDIR}/config-nas100d.h > ${S}/config.h + else + sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \ + ${WORKDIR}/config-nas100d.h > ${S}/config.h + fi + rm -f ${S}/main.o + oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d + make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d || die "oe_runmake failed" + # DSMG-600 + if [ ${SITEINFO_ENDIANESS} == "be" ] ; then + sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \ + ${WORKDIR}/config-dsmg600.h > ${S}/config.h + else + sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \ + ${WORKDIR}/config-dsmg600.h > ${S}/config.h + fi + rm -f ${S}/main.o + oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600 + make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600 || die "oe_runmake failed" + # FSG-3 + if [ ${SITEINFO_ENDIANESS} == "be" ] ; then + sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \ + ${WORKDIR}/config-fsg3.h > ${S}/config.h + else + sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \ + ${WORKDIR}/config-fsg3.h > ${S}/config.h + fi + rm -f ${S}/main.o + oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3 + make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3 || die "oe_runmake failed" + mv ${S}/config.h.orig ${S}/config.h +} + +do_populate_staging() { + install -d ${STAGING_LOADER_DIR} + cp ${S}/arm-kernel-shim-nslu2.bin ${STAGING_LOADER_DIR}/ + cp ${S}/arm-kernel-shim-nas100d.bin ${STAGING_LOADER_DIR}/ + cp ${S}/arm-kernel-shim-dsmg600.bin ${STAGING_LOADER_DIR}/ + cp ${S}/arm-kernel-shim-fsg3.bin ${STAGING_LOADER_DIR}/ +} diff --git a/packages/arm-kernel-shim/files/cmdline_if_none.patch b/packages/arm-kernel-shim/files/cmdline_if_none.patch new file mode 100644 index 0000000000..460f7be090 --- /dev/null +++ b/packages/arm-kernel-shim/files/cmdline_if_none.patch @@ -0,0 +1,45 @@ +--- arm-kernel-shim-1.3/main.c.orig 2007-02-14 19:05:35.000000000 -0600 ++++ arm-kernel-shim-1.3/main.c 2007-02-14 22:48:06.000000000 -0600 +@@ -153,6 +153,42 @@ + p->hdr.tag = ATAG_NONE; + p->hdr.size = 0; + ++#else ++ ++#ifdef CMDLINE_IF_NONE ++ ++ /* Walk over the ATAG list, we need to find the end of the list. ++ * If we find a command line tag, stash away the pointer to the ++ * actual command line itself. Note that the implementation ++ * below assumes a single ATAG_CMDLINE passed in from the ++ * bootloader, which may not be a good assumption in all cases. ++ */ ++ { ++ char *c = 0; ++ for_each_tag(p, (struct tag*) PHYS_PARAMS) ++ if (p->hdr.tag == ATAG_CMDLINE) c = p->u.cmdline.cmdline; ++ ++ /* p -> final tag (ATAG_NONE), and c -> command line if found */ ++ /* if no ATAG_CMDLINE, or command line is empty, add the default one. */ ++ ++ if ((c == 0) || (*c == 0)) { ++ p->hdr.tag = ATAG_CMDLINE; ++ p->hdr.size = tag_size (tag_cmdline) ++ + (sizeof (cmdline)+3)/4 - 1; ++ { ++ const char* sz = cmdline + offset; ++ int i; ++ for (i = 0; i < sizeof (cmdline); ++i) ++ p->u.cmdline.cmdline[i] = sz[i]; ++ } ++ p = tag_next (p); ++ p->hdr.tag = ATAG_NONE; ++ p->hdr.size = 0; ++ } ++ } ++ ++#endif ++ + #endif + + /* Pass control to the kernel */ diff --git a/packages/arm-kernel-shim/files/config-dsmg600.h b/packages/arm-kernel-shim/files/config-dsmg600.h index cd331159e0..3203052d51 100644 --- a/packages/arm-kernel-shim/files/config-dsmg600.h +++ b/packages/arm-kernel-shim/files/config-dsmg600.h @@ -16,15 +16,26 @@ #define PHYS_PARAMS 0x00000100 /* Address for the parameter list */ -#define RAM_BANK0_START 0x00000000 -#define RAM_BANK0_LENGTH 0x04000000 +//#define RAM_BANK0_START 0x00000000 +//#define RAM_BANK0_LENGTH 0x04000000 //#define RAM_BANK1_START 0xd0000000 //#define RAM_BANK1_LENGTH 0x10000000 -//#define COMMANDLINE\ -// "console=ttyAMA0 root=/dev/memblk0 rootfstype=jffs" +#define COMMANDLINE \ + "init=/linuxrc root=/dev/mtdblock2 rootfstype=jffs2 rw noirqdebug console=ttyS0,115200n8" #define MACH_TYPE 964 +/* The DSM-G600 RedBoot sets up the ATAGs correctly */ +#define PASSTHROUGH_ATAGS + +/* but if the command line passed in is empty, use the default above. */ +#define CMDLINE_IF_NONE + +/* Uncomment one of these if you need to switch the CPU into a + specific mode. */ +//#define FORCE_LITTLEENDIAN +//#define FORCE_BIGENDIAN + #endif /* __CONFIG_H__ */ diff --git a/packages/arm-kernel-shim/files/config-fsg3.h b/packages/arm-kernel-shim/files/config-fsg3.h index e2cdf8abd4..08684d708e 100644 --- a/packages/arm-kernel-shim/files/config-fsg3.h +++ b/packages/arm-kernel-shim/files/config-fsg3.h @@ -27,4 +27,9 @@ #define MACH_TYPE 1091 +/* Uncomment one of these if you need to switch the CPU into a + specific mode. */ +//#define FORCE_LITTLEENDIAN +//#define FORCE_BIGENDIAN + #endif /* __CONFIG_H__ */ diff --git a/packages/arm-kernel-shim/files/config-nas100d.h b/packages/arm-kernel-shim/files/config-nas100d.h index 4389644cf0..846161d016 100644 --- a/packages/arm-kernel-shim/files/config-nas100d.h +++ b/packages/arm-kernel-shim/files/config-nas100d.h @@ -23,8 +23,13 @@ //#define RAM_BANK1_LENGTH 0x10000000 #define COMMANDLINE\ - "init=/linuxrc root=/dev/mtdblock2 rootfstype=jffs rw noirqdebug console=ttyS0,115200n8" + "init=/linuxrc root=/dev/mtdblock2 rootfstype=jffs2 rw noirqdebug console=ttyS0,115200n8" #define MACH_TYPE 865 +/* Uncomment one of these if you need to switch the CPU into a + specific mode. */ +//#define FORCE_LITTLEENDIAN +//#define FORCE_BIGENDIAN + #endif /* __CONFIG_H__ */ diff --git a/packages/arm-kernel-shim/files/config-nslu2.h b/packages/arm-kernel-shim/files/config-nslu2.h index 2262b57668..d641523841 100644 --- a/packages/arm-kernel-shim/files/config-nslu2.h +++ b/packages/arm-kernel-shim/files/config-nslu2.h @@ -23,8 +23,13 @@ //#define RAM_BANK1_LENGTH 0x10000000 #define COMMANDLINE\ - "init=/linuxrc root=/dev/mtdblock4 rootfstype=jffs rw noirqdebug console=ttyS0,115200n8" + "init=/linuxrc root=/dev/mtdblock4 rootfstype=jffs2 rw noirqdebug console=ttyS0,115200n8" #define MACH_TYPE 597 +/* Uncomment one of these if you need to switch the CPU into a + specific mode. */ +//#define FORCE_LITTLEENDIAN +//#define FORCE_BIGENDIAN + #endif /* __CONFIG_H__ */ diff --git a/packages/arm-kernel-shim/files/disable-commandline.patch b/packages/arm-kernel-shim/files/disable-commandline.patch deleted file mode 100644 index d8c59f1a6b..0000000000 --- a/packages/arm-kernel-shim/files/disable-commandline.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- arm-kernel-shim/main.c~ 2006-07-21 11:12:07.000000000 +0930 -+++ arm-kernel-shim/main.c 2007-01-28 11:56:35.000000000 +1030 -@@ -47,7 +47,9 @@ - - #define NAKED __attribute__((naked)) - -+#if defined (COMMANDLINE) - const char __attribute__((section(".rodata"))) cmdline[] = COMMANDLINE; -+#endif - - void NAKED __attribute__((section(".boot"))) boot (u32 r0, u32 r1, u32 r2) - { -@@ -82,6 +84,7 @@ - pv += H_SIZE(pv)*4; - #endif - -+#if defined (COMMANDLINE) - /* Command line */ - H_SIZE(pv) = tag_size(tag_cmdline) + (sizeof (cmdline)+1+3)/4; - H_TAG(pv) = ATAG_CMDLINE; -@@ -91,6 +94,7 @@ - P_CMDLINE(pv)->cmdline[i] = cmdline[i]; - } - pv += H_SIZE(pv)*4; -+#endif - - /* End */ - H_SIZE(pv) = 0; diff --git a/packages/arm-kernel-shim/files/passthrough-atags.patch b/packages/arm-kernel-shim/files/passthrough-atags.patch new file mode 100644 index 0000000000..194279df89 --- /dev/null +++ b/packages/arm-kernel-shim/files/passthrough-atags.patch @@ -0,0 +1,20 @@ +--- arm-kernel-shim-1.3/main.c~ 2007-02-11 05:52:32.000000000 +1030 ++++ arm-kernel-shim-1.3/main.c 2007-02-14 16:39:40.000000000 +1030 +@@ -100,6 +100,8 @@ + : "+r" (offset) + :: "lr", "cc"); + ++#if !defined (PASSTHROUGH_ATAGS) ++ + p = (struct tag*) PHYS_PARAMS; + + /* Always start with the CORE tag */ +@@ -151,6 +153,8 @@ + p->hdr.tag = ATAG_NONE; + p->hdr.size = 0; + ++#endif ++ + /* Pass control to the kernel */ + boot (0, MACH_TYPE, PHYS_PARAMS); + } diff --git a/packages/arm-kernel-shim/files/place-boot-section.patch b/packages/arm-kernel-shim/files/place-boot-section.patch deleted file mode 100644 index 6e6c9460a5..0000000000 --- a/packages/arm-kernel-shim/files/place-boot-section.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- arm-kernel-shim-1.2/Makefile~ 2007-02-06 16:44:31.000000000 +1030 -+++ arm-kernel-shim-1.2/Makefile 2007-02-06 16:56:12.000000000 +1030 -@@ -9,7 +9,8 @@ - OBJCOPY=$(TOOLS)objcopy - - CFLAGS:=-g -Os -nostartfiles -nostdlib --LDFLAGS:= -g -X -Map shim.map -Ttext 0 -+# LDFLAGS:= -g -X -Map shim.map -Ttext 0 -+LDFLAGS:= -g -X -Map shim.map -Ttext 0 --section-start .boot=1fb - - SRCS:= shim.lds main.c - OBJS:=$(SRCS:.c=.o) |
