Eventually I found out. As stated in the documentation, the NAND flash is accessed through a buffer of 64KiB, and those 64KiB is the memory space in the IFC range. Therefore the second NAND can be located at CONFIG_SYS_NAND_BASE + 0x10000.
The board configuration:
#define CONFIG_SYS_NAND_BASE_LIST { CONFIG_SYS_NAND_BASE, \
(CONFIG_SYS_NAND_BASE + 0x10000) }
#define CONFIG_SYS_MAX_NAND_DEVICE 2
#define CONFIG_SYS_CSPR1_EXT CONFIG_SYS_NAND_CSPR_EXT
#define CONFIG_SYS_CSPR1 CONFIG_SYS_NAND_CSPR + 0x10000
#define CONFIG_SYS_AMASK1 CONFIG_SYS_NAND_AMASK
#define CONFIG_SYS_CSOR1 CONFIG_SYS_NAND_CSOR
#define CONFIG_SYS_CS1_FTIM0 CONFIG_SYS_NAND_FTIM0
#define CONFIG_SYS_CS1_FTIM1 CONFIG_SYS_NAND_FTIM1
#define CONFIG_SYS_CS1_FTIM2 CONFIG_SYS_NAND_FTIM2
#define CONFIG_SYS_CS1_FTIM3 CONFIG_SYS_NAND_FTIM3
#endif
Even if U-Boot seems not to use the device tree for IFC NAND, we needed to update it for Linux:
&ifc {
#address-cells = <2>;
#size-cells = <1>;
ranges = <0x0 0x0 0x0 0x7e800000 0x00010000
0x1 0x0 0x0 0x7e810000 0x00010000>;
status = "okay";
nand@0,0 {
compatible = "fsl,ifc-nand";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x0 0x0 0x10000>;
};
nand@1,0 {
compatible = "fsl,ifc-nand";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x1 0x0 0x10000>;
};
};