if S5J_SFLASH
menu "Serial FLASH region"
-config S5J_FLASH_BASE
- hex "Nor Flash start address (physical)"
- default 0x04000000
- help
- Samsung S5J SoC uses serial nor flash memory, this needs base address of memory map
-
-config S5J_FLASH_MIRROR_BASE
- hex "Nor Flash mirrored address (physical)"
- default 0x60000000
- help
- Provides mirror address mapped to Nor flash with same space
-
-config S5J_FLASH_SIZE
- hex "Nor Flash size (Byte)"
- default 0x800000
- help
- Samsung IoT uses serial nor flash memory, set to default size
-
-config S5J_FLASH_SECTOR_SIZE
- hex "Flash sector size (Byte)"
- default 4096
-
-config S5J_BOOTLOADER_REGION_SIZE
- hex "Boot loader region size (Byte)"
- default 0x400000
- help
- When smartfs initialize flash, it will be skipped. This features is used to
- prevent for erasing or accessing to Non smartfs region.
config NVRAM_WIFI_START
hex "WiFi shared memory size"
mpu_priv_noncache(0x02100000, 0x80000);
/* Region 3, for FLASH area, default to set WBWA */
- mpu_user_intsram_wb(CONFIG_S5J_FLASH_BASE, CONFIG_S5J_FLASH_SIZE);
+ mpu_user_intsram_wb(S5J_FLASH_PADDR, S5J_FLASH_SIZE);
/* region 4, for Sflash Mirror area to be read only */
- mpu_priv_flash(CONFIG_S5J_FLASH_MIRROR_BASE, CONFIG_S5J_FLASH_SIZE);
+ mpu_priv_flash(S5J_FLASH_MIRROR_PADDR, S5J_FLASH_MIRROR_SIZE);
/* Region 5, for SFR area read/write, strongly-ordered */
- mpu_priv_stronglyordered(0x80000000, 0x10000000);
+ mpu_priv_stronglyordered(S5J_PERIPHERAL_PADDR, S5J_PERIPHERAL_SIZE);
/*
* Region 6, for vector table,
- * s5j uses high vector in 0xFFFF_0000++4KB, read only
+ * set the entire high vector region as read-only.
*/
- mpu_priv_flash(0xFFFF0000, 0x1000);
+ mpu_priv_flash(S5J_IRAM_MIRROR_PADDR, S5J_IRAM_MIRROR_SIZE);
mpu_control(true);
#endif
#ifdef CONFIG_MTD_PROGMEM
size_t up_progmem_getaddress(size_t page)
{
- return CONFIG_S5J_FLASH_BASE + up_progmem_pagesize(page) * page;
+ return S5J_FLASH_PADDR + up_progmem_pagesize(page) * page;
}
ssize_t up_progmem_getpage(size_t addr)
{
- return (addr - CONFIG_S5J_FLASH_BASE) / up_progmem_pagesize(0);
+ return (addr - S5J_FLASH_PADDR) / up_progmem_pagesize(0);
}
ssize_t up_progmem_erasepage(size_t page)
s5j_sflash_disable_wp();
/* Set sector address and then send erase command */
- putreg32(addr - CONFIG_S5J_FLASH_BASE, rERASE_ADDRESS);
+ putreg32(addr - S5J_FLASH_PADDR, rERASE_ADDRESS);
putreg8(0xff, rSE);
/* Wait for the completion */