8000 U boot 2009.11.y by emlinux · Pull Request #3 · u-boot/u-boot · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

U boot 2009.11.y #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 5 commits into from
Closed

U boot 2009.11.y #3

wants to merge 5 commits into from

Conversation

emlinux
Copy link
@emlinux emlinux commented Oct 1, 2017

No description provided.

Felix Radensky and others added 5 commits January 23, 2010 17:53
Bootstrap options G and F are reported incorrectly (G instead
of F and vice versa). This patch fixes this.

Signed-off-by: Felix Radensky <felix@embedded-sol.com>
Signed-off-by: Stefan Roese <sr@denx.de>
On platforms where SPD EEPROM and another EEPROM have adjacent
I2C addresses SPD_EEPROM_ADDRESS should be defined as a single
element array, otherwise DDR2 setup code would fail with the
following error:

ERROR: Unknown DIMM detected in slot 1

However, fixing SPD_EEPROM_ADDRESS would result in another
error:

ERROR: DIMM's DDR1 and DDR2 type can not be mixed.

This happens because initdram() routine does not explicitly
initialize dimm_populated array. This patch fixes the problem.

Signed-off-by: Felix Radensky <felix@embedded-sol.com>
Signed-off-by: Stefan Roese <sr@denx.de>
The list of 4xx SoCs that should send type 1 PCI transactions
is not defined correctly. As a result PCI-PCI bridges and devices
behind them are not identified. The following 4xx variants should
send type 1 transactions: 440GX, 440GP, 440SP, 440SPE, 460EX and 460GT.

Signed-off-by: Felix Radensky <felix@embedded-sol.com>
Signed-off-by: Stefan Roese <sr@denx.de>
A newer CPLD version on the 405EX evaluation board requires a different
EBC controller setup for the CPLD register access. This patch adds a CPLD
version detection for Kilauea and code to reconfigure the EBC controller
(chip select 2) for the old CPLD if no new version is found.

Additionally the CPLD version is printed upon bootup:

Board: Kilauea - AMCC PPC405EX Evaluation Board (CPLD rev. 0)

Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Wolfgang Denk <wd@denx.de>
Cc: Zhang Bao Quan <bqzhang@udtech.com.cn>
Update CHANGELOG

Signed-off-by: Wolfgang Denk <wd@denx.de>
trini pushed a commit that referenced this pull request Aug 24, 2018
Compiling U-Boot with ubsan/asan libraries and running it in sandbox
may lead to below backtrace:

 => avb init 0
 => avb verify
 ## Android Verified Boot 2.0 version 1.1.0
read_is_device_unlocked not supported yet
common/avb_verify.c:407:31: runtime error: division by zero
AddressSanitizer:DEADLYSIGNAL
Reviewed-by: Igor Opaniuk <igor.opaniuk@linaro.org>

=================================================================
==9388==ERROR: AddressSanitizer: FPE on unknown address 0x0000004b467f \
    (pc 0x0000004b467f bp 0x000000000000 sp 0x7ffd899fe150 T0)
    #0 0x4b467e in mmc_byte_io common/avb_verify.c:407
    #1 0x4b4c47 in mmc_byte_io common/avb_verify.c:532
    #2 0x4b4c47 in read_from_partition common/avb_verify.c:533
    #3 0x69dc0d in load_and_verify_vbmeta lib/libavb/avb_slot_verify.c:560
    #4 0x6a1ee6 in avb_slot_verify lib/libavb/avb_slot_verify.c:1139
    #5 0x45dabd in do_avb_verify_part cmd/avb.c:245
    #6 0x4af77c in cmd_call common/command.c:499
    #7 0x4af77c in cmd_process common/command.c:538
    #8 0x46bafc in run_pipe_real common/cli_hush.c:1677
    #9 0x46bafc in run_list_real common/cli_hush.c:1875
    #10 0x46c780 in run_list common/cli_hush.c:2024
    #11 0x46c780 in parse_stream_outer common/cli_hush.c:3216
    #12 0x46d34b in parse_file_outer common/cli_hush.c:3299
    #13 0x4ad609 in cli_loop common/cli.c:217
    #14 0x4625ae in main_loop common/main.c:65
    #15 0x46f2d1 in run_main_loop common/board_r.c:648
    #16 0x640253 in initcall_run_list lib/initcall.c:30
    #17 0x46f9d0 in board_init_r common/board_r.c:879
    #18 0x40539b in main arch/sandbox/cpu/start.c:321
    #19 0x7fa94925f82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
    #20 0x408908 in _start (/srv/R/u-boot-master/u-boot+0x408908)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: FPE common/avb_verify.c:407 in mmc_byte_io
==9388==ABORTING

Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Sep 19, 2018
At present the response to ARP request is copied to the transmit
packet buffer ('net_tx_packet') and sent out. This won't fail on
most cases, but unfortunately is potentially broken under certain
circumstances.

For example, considering the following packet sequence:

1: placed an ARP request to the other end, initiated by 'ping'
2: received an ARP request from the other end
3: received the ARP reply from the other end

The ICMP echo request packet was created in step u-boot#1, stored in the
transmit packet buffer, but was corrupted in step u-boot#2 when handling
the response to ARP request using the same buffer, and finally the
same buffer was sent out in step u-boot#3 as the follow-up on ARP reply.
This leads to 'ping' timeout since the ICMP echo request was never
sent out to the other end, instead a duplicated ARP reply packet
was sent out and ignored by the other end.

Similar corruption can happen with other protocols like TFTP, which
leads to TFTP transfer timeout.

Use the dedicated ARP transmit packet buffer ('arp_tx_packet') to
avoid such issue.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Sep 20, 2018
At present the response to ARP request is copied to the transmit
packet buffer ('net_tx_packet') and sent out. This won't fail on
most cases, but unfortunately is potentially broken under certain
circumstances.

For example, considering the following packet sequence:

1: placed an ARP request to the other end, initiated by 'ping'
2: received an ARP request from the other end
3: received the ARP reply from the other end

The ICMP echo request packet was created in step u-boot#1, stored in the
transmit packet buffer, but was corrupted in step u-boot#2 when handling
the response to ARP request using the same buffer, and finally the
same buffer was sent out in step u-boot#3 as the follow-up on ARP reply.
This leads to 'ping' timeout since the ICMP echo request was never
sent out to the other end, instead a duplicated ARP reply packet
was sent out and ignored by the other end.

Similar corruption can happen with other protocols like TFTP, which
leads to TFTP transfer timeout.

