.. SPDX-License-Identifier: GPL-2.0+

AX25-AE350
==========

AE350 is the mainline SoC produced by Andes Technology using AX25 CPU core
base on RISC-V architecture.

AE350 has integrated both AHB and APB bus and many periphals for application
and product development.

AX25-AE350 is the SoC with AE350 hardcore CPU.

AX25 is Andes CPU IP to adopt RISC-V architecture.

AX25 Features
-------------

CPU Core
 - 5-stage in-order execution pipeline
 - Hardware Multiplier
      - radix-2/radix-4/radix-16/radix-256/fast
 - Hardware Divider
 - Optional branch prediction
 - Machine mode and optional user mode
 - Optional performance monitoring

ISA
 - RV64I base integer instructions
 - RVC for 16-bit compressed instructions
 - RVM for multiplication and division instructions

Memory subsystem
 - I & D local memory
      - Size: 4KB to 16MB
 - Memory subsyetem soft-error protection
      - Protection scheme: parity-checking or error-checking-and-correction (ECC)
      - Automatic hardware error correction

Bus
 - Interface Protocol
      - Synchronous AHB (32-bit/64-bit data-width), or
      - Synchronous AXI4 (64-bit data-width)

Power management
 - Wait for interrupt (WFI) mode

Debug
 - Configurable number of breakpoints: 2/4/8
 - External Debug Module
      - AHB slave port
 - External JTAG debug transport module

Platform Level Interrupt Controller (PLIC)
 - AHB slave port
 - Configurable number of interrupts: 1-1023
 - Configurable number of interrupt priorities: 3/7/15/63/127/255
 - Configurable number of targets:  1-16
 - Preempted interrupt priority stack

Configurations
--------------

CONFIG_SKIP_LOWLEVEL_INIT:

If you want to boot this system from SPI ROM and bypass e-bios (the
other boot loader on ROM). You should undefine CONFIG_SKIP_LOWLEVEL_INIT
in "include/configs/ax25-ae350.h".

Build and boot steps
--------------------

Build:

1. Prepare the toolchains and make sure the $PATH to toolchains is correct.
2. Use `make ae350_rv[32|64]_defconfig` in u-boot root to build the image for
   32 or 64 bit.

Verification:

1. startup
2. relocation
3. timer driver
4. uart driver
5. mac driver
6. mmc driver
7. spi driver

Steps
-----

1. Define CONFIG_SKIP_LOWLEVEL_INIT to build u-boot which is loaded via gdb from ram.
2. Undefine CONFIG_SKIP_LOWLEVEL_INIT to build u-boot which is booted from spi rom.
3. Ping a server by mac driver
4. Scan sd card and copy u-boot image which is booted from flash to ram by sd driver.
5. Burn this u-boot image to spi rom by spi driver
6. Re-boot u-boot from spi flash with power off and power on.

Messages of U-Boot boot on AE350 board
--------------------------------------

