Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

vfio (Virtual Funtion I/O) と SystemC を繋げる (その1)

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

はじめに

今までは、Xilinx QEMU と SystemC側を繋げるケースについて見てきました。
今回からは、Linux の vfio (Virtual Function I/O と SystemC を繋げ、SystemCから vfio 経由で PCIe Device へアクセスするケースを見ていきます。
実際にどうやって動かすかは、ここ に詳しく書いてあります。

vfio について

vfio (Virtual Function I/O) については、下記に詳しく書いてありました。

mmi.hatenablog.com

vfio で PCIバイスを操作するためには、vfio-pci ドライバをデバイスに bind すればいいようです。
上記のサイトから引用すると、下記のようにすればいいようです。Ethernet driver (Intel 82574) を前提にしています。

% lspci -nn | grep -i Ether
86:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network Connection [8086:10d3]
% sudo modprobe vfio-pci
% echo 0000:86:00.0 | sudo tee -a /sys/bus/pci/devices/0000:86:00.0/driver/unbind
% echo 8086 10d3 | sudo tee -a /sys/bus/pci/drivers/vfio-pci/new_id

バイスに vfio-pci を割り当てると、

 /dev/vfio/vfio
 /dev/vfio/<num>  <num> は、I/O MMU のグルーブ番号

ができるようです。

バイスがどの I/O MMU のグループ番号に属するかは、

$ ls -l /sys/bus/pci/devices/<ssss:bb:dd.f>/iommu_group/devices

のようなコマンドでわかるようです。

ちなみに、Linux Kernel の vfio のドキュメントは、ここ にあります。

Ubuntu cloud image で QEMUを起動

x86-64マシン上で動作する Ubuntuの vfio ではなく、x86-64マシン上のQEMU上で Ubuntu cloud image を起動して、Ubuntu cloud image 上のSystemC側と接続します。
Ubuntu cloud image VM を ダウンロードし、イメージのサイズを 10GB にし、cloud image を qemu-system-x86_64 で起動します。

$ mkdir /tmp/machine-x86
$ qemu-system-x86_64                                                              \
    -M q35,accel=kvm,kernel-irqchip=split -m 4G -smp 4 -enable-kvm                \
    -device virtio-net-pci,netdev=net0 -netdev type=user,id=net0                  \
    -serial mon:stdio -machine-path /tmp/machine-x86 -display none                \
    -device intel-iommu,intremap=on,device-iotlb=on                               \
    -device ioh3420,id=rootport,slot=0 -device ioh3420,id=rootport1,slot=1        \
    -drive file=~/Downloads/ubuntu-20.04-server-cloudimg-amd64.img,format=qcow2   \
    -drive file=~/Downloads/user-data.img,format=raw                              \
    -kernel ~/Downloads/ubuntu-20.04-server-cloudimg-amd64-vmlinuz-generic        \
    -append "root=/dev/sda1 ro console=tty1 console=ttyS0 intel_iommu=on"         \
    -initrd ~/Downloads/ubuntu-20.04-server-cloudimg-amd64-initrd-generic

Ubuntu cloud image に SystemC および Verilator をインストール

Zynq、ZynqMP、Versalの時と違って、QEMUで起動した Ubuntu cloud image の中に、SystemC と Verilator をインストールする必要があります。
Ubuntu cloud image に login した後に、下記のように必要なパッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install git build-essential autoconf flex bison

また、I/O MMU が on になっていることを確かめます。

$ cat /proc/cmdline
"...ro quiet splash intel_iommu=on..."

次に、SystemC をインストールします。ここでは、2.3.2 をインストールしています。そして、Verilator もインストールします。ここでは、v4.010 をインストールしています。

SystemC側のモデルのビルド

SystemC側のモデル (PCIe RTL VFIO demos) をビルドします。.config.mk に SYSTEMCの環境を設定して、tests/rtl-bridges/pcie ディレクトリで make を実行します。

$ cd ~/github/
$ git clone https://github.com/Xilinx/libsystemctlm-soc.git
$ cd libsystemctlm-soc
$ cat <<EOF > .config.mk
SYSTEMC = /opt/systemc-2.3.2/
EOF
$ cd tests/rtl-bridges/pcie
$ make

make コマンドが終了してら、下記のように2つのコマンドが生成されます。

$ ls test-pcie-ep-master-vfio test-pcie-ep-slave-vfio

Cloud image 上での vfio-pcie の登録

SystemC側のモデルを実行する前に、vfio-pcie を登録します。
test/rtl-bridges/pcie ディレクトリに移動し、modprobe コマンドにて vfio-pci を登録します。
/sys/bus/pci/drivers/vfio-pcie/new_id に対して、VendorID/DeviceIDを10ee d004に設定します。また、I/O MMUのグループを確認します。この例では、I/O MMU のグループは 3 という想定しています。

$ cd ~/github/libsystemctlm-soc/tests/rtl-bridges/pcie
$ sudo modprobe vfio-pci nointxmask=1
$ sudo sh -c 'echo 10ee d004 > /sys/bus/pci/drivers/vfio-pci/new_id'
$ # Find the iommu group
$ ls -l /sys/bus/pci/devices/0000\:01\:00.0/iommu_group
$ # The iommu group was 3

おわりに

今回は、QEMU 上で起動した Ubuntu cloud image に SystemC/Verilatorをインストールし、SystemC側のモデルをビルド後、vfio-pciバイスを登録しました。
次回は、SystemC側のモデルの中を見ていきます。

Arm Cortex-X1 / A78 搭載しているスマホSoC?

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

はじめに

Arm が Cortex-X1 と A78 を発表したのが、2020年の5月頃。このブログでは、5月28日に取り上げています。

vengineer.hatenablog.com

このブログの最後の図(再度、引用します)。この図にあるように、A78 x4 の構成の内、1つを A78 に変えるというもの。

f:id:Vengineer:20210409160238p:plain

そして、下記の図(再度、引用します)。A78 では、L2が512KB、L3が4MBなのが、X1では L2は1MB、L3は8MBになっています。

f:id:Vengineer:20210409160335p:plain

Qualcomm Snapdragon 888 と Samsung EXYNOS 2100

Arm Cortex-X1 と A78 を搭載した SoC としては、Qualcomm Snapdragon 888 と Samsung EXYNOS 2100 があります。

Snapdragon 888 は、X1のL2は1MB、A78のL2は512KB x3、A55 のL2は128KB x4 で合計 3MB、L3が4MB

EXYNOS 2100 は、X1 x1, A78 x3, A55 x4 ですが、Cache サイズを公開していませんね。

共に、DynamIQ をサポート

おわりに

Huaweiが最新プロセスで スマホSoC を作れなくなってしまったので、トップランナーQualcommSamsung の2社。Apple は外販していないので、除く。
その2社のハイエンドは、共に、Armから提供を受けている Cortex-X1 / A78 ベース。。。

Armの次のコアであるだろう Cortex-X2 / A79 を搭載するSoCは、どこだろうか?と Google 君に聞いたら、なんと、MediaTek Dimensity 2000 なのか?

www.notebookcheck.net

pc.watch.impress.co.jp

pc.watch.impress.co.jp

上記の記事から、Matterhorn が X2 で、Makalu が A79 ということなのかな?

Xilinx QEMU + SystemC (PCIe EP) + Verilog HDL (Verilator) の内容を探っていく(その2)

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

はじめに

Xilinx QEMU + SystemC (PCIe EP) の内容を探っていく(その1) で説明した、refdesign-sim.cc
のブロック図は下記のようになっています。

f:id:Vengineer:20210404112657p:plain

QEMUとの通信は、remoteport_tlm_pci_ep が行っています。この remoteport_tlm_pcie_ep に、xilinx_xdma が接続していて、その先に、iconnect (xdma_ic)があって、tlm=>axi bridge を経由して、pcie_bridge_wrapper が接続しています。この pcie_bridige_wrapper は、AXIベースのブリッジRTLモデルです。pcie_bridge_wrapper から axi=>tlm bridge を経由して、iconnect (dut_ic) に繋がり、その iconnect に target の memory と xilinx_cdma が繋がっています。

以降、

について、説明します。

remoteport_tlm_pci_ep

下図は、remoteport_tlm_pci_ep のブロック図です。

f:id:Vengineer:20210404113944p:plain

XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その5)で説明しました remoteport_tlm を使っています。QEMU とは、remoteport_tlm と通信しています。remoteport_tlm からは rst 以外に、4つのポート

  • config
  • bar[6]
  • dma
  • irq