Use the dedicated ARP transmit packet buffer ('arp_tx_packet') to
avoid such issue.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Sep 20, 2018
At present the response to ARP request is copied to the transmit
packet buffer ('net_tx_packet') and sent out. This won't fail on
most cases, but unfortunately is potentially broken under certain
circumstances.

For example, considering the following packet sequence:

1: placed an ARP request to the other end, initiated by 'ping'
2: received an ARP request from the other end
3: received the ARP reply from the other end

The ICMP echo request packet was created in step u-boot#1, stored in the
transmit packet buffer, but was corrupted in step u-boot#2 when handling
the response to ARP request using the same buffer, and finally the
same buffer was sent out in step u-boot#3 as the follow-up on ARP reply.
This leads to 'ping' timeout since the ICMP echo request was never
sent out to the other end, instead a duplicated ARP reply packet
was sent out and ignored by the other end.

Similar corruption can happen with other protocols like TFTP, which
leads to TFTP transfer timeout.

Use the dedicated ARP transmit packet buffer ('arp_tx_packet') to
avoid such issue.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Sep 26, 2018
At present the response to ARP request is copied to the transmit
packet buffer ('net_tx_packet') and sent out. This won't fail on
most cases, but unfortunately is potentially broken under certain
circumstances.

For example, considering the following packet sequence:

1: placed an ARP request to the other end, initiated by 'ping'
2: received an ARP request from the other end
3: received the ARP reply from the other end

The ICMP echo request packet was created in step u-boot#1, stored in the
transmit packet buffer, but was corrupted in step u-boot#2 when handling
the response to ARP request using the same buffer, and finally the
same buffer was sent out in step u-boot#3 as the follow-up on ARP reply.
This leads to 'ping' timeout since the ICMP echo request was never
sent out to the other end, instead a duplicated ARP reply packet
was sent out and ignored by the other end.

Similar corruption can happen with other protocols like TFTP, which
leads to TFTP transfer timeout.

Use the dedicated ARP transmit packet buffer ('arp_tx_packet') to
avoid such issue.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Sep 27, 2018
At present the response to ARP request is copied to the transmit
packet buffer ('net_tx_packet') and sent out. This won't fail on
most cases, but unfortunately is potentially broken under certain
circumstances.

For example, considering the following packet sequence:

1: placed an ARP request to the other end, initiated by 'ping'
2: received an ARP request from the other end
3: received the ARP reply from the other end

The ICMP echo request packet was created in step u-boot#1, stored in the
transmit packet buffer, but was corrupted in step u-boot#2 when handling
the response to ARP request using the same buffer, and finally the
same buffer was sent out in step u-boot#3 as the follow-up on ARP reply.
This leads to 'ping' timeout since the ICMP echo request was never
sent out to the other end, instead a duplicated ARP reply packet
was sent out and ignored by the other end.

Similar corruption can happen with other protocols like TFTP, which
leads to TFTP transfer timeout.

Use the dedicated ARP transmit packet buffer ('arp_tx_packet') to
avoid such issue.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Oct 10, 2018
At present the response to ARP request is copied to the transmit
packet buffer ('net_tx_packet') and sent out. This won't fail on
most cases, but unfortunately is potentially broken under certain
circumstances.

For example, considering the following packet sequence:

1: placed an ARP request to the other end, initiated by 'ping'
2: received an ARP request from the other end
3: received the ARP reply from the other end

The ICMP echo request packet was created in step u-boot#1, stored in the
transmit packet buffer, but was corrupted in step u-boot#2 when handling
the response to ARP request using the same buffer, and finally the
same buffer was sent out in step u-boot#3 as the follow-up on ARP reply.
This leads to 'ping' timeout since the ICMP echo request was never
sent out to the other end, instead a duplicated ARP reply packet
was sent out and ignored by the other end.

Similar corruption can happen with other protocols like TFTP, which
leads to TFTP transfer timeout.

Use the dedicated ARP transmit packet buffer ('arp_tx_packet') to
avoid such issue.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Airtau referenced this pull request in Airtau-A64/u-boot Oct 17, 2018
@bufferoverflow
Copy link
Member

u-boot community does not handle PRs on GitHub, please read https://github.com/u-boot/u-boot/blob/master/README

trini pushed a commit that referenced this pull request Apr 14, 2019
v2019.04-rc3 sandbox U-Boot fails to boot when compiled with
 -fsanitize=address and linked against -lasan, reporting [1].

Git bisecting shows that the issue is contributed by v2019.01 commit
1678754 ("core: ofnode: Fix ofnode_get_addr_index function").

The root cause seems to be the mismatch between sizeof(u64) and
sizeof(fdt_size_t) on sandbox. Luckily, thanks to the fact that the
size argument of both of_get_address() and fdtdec_get_addr_size_fixed()
is optional, we can pass NULL in its place, avoiding the problem.

[1] Backtrace reported by ASAN (gcc 8.1.0):

$> ./u-boot -d arch/sandbox/dts/sandbox.dtb
[..]
Reviewed-by: Simon Glass <sjg@chromium.org>

=================================================================
==10998==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffcc2331140 at pc 0x0000004eeeb0 bp 0x7ffcc2330f80 sp 0x7ffcc2330f70
WRITE of size 8 at 0x7ffcc2331140 thread T0
    #0 0x4eeeaf in of_get_address drivers/core/of_addr.c:154
    #1 0x4f7441 in ofnode_get_addr_index drivers/core/ofnode.c:263
    #2 0x5b2a78 in sb_eth_ofdata_to_platdata drivers/net/sandbox.c:422
    #3 0x4dccd8 in device_probe drivers/core/device.c:407
    #4 0x753170 in eth_initialize net/eth-uclass.c:428
    #5 0x47d9bf in initr_net common/board_r.c:557
    #6 0x6bcfa7 in initcall_run_list lib/initcall.c:30
    #7 0x47e1fe in board_init_r common/board_r.c:859
    #8 0x4060e5 in main arch/sandbox/cpu/start.c:356
    #9 0x7fb8d135482f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
    #10 0x40a3a8 in _start (/path/to/u-boot/u-boot+0x40a3a8)

Address 0x7ffcc2331140 is located in stack of thread T0 at offset 32 in frame
    #0 0x4f72b8 in ofnode_get_addr_index drivers/core/ofnode.c:255

  This frame has 3 object(s):
    [32, 36) 'size' <== Memory access at offset 32 partially overflows this variable
    [96, 100) 'flags'
    [160, 168) 'node'
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow drivers/core/of_addr.c:154 in of_get_address
Shadow bytes around the buggy address:
  0x10001845e1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10001845e1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10001845e1f0: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
  0x10001845e200: 04 f2 f2 f2 f2 f2 f2 f2 04 f2 f2 f2 f2 f2 f2 f2
  0x10001845e210: 04 f2 f2 f2 f3 f3 f3 f3 00 00 00 00 00 00 00 00
