1###############################################################################
2# Project: change version of checking firmware in apploader.img
3# File:
4#
5# Copyright 2006 Nintendo.  All rights reserved.
6#
7# These coded instructions, statements, and computer programs contain
8# proprietary information of Nintendo of America Inc. and/or Nintendo
9# Company Ltd., and are protected by Federal copyright law.  They may
10# not be disclosed to third parties or copied or duplicated in any form,
11# in whole or in part, without the prior written consent of Nintendo.
12#
13###############################################################################
14
15#
16#  Apploader creation
17#
18#  Type "make FIRMWARE_VERSION=<version>" to create apploader<version>.img under $REVOLUTION_SDK_ROOT/RVL/boot/, based on the image specified by APPLOADER_TEMPLATE.
19#
20#
21#
22#  Binary pattern creation for Apploader.img sections that write the FIRMWARE version. You must revise it each time code is changed significantly.
23#
24#  Search using 255 as a wildcard (the -w option to bmerge).
25#
26#   lis r0, 0x00ww      0x3c0000ww
27#   lis r3, 0x8000      0x3c608000
28#   ori r0, r0, 0xwwww  0x6000wwww
29#   stw r0, 0x3188(r3)  0x90033188
30#
31
32include $(shell cygpath -am $(REVOLUTION_SDK_ROOT))/build/buildtools/commondefs
33
34default: apploader
35
36#---------------------------------------------------------------------------
37# Please modify
38#---------------------------------------------------------------------------
39FIRMWARE_VERSION    ?= 33.4.16
40APPLOADER_TEMPLATE  ?= $(ROOT)/RVL/boot/apploader.img
41
42#---------------------------------------------------------------------------
43# Don't modify
44#---------------------------------------------------------------------------
45
46ifneq	($(FIRMWARE_VERSION),)
47FIRMWARE_TITLEVERSION_X		:= $(subst ., ,$(FIRMWARE_VERSION))
48FIRMWARE_TITLEVERSION_MAJOR	:= $(word 1,$(FIRMWARE_TITLEVERSION_X))
49FIRMWARE_TITLEVERSION_MINOR	:= $(word 2,$(FIRMWARE_TITLEVERSION_X))
50FIRMWARE_TITLEVERSION_MICRO	:= $(word 3,$(FIRMWARE_TITLEVERSION_X))
51FIRMWARE_TITLEID		:= $(FIRMWARE_TITLEVERSION_MAJOR)
52FIRMWARE_TITLEID_HEX		:= $(shell printf "%02x" $(FIRMWARE_TITLEID))
53FIRMWARE_TITLEVERSION		:= $(FIRMWARE_TITLEVERSION_MINOR).$(FIRMWARE_TITLEVERSION_MICRO)
54ifneq   ($(FIRMWARE_TITLEVERSION),X.X)
55FIRMWARE_TITLEVERSION_HEX	:= $(shell printf "%02x%02x" $(FIRMWARE_TITLEVERSION_MINOR) $(FIRMWARE_TITLEVERSION_MICRO))
56endif
57FIRMWARE_TITLEID_DEFAULT	:= X
58FIRMWARE_VERSION_UB			:= $(subst .,_,$(FIRMWARE_VERSION))
59
60FIRMWARE_SPECNAME	 = $(RVL_SPEC).$(FIRMWARE_VERSION).$(FIRMWARE_SUFFIX)
61FIRMWARE_BASENAME	 = firmware.$(FIRMWARE_SPECNAME)
62FIRMWARE_DEBUGFLAG	 = $(if $(DEBUG),D)
63FIRMWARE_FILE		 = firmware.$(FIRMWARE_SPECNAME)$(FIRMWARE_DEBUGFLAG)
64FIRMWARE_FILE_NOSSL	 = firmware.$(FIRMWARE_SPECNAME)$(FIRMWARE_DEBUGFLAG).nossl
65FIRMWARE_FILE_SHORT	 = fw.$(FIRMWARE_SPECNAME)$(FIRMWARE_DEBUGFLAG)
66FIRMWARE_APPLOADER	 = apploader.$(FIRMWARE_VERSION).img
67FIRMWARE_APPLOADER_DDF	 = apploader.$(FIRMWARE_TITLEVERSION_MAJOR).ddf
68endif
69
70AROUND_APPLOADER_FILES	 = $(ROOT)/RVL/boot/$(FIRMWARE_APPLOADER)
71
72apploader:
73	@$(ROOT)/X86/bin/bmerge.exe -P 0 -L 16 -w :ff \
74		:3c0000ff3c6080006000ffff90033188 \
75		:3c0000$(FIRMWARE_TITLEID_HEX)3c6080006000$(FIRMWARE_TITLEVERSION_HEX)90033188 \
76		$(APPLOADER_TEMPLATE) $(AROUND_APPLOADER_FILES)
77
78