.. code-block:: none

   U-Boot 2018.01-rc2-00033-g824f89a (Dec 21 2017 - 16:51:26 +0800)

   DRAM:  1 GiB
   MMC:   mmc@f0e00000: 0
   SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
   In:    serial@f0300000
   Out:   serial@f0300000
   Err:   serial@f0300000
   Net:
   Warning: mac@e0100000 (eth0) using random MAC address - be:dd:d7:e4:e8:10
   eth0: mac@e0100000

   RISC-V # version
   U-Boot 2018.01-rc2-00033-gb265b91-dirty (Dec 22 2017 - 13:54:21 +0800)

   riscv32-unknown-linux-gnu-gcc (GCC) 7.2.0
   GNU ld (GNU Binutils) 2.29

   RISC-V # setenv ipaddr 10.0.4.200 ;
   RISC-V # setenv serverip 10.0.4.97 ;
   RISC-V # ping 10.0.4.97 ;
   Using mac@e0100000 device
   host 10.0.4.97 is alive

   RISC-V # mmc rescan
   RISC-V # fatls mmc 0:1
      318907   u-boot-ae350-64.bin
        1252   hello_world_ae350_32.bin
      328787   u-boot-ae350-32.bin

   3 file(s), 0 dir(s)

   RISC-V # sf probe 0:0 50000000 0
   SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB

   RISC-V # sf test 0x100000 0x1000
   SPI flash test:
   0 erase: 36 ticks, 111 KiB/s 0.888 Mbps
   1 check: 29 ticks, 137 KiB/s 1.096 Mbps
   2 write: 40 ticks, 100 KiB/s 0.800 Mbps
   3 read: 20 ticks, 200 KiB/s 1.600 Mbps
   Test passed
   0 erase: 36 ticks, 111 KiB/s 0.888 Mbps
   1 check: 29 ticks, 137 KiB/s 1.096 Mbps
   2 write: 40 ticks, 100 KiB/s 0.800 Mbps
   3 read: 20 ticks, 200 KiB/s 1.600 Mbps

   RISC-V # fatload mmc 0:1 0x600000 u-boot-ae350-32.bin
   reading u-boot-ae350-32.bin
   328787 bytes read in 324 ms (990.2 KiB/s)

   RISC-V # sf erase 0x0 0x51000
   SF: 331776 bytes @ 0x0 Erased: OK

   RISC-V # sf write 0x600000 0x0 0x50453
   device 0 offset 0x0, size 0x50453
   SF: 328787 bytes @ 0x0 Written: OK

   RISC-V # crc32 0x600000 0x50453
   crc32 for 00600000 ... 00650452 ==> 692dc44a

   RISC-V # crc32 0x80000000 0x50453
   crc32 for 80000000 ... 80050452 ==> 692dc44a
   RISC-V #

   *** power-off and power-on, this U-Boot is booted from spi flash ***

   U-Boot 2018.01-rc2-00032-gf67dd47-dirty (Dec 21 2017 - 13:56:03 +0800)

   DRAM:  1 GiB
   MMC:   mmc@f0e00000: 0
   SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
   In:    serial@f0300000
   Out:   serial@f0300000
   Err:   serial@f0300000
   Net:
   Warning: mac@e0100000 (eth0) using random MAC address - ee:4c:58:29:32:f5
   eth0: mac@e0100000
   RISC-V #


Boot bbl and riscv-linux via U-Boot on QEMU
-------------------------------------------

1. Build riscv-linux
2. Build bbl and riscv-linux with --with-payload
3. Prepare ae350.dtb
4. Creating OS-kernel images

.. code-block:: none

   ./mkimage -A riscv -O linux -T kernel -C none -a 0x0000 -e 0x0000 -d bbl.bin bootmImage-bbl.bin
   Image Name:
   Created:      Tue Mar 13 10:06:42 2018
   Image Type:   RISC-V Linux Kernel Image (uncompressed)
   Data Size:    17901204 Bytes = 17481.64 KiB = 17.07 MiB
   Load Address: 00000000
   Entry Point:  00000000

5. Copy bootmImage-bbl.bin and ae350.dtb to qemu sd card image
6. Message of booting riscv-linux from bbl via u-boot on qemu