=>0x10001845e220: 00 00 00 00 f1 f1 f1 f1[04]f2 f2 f2 f2 f2 f2 f2
  0x10001845e230: 04 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 f3 f3 f3 f3
  0x10001845e240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10001845e250: 00 00 00 00 f1 f1 f1 f1 00 00 f2 f2 f3 f3 f3 f3
  0x10001845e260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
  0x10001845e270: f1 f1 00 f2 f2 f2 f3 f3 f3 f3 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==10998==ABORTING

'To' list:
 git log --since=1year drivers/core/ofnode.c | grep "\-by: .*@" | \
     sed 's/.*-by: //' | sort | uniq -c | sort -rn
     10 Simon Glass <sjg@chromium.org>
      3 Mario Six <mario.six@gdsys.cc>
      2 Martin Fuzzey <mfuzzey@parkeon.com>
      2 Marek Vasut <marek.vasut+renesas@gmail.com>
      1 Tom Rini <trini@konsulko.com>
      1 Masahiro Yamada <yamada.masahiro@socionext.com>
      1 Keerthy <j-keerthy@ti.com>
      1 Jens Wiklander <jens.wiklander@linaro.org>
      1 Bin Meng <bmeng.cn@gmail.com>

Fixes: 1678754 ("core: ofnode: Fix ofnode_get_addr_index function")
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
aspeeddylan referenced this pull request in AspeedTech-BMC/u-boot Jul 11, 2019
greedyhao pushed a commit to greedyhao/u-boot that referenced this pull request Nov 18, 2019
roman3017 added a commit to roman3017/u-boot that referenced this pull request Dec 29, 2019
MrVan pushed a commit to MrVan/u-boot that referenced this pull request Dec 30, 2019
This patch introduces support for i.MX28 based XEA board.

This board supports DM/DTS in U-Boot proper as well as DM aware drivers
in SPL (u-boot.sb) by using OF_PLATDATA.
More detailed information regarding usage of it can be found in
./board/liebherr/xea/README file.

U-Boot SPL 2019.10-rc1-00233-g6aa549f05c (Aug 12 2019 - 09:23:36 +0200)
Trying to boot from MMC1
MMC0: Command 8 timeout (status 0xf0344020)
mmc_load_image_raw_sector: mmc block read error

U-Boot 2019.10-rc1-00233-g6aa549f05c (Aug 12 2019 - 09:23:36 +0200)

CPU:   Freescale i.MX28 rev1.2 at 454 MHz
BOOT:  SSP SPI u-boot#3, master, 3V3 NOR
Model: Liebherr (LWE) XEA i.MX28 Board
DRAM:  128 MiB
MMC:   MXS MMC: 0
Loading Environment from SPI Flash... SF: Detected n25q128a13 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
OK
In:    serial
Out:   serial
Err:   serial
Net:
Warning: ethernet@800f0000 (eth0) using random MAC address - ce:e1:9e:46:f3:a2
eth0: ethernet@800f0000
Hit any key to stop autoboot:  0

Signed-off-by: Lukasz Majewski <lukma@denx.de>
trini pushed a commit that referenced this pull request Jan 7, 2020
This patch introduces support for i.MX28 based XEA board.

This board supports DM/DTS in U-Boot proper as well as DM aware drivers
in SPL (u-boot.sb) by using OF_PLATDATA.
More detailed information regarding u
10000
sage of it can be found in
./board/liebherr/xea/README file.

U-Boot SPL 2019.10-rc1-00233-g6aa549f05c (Aug 12 2019 - 09:23:36 +0200)
Trying to boot from MMC1
MMC0: Command 8 timeout (status 0xf0344020)
mmc_load_image_raw_sector: mmc block read error

U-Boot 2019.10-rc1-00233-g6aa549f05c (Aug 12 2019 - 09:23:36 +0200)

CPU:   Freescale i.MX28 rev1.2 at 454 MHz
BOOT:  SSP SPI #3, master, 3V3 NOR
Model: Liebherr (LWE) XEA i.MX28 Board
DRAM:  128 MiB
MMC:   MXS MMC: 0
Loading Environment from SPI Flash... SF: Detected n25q128a13 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
OK
In:    serial
Out:   serial
Err:   serial
Net:
Warning: ethernet@800f0000 (eth0) using random MAC address - ce:e1:9e:46:f3:a2
eth0: ethernet@800f0000
Hit any key to stop autoboot:  0

Signed-off-by: Lukasz Majewski <lukma@denx.de>
fbertux referenced this pull request in OSSystems/u-boot Sep 29, 2020
Compiling U-Boot with ubsan/asan libraries and running it in sandbox
may lead to below backtrace:

 => avb init 0
 => avb verify
 ## Android Verified Boot 2.0 version 1.1.0
read_is_device_unlocked not supported yet
common/avb_verify.c:407:31: runtime error: division by zero
AddressSanitizer:DEADLYSIGNAL
Reviewed-by: Igor Opaniuk <igor.opaniuk@linaro.org>

=================================================================
==9388==ERROR: AddressSanitizer: FPE on unknown address 0x0000004b467f \
    (pc 0x0000004b467f bp 0x000000000000 sp 0x7ffd899fe150 T0)
    #0 0x4b467e in mmc_byte_io common/avb_verify.c:407
    #1 0x4b4c47 in mmc_byte_io common/avb_verify.c:532
    #2 0x4b4c47 in read_from_partition common/avb_verify.c:533
    #3 0x69dc0d in load_and_verify_vbmeta lib/libavb/avb_slot_verify.c:560
    #4 0x6a1ee6 in avb_slot_verify lib/libavb/avb_slot_verify.c:1139
    #5 0x45dabd in do_avb_verify_part cmd/avb.c:245
    #6 0x4af77c in cmd_call common/command.c:499
    u-boot#7 0x4af77c in cmd_process common/command.c:538
    u-boot#8 0x46bafc in run_pipe_real common/cli_hush.c:1677
    u-boot#9 0x46bafc in run_list_real common/cli_hush.c:1875
    u-boot#10 0x46c780 in run_list common/cli_hush.c:2024
    u-boot#11 0x46c780 in parse_stream_outer common/cli_hush.c:3216
    u-boot#12 0x46d34b in parse_file_outer common/cli_hush.c:3299
    u-boot#13 0x4ad609 in cli_loop common/cli.c:217
    u-boot#14 0x4625ae in main_loop common/main.c:65
    u-boot#15 0x46f2d1 in run_main_loop common/board_r.c:648
    u-boot#16 0x640253 in initcall_run_list lib/initcall.c:30
    u-boot#17 0x46f9d0 in board_init_r common/board_r.c:879
    u-boot#18 0x40539b in main arch/sandbox/cpu/start.c:321
    u-boot#19 0x7fa94925f82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
    u-boot#20 0x408908 in _start (/srv/R/u-boot-master/u-boot+0x408908)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: FPE common/avb_verify.c:407 in mmc_byte_io