が出ています。config と bar[6] は initiator port、dma は target port、irq は bool 型の入力信号です。config と bar[6] は ポインタ (}*)で、dma と irq は リファレンス(&) になっています。

irq のところのコメントにあるように、PCIMSI/MSI-X はサポートしていません。Legacy な 割り込みのみサポートしています。

```
sc_in rst;

// TLM Socket to serve PCIe Config Space acceses.
tlm_utils::simple_initiator_socket *config;
// BARs (IO or MMIO).
tlm_utils::simple_initiator_socket *bar[6];
tlm_utils::simple_target_socket &dma;

// Interrupts.
// For legacy interrupts, this will be a vector of size 1.
// When using MSI/MSI-X, you can either send transactions over the
// dma socket or create a larger irq vector and let the remote-port peer
// convert these signals into MSI/MSI-X messages.
sc_vector > &irq;
```

上記の図の右側にある pcie_device_base の config, bar[6], dma, irq が remoteport_tlm の config, bar[6], dma, irq と接続することになります。pcie_device_base は、ここ にあります。pci_device_base の config と bar は、target port の実体、dma は initiator port の実体、irq は bool 型の出力信号になっています。bar は sc_vector になっています。bar の数は各デバイスによって変わってくるので、sc_vector にしているようです。

```
// Config Address-Space
tlm_utils::simple_target_socket config;
// Up to 6 BAR ports.
sc_vector > bar;
// A DMA port for end-point access into the host.
tlm_utils::simple_initiator_socket dma;

// Interrupts. Normally this vector will be of size 1.
// Depending on where device connects there may be infrastructure
// to handle multiple interrupts (mapping these signals into MSI).
//
// If not, the DMA port can be used to send MSI/MSI-X interrupts.
sc_vector > irq;
```

