@echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h
@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 universal samsung s5pc1xx
@echo "CONFIG_ONENAND_U_BOOT = y" >> $(obj)include/config.mk
- @echo "ONENAND_BIN = $(obj)onenand_ipl/onenand-ipl-8k.bin" >> $(obj)include/config.mk
+ @echo "ONENAND_BIN = $(obj)onenand_ipl/onenand-ipl-16k.bin" >> $(obj)include/config.mk
smdkc100_config: unconfig
@echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h
# Now it uses the S5PC100 as default
# If you use the S5PC110, the load address is relocated at start.S
# XXX Never set it S5PC110 it don't relocate it
-TEXT_BASE = 0xD0034000
-TEXT_BASE2K = 0xD0034800
-TEXT_BASE4K = 0xD0035000
-TEXT_BASE8K = 0xD0036000
+TEXT_BASE = 0xD0034000
+TEXT_BASE2K = 0xD0034800
+TEXT_BASE4K = 0xD0035000
+TEXT_BASE16K = 0xD0038000
LDSCRIPT= $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/u-boot-onenand.lds
LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
onenandobj := $(OBJTREE)/onenand_ipl/
-ALL = $(onenandobj)onenand-ipl $(onenandobj)onenand-ipl.bin $(onenandobj)onenand-ipl-2k.bin $(onenandobj)onenand-ipl-4k.bin $(onenandobj)onenand-ipl-8k.bin
+ALL = $(onenandobj)onenand-ipl $(onenandobj)onenand-ipl.bin $(onenandobj)onenand-ipl-2k.bin $(onenandobj)onenand-ipl-4k.bin $(onenandobj)onenand-ipl-16k.bin
all: $(obj).depend $(ALL)
$(onenandobj)onenand-ipl-4k.bin: $(onenandobj)onenand-ipl
$(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE4K) -O binary $< $@
-$(onenandobj)onenand-ipl-8k.bin: $(onenandobj)onenand-ipl checksum
- $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE8K) -O binary $< $@
- $(onenandobj)/board/$(BOARDDIR)/checksum $(onenandobj)onenand-ipl-8k.bin
+$(onenandobj)onenand-ipl-16k.bin: $(onenandobj)onenand-ipl checksum
+ $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE16K) -O binary $< $@
+ $(onenandobj)/board/$(BOARDDIR)/checksum $(onenandobj)onenand-ipl-16k.bin
$(onenandobj)onenand-ipl.bin: $(onenandobj)onenand-ipl
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
int page = CONFIG_ONENAND_START_PAGE, offset = 0;
int pagesize = 0, erase_shift = 0;
int erasesize = 0, nblocks = 0;
- int mlc = 0;
+ int big = 0;
if ((readl(0xE0000000) & 0x00FFF000) == 0x00110000) {
onenand_read_page = generic_onenand_read_page;
if (onenand_readw(ONENAND_REG_TECHNOLOGY))
- mlc = 1;
+ big = 1;
+ big = 1;
} else {
onenand_read_page = s5pc100_onenand_read_page;
if (onenand_ahb_readw(ONENAND_REG_TECHNOLOGY))
- mlc = 1;
+ big = 1;
+ page = 8;
}
- if (mlc) {
- pagesize = 4096; /* MLC OneNAND has 4KiB pagesize */
+ if (big) {
+ pagesize = 4096; /* OneNAND has 4KiB pagesize */
erase_shift = 18;
} else {
pagesize = 2048;