==9388==ABORTING

Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
nekromant referenced this pull request in RC-MODULE/u-boot Feb 3, 2021
…8-develop

* commit '2c1893c30b8cfe7f1991cf41ab48b74d14bf3098':
  [Fix-Eth] PHY Initialization
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Feb 7, 2021
Add a reST document to describe how to build and run U-Boot for
the QEMU ppce500 machine.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

Series-to: Simon, Alexander Graf <agraf@csgraf.de>, Priyanka Jain <priyanka.jain@nxp.com>
Series-cc: Tom, U-Boot
Cover-letter:
ppc: qemu: Convert qemu-ppce500 to driver model
At present when building qemu-ppce500 the following warnings are seen:

===================== WARNING ======================
This board does not use CONFIG_DM. CONFIG_DM will be
compulsory starting with the v2020.01 release.
Failure to update may result in board removal.
  UPD     include/generated/timestamp_autogenerated.h
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_PCI Please update
the board to use CONFIG_DM_PCI before the v2019.07 release.
Failure to update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_ETH (Driver Model
for Ethernet drivers). Please update the board to use
CONFIG_DM_ETH before the v2020.07 release. Failure to
update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================

The conversion of qemu-ppce500 board to driver model is long overdue.

When testing the exisitng qemu-ppce500 support, PCI was found broken.
This is caused by 2 separate issues:

- One issue was caused by U-Boot:
  Commit e002474 ("pci: pci-uclass: Dynamically allocate the PCI regions")
  Patch u-boot#1 reverts this commit as it broken all boards that have not converted
  to driver model PCI.
- One issue was caused by QEMU:
  commit e6b4e5f4795b ("PPC: e500: Move CCSR and MMIO space to upper end of address space")
  commit cb3778a0455a ("PPC: e500 pci host: Add support for ATMUs")
  Patch u-boot#3-4 fixed this issue to keep in sync with latest QEMU upstream

Patch u-boot#5-8 are minor fixes and clean-ups.

Starting from patch#9, these are driver model conversion patches.

Patch u-boot#11-16 are mainly related to CONFIG_ADDR_MAP, a library to support targets
that have non-identity virtual-physical address mappings. A new command 'addrmap'
is introduced to aid debugging, and a fix to arch/powerpc/asm/include/io.h is
made to correct the usage of CONFIG_ADDR_MAP as it can only be used in the post-
relocation phase. Also the initialization of this library is moved a bit earlier
in the post-relocation phase otherwise device drivers won't work.

Patch u-boot#18-20 are 85xx PCI driver fixes. It adds the support to 64-bit bus and cpu
address as current upstream QEMU uses 64-bit cpu address.

Patch u-boot#23 is minor fix to the 'virtio' command dependency.

Patch u-boot#24 enables the VirtIO NET support as by default a VirtIO standard PCI
networking device is connected as an ethernet interface at PCI address 0.1.0.

Patch u-boot#25 moves the qemu-ppce500 boards codes to board/emulation as that is the
place for other QEMU targets like x86, arm, riscv.

Patch u-boot#26 adds a reST document to describe how to build and run U-Boot for the
QEMU ppce500 machine.

I hope we can make this series to U-Boot v2021.04 release.

This series is available at u-boot-x86/qemu-ppc for testing.

This cover letter is cc'ed to QEMU mailing list for a heads-up.
A future patch will be sent to QEMU mailing list to bring its in-tree
U-Boot source codes up-to-date.
END
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Feb 7, 2021
Add a reST document to describe how to build and run U-Boot for
the QEMU ppce500 machine.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

Series-to: Simon, Alexander Graf <agraf@csgraf.de>, Priyanka Jain <priyanka.jain@nxp.com>
Series-cc: Tom, U-Boot
Cover-letter:
ppc: qemu: Convert qemu-ppce500 to driver model
At present when building qemu-ppce500 the following warnings are seen:

===================== WARNING ======================
This board does not use CONFIG_DM. CONFIG_DM will be
compulsory starting with the v2020.01 release.
Failure to update may result in board removal.
  UPD     include/generated/timestamp_autogenerated.h
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_PCI Please update
the board to use CONFIG_DM_PCI before the v2019.07 release.
Failure to update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_ETH (Driver Model
for Ethernet drivers). Please update the board to use
CONFIG_DM_ETH before the v2020.07 release. Failure to
update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================

The conversion of qemu-ppce500 board to driver model is long overdue.

When testing the exisitng qemu-ppce500 support, PCI was found broken.
This is caused by 2 separate issues:

- One issue was caused by U-Boot:
  Commit e002474 ("pci: pci-uclass: Dynamically allocate the PCI regions")
  Patch u-boot#1 reverts this commit as it broken all boards that have not converted
  to driver model PCI.
- One issue was caused by QEMU:
  commit e6b4e5f4795b ("PPC: e500: Move CCSR and MMIO space to upper end of address space")
  commit cb3778a0455a ("PPC: e500 pci host: Add support for ATMUs")
  Patch u-boot#3-4 fixed this issue to keep in sync with latest QEMU upstream

Patch u-boot#5-8 are minor fixes and clean-ups.

Starting from patch#9, these are driver model conversion patches.

Patch u-boot#11-16 are mainly related to CONFIG_ADDR_MAP, a library to support targets
that have non-identity virtual-physical address mappings. A new command 'addrmap'
is introduced to aid debugging, and a fix to arch/powerpc/asm/include/io.h is
made to correct the usage of CONFIG_ADDR_MAP as it can only be used in the post-
relocation phase. Also the initialization of this library is moved a bit earlier
in the post-relocation phase otherwise device drivers won't work.

Patch u-boot#18-20 are 85xx PCI driver fixes. It adds support to controller register
physical address beyond 32-bit, as well as support to 64-bit bus and cpu address
as current upstream QEMU uses 64-bit cpu address.

Patch u-boot#23 is minor fix to the 'virtio' command dependency.