xilinx_xdma/xilinx_xdma_rtl

全体の図では、pcie_device_base ではなく、xilinx_xdma と remoteport_tlm_pci_ep が接続しています。xilinx_xdma は pcie_device_base を継承したものです。
下図に xilinx_xdma のブロック図を示します。xilinx_xdma は、pcie_device_base を継承したものです。

f:id:Vengineer:20210404120446p:plain

tlm_m_axib という initiator port と tlm_s_axib という target port、そして、usr_irq_reqv という sc_vector な bool 型の入力信号が追加されています。

```
// South-bound towards the EP User-logic.
// These are the AXI4 Memory Mapped Master/Slave Bypass ports.
tlm_utils::simple_initiator_socket tlm_m_axib;
tlm_utils::simple_target_socket tlm_s_axib;

sc_vector > usr_irq_reqv;
```

xilinx_xdma_rtl は下記のようなブロック図になっています。xilinx_xdma の tlm_m_axib ポートから tlm2axi_bridge を経由して、pcie_wrapper に接続しています。また、pcie_wrapper から axilite2tlm_bridge を経由して、tlm_s_axib ポートに接続しています。usr_irq_reqv は外部からの 割り込み信号である usr_irq_req が接続されています。usr_irq_req に対して、usr_irq_ack も追加されています。

f:id:Vengineer:20210404122457p:plain

pcie_bridge_wrapper

pcie_bridge_wrapper は、refdesign-sim.cc の中で定義されています。下記のように pcie_bridge_wrapper は、Verilog HDL の pcie_ep.v の Wrapper file です。Vpcie_ep の最初の V が Verilog HDL (Verilator)のモデルを意味します。

```
SC_MODULE(pcie_bridge_wrapper)
{
public:
Vpcie_ep ep_bridge;
sc_in clk;
sc_in rst;
sc_in rst_n;
```

