diff --git a/openwrt/target/linux/image/brcm/Makefile b/openwrt/target/linux/image/brcm/Makefile
index 1d8e7ea26122b94cf72e2e410bf0b5116a0586fd..df2a42ea5cc083372581b34ca3e6d592669fc569 100644
--- a/openwrt/target/linux/image/brcm/Makefile
+++ b/openwrt/target/linux/image/brcm/Makefile
@@ -1,16 +1,5 @@
 include ../image.mk
 
-ifeq ($(FS),jffs2-8MB)
-TRXALIGN:=-a 0x20000
-endif
-ifeq ($(FS),jffs2-4MB)
-TRXALIGN:=-a 0x10000
-endif
-ifeq ($(FS),squashfs)
-# see ticket #155
-TRXALIGN:=-a 1024
-endif
-
 define Build/Compile
 	rm -f $(KDIR)/loader.gz
 	$(MAKE) -C lzma-loader \
@@ -41,8 +30,18 @@ define Image/Build/Motorola
 	$(STAGING_DIR)/bin/motorola-bin -$(3) $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx $(BIN_DIR)/openwrt-$(2)-$(4).bin
 endef
 
+define trxalign/jffs2-128k
+-a 0x20000
+endef
+define trxalign/jffs2-64k
+-a 0x10000
+endef
+define trxalign/squashfs
+-a 1024
+endef
+
 define Image/Build
-	$(STAGING_DIR)/bin/trx -o $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx $(KDIR)/loader.gz $(KDIR)/vmlinux.lzma $(TRXALIGN) $(KDIR)/root.$(1)
+	$(STAGING_DIR)/bin/trx -o $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx $(KDIR)/loader.gz $(KDIR)/vmlinux.lzma $(call trxalign/$(1)) $(KDIR)/root.$(1)
 ifneq ($(1),jffs2-128k)
 	$(call Image/Build/CyberTAN,$(1),wrt54g3g,W54F,1.99.5,$(patsubst jffs2-%,jffs2,$(1)))
 	$(call Image/Build/CyberTAN,$(1),wrt54g,W54G,4.40.1,$(patsubst jffs2-%,jffs2,$(1)))