Patch u-boot#24 enables the VirtIO NET support as by default a VirtIO standard PCI
networking device is connected as an ethernet interface at PCI address 0.1.0.

Patch u-boot#25 moves the qemu-ppce500 boards codes to board/emulation as that is the
place for other QEMU targets like x86, arm, riscv.

Patch u-boot#26 adds a reST document to describe how to build and run U-Boot for the
QEMU ppce500 machine.

I hope we can make this series to U-Boot v2021.04 release.

This series is available at u-boot-x86/qemu-ppc for testing.

This cover letter is cc'ed to QEMU mailing list for a heads-up.
A future patch will be sent to QEMU mailing list to bring its in-tree
U-Boot source codes up-to-date.
END
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Feb 18, 2021
Add a reST document to describe how to build and run U-Boot for
the QEMU ppce500 machine.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

Series-version: 2
Series-changes: 2
- add descriptions for VirtIO BLK, RTC and power off

Series-to: Simon, Alexander Graf <agraf@csgraf.de>, Priyanka Jain <priyanka.jain@nxp.com>
Series-cc: Tom, U-Boot
Cover-letter:
ppc: qemu: Convert qemu-ppce500 to driver model and enable additional driver support
At present when building qemu-ppce500 the following warnings are seen:

===================== WARNING ======================
This board does not use CONFIG_DM. CONFIG_DM will be
compulsory starting with the v2020.01 release.
Failure to update may result in board removal.
  UPD     include/generated/timestamp_autogenerated.h
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_PCI Please update
the board to use CONFIG_DM_PCI before the v2019.07 release.
Failure to update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_ETH (Driver Model
for Ethernet drivers). Please update the board to use
CONFIG_DM_ETH before the v2020.07 release. Failure to
update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================

The conversion of qemu-ppce500 board to driver model is long overdue.

When testing the exisitng qemu-ppce500 support, PCI was found broken.
This is caused by 2 separate issues:

- One issue was caused by U-Boot:
  Commit e002474 ("pci: pci-uclass: Dynamically allocate the PCI regions")
  Patch u-boot#1 updated the non-DM fsl_pci_init driver to dynamically allocate the
  PCI regions, to keep in sync with the pci uclass driver
- One issue was caused by QEMU:
  commit e6b4e5f4795b ("PPC: e500: Move CCSR and MMIO space to upper end of address space")
  commit cb3778a0455a ("PPC: e500 pci host: Add support for ATMUs")
  Patch u-boot#3-4 fixed this issue to keep in sync with latest QEMU upstream

Patch u-boot#5-8, u-boot#34-36 are minor fixes and clean-ups.

Starting from patch#9, these are driver model conversion patches.

Patch u-boot#11-17 are mainly related to CONFIG_ADDR_MAP, a library to support targets
that have non-identity virtual-physical address mappings. A new command 'addrmap'
is introduced to aid debugging, and a fix to arch/powerpc/asm/include/io.h is
made to correct the usage of CONFIG_ADDR_MAP as it can only be used in the post-
relocation phase. Also the initialization of this library is moved a bit earlier
in the post-relocation phase otherwise device drivers won't work.

Patch u-boot#19-21 are 85xx PCI driver fixes. It adds support to controller register
physical address beyond 32-bit, as well as support to 64-bit bus and cpu address
as current upstream QEMU uses 64-bit cpu address.

Starting from patch#24, these are additional driver support patches.

Patch u-boot#24, u-boot#26 are minor fix to the 'virtio' command and BLK driver dependency.

Patch u-boot#25 enables the VirtIO NET support as by default a VirtIO standard PCI
networking device is connected as an ethernet interface at PCI address 0.1.0.

Patch u-boot#27 enables the VirtIO BLK driver support.

Patch u-boot#28-30 enables the GPIO support.

Patch u-boot#31-32 enables poweroff via GPIO.

Patch u-boot#33 enables RTC over the I2C bus.

Patch u-boot#37 moves the qemu-ppce500 boards codes to board/emulation as that is the
place for other QEMU targets like x86, arm, riscv.

Patch u-boot#38 adds a reST document to describe how to build and run U-Boot for the
QEMU ppce500 machine.

I hope we can make this series to U-Boot v2021.04 release.

This series is available at u-boot-x86/qemu-ppc for testing.

This cover letter is cc'ed to QEMU mailing list for a heads-up.
A future patch will be sent to QEMU mailing list to bring its in-tree
U-Boot source codes up-to-date.
END
trini pushed a commit that referenced this pull request Feb 22, 2021
Add adc-keys device to the sandbox/test.dts and connect it to the channel
#3 of the sandbox_adc driver. The default values sampled by sandbox_adc
driver determines that button3 and button4 are released and button5 is
pressed.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
lbmeng added a commit to lbmeng/u-boot that referenced this pull request Feb 25, 2021
Add a reST document to describe how to build and run U-Boot for
the QEMU ppce500 machine.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>

Series-version: 3
Series-changes: 3
- rebase on top of u-boot/master

Series-changes: 2
- add descriptions for VirtIO BLK, RTC and power off

Series-to: Simon, Alexander Graf <agraf@csgraf.de>, Priyanka Jain <priyanka.jain@nxp.com>
Series-cc: Tom, U-Boot
Cover-letter:
ppc: qemu: Convert qemu-ppce500 to driver model and enable additional driver support
At present when building qemu-ppce500 the following warnings are seen:

===================== WARNING ======================
This board does not use CONFIG_DM. CONFIG_DM will be
compulsory starting with the v2020.01 release.
Failure to update may result in board removal.
  UPD     include/generated/timestamp_autogenerated.h
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_PCI Please update
the board to use CONFIG_DM_PCI before the v2019.07 release.
Failure to update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_ETH (Driver Model
for Ethernet drivers). Please update the board to use
CONFIG_DM_ETH before the v2020.07 release. Failure to
update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================

The conversion of qemu-ppce500 board to driver model is long overdue.

When testing the exisitng qemu-ppce500 support, PCI was found broken.
This is caused by 2 separate issues:

- One issue was caused by U-Boot:
  Commit e002474 ("pci: pci-uclass: Dynamically allocate the PCI regions")
  Patch u-boot#1 updated the non-DM fsl_pci_init driver to dynamically allocate the
  PCI regions, to keep in sync with the pci uclass driver
- One issue was caused by QEMU:
  commit e6b4e5f4795b ("PPC: e500: Move CCSR and MMIO space to upper end of address space")
  commit cb3778a0455a ("PPC: e500 pci host: Add support for ATMUs")
  Patch u-boot#3-4 fixed this issue to keep in sync with latest QEMU upstream