pcie_ep.v の説明は、ここ にあります。

サポートしている機能は、こんな感じです。

  • DUT Protocol support - AXI4 and AXI4-Lite
  • DUT AXI Data widths - 32, 64,128-bit
  • Slave AXI interface to configure bridge registers - 32-bit AXI4-Lite slave
  • Outstanding Transactions - As per AXI Master, Slave Bridge
  • Mode of operation : Mode_0, Mode_1
  • Interrupt support : Legacy PCIe only

Initiator 、Target それぞれ、6ポートまでサポートしています。

おわりに

今回は、下記の3つのモジュールについて見てみました。実際にモデルを作るときは、これらのモデルをベースに必要なモジュールを作っていくことになります。
また、xilinx_xdma では機能的に足りないのであれば、xilinx_xdma を継承してモデルを作ればいいです。

Xilinx QEMU + SystemC (PCIe EP) + Verilog HDL(Verilator) の内容を探っていく(その1)

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

はじめに

先月の後半にシリーズとしてお届けしたXilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく。

XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1)
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その2)
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その3)
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その4)
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その5)

では、ARM CPUコア入りの Zynq, ZynqMP, Versal をベースとして、Xilinx QEMU + SystemC 環境について探ってみました。XilinxQEMU 側では、PS(processing system)部の Zynqでは ARM Cortex-A9x2、ZynqMPでは ARM Cortex-A53x2、Versalでは ARM Cortex-A72x2 の CPUコアを動かし、それ以外、つまり、PL (Programming Logic)部を SystemC + Verilog HDL (Verilator) で実装していたわけです。

今回から探っていくのは、Xilinx QEMU で動く部分は PS部でなくてもOKなんですよ。SystemCで動く部分には、PCI Express の Endpoint Device なので、CPUは何でもOKなんですよ。

PCIe EP HW Bridges が今回から数回に分けて探っていくモデルです。今回は概要だけで、次回以降内部を探っていきます。

PCIe EP HW Bridges

PCIe EP HW Bridges は、前回までのデモの中にはなくて、LibSystemCTLM-SoC の中のライブラリのひとつという扱いですね。
ドキュメントは、ここ です。

ドキュメントから抜き出したのが以下のもの(引用します)

  • The host is modelled by QEMU/KVM
    • The host is typically an x86 host emulated/virtualized on an x86 host
  • The PCIe Root Complex and parts of the fabric reside in QEMU Parts of the PCIe fabric can be modelled in System/RTL
  • The PCIe EndPoint will be modelled in SystemC combined with RTL simulations or HW in the loop
  • The PCIe EndPoint User-Logic is RTL and can be:
    • RTL co-simulated
    • Synthesized onto an FPGA and co-simulated (Hardware in the loop)
  • The simulated PCIe EP can be hot-plugged and unplugged
  • The simulated PCIe EP can DMA into the host
  • The simulated PCIe EP can raise interrups to the host (Legacy, MSI and MSI-X)
  • Multiple PCIe EP's can be simulated simultaneously

PCIe EP なので、基本的には、x86 の PCIe slot に差し込むボード開発用の部品です。XilinxFPGAの中には PCIe IP が Hard IP として入っているものをあります。この PCIe IP の部分と Xilinx QEMUを接続する機能を探っていくことになるわけです。

QEMU での起動

x86-64QEMUを使って下記の引数で起動します。-serial mon:stdio を指定しているので起動したコンソールが、Ctrl-A C を入力することで、そのまま QEMU のコンソールになります。

```
qemu-system-x86_64 -M q35,accel=kvm,kernel-irqchip=split \
-device intel-iommu,intremap=on,device-iotlb=on \
-cpu host -smp 8 -m 8G \
-netdev user,hostfwd=tcp:127.0.0.1:2225-10.0.2.15:22,id=n0 \
-device virtio-net,netdev=n0 \
-drive file=hd0.qcow2,format=qcow2 \
-machine-path machine-x86/ \
-serial mon:stdio \
-device ioh3420,id=rootport,slot=0 \
-device ioh3420,id=rootport1,slot=1
```

