В 2 кБ мега168 поместился только изрядно кастрированный загрузчик с SD карточки - правильная инициализация SD/MMC, чтение сектора, проверка на наличие в указанном основной программой секторе правильного загужаемого (или в секторе с абсолютным адресом на карточке), ну и , собственно, чтение группы секторов и запись во флэш с проверкой.