1include version
2
3#
4# Change cfe/kernel size if necessary
5#
6
7CFE_SIZE = 0x200000
8KERNEL_SIZE = 0x1E00000
9
10#-----------------------------------------------
11
12#
13# CFE Image Information
14#
15CFE_DIR = ../cfe
16CFE_IMAGE = cfe_rt-ac56u.bin
17
18#
19# Linux Firmware Image Information
20#
21KERNEL_DIR = ../image
22
23#
24# Single Image Information
25#
26PACKED_DIR = .
27PACKED_IMAGE = single_image.bin
28
29#
30# bit_errors Information
31#
32TOOL_DIR = .
33TOOL_NAME = bit_errors
34
35all: check_img
36
37	@echo ""
38	@echo "Flash layout:"
39	@echo " +--------------------+--------+-----------------------------+"
40	@echo " |         CFE        | NVRAM  |    Linux Firmware Image     |"
41	@echo " +--------------------+--------+-----------------------------+"
42	@echo " |<----------$(CFE_SIZE)---------->|<-------$(KERNEL_SIZE)------------>|"
43	
44	@echo -e "\n-Original CFE Image Size"
45	@wc -c $(CFE_DIR)/$(CFE_IMAGE)
46
47	@echo -e "\n-Original Firmware Image Size"
48	@wc -c $(KERNEL_DIR)/$(KERNEL_IMAGE)
49
50# Copy CFE 
51	@cp $(CFE_DIR)/$(CFE_IMAGE) $(PACKED_DIR)/$(PACKED_IMAGE)
52
53# Finish CFE Padding
54	@SIZE=`wc -c $(CFE_DIR)/$(CFE_IMAGE) | awk '{ print $$1 }'` ; \
55	CFE_PART_SIZE=`printf "%d" $(CFE_SIZE)` ; \
56	PAD=`expr $$CFE_PART_SIZE - $$SIZE` ; \
57	dd if=/dev/zero count=1 bs=$$PAD 2> /dev/null | \
58	tr \\000 \\377 >> $(PACKED_DIR)/$(PACKED_IMAGE)
59
60# Copy Kernel
61	@cat $(KERNEL_DIR)/$(KERNEL_IMAGE) >> $(PACKED_DIR)/$(PACKED_IMAGE)
62
63# Finish Kernel Padding
64	@SIZE=`wc -c $(KERNEL_DIR)/$(KERNEL_IMAGE) | awk '{ print $$1 }'` ; \
65	KERNEL_PART_SIZE=`printf "%d" $(KERNEL_SIZE)` ; \
66	PAD=`expr $$KERNEL_PART_SIZE - $$SIZE` ; \
67	dd if=/dev/zero count=1 bs=$$PAD 2> /dev/null | \
68	tr \\000 \\377 >> $(PACKED_DIR)/$(PACKED_IMAGE)
69
70# Packed Image Size
71	@echo -e "\n-Packed Image Size"
72	@wc -c $(PACKED_DIR)/$(PACKED_IMAGE)
73	$(TOOL_DIR)/$(TOOL_NAME) -i $(PACKED_DIR)/$(PACKED_IMAGE) -b 8 -m 14
74	@mv $(PACKED_DIR)/.out $(PACKED_DIR)/single_image.out
75	@mv $(PACKED_DIR)/.inj $(PACKED_DIR)/single_image.inj
76
77clean:
78	rm -f $(PACKED_DIR)/$(PACKED_IMAGE)
79	rm -f $(PACKED_DIR)/*.out
80	rm -f $(PACKED_DIR)/*.inj
81	@rm -f $(PACKED_DIR)/.out
82	@rm -f $(PACKED_DIR)/.inj
83
84check_img:
85	@if [ ! -f $(CFE_DIR)/$(CFE_IMAGE) ]; then \
86	echo "" ; \
87	echo "Please copy \"$(CFE_IMAGE)\" to current directory"; \
88	echo "" ; \
89	exit 1; \
90	fi 
91
92	@if [ ! -f $(KERNEL_DIR)/$(KERNEL_IMAGE) ]; then \
93	echo "" ; \
94	echo "Please copy \"$(KERNEL_IMAGE)\" to current directory"; \
95	echo "" ; \
96	exit 1; \
97	fi
98