コンソールにて、下記のコマンドを入力して、SystemC側と接続する remote-port-pci-adaptor を追加します。

```
$ device_add remote-port-pci-adaptor,bus=rootport1,id=rp0
```

この時点で、SystemC側を起動していないと、以下のようなメッセージが表示され、待ちます。

```
Failed to connect socket machine-x86//qemu-rport-_machine_peripheral_rp0_rp: Connection refused
info: QEMU waiting for connection on: disconnected:unix:machine-x86//qemu-rport-_machine_peripheral_rp0_rp,server
```

SystemC側を起動

別のコンソール(ウィンドウを立ち上げ)、次のコマンドを実行します。

```
$ ./refdesign-sim unix:./machine-x86/qemu-rport-_machine_peripheral_rp0_rp 1000
```

refdesign-sim コマンドは、この コードをビルドしたものです。このディレクトリ で Build すればいいと思います。

詳しくは、次回以降で説明します。

再度、QEMUでコマンド打つ

SystemC側が起動したら、QEMUのコンソールで下記のコマンドを入力して、SystemCと接続します。

```
$ device_add remote-port-pci-device,bus=rootport,rp-adaptor0=rp,rp-chan0=0,vendor-id=0x10ee,device-id=0xd004,class-id=0x0700,revision=0x12,nr-io-bars=0,nr-mm-bars=1,bar-size0=0x100000,id=pcidev1
```

SystemCと接続できたら、

```
$ lspci -vv
```

にて、PCIe EP が見えることを確認します。

おわりに

Xilinx QEMU はARMコアだけでなく、x86-64 でも SystemC側と通信ができるんですよ。。。てか、よく考えると、当たり前なんですが。。。。
次回から 上記の refdesign-sim.cc の内容を見ていきますよ。

Pixel 6 に搭載されるである SoC は、GoogleとSamsungとの共同開発の模様

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

はじめに、

昨日、Twitter の Mention で知りました。これ!
www.itmedia.co.jp

元記事は、こちら。
9to5google.com

この秋出るであろう Google Pixel 6 に搭載されるSoCは、Qualcomm の Snapdragon シリーズではなく、GoogleSamsung との共同開発のものを搭載するというお話。
そのSoCは、Samsungの 5nmプロセスで実装され、Google Edge TPUなども搭載されると。

Pixel Visual Core / Pixel Neural Core の復習

今までは、SoCではなく、ASICの中に、Pixel Video Core (Pixel2/3) や Pixel Nueral Core (Pixel 4) を搭載していたが、とうとう SoC の中に投入ですか。。。

このブログでは、Pixel 4 に Edge TPU が入っていたことを2019年11月19日に書きました。

vengineer.hatenablog.com

また、Pixel 4 に入っている Edge TPU の Linuxデバイスドライバも公開されています。

vengineer.hatenablog.com

vengineer.hatenablog.com

おわりに

Pixelも Snapdragon + ASIC から、カスタムSoC に移行するんでしょうね。。。
まー、実装は Samsung でしょうけど。。。

Pixel Neural Core には、

  • Pixel Visual Core
  • MIPI
  • Edge TPU
  • LPDDR4
  • Arm Cortex A53

が入っているので、SoCにそのままくっつける感じでもいいんじゃないですかね。

Edge TPU内のコア数や内部構成は変えてくるかもしれませんけど。

XilinxのQEMU環境の原点は、XXX って、知っていた?

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

TLMu

TLMu には、このブログで 2012年7月6日に取り上げています。8年半も前です。ということは、もっと前から開発しているので、10年ぐらい前からあるんだと思います。

vengineer.hatenablog.com

TLMu を使ったツールを2つ、プロファウンド・デザイン・テクノロジー株式会社のBreakfast と hdlabのARMCPUモデル環境というのも紹介しました。
vengineer.hatenablog.com
vengineer.hatenablog.com

本題の TLMu は、こちら。ドキュメントは、こちら。そして、github の repo は、こちら最終更新が24 Aug 2014