.. code-block:: none

   U-Boot 2018.03-rc4-00031-g2631273 (Mar 13 2018 - 15:02:55 +0800)

   DRAM:  1 GiB
   main-loop: WARNING: I/O thread spun for 1000 iterations
   MMC:   mmc@f0e00000: 0
   Loading Environment from SPI Flash... *** Warning - spi_flash_probe_bus_cs() failed, using default environment

   Failed (-22)
   In:    serial@f0300000
   Out:   serial@f0300000
   Err:   serial@f0300000
   Net:
   Warning: mac@e0100000 (eth0) using random MAC address - 02:00:00:00:00:00
   eth0: mac@e0100000
   RISC-V # mmc rescan
   RISC-V # mmc part

   Partition Map for MMC device 0  --   Partition Type: DOS

   Part    Start Sector    Num Sectors     UUID            Type
   RISC-V # fatls mmc 0:0
    17901268   bootmImage-bbl.bin
        1954   ae2xx.dtb

   2 file(s), 0 dir(s)

   RISC-V # fatload mmc 0:0 0x00600000 bootmImage-bbl.bin
   17901268 bytes read in 4642 ms (3.7 MiB/s)
   RISC-V # fatload mmc 0:0 0x2000000 ae350.dtb
   1954 bytes read in 1 ms (1.9 MiB/s)
   RISC-V # setenv bootm_size 0x2000000
   RISC-V # setenv fdt_high 0x1f00000
   RISC-V # bootm 0x00600000 - 0x2000000
   ## Booting kernel from Legacy Image at 00600000 ...
      Image Name:
      Image Type:   RISC-V Linux Kernel Image (uncompressed)
      Data Size:    17901204 Bytes = 17.1 MiB
      Load Address: 00000000
      Entry Point:  00000000
      Verifying Checksum ... OK
   ## Flattened Device Tree blob at 02000000
      Booting using the fdt blob at 0x2000000
      Loading Kernel Image ... OK
      Loading Device Tree to 0000000001efc000, end 0000000001eff7a1 ... OK
   [    0.000000] OF: fdt: Ignoring memory range 0x0 - 0x200000
   [    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
   [    0.000000] bootconsole [early0] enabled
   [    0.000000] Initial ramdisk at: 0xffffffe000016a98 (12267008 bytes)
   [    0.000000] Zone ranges:
   [    0.000000]   DMA      [mem 0x0000000000200000-0x000000007fffffff]
   [    0.000000]   Normal   empty
   [    0.000000] Movable zone start for each node
   [    0.000000] Early memory node ranges
   [    0.000000]   node   0: [mem 0x0000000000200000-0x000000007fffffff]
   [    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x000000007fffffff]
   [    0.000000] elf_hwcap is 0x112d
   [    0.000000] random: fast init done
   [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516615
   [    0.000000] Kernel command line: console=ttyS0,38400n8 earlyprintk=uart8250-32bit,0xf0300000 debug loglevel=7
   [    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
   [    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
   [    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
   [    0.000000] Sorting __ex_table...
   [    0.000000] Memory: 2047832K/2095104K available (1856K kernel code, 204K rwdata, 532K rodata, 12076K init, 756K bss, 47272K reserved, 0K cma-reserved)
   [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
   [    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
   [    0.000000] riscv,cpu_intc,0: 64 local interrupts mapped
   [    0.000000] riscv,plic0,e4000000: mapped 31 interrupts to 1/2 handlers
   [    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
   [    0.000000] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=40000)
   [    0.000000] pid_max: default: 32768 minimum: 301
   [    0.004000] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
   [    0.004000] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
   [    0.056000] devtmpfs: initialized
   [    0.060000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
   [    0.064000] futex hash table entries: 256 (order: 0, 6144 bytes)
   [    0.068000] NET: Registered protocol family 16
   [    0.080000] vgaarb: loaded
   [    0.084000] clocksource: Switched to clocksource riscv_clocksource
   [    0.088000] NET: Registered protocol family 2
   [    0.092000] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
   [    0.096000] TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
   [    0.096000] TCP: Hash tables configured (established 16384 bind 16384)
   [    0.100000] UDP hash table entries: 1024 (order: 3, 32768 bytes)
   [    0.100000] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
   [    0.104000] NET: Registered protocol family 1
   [    0.616000] Unpacking initramfs...
   [    1.220000] workingset: timestamp_bits=62 max_order=19 bucket_order=0
   [    1.244000] io scheduler noop registered
   [    1.244000] io scheduler cfq registered (default)
   [    1.244000] io scheduler mq-deadline registered
   [    1.248000] io scheduler kyber registered
   [    1.360000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
   [    1.368000] console [ttyS0] disabled
   [    1.372000] f0300000.serial: ttyS0 at MMIO 0xf0300020 (irq = 10, base_baud = 1228800) is a 16550A
   [    1.392000] console [ttyS0] enabled
   [    1.392000] ftmac100: Loading version 0.2 ...
   [    1.396000] ftmac100 e0100000.mac eth0: irq 8, mapped at ffffffd002005000
   [    1.400000] ftmac100 e0100000.mac eth0: generated random MAC address 6e:ac:c3:92:36:c0
   [    1.404000] IR NEC protocol handler initialized
   [    1.404000] IR RC5(x/sz) protocol handler initialized
   [    1.404000] IR RC6 protocol handler initialized
   [    1.404000] IR JVC protocol handler initialized
   [    1.408000] IR Sony protocol handler initialized
   [    1.408000] IR SANYO protocol handler initialized
   [    1.408000] IR Sharp protocol handler initialized
   [    1.408000] IR MCE Keyboard/mouse protocol handler initialized
   [    1.412000] IR XMP protocol handler initialized
   [    1.456000] ftsdc010 f0e00000.mmc: mmc0 - using hw SDIO IRQ
   [    1.464000] bootconsole [early0] uses init memory and must be disabled even before the real one is ready
   [    1.464000] bootconsole [early0] disabled
   [    1.508000] Freeing unused kernel memory: 12076K
   [    1.512000] This architecture does not have kernel memory protection.
   [    1.520000] mmc0: new SD card at address 4567
   [    1.524000] mmcblk0: mmc0:4567 QEMU! 20.0 MiB
   [    1.844000]  mmcblk0:
   Wed Dec  1 10:00:00 CST 2010
   / #


Running U-Boot SPL
------------------
The U-Boot SPL will boot in M mode and load the FIT image which include
OpenSBI and U-Boot proper images. After loading progress, it will jump
to OpenSBI first and then U-Boot proper which will run in S mode.


How to build U-Boot SPL
-----------------------
Before building U-Boot SPL, OpenSBI must be build first. OpenSBI can be
cloned and build for AE350 as below:

.. code-block:: none

        git clone https://github.com/riscv/opensbi.git
        cd opensbi
        make PLATFORM=andes/ae350

Copy OpenSBI FW_DYNAMIC image (build\platform\andes\ae350\firmware\fw_dynamic.bin)
into U-Boot root directory


How to build U-Boot SPL booting from RAM
----------------------------------------
With ae350_rv[32|64]_spl_defconfigs:

U-Boot SPL will be loaded by gdb or FSBL and runs in RAM in machine mode
and then load FIT image from RAM device on AE350.


How to build U-Boot SPL booting from ROM
----------------------------------------
With ae350_rv[32|64]_spl_xip_defconfigs:

U-Boot SPL can be burned into SPI flash and run in flash in machine mode
and then load FIT image from SPI flash or MMC device on AE350.


Messages of U-Boot SPL boots Kernel on AE350 board
--------------------------------------------------

.. code-block:: none

    U-Boot SPL 2020.01-rc1-00292-g67a3313-dirty (Nov 14 2019 - 11:26:21 +0800)
    Trying to boot from RAM

    OpenSBI v0.5-1-gdd8ef28 (Nov 14 2019 11:08:39)
       ____                    _____ ____ _____
      / __ \                  / ____|  _ \_   _|
     | |  | |_ __   ___ _ __ | (___ | |_) || |
     | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
     | |__| | |_) |  __/ | | |____) | |_) || |_
      \____/| .__/ \___|_| |_|_____/|____/_____|
            | |
            |_|

    Platform Name          : Andes AE350
    Platform HART Features : RV64ACIMSUX
    Platform Max HARTs     : 4
    Current Hart           : 0
    Firmware Base          : 0x0
    Firmware Size          : 84 KB
    Runtime SBI Version    : 0.2

    PMP0: 0x0000000000000000-0x000000000001ffff (A)
    PMP1: 0x0000000000000000-0x00000001ffffffff (A,R,W,X)


    U-Boot 2020.01-rc1-00292-g67a3313-dirty (Nov 14 2019 - 11:26:21 +0800)

    DRAM:  1 GiB
    Flash: 64 MiB
    MMC:   mmc@f0e00000: 0
    Loading Environment from SPI Flash... SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
    OK
    In:    serial@f0300000
    Out:   serial@f0300000
    Err:   serial@f0300000
    Net:   no alias for ethernet0

    Warning: mac@e0100000 (eth0) using random MAC address - a2:ae:93:7b:cc:8f
    eth0: mac@e0100000
    Hit any key to stop autoboot:  0
    6455 bytes read in 31 ms (203.1 KiB/s)
    20421684 bytes read in 8647 ms (2.3 MiB/s)
    ## Booting kernel from Legacy Image at 00600000 ...
       Image Name:
       Image Type:   RISC-V Linux Kernel Image (uncompressed)
       Data Size:    20421620 Bytes = 19.5 MiB
       Load Address: 00200000
       Entry Point:  00200000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 20000000
       Booting using the fdt blob at 0x20000000
       Loading Kernel Image
       Loading Device Tree to 000000001effb000, end 000000001efff936 ... OK

    Starting kernel ...

    OF: fdt: Ignoring memory range 0x0 - 0x200000
    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
    bootconsole [early0] enabled
    Initial ramdisk at: 0x        (ptrval) (13665712 bytes)
    Zone ranges:
      DMA32    [mem 0x0000000000200000-0x000000003fffffff]
      Normal   empty
    Movable zone start for each node
    Early memory node ranges
      node   0: [mem 0x0000000000200000-0x000000003fffffff]
    Initmem setup node 0 [mem 0x0000000000200000-0x000000003fffffff]
    software IO TLB [mem 0x3b1f8000-0x3f1f8000] (64MB) mapped at [        (ptrval)-        (ptrval)]
    elf_platform is rv64i2p0m2p0a2p0c2p0xv5-0p0
    compatible privileged spec version 1.10
    percpu: Embedded 16 pages/cpu @        (ptrval) s28184 r8192 d29160 u65536
    Built 1 zonelists, mobility grouping on.  Total pages: 258055
    Kernel command line: console=ttyS0,38400n8 debug loglevel=7
    log_buf_len individual max cpu contribution: 4096 bytes
    log_buf_len total cpu_extra contributions: 12288 bytes
    log_buf_len min size: 16384 bytes
    log_buf_len: 32768 bytes
    early log buf free: 14608(89%)
    Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
    Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
    Sorting __ex_table...
    Memory: 944428K/1046528K available (3979K kernel code, 246K rwdata, 1490K rodata, 13523K init, 688K bss, 102100K reserved, 0K cma-reserved)
    SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    Preemptible hierarchical RCU implementation.
            Tasks RCU enabled.
    NR_IRQS: 72, nr_irqs: 72, preallocated irqs: 0
    riscv,cpu_intc,0: 64 local interrupts mapped
    riscv,cpu_intc,1: 64 local interrupts mapped
    riscv,cpu_intc,2: 64 local interrupts mapped
    riscv,cpu_intc,3: 64 local interrupts mapped
    riscv,plic0,e4000000: mapped 71 interrupts to 8/8 handlers
    clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1bacf917bf, max_idle_ns: 881590412290 ns
    sched_clock: 64 bits at 60MHz, resolution 16ns, wraps every 4398046511098ns
    Console: colour dummy device 40x30
    Calibrating delay loop (skipped), value calculated using timer frequency.. 120.00 BogoMIPS (lpj=600000)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
    Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
    Hierarchical SRCU implementation.
    smp: Bringing up secondary CPUs ...
    CPU0: online
    CPU2: online
    CPU3: online
    smp: Brought up 1 node, 4 CPUs
    devtmpfs: initialized
    random: get_random_u32 called from bucket_table_alloc+0x198/0x1d8 with crng_init=0
    clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    futex hash table entries: 1024 (order: 4, 65536 bytes)
    NET: Registered protocol family 16
    Advanced Linux Sound Architecture Driver Initialized.
    clocksource: Switched to clocksource riscv_clocksource
    NET: Registered protocol family 2
    tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes)
    TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    TCP bind hash table entries: 8192 (order: 5, 131072 bytes)
    TCP: Hash tables configured (established 8192 bind 8192)
    UDP hash table entries: 512 (order: 2, 16384 bytes)
    UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
    NET: Registered protocol family 1
    RPC: Registered named UNIX socket transport module.
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    Unpacking initramfs...
    workingset: timestamp_bits=62 max_order=18 bucket_order=0
    NFS: Registering the id_resolver key type
    Key type id_resolver registered
    Key type id_legacy registered
    nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    io scheduler noop registered
    io scheduler cfq registered (default)
    io scheduler mq-deadline registered
    io scheduler kyber registered
    Console: switching to colour frame buffer device 40x30
    Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    console [ttyS0] disabled
    f0300000.serial: ttyS0 at MMIO 0xf0300020 (irq = 20, base_baud = 1228800) is a 16550A
    console [ttyS0] enabled
    console [ttyS0] enabled
    bootconsole [early0] disabled
    bootconsole [early0] disabled
    loop: module loaded
    tun: Universal TUN/TAP device driver, 1.6
    ftmac100: Loading version 0.2 ...
    ftmac100 e0100000.mac eth0: irq 21, mapped at         (ptrval)
    ftmac100 e0100000.mac eth0: generated random MAC address 4e:fd:bd:f3:04:fc
    ftsdc010 f0e00000.mmc: mmc0 - using hw SDIO IRQ
    mmc0: new SDHC card at address d555
    ftssp010 card registered!
    mmcblk0: mmc0:d555 SD04G 3.79 GiB
    NET: Registered protocol family 10
     mmcblk0: p1
    Segment Routing with IPv6
    sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    NET: Registered protocol family 17
    NET: Registered protocol family 15
    ALSA device list:
      #0: ftssp_ac97 controller
    Freeing unused kernel memory: 13520K
    This architecture does not have kernel memory protection.
    Sysinit starting
    Sat Apr  6 23:33:53 CST 2019
    nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...

~ #
