Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 1 | .. SPDX-License-Identifier: GPL-2.0+ |
| 2 | |
Leo Yu-Chi Liang | 249ce73 | 2023-02-14 20:42:49 +0800 | [diff] [blame^] | 3 | AE350 |
| 4 | ====== |
Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 5 | |
Leo Yu-Chi Liang | 249ce73 | 2023-02-14 20:42:49 +0800 | [diff] [blame^] | 6 | AE350 is the mainline SoC produced by Andes Technology using AndesV5 CPU core |
| 7 | based on RISC-V architecture. |
Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 8 | |
| 9 | AE350 has integrated both AHB and APB bus and many periphals for application |
| 10 | and product development. |
| 11 | |
Leo Yu-Chi Liang | 249ce73 | 2023-02-14 20:42:49 +0800 | [diff] [blame^] | 12 | AndesV5 is Andes CPU IP family that adopts RISC-V architecture. |
Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 13 | |
Leo Yu-Chi Liang | 249ce73 | 2023-02-14 20:42:49 +0800 | [diff] [blame^] | 14 | AndesV5 family includes 25, 27, 45 series. |
Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 15 | |
Leo Yu-Chi Liang | 249ce73 | 2023-02-14 20:42:49 +0800 | [diff] [blame^] | 16 | 25-Series Features |
| 17 | ------------------ |
Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 18 | |
| 19 | CPU Core |
| 20 | - 5-stage in-order execution pipeline |
| 21 | - Hardware Multiplier |
| 22 | - radix-2/radix-4/radix-16/radix-256/fast |
| 23 | - Hardware Divider |
| 24 | - Optional branch prediction |
| 25 | - Machine mode and optional user mode |
| 26 | - Optional performance monitoring |
| 27 | |
| 28 | ISA |
| 29 | - RV64I base integer instructions |
| 30 | - RVC for 16-bit compressed instructions |
| 31 | - RVM for multiplication and division instructions |
| 32 | |
| 33 | Memory subsystem |
| 34 | - I & D local memory |
| 35 | - Size: 4KB to 16MB |
| 36 | - Memory subsyetem soft-error protection |
| 37 | - Protection scheme: parity-checking or error-checking-and-correction (ECC) |
| 38 | - Automatic hardware error correction |
| 39 | |
| 40 | Bus |
| 41 | - Interface Protocol |
| 42 | - Synchronous AHB (32-bit/64-bit data-width), or |
| 43 | - Synchronous AXI4 (64-bit data-width) |
| 44 | |
| 45 | Power management |
| 46 | - Wait for interrupt (WFI) mode |
| 47 | |
| 48 | Debug |
| 49 | - Configurable number of breakpoints: 2/4/8 |
| 50 | - External Debug Module |
| 51 | - AHB slave port |
| 52 | - External JTAG debug transport module |
| 53 | |
| 54 | Platform Level Interrupt Controller (PLIC) |
| 55 | - AHB slave port |
| 56 | - Configurable number of interrupts: 1-1023 |
| 57 | - Configurable number of interrupt priorities: 3/7/15/63/127/255 |
| 58 | - Configurable number of targets: 1-16 |
| 59 | - Preempted interrupt priority stack |
| 60 | |
Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 61 | Build and boot steps |
| 62 | -------------------- |
| 63 | |
| 64 | Build: |
| 65 | |
| 66 | 1. Prepare the toolchains and make sure the $PATH to toolchains is correct. |
| 67 | 2. Use `make ae350_rv[32|64]_defconfig` in u-boot root to build the image for |
| 68 | 32 or 64 bit. |
| 69 | |
| 70 | Verification: |
| 71 | |
| 72 | 1. startup |
| 73 | 2. relocation |
| 74 | 3. timer driver |
| 75 | 4. uart driver |
| 76 | 5. mac driver |
| 77 | 6. mmc driver |
| 78 | 7. spi driver |
| 79 | |
| 80 | Steps |
| 81 | ----- |
| 82 | |
Bin Meng | 6993944 | 2021-06-05 07:00:30 +0800 | [diff] [blame] | 83 | 1. Ping a server by mac driver |
| 84 | 2. Scan sd card and copy u-boot image which is booted from flash to ram by sd driver |
| 85 | 3. Burn this u-boot image to spi rom by spi driver |
| 86 | 4. Re-boot u-boot from spi flash with power off and power on |
Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 87 | |
| 88 | Messages of U-Boot boot on AE350 board |
| 89 | -------------------------------------- |
| 90 | |
| 91 | .. code-block:: none |
| 92 | |
| 93 | U-Boot 2018.01-rc2-00033-g824f89a (Dec 21 2017 - 16:51:26 +0800) |
| 94 | |
| 95 | DRAM: 1 GiB |
| 96 | MMC: mmc@f0e00000: 0 |
| 97 | SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB |
| 98 | In: serial@f0300000 |
| 99 | Out: serial@f0300000 |
| 100 | Err: serial@f0300000 |
| 101 | Net: |
| 102 | Warning: mac@e0100000 (eth0) using random MAC address - be:dd:d7:e4:e8:10 |
| 103 | eth0: mac@e0100000 |
| 104 | |
| 105 | RISC-V # version |
| 106 | U-Boot 2018.01-rc2-00033-gb265b91-dirty (Dec 22 2017 - 13:54:21 +0800) |
| 107 | |
| 108 | riscv32-unknown-linux-gnu-gcc (GCC) 7.2.0 |
| 109 | GNU ld (GNU Binutils) 2.29 |
| 110 | |
| 111 | RISC-V # setenv ipaddr 10.0.4.200 ; |
| 112 | RISC-V # setenv serverip 10.0.4.97 ; |
| 113 | RISC-V # ping 10.0.4.97 ; |
| 114 | Using mac@e0100000 device |
| 115 | host 10.0.4.97 is alive |
| 116 | |
| 117 | RISC-V # mmc rescan |
| 118 | RISC-V # fatls mmc 0:1 |
| 119 | 318907 u-boot-ae350-64.bin |
| 120 | 1252 hello_world_ae350_32.bin |
| 121 | 328787 u-boot-ae350-32.bin |
| 122 | |
| 123 | 3 file(s), 0 dir(s) |
| 124 | |
| 125 | RISC-V # sf probe 0:0 50000000 0 |
| 126 | SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB |
| 127 | |
| 128 | RISC-V # sf test 0x100000 0x1000 |
| 129 | SPI flash test: |
| 130 | 0 erase: 36 ticks, 111 KiB/s 0.888 Mbps |
| 131 | 1 check: 29 ticks, 137 KiB/s 1.096 Mbps |
| 132 | 2 write: 40 ticks, 100 KiB/s 0.800 Mbps |
| 133 | 3 read: 20 ticks, 200 KiB/s 1.600 Mbps |
| 134 | Test passed |
| 135 | 0 erase: 36 ticks, 111 KiB/s 0.888 Mbps |
| 136 | 1 check: 29 ticks, 137 KiB/s 1.096 Mbps |
| 137 | 2 write: 40 ticks, 100 KiB/s 0.800 Mbps |
| 138 | 3 read: 20 ticks, 200 KiB/s 1.600 Mbps |
| 139 | |
| 140 | RISC-V # fatload mmc 0:1 0x600000 u-boot-ae350-32.bin |
| 141 | reading u-boot-ae350-32.bin |
| 142 | 328787 bytes read in 324 ms (990.2 KiB/s) |
| 143 | |
| 144 | RISC-V # sf erase 0x0 0x51000 |
| 145 | SF: 331776 bytes @ 0x0 Erased: OK |
| 146 | |
| 147 | RISC-V # sf write 0x600000 0x0 0x50453 |
| 148 | device 0 offset 0x0, size 0x50453 |
| 149 | SF: 328787 bytes @ 0x0 Written: OK |
| 150 | |
| 151 | RISC-V # crc32 0x600000 0x50453 |
| 152 | crc32 for 00600000 ... 00650452 ==> 692dc44a |
| 153 | |
| 154 | RISC-V # crc32 0x80000000 0x50453 |
| 155 | crc32 for 80000000 ... 80050452 ==> 692dc44a |
| 156 | RISC-V # |
| 157 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 158 | *** power-off and power-on, this U-Boot is booted from spi flash *** |
Bin Meng | 8658998 | 2019-07-18 00:34:18 -0700 | [diff] [blame] | 159 | |
| 160 | U-Boot 2018.01-rc2-00032-gf67dd47-dirty (Dec 21 2017 - 13:56:03 +0800) |
| 161 | |
| 162 | DRAM: 1 GiB |
| 163 | MMC: mmc@f0e00000: 0 |
| 164 | SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB |
| 165 | In: serial@f0300000 |
| 166 | Out: serial@f0300000 |
| 167 | Err: serial@f0300000 |
| 168 | Net: |
| 169 | Warning: mac@e0100000 (eth0) using random MAC address - ee:4c:58:29:32:f5 |
| 170 | eth0: mac@e0100000 |
| 171 | RISC-V # |
| 172 | |
| 173 | |
| 174 | Boot bbl and riscv-linux via U-Boot on QEMU |
| 175 | ------------------------------------------- |
| 176 | |
| 177 | 1. Build riscv-linux |
| 178 | 2. Build bbl and riscv-linux with --with-payload |
| 179 | 3. Prepare ae350.dtb |
| 180 | 4. Creating OS-kernel images |
| 181 | |
| 182 | .. code-block:: none |
| 183 | |
| 184 | ./mkimage -A riscv -O linux -T kernel -C none -a 0x0000 -e 0x0000 -d bbl.bin bootmImage-bbl.bin |
| 185 | Image Name: |
| 186 | Created: Tue Mar 13 10:06:42 2018 |
| 187 | Image Type: RISC-V Linux Kernel Image (uncompressed) |
| 188 | Data Size: 17901204 Bytes = 17481.64 KiB = 17.07 MiB |
| 189 | Load Address: 00000000 |
| 190 | Entry Point: 00000000 |
| 191 | |
| 192 | 5. Copy bootmImage-bbl.bin and ae350.dtb to qemu sd card image |
| 193 | 6. Message of booting riscv-linux from bbl via u-boot on qemu |
| 194 | |
| 195 | .. code-block:: none |
| 196 | |
| 197 | U-Boot 2018.03-rc4-00031-g2631273 (Mar 13 2018 - 15:02:55 +0800) |
| 198 | |
| 199 | DRAM: 1 GiB |
| 200 | main-loop: WARNING: I/O thread spun for 1000 iterations |
| 201 | MMC: mmc@f0e00000: 0 |
| 202 | Loading Environment from SPI Flash... *** Warning - spi_flash_probe_bus_cs() failed, using default environment |
| 203 | |
| 204 | Failed (-22) |
| 205 | In: serial@f0300000 |
| 206 | Out: serial@f0300000 |
| 207 | Err: serial@f0300000 |
| 208 | Net: |
| 209 | Warning: mac@e0100000 (eth0) using random MAC address - 02:00:00:00:00:00 |
| 210 | eth0: mac@e0100000 |
| 211 | RISC-V # mmc rescan |
| 212 | RISC-V # mmc part |
| 213 | |
| 214 | Partition Map for MMC device 0 -- Partition Type: DOS |
| 215 | |
| 216 | Part Start Sector Num Sectors UUID Type |
| 217 | RISC-V # fatls mmc 0:0 |
| 218 | 17901268 bootmImage-bbl.bin |
| 219 | 1954 ae2xx.dtb |
| 220 | |
| 221 | 2 file(s), 0 dir(s) |
| 222 | |
| 223 | RISC-V # fatload mmc 0:0 0x00600000 bootmImage-bbl.bin |
| 224 | 17901268 bytes read in 4642 ms (3.7 MiB/s) |
| 225 | RISC-V # fatload mmc 0:0 0x2000000 ae350.dtb |
| 226 | 1954 bytes read in 1 ms (1.9 MiB/s) |
| 227 | RISC-V # setenv bootm_size 0x2000000 |
| 228 | RISC-V # setenv fdt_high 0x1f00000 |
| 229 | RISC-V # bootm 0x00600000 - 0x2000000 |
| 230 | ## Booting kernel from Legacy Image at 00600000 ... |
| 231 | Image Name: |
| 232 | Image Type: RISC-V Linux Kernel Image (uncompressed) |
| 233 | Data Size: 17901204 Bytes = 17.1 MiB |
| 234 | Load Address: 00000000 |
| 235 | Entry Point: 00000000 |
| 236 | Verifying Checksum ... OK |
| 237 | ## Flattened Device Tree blob at 02000000 |
| 238 | Booting using the fdt blob at 0x2000000 |
| 239 | Loading Kernel Image ... OK |
| 240 | Loading Device Tree to 0000000001efc000, end 0000000001eff7a1 ... OK |
| 241 | [ 0.000000] OF: fdt: Ignoring memory range 0x0 - 0x200000 |
| 242 | [ 0.000000] Linux version 4.14.0-00046-gf3e439f-dirty (rick@atcsqa06) (gcc version 7.1.1 20170509 (GCC)) #1 Tue Jan 9 16:34:25 CST 2018 |
| 243 | [ 0.000000] bootconsole [early0] enabled |
| 244 | [ 0.000000] Initial ramdisk at: 0xffffffe000016a98 (12267008 bytes) |
| 245 | [ 0.000000] Zone ranges: |
| 246 | [ 0.000000] DMA [mem 0x0000000000200000-0x000000007fffffff] |
| 247 | [ 0.000000] Normal empty |
| 248 | [ 0.000000] Movable zone start for each node |
| 249 | [ 0.000000] Early memory node ranges |
| 250 | [ 0.000000] node 0: [mem 0x0000000000200000-0x000000007fffffff] |
| 251 | [ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x000000007fffffff] |
| 252 | [ 0.000000] elf_hwcap is 0x112d |
| 253 | [ 0.000000] random: fast init done |
| 254 | [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 516615 |
| 255 | [ 0.000000] Kernel command line: console=ttyS0,38400n8 earlyprintk=uart8250-32bit,0xf0300000 debug loglevel=7 |
| 256 | [ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes) |
| 257 | [ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes) |
| 258 | [ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes) |
| 259 | [ 0.000000] Sorting __ex_table... |
| 260 | [ 0.000000] Memory: 2047832K/2095104K available (1856K kernel code, 204K rwdata, 532K rodata, 12076K init, 756K bss, 47272K reserved, 0K cma-reserved) |
| 261 | [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 |
| 262 | [ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0 |
| 263 | [ 0.000000] riscv,cpu_intc,0: 64 local interrupts mapped |
| 264 | [ 0.000000] riscv,plic0,e4000000: mapped 31 interrupts to 1/2 handlers |
| 265 | [ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns |
| 266 | [ 0.000000] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=40000) |
| 267 | [ 0.000000] pid_max: default: 32768 minimum: 301 |
| 268 | [ 0.004000] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes) |
| 269 | [ 0.004000] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes) |
| 270 | [ 0.056000] devtmpfs: initialized |
| 271 | [ 0.060000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns |
| 272 | [ 0.064000] futex hash table entries: 256 (order: 0, 6144 bytes) |
| 273 | [ 0.068000] NET: Registered protocol family 16 |
| 274 | [ 0.080000] vgaarb: loaded |
| 275 | [ 0.084000] clocksource: Switched to clocksource riscv_clocksource |
| 276 | [ 0.088000] NET: Registered protocol family 2 |
| 277 | [ 0.092000] TCP established hash table entries: 16384 (order: 5, 131072 bytes) |
| 278 | [ 0.096000] TCP bind hash table entries: 16384 (order: 5, 131072 bytes) |
| 279 | [ 0.096000] TCP: Hash tables configured (established 16384 bind 16384) |
| 280 | [ 0.100000] UDP hash table entries: 1024 (order: 3, 32768 bytes) |
| 281 | [ 0.100000] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes) |
| 282 | [ 0.104000] NET: Registered protocol family 1 |
| 283 | [ 0.616000] Unpacking initramfs... |
| 284 | [ 1.220000] workingset: timestamp_bits=62 max_order=19 bucket_order=0 |
| 285 | [ 1.244000] io scheduler noop registered |
| 286 | [ 1.244000] io scheduler cfq registered (default) |
| 287 | [ 1.244000] io scheduler mq-deadline registered |
| 288 | [ 1.248000] io scheduler kyber registered |
| 289 | [ 1.360000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled |
| 290 | [ 1.368000] console [ttyS0] disabled |
| 291 | [ 1.372000] f0300000.serial: ttyS0 at MMIO 0xf0300020 (irq = 10, base_baud = 1228800) is a 16550A |
| 292 | [ 1.392000] console [ttyS0] enabled |
| 293 | [ 1.392000] ftmac100: Loading version 0.2 ... |
| 294 | [ 1.396000] ftmac100 e0100000.mac eth0: irq 8, mapped at ffffffd002005000 |
| 295 | [ 1.400000] ftmac100 e0100000.mac eth0: generated random MAC address 6e:ac:c3:92:36:c0 |
| 296 | [ 1.404000] IR NEC protocol handler initialized |
| 297 | [ 1.404000] IR RC5(x/sz) protocol handler initialized |
| 298 | [ 1.404000] IR RC6 protocol handler initialized |
| 299 | [ 1.404000] IR JVC protocol handler initialized |
| 300 | [ 1.408000] IR Sony protocol handler initialized |
| 301 | [ 1.408000] IR SANYO protocol handler initialized |
| 302 | [ 1.408000] IR Sharp protocol handler initialized |
| 303 | [ 1.408000] IR MCE Keyboard/mouse protocol handler initialized |
| 304 | [ 1.412000] IR XMP protocol handler initialized |
| 305 | [ 1.456000] ftsdc010 f0e00000.mmc: mmc0 - using hw SDIO IRQ |
| 306 | [ 1.464000] bootconsole [early0] uses init memory and must be disabled even before the real one is ready |
| 307 | [ 1.464000] bootconsole [early0] disabled |
| 308 | [ 1.508000] Freeing unused kernel memory: 12076K |
| 309 | [ 1.512000] This architecture does not have kernel memory protection. |
| 310 | [ 1.520000] mmc0: new SD card at address 4567 |
| 311 | [ 1.524000] mmcblk0: mmc0:4567 QEMU! 20.0 MiB |
| 312 | [ 1.844000] mmcblk0: |
| 313 | Wed Dec 1 10:00:00 CST 2010 |
| 314 | / # |
| 315 | |
| 316 | |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 317 | Running U-Boot SPL |
| 318 | ------------------ |
| 319 | The U-Boot SPL will boot in M mode and load the FIT image which include |
| 320 | OpenSBI and U-Boot proper images. After loading progress, it will jump |
| 321 | to OpenSBI first and then U-Boot proper which will run in S mode. |
| 322 | |
| 323 | |
| 324 | How to build U-Boot SPL |
| 325 | ----------------------- |
| 326 | Before building U-Boot SPL, OpenSBI must be build first. OpenSBI can be |
| 327 | cloned and build for AE350 as below: |
| 328 | |
Jagan Teki | 1928ae6 | 2019-12-30 19:59:09 +0530 | [diff] [blame] | 329 | .. code-block:: none |
| 330 | |
| 331 | git clone https://github.com/riscv/opensbi.git |
| 332 | cd opensbi |
| 333 | make PLATFORM=andes/ae350 |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 334 | |
Bin Meng | e82e5b1 | 2021-05-12 23:25:52 +0800 | [diff] [blame] | 335 | Copy OpenSBI FW_DYNAMIC image (build/platform/andes/ae350/firmware/fw_dynamic.bin) |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 336 | into U-Boot root directory |
| 337 | |
| 338 | |
| 339 | How to build U-Boot SPL booting from RAM |
| 340 | ---------------------------------------- |
| 341 | With ae350_rv[32|64]_spl_defconfigs: |
| 342 | |
| 343 | U-Boot SPL will be loaded by gdb or FSBL and runs in RAM in machine mode |
| 344 | and then load FIT image from RAM device on AE350. |
| 345 | |
| 346 | |
| 347 | How to build U-Boot SPL booting from ROM |
| 348 | ---------------------------------------- |
| 349 | With ae350_rv[32|64]_spl_xip_defconfigs: |
| 350 | |
| 351 | U-Boot SPL can be burned into SPI flash and run in flash in machine mode |
| 352 | and then load FIT image from SPI flash or MMC device on AE350. |
| 353 | |
| 354 | |
| 355 | Messages of U-Boot SPL boots Kernel on AE350 board |
| 356 | -------------------------------------------------- |
| 357 | |
| 358 | .. code-block:: none |
| 359 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 360 | U-Boot SPL 2020.01-rc1-00292-g67a3313-dirty (Nov 14 2019 - 11:26:21 +0800) |
| 361 | Trying to boot from RAM |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 362 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 363 | OpenSBI v0.5-1-gdd8ef28 (Nov 14 2019 11:08:39) |
| 364 | ____ _____ ____ _____ |
| 365 | / __ \ / ____| _ \_ _| |
| 366 | | | | |_ __ ___ _ __ | (___ | |_) || | |
| 367 | | | | | '_ \ / _ \ '_ \ \___ \| _ < | | |
| 368 | | |__| | |_) | __/ | | |____) | |_) || |_ |
| 369 | \____/| .__/ \___|_| |_|_____/|____/_____| |
| 370 | | | |
| 371 | |_| |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 372 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 373 | Platform Name : Andes AE350 |
| 374 | Platform HART Features : RV64ACIMSUX |
| 375 | Platform Max HARTs : 4 |
| 376 | Current Hart : 0 |
| 377 | Firmware Base : 0x0 |
| 378 | Firmware Size : 84 KB |
| 379 | Runtime SBI Version : 0.2 |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 380 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 381 | PMP0: 0x0000000000000000-0x000000000001ffff (A) |
| 382 | PMP1: 0x0000000000000000-0x00000001ffffffff (A,R,W,X) |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 383 | |
| 384 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 385 | U-Boot 2020.01-rc1-00292-g67a3313-dirty (Nov 14 2019 - 11:26:21 +0800) |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 386 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 387 | DRAM: 1 GiB |
| 388 | Flash: 64 MiB |
| 389 | MMC: mmc@f0e00000: 0 |
| 390 | Loading Environment from SPI Flash... SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB |
| 391 | OK |
| 392 | In: serial@f0300000 |
| 393 | Out: serial@f0300000 |
| 394 | Err: serial@f0300000 |
| 395 | Net: no alias for ethernet0 |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 396 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 397 | Warning: mac@e0100000 (eth0) using random MAC address - a2:ae:93:7b:cc:8f |
| 398 | eth0: mac@e0100000 |
| 399 | Hit any key to stop autoboot: 0 |
| 400 | 6455 bytes read in 31 ms (203.1 KiB/s) |
| 401 | 20421684 bytes read in 8647 ms (2.3 MiB/s) |
| 402 | ## Booting kernel from Legacy Image at 00600000 ... |
| 403 | Image Name: |
| 404 | Image Type: RISC-V Linux Kernel Image (uncompressed) |
| 405 | Data Size: 20421620 Bytes = 19.5 MiB |
| 406 | Load Address: 00200000 |
| 407 | Entry Point: 00200000 |
| 408 | Verifying Checksum ... OK |
| 409 | ## Flattened Device Tree blob at 20000000 |
| 410 | Booting using the fdt blob at 0x20000000 |
| 411 | Loading Kernel Image |
| 412 | Loading Device Tree to 000000001effb000, end 000000001efff936 ... OK |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 413 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 414 | Starting kernel ... |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 415 | |
Heinrich Schuchardt | 950399e | 2019-12-27 19:50:53 +0100 | [diff] [blame] | 416 | OF: fdt: Ignoring memory range 0x0 - 0x200000 |
| 417 | Linux version 4.17.0-00253-g49136e10bcb2 (sqa@atcsqa07) (gcc version 7.3.0 (2019-04-06_nds64le-linux-glibc-v5_experimental)) #1 SMP PREEMPT Sat Apr 6 23:41:49 CST 2019 |
| 418 | bootconsole [early0] enabled |
| 419 | Initial ramdisk at: 0x (ptrval) (13665712 bytes) |
| 420 | Zone ranges: |
| 421 | DMA32 [mem 0x0000000000200000-0x000000003fffffff] |
| 422 | Normal empty |
| 423 | Movable zone start for each node |
| 424 | Early memory node ranges |
| 425 | node 0: [mem 0x0000000000200000-0x000000003fffffff] |
| 426 | Initmem setup node 0 [mem 0x0000000000200000-0x000000003fffffff] |
| 427 | software IO TLB [mem 0x3b1f8000-0x3f1f8000] (64MB) mapped at [ (ptrval)- (ptrval)] |
| 428 | elf_platform is rv64i2p0m2p0a2p0c2p0xv5-0p0 |
| 429 | compatible privileged spec version 1.10 |
| 430 | percpu: Embedded 16 pages/cpu @ (ptrval) s28184 r8192 d29160 u65536 |
| 431 | Built 1 zonelists, mobility grouping on. Total pages: 258055 |
| 432 | Kernel command line: console=ttyS0,38400n8 debug loglevel=7 |
| 433 | log_buf_len individual max cpu contribution: 4096 bytes |
| 434 | log_buf_len total cpu_extra contributions: 12288 bytes |
| 435 | log_buf_len min size: 16384 bytes |
| 436 | log_buf_len: 32768 bytes |
| 437 | early log buf free: 14608(89%) |
| 438 | Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes) |
| 439 | Inode-cache hash table entries: 65536 (order: 7, 524288 bytes) |
| 440 | Sorting __ex_table... |
| 441 | Memory: 944428K/1046528K available (3979K kernel code, 246K rwdata, 1490K rodata, 13523K init, 688K bss, 102100K reserved, 0K cma-reserved) |
| 442 | SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 |
| 443 | Preemptible hierarchical RCU implementation. |
| 444 | Tasks RCU enabled. |
| 445 | NR_IRQS: 72, nr_irqs: 72, preallocated irqs: 0 |
| 446 | riscv,cpu_intc,0: 64 local interrupts mapped |
| 447 | riscv,cpu_intc,1: 64 local interrupts mapped |
| 448 | riscv,cpu_intc,2: 64 local interrupts mapped |
| 449 | riscv,cpu_intc,3: 64 local interrupts mapped |
| 450 | riscv,plic0,e4000000: mapped 71 interrupts to 8/8 handlers |
| 451 | clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1bacf917bf, max_idle_ns: 881590412290 ns |
| 452 | sched_clock: 64 bits at 60MHz, resolution 16ns, wraps every 4398046511098ns |
| 453 | Console: colour dummy device 40x30 |
| 454 | Calibrating delay loop (skipped), value calculated using timer frequency.. 120.00 BogoMIPS (lpj=600000) |
| 455 | pid_max: default: 32768 minimum: 301 |
| 456 | Mount-cache hash table entries: 2048 (order: 2, 16384 bytes) |
| 457 | Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes) |
| 458 | Hierarchical SRCU implementation. |
| 459 | smp: Bringing up secondary CPUs ... |
| 460 | CPU0: online |
| 461 | CPU2: online |
| 462 | CPU3: online |
| 463 | smp: Brought up 1 node, 4 CPUs |
| 464 | devtmpfs: initialized |
| 465 | random: get_random_u32 called from bucket_table_alloc+0x198/0x1d8 with crng_init=0 |
| 466 | clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns |
| 467 | futex hash table entries: 1024 (order: 4, 65536 bytes) |
| 468 | NET: Registered protocol family 16 |
| 469 | Advanced Linux Sound Architecture Driver Initialized. |
| 470 | clocksource: Switched to clocksource riscv_clocksource |
| 471 | NET: Registered protocol family 2 |
| 472 | tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes) |
| 473 | TCP established hash table entries: 8192 (order: 4, 65536 bytes) |
| 474 | TCP bind hash table entries: 8192 (order: 5, 131072 bytes) |
| 475 | TCP: Hash tables configured (established 8192 bind 8192) |
| 476 | UDP hash table entries: 512 (order: 2, 16384 bytes) |
| 477 | UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) |
| 478 | NET: Registered protocol family 1 |
| 479 | RPC: Registered named UNIX socket transport module. |
| 480 | RPC: Registered udp transport module. |
| 481 | RPC: Registered tcp transport module. |
| 482 | RPC: Registered tcp NFSv4.1 backchannel transport module. |
| 483 | Unpacking initramfs... |
| 484 | workingset: timestamp_bits=62 max_order=18 bucket_order=0 |
| 485 | NFS: Registering the id_resolver key type |
| 486 | Key type id_resolver registered |
| 487 | Key type id_legacy registered |
| 488 | nfs4filelayout_init: NFSv4 File Layout Driver Registering... |
| 489 | io scheduler noop registered |
| 490 | io scheduler cfq registered (default) |
| 491 | io scheduler mq-deadline registered |
| 492 | io scheduler kyber registered |
| 493 | Console: switching to colour frame buffer device 40x30 |
| 494 | Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled |
| 495 | console [ttyS0] disabled |
| 496 | f0300000.serial: ttyS0 at MMIO 0xf0300020 (irq = 20, base_baud = 1228800) is a 16550A |
| 497 | console [ttyS0] enabled |
| 498 | console [ttyS0] enabled |
| 499 | bootconsole [early0] disabled |
| 500 | bootconsole [early0] disabled |
| 501 | loop: module loaded |
| 502 | tun: Universal TUN/TAP device driver, 1.6 |
| 503 | ftmac100: Loading version 0.2 ... |
| 504 | ftmac100 e0100000.mac eth0: irq 21, mapped at (ptrval) |
| 505 | ftmac100 e0100000.mac eth0: generated random MAC address 4e:fd:bd:f3:04:fc |
| 506 | ftsdc010 f0e00000.mmc: mmc0 - using hw SDIO IRQ |
| 507 | mmc0: new SDHC card at address d555 |
| 508 | ftssp010 card registered! |
| 509 | mmcblk0: mmc0:d555 SD04G 3.79 GiB |
| 510 | NET: Registered protocol family 10 |
| 511 | mmcblk0: p1 |
| 512 | Segment Routing with IPv6 |
| 513 | sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver |
| 514 | NET: Registered protocol family 17 |
| 515 | NET: Registered protocol family 15 |
| 516 | ALSA device list: |
| 517 | #0: ftssp_ac97 controller |
| 518 | Freeing unused kernel memory: 13520K |
| 519 | This architecture does not have kernel memory protection. |
| 520 | Sysinit starting |
| 521 | Sat Apr 6 23:33:53 CST 2019 |
| 522 | nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... |
Rick Chen | 8e9d172 | 2019-11-14 13:52:30 +0800 | [diff] [blame] | 523 | |
Bin Meng | e82e5b1 | 2021-05-12 23:25:52 +0800 | [diff] [blame] | 524 | ~ # |