また、hdlab からの PRも2点かありますね。

TLMu の開発者の Edgar E. Iglesias さんは、TLMuの更新がほぼ終わったころの2013年3月、Xilinx に移ったようです。。

そして、XilinxQEMUPetaLinux QEMU v2015.2が10 Jul 2015 に commitされています。この時に、remote_port 関連も追加されています。

おわりに、

いやー、XilinxのQMU、奥が深いです。。。。一人のエンジニアがOSSで公開していたアイデアをベースに、XilinxQEMUが実現されていたなんて。。。凄いですね。。

2021年3月の映画鑑賞

映画好きの戯言

3月、32本、アマゾン100円(12本)、DVD(3本)

2月、25本、アマゾン100円(10本)
1月:26本、アマゾン100円(5本)

アイネクライネナハトムジーク (2019)、アマゾン、100円
ちょっと自主映画っぽかった。「愛がなんだ」の今泉力哉監督

あの娘、早くババアになればいいのに 2013
どう考えても、自主映画っぽかった。

タイム・チェイサー (2013) / I'LL FOLLOW YOU DOWN
シックス・センス」の子役のハーレイ・ジョエル・オスメントが久々に。。。結構おっさんっぽい。24歳ぐらいなのに。

グッド・ボーイズ (2019) / GOOD BOYS、アマゾン、100円
12歳の3人組の少年の1日の出来事、めっちゃおもろかったわ。

リンカーン/秘密の書 (2012) / ABRAHAM LINCOLN: VAMPIRE HUNTER、アマゾン、100円
南北戦争は、ドラキュラとの戦いという設定。

惡の華 (2019)
伊藤健太郎主演(2019年で22歳)、玉城ティナ(2019年で22歳)共演。佐伯さん役の秋田汐梨は2019年時点で16歳だった。無理があるよな。。。

テルマ (2017) / THELMA
考えると人をどこかに移動させてしまう能力を持っている少女のお話。ノルウェー作品だったので、言葉がわからない。

ダーケスト・マインド (2018) / THE DARKEST MINDS、アマゾン、100円
これ、続編前提で作ったぽいけど、続編がない。。。Wikipedia によると、

2018年8月3日、本作は全米3127館で公開され、公開初週末に584万ドルを稼ぎ出し、週末興行収入ランキング初登場8位となった[19]。この数字は3000館以上の規模で封切られた作品としては異例の低さとなった

のようなので、続編は無いよね。

わたしに××しなさい! (2018)
玉城ティナ主演ということで見てみた。。。惡の華の時と衣装と化粧が違うので別人ぽかった。

人間失格 太宰治と3人の女たち (2019)
小栗旬、妻が宮沢りえ、愛人その1が沢尻エリカ、愛人その2が二階堂ふみ、ってどんだけ、幸せなんだよ。

ディープ・スペース (2018) / DEEP SPACE
未公開作品:お金はそれほどかけてないけど、きちんと作っていたのはよかった。

ヲタクに恋は難しい (2020)
山崎賢人高畑充希賀来賢人
高畑充希の演技は上手いがどんな演技でも高畑充希
一方、山崎賢人山崎賢人を出さないでその役になりきる感じ。
賀来賢人は、「今日から俺は」と同じ演技だよ

ものすごくうるさくて、ありえないほど近い (2011) / EXTREMELY LOUD & INCREDIBLY CLOSE、アマゾン、100円
最後は、

  • おばあちゃん
  • 最初に遭ったブラックさん
  • その後に遭ったブラックさん
  • お母さん
  • 自分が

良い方向に進んでいくといういい映画でした。。。

A-X-L /アクセル (2017) / A-X-L、アマゾン、100円
兵器用の犬型ロボット。普通に犬だった。

守護教師 (2018) / ORDINARY PEOPLE、アマゾン、100円
マ・ドンソクが高校の体育の先生として赴任した学校では、理事長がよろしくないことを

午前0時、キスしに来てよ (2019)
橋本環奈、高校2年生だけど、ちょっとね。お友達役の岡崎紗絵って、25歳なので、かなり無理あるよ。。。

