@@ -57,4 +57,14 @@ config BOARD_SPECIFIC_OPTIONS
imply CMD_GPIO
imply LED
imply LED_GPIO
+ imply SPI
+ imply DESIGNWARE_SPI
+ imply SPI_FLASH_WINBOND
+ imply DM_MTD
+ imply SPI_FLASH_MTD
+ imply CMD_MTD
+ imply ENV_IS_IN_SPI_FLASH
+ imply MMC
+ imply MMC_BROKEN_CD
+ imply MMC_SPI
endif
@@ -1,6 +1,14 @@
CONFIG_RISCV=y
+CONFIG_ENV_SIZE=0x2000
+CONFIG_ENV_SECT_SIZE=0x1000
+CONFIG_ENV_OFFSET=0x7C000
+CONFIG_ENV_OFFSET_REDUND=0x7E000
CONFIG_TARGET_SIPEED_MAIX=y
CONFIG_ARCH_RV64I=y
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="sf probe;mtd read kernel 80000000;go 80000000"
+CONFIG_MTDIDS_DEFAULT="nor0=spi3.0"
+CONFIG_MTDPARTS_DEFAULT="spi3.0:496k(u-boot),16k(env),5632k(kernel),10240k(data)"
CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
# CONFIG_NET is not set
# CONFIG_INPUT is not set
@@ -46,42 +46,14 @@ Boot output should look like the following:
U-Boot 2020.04-rc2-00087-g2221cc09c1-dirty (Feb 28 2020 - 13:53:09 -0500)
DRAM: 8 MiB
+ MMC: spi at 53000000:slot at 0: 0
In: serial at 38000000
Out: serial at 38000000
Err: serial at 38000000
- =>
-
-Loading Images
-^^^^^^^^^^^^^^
-
-To load a kernel, transfer it over serial.
-
-.. code-block:: none
-
- => loady 80000000 1500000
- ## Switch baudrate to 1500000 bps and press ENTER ...
-
- *** baud: 1500000
-
- *** baud: 1500000 ***
- ## Ready for binary (ymodem) download to 0x80000000 at 1500000 bps...
- C
- *** file: loader.bin
- $ sz -vv loader.bin
- Sending: loader.bin
- Bytes Sent:2478208 BPS:72937
- Sending:
- Ymodem sectors/kbytes sent: 0/ 0k
- Transfer complete
-
- *** exit status: 0 ***
- ## Total Size = 0x0025d052 = 2478162 Bytes
- ## Switch baudrate to 115200 bps and press ESC ...
-
- *** baud: 115200
-
- *** baud: 115200 ***
- =>
+ Hit any key to stop autoboot: 0
+ SF: Detected w25q128fw with page size 256 Bytes, erase size 4 KiB, total 16 MiB
+ Reading 5242880 byte(s) at offset 0x00000000
+ ## Starting application at 0x80000000 ...
Running Programs
^^^^^^^^^^^^^^^^
@@ -163,6 +135,62 @@ To run legacy images, use the ``bootm`` command:
argv[0] = "<NULL>"
Hit any key to exit ...
+Flashing Images
+---------------
+
+To flash a kernel, transfer it over serial, then write it to the kernel
+partition.
+
+.. code-block:: none
+
+ => loady 80000000 1500000
+ ## Switch baudrate to 1500000 bps and press ENTER ...
+
+ *** baud: 1500000
+
+ *** baud: 1500000 ***
+ ## Ready for binary (ymodem) download to 0x80000000 at 1500000 bps...
+ C
+ *** file: loader.bin
+ $ sz -vv loader.bin
+ Sending: loader.bin
+ Bytes Sent:2478208 BPS:72937
+ Sending:
+ Ymodem sectors/kbytes sent: 0/ 0k
+ Transfer complete
+
+ *** exit status: 0 ***
+ ## Total Size = 0x0025d052 = 2478162 Bytes
+ ## Switch baudrate to 115200 bps and press ESC ...
+
+ *** baud: 115200
+
+ *** baud: 115200 ***
+ => sf probe
+ SF: Detected w25q128fw with page size 256 Bytes, erase size 4 KiB, total 16 MiB
+ => mtd write kernel 80000000 0 25d052
+ Writing 2478162 byte(s) at offset 0x00000000
+
+Partition Scheme
+^^^^^^^^^^^^^^^^
+
+There is no partition scheme specified by the manufacturer. The only requirement
+imposed by the firmware is that offset 0 will be loaded and ran. The default
+partition scheme is
+
+========= ======== ======
+Partition Offset Size
+========= ======== ======
+u-boot 0x000000 496k
+env 0x07C000 16k
+kernel 0x080000 5M
+data 0x580000 10.5M
+========= ======== ======
+
+**NB:** kflash adds a 5-byte header to payloads (and a 32-byte trailer) to all
+payloads it flashes. If you use kflash to flash your payload, you will need to
+account for this header when specifying what offset in spi flash to load from.
+
Pin Assignment
--------------
This patch enables configs necessary for usign SPI. It also adds some documentation. Signed-off-by: Sean Anderson <seanga2 at gmail.com> --- board/sipeed/maix/Kconfig | 10 ++++ configs/sipeed_maix_bitm_defconfig | 8 +++ doc/board/sipeed/maix.rst | 94 +++++++++++++++++++----------- 3 files changed, 79 insertions(+), 33 deletions(-)