Patch u-boot#5-8, u-boot#34-36 are minor fixes and clean-ups.

Starting from patch#9, these are driver model conversion patches.

Patch u-boot#11-17 are mainly related to CONFIG_ADDR_MAP, a library to support targets
that have non-identity virtual-physical address mappings. A new command 'addrmap'
is introduced to aid debugging, and a fix to arch/powerpc/asm/include/io.h is
made to correct the usage of CONFIG_ADDR_MAP as it can only be used in the post-
relocation phase. Also the initialization of this library is moved a bit earlier
in the post-relocation phase otherwise device drivers won't work.

Patch u-boot#19-21 are 85xx PCI driver fixes. It adds support to controller register
physical address beyond 32-bit, as well as support to 64-bit bus and cpu address
as current upstream QEMU uses 64-bit cpu address.

Starting from patch#24, these are additional driver support patches.

Patch u-boot#24, u-boot#26 are minor fix to the 'virtio' command and BLK driver dependency.

Patch u-boot#25 enables the VirtIO NET support as by default a VirtIO standard PCI
networking device is connected as an ethernet interface at PCI address 0.1.0.

Patch u-boot#27 enables the VirtIO BLK driver support.

Patch u-boot#28-30 enables the GPIO support.

Patch u-boot#31-32 enables poweroff via GPIO.

Patch u-boot#33 enables RTC over the I2C bus.

Patch u-boot#37 moves the qemu-ppce500 boards codes to board/emulation as that is the
place for other QEMU targets like x86, arm, riscv.

Patch u-boot#38 adds a reST document to describe how to build and run U-Boot for the
QEMU ppce500 machine.

I hope we can make this series to U-Boot v2021.04 release.

This series is available at u-boot-x86/qemu-ppc for testing.

This cover letter is cc'ed to QEMU mailing list for a heads-up.
A future patch will be sent to QEMU mailing list to bring its in-tree
U-Boot source codes up-to-date.
END
apalos referenced this pull request in apalos/u-boot Mar 4, 2021
Add adc-keys device to the sandbox/test.dts and connect it to the channel
#3 of the sandbox_adc driver. The default values sampled by sandbox_adc
driver determines that button3 and button4 are released and button5 is
pressed.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
unframework referenced this pull request in unframework/u-boot Mar 21, 2021
unframework referenced this pull request in unframework/u-boot Mar 21, 2021
Rebased PR #3 from Lichee-Pi/u-boot
Mr-Bossman pushed a commit to Mr-Bossman/u-boot that referenced this pull request Dec 12, 2021
Post-Icenowy fixes due to changes to includes and Makefiles
Mr-Bossman pushed a commit to Mr-Bossman/u-boot that referenced this pull request Dec 12, 2021
svenschwermer added a commit to svenschwermer/u-boot that referenced this pull request Feb 9, 2022
Add ccon-02 board support

Approved-by: Fredrik Flornes Ellertsen
matwey added a commit to matwey/u-boot that referenced this pull request Aug 23, 2022
There are three different kinds of EEPROM possibly present on boards.
  1. 1byte address. For those we should avoid 2byte address in order
     not to rewrite the data. Second byte of the address can potentially
     be interpreted as the data to write.
  2. 2byte address with defined behaviour. When we try to use 1byte
     address they just return "FF FF FF FF ... FF"
  3. 2byte address with undefined behaviour (for instance, 24LC32AI).
     When we try to use 1byte address, then their internal read
     pointer is changed to some value. Subsequential reads may be
     broken.

To gracefully handle both case u-boot#1 and case u-boot#3 we read all required
data from EEPROM at once (about 80 bytes). So either all the data is
valid or we fallback to 2byte address.

Cc: Nishanth Menon <nm@ti.com>
Fixes: a58147c ("board: ti: common: board_detect: Do 1byte address checks first.")
Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
matwey added a commit to matwey/u-boot that referenced this pull request Aug 23, 2022
There are three different kinds of EEPROM possibly present on boards.
  1. 1byte address. For those we should avoid 2byte address in order
     not to rewrite the data. Second byte of the address can potentially
     be interpreted as the data to write.
  2. 2byte address with defined behaviour. When we try to use 1byte
     address they just return "FF FF FF FF ... FF"
  3. 2byte address with undefined behaviour (for instance, 24LC32AI).
     When we try to use 1byte address, then their internal read
     pointer is changed to some value. Subsequential reads may be
     broken.

To gracefully handle both case u-boot#1 and case u-boot#3 we read all required
data from EEPROM at once (about 80 bytes). So either all the data is
valid or we fallback to 2byte address.

Cc: Nishanth Menon <nm@ti.com>
Fixes: a58147c ("board: ti: common: board_detect: Do 1byte address checks first.")
Reference: https://lore.kernel.org/all/CAJs94Ebdd4foOjhGFu9Bop0v=B1US9neDLxfhgcY23ukgLzFOQ@mail.gmail.com/
Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
trini pushed a commit that referenced this pull request Aug 31, 2022
There are three different kinds of EEPROM possibly present on boards.
  1. 1byte address. For those we should avoid 2byte address in order
     not to rewrite the data. Second byte of the address can potentially
     be interpreted as the data to write.
  2. 2byte address with defined behaviour. When we try to use 1byte
     address they just return "FF FF FF FF ... FF"
  3. 2byte address with undefined behaviour (for instance, 24LC32AI).
     When we try to use 1byte address, then their internal read
     pointer is changed to some value. Subsequential reads may be
     broken.

To gracefully handle both case #1 and case #3 we read all required
data from EEPROM at once (about 80 bytes). So either all the data is
valid or we fallback to 2byte address.

Cc: Nishanth Menon <nm@ti.com>
Fixes: a58147c ("board: ti: common: board_detect: Do 1byte address checks first.")
Reference: https://lore.kernel.org/all/CAJs94Ebdd4foOjhGFu9Bop0v=B1US9neDLxfhgcY23ukgLzFOQ@mail.gmail.com/
Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
Acked-by: Nishanth Menon <nm@ti.com>
jdolanIV pushed a commit to accesio/u-boot that referenced this pull request Jun 28, 2023
commit  bf63766 upstream.

There are three different kinds of EEPROM possibly present on boards.
  1. 1byte address. For those we should avoid 2byte address in order
     not to rewrite the data. Second byte of the address can potentially
     be interpreted as the data to write.
  2. 2byte address with defined behaviour. When we try to use 1byte
     address they just return "FF FF FF FF ... FF"
  3. 2byte address with undefined behaviour (for instance, 24LC32AI).
     When we try to use 1byte address, then their internal read
     pointer is changed to some value. Subsequential reads may be
     broken.