心が叫びたがってるんだ。 (2017)
中島健人って、地味な役もそれなりにできるのね。芳根京子って、いろいろな役ができるのね。

イーグル・ジャンプ (2016) / EDDIE THE EAGLE、アマゾン、100円
英国人での冬季オリンピックのジャンプに参加した人のお話。実話。。。ヒュー・ジャックマンがコーチ役だけど、なんかピンとこなかった。
主役のタロン・エガートン。。。なんか、見たときあるなーと思ったら、ロケットマンのエルトンジョンだった。

愚行録 (2016)
暗い映画。。。。 妻夫木聡主演。満島ひかりも。。。。配給:ワーナー=オフィス北野。。。。。
中村倫也眞島秀和も脇役。。。。

ハリエット (2019) / HARRIET、アマゾン、100円
この映画はよかった。主演のシンシア・エリヴォ ホテル・エルロワイヤル にも出てた。

ドクター・ドリトル (2020) / DOLITTLE
ちょっと前まで有料だったけど、見放題に追加された。主演はロバート・ダウニー・Jr。ファンタジー・コメディね。

スター・ウォーズ/スカイウォーカーの夜明け (2019) / STAR WARS: THE RISE OF SKYWALKER、DVD
久しぶりに GEO でDVD借りた。。。これが最後のスターウォーズ。。。未だに、スターウォーズってよくわからない。。。
カイロ・レン(アダム・ドライヴァー)は、レイア・オーガナとハン・ソロの息子。レイは、ルーク・スカイウェーカーの弟子。。二人はひかれあうが血は繋がっていない。。。

荒野の誓い (2017) / HOSTILES、アマゾン、100円
この映画もかなり地味。主演はクリスチャン・ベイルであまりしゃべらない。Native American の言葉が話せる。。。

TENET テネット (2020) / TENET、DVD
去年話題だった、クリストファー・ノーラン監督のTENETをDVDで観た。インセプションに比べたら、わかりやすかった。。。
ジョン・デヴィッド・ワシントンって、テンゼル・ワシントンの息子か。。。ほとんど無名だったのに、なんで主役なのかは納得したわ。

ワンダーウーマン:ブラッドライン (2019) / WONDER WOMAN: BLOODLINES、アマゾン、100円
実写だと思ってレンタルしたら、アニメだった。ワンダーウーマンって、子供の時にTVドラマで観ていたんだけど、どこから来たのか全然しらなかったんだけど、島から来たのね。
DC総出演の映画で出てくる強いアマゾン軍団みたいな人たちって、ワンダーウーマン関連だったんだと確認できてよかった。

ちはやふる -結び- (2017)、DVD
上の句、下の句まで観ていたんだけど、結びは観るタイミングを逸していた。。。繋ぐも観たけど、こちらはメーキングビデオっぽくて、残念な気持ちになった。
優希美青が準クイーン役として出ている。。。あとから観た、ユリゴコロ (2017)の美紗子(中学生)の役をやっていた。。。

デス・ノート (2014) / LET US PREY
邦題のタイトルが微妙。。。確かに、ノートには書いてあるが。。。。

フローズン・ブレイク (2018) / OTRYV
ロシア映画。。。。あの寒さで夜を越した時点で終了でしょうね。

エンド・オブ・ステイツ (2019) / ANGEL HAS FALLEN、アマゾン、100円
「エンド・オブ・ハワイとハウス」、「エンド・オブ・キングダム」の続編。大統領のシークレット・サービスのお話。主演はずーと、 ジェラルド・バトラー

Fukushima 50 (2019)、アマゾン、100円
東日本震災の時の原発の中のお話。地震発生から第四号基の水素爆発ぐらいまでわかりやすくまとまっている感じでよかったです。後半は一気に進んでだれちゃった感じですね。

ユリゴコロ (2017)
かなりドロドロした内容。吉高由里子がドロドロ。。。。

私をくいとめて (2020)
のん と 橋本愛の共演。。。2020.12.18 公開なのに、もう、アマゾンプライムに。