To gracefully handle both case u-boot#1 and case u-boot#3 we read all required
data from EEPROM at once (about 80 bytes). So either all the data is
valid or we fallback to 2byte address.

Cc: Nishanth Menon <nm@ti.com>
Fixes: a58147c ("board: ti: common: board_detect: Do 1byte address checks first.")
Reference: https://lore.kernel.org/all/CAJs94Ebdd4foOjhGFu9Bop0v=B1US9neDLxfhgcY23ukgLzFOQ@mail.gmail.com/
Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
Acked-by: Nishanth Menon <nm@ti.com>
RadxaNaoki pushed a commit to RadxaNaoki/u-boot that referenced this pull request Nov 13, 2024
Ilias Apalodimas <ilias.apalodimas@linaro.org> says:

Hi all,

This is a respin of [1] adding https support to wget. In short

patch#1 enables the crypto algorithms we need in mbedTLS
patches#2, u-boot#3 enable anf fix the lwIP part we need
patch#4 is adding https:// parsing support in our wget
patch#5 is making https:// the default for QEMU lwip defconfig so
people can easily test
and finaly patch#6 updates our documentation

[1] https://lore.kernel.org/u-boot/20241024112449.1362319-1-ilias.apalodimas@linaro.org/

Link: https://lore.kernel.org/r/20241110083017.367565-1-ilias.apalodimas@linaro.org
raymo200915 added a commit to raymo200915/u-boot-github that referenced this pull request Nov 18, 2024
Add detailed SMBIOS information as following:
1. Missing fields in Type u-boot#3 and u-boot#4
2. Type u-boot#7

Add support to dynamic length of contained object handles and
elements.

As SMBIOS is a fundamental feature which is enabled for all
boards, in order to avoid increasing rom size, all detailed SMBIOS
information is under kconfig GENERATE_SMBIOS_TABLE_VERBOSE.
Board maintainers can determine whether to select this feature.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
raymo200915 added a commit to raymo200915/u-boot-github that referenced this pull request Nov 21, 2024
Add detailed SMBIOS information as following:
1. Missing fields in Type u-boot#3 and u-boot#4
2. Type u-boot#7

Add support to dynamic length of contained object handles and
elements.

As SMBIOS is a fundamental feature which is enabled for all
boards, in order to avoid increasing rom size, all detailed SMBIOS
information is under kconfig GENERATE_SMBIOS_TABLE_VERBOSE.
Board maintainers can determine whether to select this feature.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
raymo200915 added a commit to raymo200915/u-boot-github that referenced this pull request Dec 5, 2024
Add detailed SMBIOS information as following:
1. Missing fields in Type u-boot#3 and u-boot#4
2. Type u-boot#7

Add support to dynamic length of contained object handles and
elements.

As SMBIOS is a fundamental feature which is enabled for all
boards, in order to avoid increasing rom size, all detailed SMBIOS
information is under kconfig GENERATE_SMBIOS_TABLE_VERBOSE.
Board maintainers can determine whether to select this feature.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
RadxaNaoki pushed a commit to RadxaNaoki/u-boot that referenced this pull request Jan 14, 2025
Add detailed SMBIOS information as following:
1. Missing fields in Type u-boot#3 and u-boot#4
2. Type u-boot#7

Add support to dynamic length of contained object handles and
elements.

As SMBIOS is a fundamental feature which is enabled for all
boards, in order to avoid increasing rom size, all detailed SMBIOS
information is under kconfig GENERATE_SMBIOS_TABLE_VERBOSE.
Board maintainers can determine whether to select this feature.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
RadxaNaoki pushed a commit to RadxaNaoki/u-boot that referenced this pull request Jan 14, 2025
Raymond Mao <raymond.mao@linaro.org> says:

Motivations for changes:
Current SMBIOS library and command-line tool is not fully matching with
the requirements:
1. Missing support for other mandatory types (u-boot#7, u-boot#9, u-boot#16, u-boot#17, u-boot#19).
2. Only a few platforms support SMBIOS node from the device tree.
3. Values of some fields are hardcoded in the library other than fetching
   from the device hardware.
4. Embedded data with dynamic length is not supported (E.g. Contained
   Object Handles in Type u-boot#2 and Contained Elements in Type u-boot#3)

Changes:
1. Refactor the SMBIOS library and command-line tool to better align with
   the SMBIOS spec.
2. Create an arch-specific driver for all aarch64-based platforms to fetch
   SMBIOS private data from the device hardware (processor and cache).
3. Create a sysinfo driver to poppulate platform SMBIOS private data.
4. Add generic SMBIOS DTS file for arm64 platforms for those common strings
   and values which cannot be retrieved from the system registers.
   Vendors can create their own SMBIOS node using this as an example.
   For those boards without SMBIOS nodes, this DTS file can be included to
   have a generic SMBIOS information of the system.
5. Add support for Type u-boot#7 (Cache Information) and link its handles to
   Type u-boot#4.
6. To minimize size-growth for those platforms which have not sufficient
   ROM spaces or the platforms which don't need detailed SMBIOS
   information, new added fields are only being built when kconfig
   GENERATE_SMBIOS_TABLE_VERBOSE is selected.

Once this patch is acceptted, subsequent patch sets will add other missing
types (u-boot#9, u-boot#16, u-boot#17, u-boot#19).

Tests:
To test this with QEMU arm64, please follow the guide on dt_qemu.rst to
get a merged DT to run with.
```
qemu-system-aarch64 -machine virt -machine dumpdtb=qemu.dtb
cat  <(dtc -I dtb qemu.dtb) <(dtc -I dtb ./dts/dt.dtb | grep -v /dts-v1/) \
  | dtc - -o merged.dtb
qemu-system-aarch64 -machine virt -nographic -bios u-boot.bin \
  -dtb merged.dtb
```

Link: https://lore.kernel.org/r/20241206225438.13866-1-raymond.mao@linaro.org
trini pushed a commit that referenced this pull request Jan 14, 2025
Add detailed SMBIOS information as following:
1. Missing fields in Type #3 and #4
2. Type #7

Add support to dynamic length of contained object handles and
elements.

As SMBIOS is a fundamental feature which is enabled for all
boards, in order to avoid increasing rom size, all detailed SMBIOS
information is under kconfig GENERATE_SMBIOS_TABLE_VERBOSE.
Board maintainers can determine whether to select this feature.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
trini added a commit that referenced this pull request Jan 14, 2025
Raymond Mao <raymond.mao@linaro.org> says:

Motivations for changes:
Current SMBIOS library and command-line tool is not fully matching with
the requirements:
1. Missing support for other mandatory types (#7, #9, #16, #17, #19).
2. Only a few platforms support SMBIOS node from the device tree.
3. Values of some fields are hardcoded in the library other than fetching
   from the device hardware.
4. Embedded data with dynamic length is not supported (E.g. Contained
   Object Handles in Type #2 and Contained Elements in Type #3)

Changes:
1. Refactor the SMBIOS library and command-line tool to better align with
   the SMBIOS spec.
2. Create an arch-specific driver for all aarch64-based platforms to fetch
   SMBIOS private data from the device hardware (processor and cache).
3. Create a sysinfo driver to poppulate platform SMBIOS private data.
4. Add generic SMBIOS DTS file for arm64 platforms for those common strings
   and values which cannot be retrieved from the system registers.
   Vendors can create their own SMBIOS node using this as an example.
   For those boards without SMBIOS nodes, this DTS file can be included to
   have a generic SMBIOS information of the system.
5. Add support for Type #7 (Cache Information) and link its handles to
   Type #4.
6. To minimize size-growth for those platforms which have not sufficient
   ROM spaces or the platforms which don't need detailed SMBIOS
   information, new added fields are only being built when kconfig
   GENERATE_SMBIOS_TABLE_VERBOSE is selected.

Once this patch is acceptted, subsequent patch sets will add other missing
types (#9, #16, #17, #19).

Tests:
To test this with QEMU arm64, please follow the guide on dt_qemu.rst to
get a merged DT to run with.
```
qemu-system-aarch64 -machine virt -machine dumpdtb=qemu.dtb
cat  <(dtc -I dtb qemu.dtb) <(dtc -I dtb ./dts/dt.dtb | grep -v /dts-v1/) \
  | dtc - -o merged.dtb
qemu-system-aarch64 -machine virt -nographic -bios u-boot.bin \
  -dtb merged.dtb
```

Link: https://lore.kernel.org/r/20241206225438.13866-1-raymond.mao@linaro.org
ArchUsr64 added a commit to ArchUsr64/u-boot that referenced this pull request May 23, 2025
For properly configuring the MMU on various k3 platforms, the
reserved-memory regions need to be queried at runtime from the
device-tree and the MMU table should be updated accordingly.

For the A-core SPL, the DDR is divided into three areas as follows:

  0x80000000  +------------------+ CFG_SYS_SDRAM_BASE
              |                  |
    512KiB    | u-boot#1 Non cacheable | reserved for ATF/OP-TEE
              |                  |
  0x80080000  |------------------| CONFIG_SPL_TEXT_BASE
              |                  |
    128MiB    | u-boot#2 Cacheable     | for runtime usage by the A-core SPL
              |                  |
  0x88080000  |------------------|
              |                  |
    1.9GiB    | u-boot#3 Non cacheable | reserved for DM/tifs-stub etc.
              |                  |
  0x100000000 +------------------+ End of DDR

This patch adds the required fixups to the MMU table (during proper
U-boot stage) from dram_init as follows:

1. Apply the fixups to the reserved-memory node by fdt_fixup_reserved.
2. Loop through all the subnodes in reserved-memory, marking each as
   non-cacheable.
3. Query the DT for memory size and create cacheable regions spanning
   the entire DDR with reserved regions carved out.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
ArchUsr64 added a commit to ArchUsr64/u-boot that referenced this pull request May 28, 2025
Currently in upstream u-boot we only provide a single MMU table for
all k3 platforms, this does not scale for devices with reserved memory
outside the range 0x9e780000 - 0xa0000000 (eg j722s[1]) or for devices
with < 2GiB of memory
852C
 (eg am62sip).

To properly configure the MMU on various k3 platforms, the
reserved-memory regions need to be queried at runtime from the
device-tree and the MMU table should be updated accordingly.

This patch adds the required fixups to the MMU table (during proper
U-boot stage) by marking the reserved regions as non cacheable and
the remaining area as cacheable.

For the A-core SPL, the DDR is divided into three areas as follows:

  0x80000000  +------------------+ CFG_SYS_SDRAM_BASE
              |                  |
    512KiB    | u-boot#1 Non cacheable | reserved for ATF/OP-TEE
              |                  |
  0x80080000  |------------------| CONFIG_SPL_TEXT_BASE
              |                  |
    128MiB    | u-boot#2 Cacheable     | for runtime usage by the A-core SPL
              |                  |
  0x88080000  |------------------|
              |                  |
    1.9GiB    | u-boot#3 Non cacheable | reserved for DM/tifs-stub etc.
              |                  |
  0x100000000 +------------------+ End of DDR

The 128MiB size is chosen to allow for future use cases such as A53 SPL
falcon boot which would require loading kernel image from the SPL stage
while also ensuring the reserved memory regions that all exist past
0x88080000 are non cacheable.

[1]:
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/arch/arm/mach-k3/arm64/arm64-mmu.c?h=ti-u-boot-2025.01-next#n54

Depends on:
  [PATCH v1] ti: k3: abstract common fdt api for reserved mem fixups
  https://lore.kernel.org/u-boot/20250522150941.563959-1-anshuld@ti.com/

Boot test:
  http://lcpdresults.itg.ti.com/launcher/results/28618
  (*internal link*: will be removed before posting upstream)

Signed-off-by: Anshul Dalal <anshuld@ti.com>
trini pushed a commit that referenced this pull request Jun 17, 2025
The btt[c3] devices are based on imx287 SoC.

U-Boot SPL 2025.04-01081-g07e086681d26 (Apr 16 2025 - 12:24:36 +0200)
Trying to boot from MMC1

U-Boot 2025.04-01081-g07e086681d26 (Apr 16 2025 - 12:24:36 +0200)

CPU:   Freescale i.MX28 rev1.2 at 454 MHz
BOOT:  SSP SPI #3, master, 3V3 NOR
Model: BTT3
Board: LWE BTT SoM HW rev 0
DRAM:  256 MiB
Core:  86 devices, 15 uclasses, devicetree: separate
MMC:   MXS MMC: 0
Loading Environment from SPIFlash... SF: Detected is25lp128 with page
                    size 256 Bytes, erase size 64 KiB, total 16 MiB
OK
In:    serial@80074000
Out:   serial@80074000
Err:   serial@80074000
Net:   eth0: ethernet@800f0000
Hit any key to stop autoboot:  0

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants
0