Jump to content

Next LTS kernel 4.19.y Allwinner A10, A20, A64, H2+, H3, H5, H6 debugging party


Igor

Recommended Posts

4 hours ago, some4 said:

I purchased a USB to TLL converter and observe the same symptom over the serial connection.

On recent images, to get more verbosity on debug serial, you need to have the following in /boot/armbianEnv.txt :

verbosity=7
console=serial

 

Link to comment
Share on other sites

4 hours ago, martinayotte said:

On recent images, to get more verbosity on debug serial, you need to have the following in /boot/armbianEnv.txt :


verbosity=7
console=serial

 

I've gotten further and it's now hanging at:

starting version 232
[    4.097575] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[    4.102246] random: udevadm: uninitialized urandom read (16 bytes read)
[    4.105195] random: systemd-udevd: uninitialized urandom read (16 bytes read)

I get this error with the current Armbian images in the Downloads page.

 

I'll do some more digging regarding this error when time permits.  Thank you @martinayotte

Link to comment
Share on other sites

On 11/15/2018 at 11:05 AM, Igor said:

Neo2 v1.1 1GB

 

i2c works - and things seem to be stable...

 

One thing to note:

$ cat /proc/cpuinfo
processor	: 0
Processor	: AArch64 Processor rev 4 (aarch64)
Hardware	: sun50iw1p1
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

H5 is sun50iw2p1

cat /proc/version
Linux version 4.19.12-sunxi64 (root@nightly) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5.67.181227 SMP Thu Dec 27 01:10:02 CET 2018

hth...

Link to comment
Share on other sites

Something else noted for NanoPI NEO2....

 

$ lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
NUMA node(s):        1
Vendor ID:           ARM
Model:               4
Model name:          Cortex-A53
Stepping:            r0p4
CPU max MHz:         1008.0000
CPU min MHz:         120.0000
BogoMIPS:            48.00
NUMA node0 CPU(s):   0-3
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid

Which changed...

$ cpufreq-info -c1
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 1:
  driver: cpufreq-dt
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0 1 2 3
  maximum transition latency: 5.44 ms.
  hardware limits: 120 MHz - 1.01 GHz
  available frequency steps: 120 MHz, 240 MHz, 480 MHz, 648 MHz, 816 MHz, 960 MHz, 1.01 GHz
  available cpufreq governors: conservative, userspace, powersave, ondemand, performance, schedutil
  current policy: frequency should be within 408 MHz and 816 MHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 480 MHz (asserted by call to hardware).
  cpufreq stats: 120 MHz:0.00%, 240 MHz:0.00%, 480 MHz:59.57%, 648 MHz:0.00%, 816 MHz:40.35%, 960 MHz:0.00%, 1.01 GHz:0.07%  (107)

cpufrequtils config

$ cat cpufrequtils 
# WARNING: this file will be replaced on board support package (linux-root-...) upgrade
ENABLE=true
MIN_SPEED=408000
MAX_SPEED=816000
GOVERNOR=ondemand

weird...

Link to comment
Share on other sites

17 hours ago, guidol said:

MIN_SPEED should be 480000 and not 408000

 

That was in the distro file, not my edit... someone else's typo, not mine...

 

Here's my edits...

sfx@nano2:~$ cat /etc/default/cpufrequtils 
# WARNING: this file will be replaced on board support package (linux-root-...) upgrade
ENABLE=true
MIN_SPEED=120000
# MIN_SPEED=480000
MAX_SPEED=1008000
#GOVERNOR=ondemand
GOVERNOR=schedutil

 

and cpufreq-info - I actually do like the low idle clock speed for my application

sfx@nano2:~$ sudo cpufreq-info -c1
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 1:
  driver: cpufreq-dt
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0 1 2 3
  maximum transition latency: 5.44 ms.
  hardware limits: 120 MHz - 1.01 GHz
  available frequency steps: 120 MHz, 240 MHz, 480 MHz, 648 MHz, 816 MHz, 960 MHz, 1.01 GHz
  available cpufreq governors: conservative, userspace, powersave, ondemand, performance, schedutil
  current policy: frequency should be within 120 MHz and 1.01 GHz.
                  The governor "schedutil" may decide which speed to use
                  within this range.
  current CPU frequency is 816 MHz (asserted by call to hardware).
  cpufreq stats: 120 MHz:69.41%, 240 MHz:6.56%, 480 MHz:1.71%, 648 MHz:1.51%, 816 MHz:1.01%, 960 MHz:0.72%, 1.01 GHz:19.08%  (599)

Anyways, I'll follow up with another post on this thread - I suspect there is something odd with the devicetree for H5, and for this board - my NEO2 is v1.1 which is different than v1.0...

Link to comment
Share on other sites

Other odd things noted with NEO2...

 

This one is kind of odd...

 

[    2.367652] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    2.367704] usb_phy_generic usb_phy_generic.0.auto: Linked as a consumer to regulator.0

New systemd warning, which I've not seen before

 

[    4.188675] systemd[1]: File /lib/systemd/system/systemd-journald.service:36 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
[    4.188692] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)

And this relates to the clock issues above - still investigating, but everything right now points towards devicetree...

 

[    5.040341] cpu cpu0: Linked as a consumer to regulator.5
[    5.040394] cpu cpu0: Dropping the link to regulator.5
[    5.040565] cpu cpu0: Linked as a consumer to regulator.5
[    5.041168] core: _opp_supported_by_regulators: OPP minuV: 1320000 maxuV: 1320000, not supported by regulator
[    5.041178] cpu cpu0: _opp_add: OPP not supported by regulators (1056000000)
[    5.041258] core: _opp_supported_by_regulators: OPP minuV: 1320000 maxuV: 1320000, not supported by regulator
[    5.041264] cpu cpu0: _opp_add: OPP not supported by regulators (1104000000)
[    5.041344] core: _opp_supported_by_regulators: OPP minuV: 1320000 maxuV: 1320000, not supported by regulator
[    5.041350] cpu cpu0: _opp_add: OPP not supported by regulators (1152000000)
[    5.041423] core: _opp_supported_by_regulators: OPP minuV: 1320000 maxuV: 1320000, not supported by regulator
[    5.041429] cpu cpu0: _opp_add: OPP not supported by regulators (1200000000)
[    5.041502] core: _opp_supported_by_regulators: OPP minuV: 1340000 maxuV: 1340000, not supported by regulator
[    5.041508] cpu cpu0: _opp_add: OPP not supported by regulators (1224000000)
[    5.041590] core: _opp_supported_by_regulators: OPP minuV: 1340000 maxuV: 1340000, not supported by regulator
[    5.041596] cpu cpu0: _opp_add: OPP not supported by regulators (1248000000)
[    5.041672] core: _opp_supported_by_regulators: OPP minuV: 1340000 maxuV: 1340000, not supported by regulator
[    5.041678] cpu cpu0: _opp_add: OPP not supported by regulators (1296000000)
[    5.041750] core: _opp_supported_by_regulators: OPP minuV: 1400000 maxuV: 1400000, not supported by regulator
[    5.041756] cpu cpu0: _opp_add: OPP not supported by regulators (1344000000)
[    5.041829] core: _opp_supported_by_regulators: OPP minuV: 1400000 maxuV: 1400000, not supported by regulator
[    5.041835] cpu cpu0: _opp_add: OPP not supported by regulators (1368000000)
[    5.042444] thermal thermal_zone1: binding zone cpu-thermal with cdev thermal-cpufreq-0 failed:-22
[    5.161006] thermal thermal_zone0: failed to read out thermal zone (-110)
[    5.161050] OF: /thermal-zones/cpu-thermal: arguments longer than property
[    5.161063] thermal thermal_zone2: failed to read out thermal zone (-110)
[    6.178336] thermal thermal_zone0: failed to read out thermal zone (-110)
[    6.369815] thermal thermal_zone2: failed to read out thermal zone (-110)

 

Link to comment
Share on other sites

On 12/27/2018 at 9:31 AM, some4 said:

I've gotten further and it's now hanging at:


starting version 232
[    4.097575] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[    4.102246] random: udevadm: uninitialized urandom read (16 bytes read)
[    4.105195] random: systemd-udevd: uninitialized urandom read (16 bytes read)

I get this error with the current Armbian images in the Downloads page.

 

That's typical with any distro - so not likely the cause of your problem... 

 

Goes without saying - check your power supply and SD card quality - good power is a key thing...

Link to comment
Share on other sites

On 12/28/2018 at 3:52 PM, sfx2000 said:

 

That's typical with any distro - so not likely the cause of your problem... 

 

Goes without saying - check your power supply and SD card quality - good power is a key thing...

I'm using a PSP, 5V 2A power supply and a Samsung 32GB card.

 

I hit ctrl+c to copy error and i got past now I'm getting:

[   74.002120] Unable to handle kernel NULL pointer dereference at virtual addre                                                                             ss 0000000000000008
[   74.004751] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[   74.010899] Mem abort info:
[   74.016811]   ESR = 0x96000044
[   74.019604] rcu:     3-...!: (1 GPs behind) idle=ffa/1/0x4000000000000000 sof                                                                             tirq=357/364 fqs=20
[   74.022646]   Exception class = DABT (current EL), IL = 32 bits
[   74.031238] rcu:
[   74.037142]   SET = 0, FnV = 0
[   74.037148] (detected by 0, t=17447 jiffies, g=-799, q=296)
[   74.039152]   EA = 0, S1PTW = 0
[   74.042199] Task dump for CPU 3:
[   74.047757] Data abort info:
[   74.050890] udevadm

 

Link to comment
Share on other sites

Hi,

 

my cubietruck works for few days flawless with 4.19.y,

but after 5 days i need to power off for a while and when i restart i lost my wifi hardware :-(

 

brcmfmac: brcmf_attach: dongle is not responding: err=-110

even power off for a long time didn't help, i've tried reboot / power off several times, but wifi remains brocken with the above message

 

Googling this i found Hans de Goede 's work 0001-ARM-dts-sun7i-Disable-OOB-IRQ-for-brcm-wifi-on-Cubie.patch

 here:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908438

 and here:

https://patchwork.kernel.org/patch/10621433/#22252025
 

"With an unmodified 4.17 kernel both boards intermittently would come up
with non working wifi with the following errors:

 brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
 brcmfmac: brcmf_bus_started: failed: -110
 brcmfmac: brcmf_attach: dongle is not responding: err=-110
 brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed"

copy 0001-ARM-dts-sun7i-Disable-OOB-IRQ-for-brcm-wifi-on-Cubie.patch in build/userpatches/kernel/sunxi-dev

the patch applies  OK:

 


&mmc3 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc3_pins_a>;
        vmmc-supply = <&reg_vcc3v3>;
        mmc-pwrseq = <&mmc3_pwrseq>;
        bus-width = <4>;
        non-removable;
        status = "okay";

        brcmf: wifi@1 {
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                /*
                 * OOB interrupt support is broken ATM, often the first irq
                 * does not get seen resulting in the drv probe failing with:
                 *
                 * brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
                 * brcmfmac: brcmf_bus_started: failed: -110
                 * brcmfmac: brcmf_attach: dongle is not responding: err=-110
                 * brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed
                 *
                 * interrupt-parent = <&pio>;
                 * interrupts = <7 10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
                 * interrupt-names = "host-wake";
                 */
        };
};

&mmc3_pins_a {
        /* AP6210 requires pull-up */
        bias-pull-up;
};

 

but now kernel 4.19.y (Armbian) fails to compile with syntax error:

Error: arch/arm/boot/dts/sun7i-a20-cubietruck.dts:238.6-7 syntax error

here i have a lack of knowlege so do not see any reason for that syntax error :-(

 

as it worked before for me there must be some other difference, so

 

when booting stock android from nand (pulling out my arbian sd card) and restart without power off from plugged in sdcard

 dmesg | grep brcm
[    7.279570] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43362-sdio for chip BCM43362/1
[    7.554755] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43362-sdio for chip BCM43362/1
[    7.555023] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43362-sdio.clm_blob failed with error -2
[    7.555036] brcmfmac mmc1:0001:1: Falling back to syfs fallback for: brcm/brcmfmac43362-sdio.clm_blob
[    8.620996] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-11), device may have limited channels available
[    8.621474] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43362/1 wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
[   30.695496] brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred
[   30.695523] brcmfmac: brcmf_cfg80211_add_iface: add iface p2p-dev-wlan0 type 10 failed: err=-5

and i got my wifi back :-) 

 

 --- i've tried to reproduce this, but power off for 15min does not show up this error

edit: after having my cubietruck offline for some hours (6 or so) after power on wifi was gone again:

 

brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43362-sdio for chip BCM43362/1
brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
brcmfmac: brcmf_bus_started: failed: -110
brcmfmac: brcmf_attach: dongle is not responding: err=-110
brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed

 

reboot does not help, 

 

but after booting android from nand an shutting anndroid down (not just resetting)

 

i've my wifi back:

 

brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43362-sdio for chip BCM43362/1
brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43362-sdio for chip BCM43362/1
brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43362-sdio.clm_blob failed with error -2
brcmfmac mmc1:0001:1: Falling back to syfs fallback for: brcm/brcmfmac43362-sdio.clm_blob
brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-11), device may have limited channels available
 brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43362/1 wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred
brcmfmac: brcmf_cfg80211_add_iface: add iface p2p-dev-wlan0 type 10 failed: err=-5

 

so same bit or a blob remains on the chipset making it work stable wifi on cubietruck with mainline kernel 4.19 - even if it is just a workaround.....

 

 

 

an other point is that nand starts partialy working with mainline kernel 4.19:

 

[    2.191160] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xde
[    2.191170] nand: Hynix H27UCG8T2ATR-BC 64G 3.3V 8-bit
[    2.191178] nand: 8192 MiB, MLC, erase size: 2048 KiB, page size: 8192, OOB size: 640
[    2.192047] Bad block table found at page 1048320, version 0x01
[    2.192442] Bad block table found at page 1048064, version 0x01
[    2.192621] nand_read_bbt: bad block at 0x000001800000
....

[    2.194259] nand_read_bbt: bad block at 0x0001fde00000
[    2.194620] 6 fixed-partitions partitions found on MTD device 1c03000.nand
[    2.194626] Creating 6 MTD partitions on "1c03000.nand":
[    2.194641] 0x000000a00000-0x0001ffa00000 : "rootfs"
[    2.195789] 0x000001000000-0x000001400000 : "env"
[    2.196088] 0x000000c00000-0x000001000000 : "U-Boot.backup"
[    2.196369] 0x000000800000-0x000000c00000 : "U-Boot"
[    2.196670] 0x000000400000-0x000000800000 : "SPL.backup"
[    2.196946] 0x000000000000-0x000000400000 : "SPL"

but then is too much marked as bad block ..... but it might be possible to put newer u-boot on nand to get rid of the sdcard

 


 

 

 

 

 

 

 

Link to comment
Share on other sites

On 1/6/2019 at 3:05 PM, jens said:

but now kernel 4.19.y (Armbian) fails to compile with syntax error:

Error: arch/arm/boot/dts/sun7i-a20-cubietruck.dts:238.6-7 syntax error

here i have a lack of knowlege so do not see any reason for that syntax error :-(


This way: https://github.com/armbian/build/commit/1c3fde7d3b8f97a7acbd41d5513d73990e3c77e9

Link to comment
Share on other sites

On 12/19/2018 at 8:52 PM, dolphs said:

when v5.67 will be final having all these juicy bits from DEV incorporated,


Images are building and uploading at this moment. A few more tests and repository will also be updated, so you will be able to upgrade your current build to 4.19.y

Link to comment
Share on other sites

  • Igor unpinned this topic
45 minutes ago, dolphs said:

excellent news Igor, done well - highly appreciate all your efforts! ( and of course all others that contributed to this major )

 

8 minutes ago, 5kft said:

Agreed - congratulations on an amazing effort!  The scope of devices that Armbian supports and how well it all works is simply incredible :)


Thank you and likewise :) Credits go to many people within Armbian and general Linux community. 

Link to comment
Share on other sites

Nice work, thank you!

Great performance on the OPi PC where I tested.

One problem: I can set the display resolution from UHD to Full HD. However, after next boot it is UHD again. Same with when I change resizing windows with frame to resizing directly. After reboot it is still with frame.

 

Link to comment
Share on other sites

Just downloaded tried out the new pine64 mainline bionic images and get some errors at boot:

 

*** Warning: no boot file name; using 'C0A8917A.img'
Using ethernet@1c30000 device
TFTP from server 192.168.1.1; our IP is 192.168.1.122
Filename 'C0A8917A.img'.
Load address: 0x42000000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-02-ba-e5-6f-57-fd
Using ethernet@1c30000 device
TFTP from server 192.168.1.1; our IP is 192.168.1.122
Filename 'C0A8917A.img'.
Load address: 0x42000000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-02-ba-e5-6f-57-fdUsing ethernet@1c30000 device
TFTP from server 192.168.1.1; our IP is 192.168.1.122
Filename 'C0A8917A.img'.
Load address: 0x42000000
Loading: T T T T T T T T T T
Retry count exceeded; starting again

It just keeps repeating.

I apologize if this isn't the proper place to post this.  I appreciate the help and hope this helps.

Link to comment
Share on other sites

30 minutes ago, markolonius said:

and hope this helps.

 

No, because you might have used broken SD card. I don't have Pine64 and can only rely on reports which confirmed that it works.
 

Start this way:

 

1. Read common problems and use search engine,

2. Improve chances that your issue will be addressed,

3. Collect and provide all necessary information.

Link to comment
Share on other sites

Another bit of feedback on Orange Pi Prime with Armbian 5.70

 

Both of my boards hang on stress tests:

First one on '7z b'

Second one on 'a53-burn'

CPU temperature is reported more or less correctly. Did not exceeded 65 degrees on tests.

Link to comment
Share on other sites

At some point, we probably need to get more serious on u-boot in general, and get the collective head around things there...

 

It's not just the kernel and device tree - and DTS could stand a bit of improvement, just saying... the delta's with Allwinner H5 is a good example here with NEO2 from FriendlyARM - every build things seem to change.

 

As it stands, and the way I see it, u-boot is more than a PITA right now with things - and there's a bit of functionality that would go far to sort things there - fw_printenv and fw_setenv with u-boot-envtools would go a long way towards supporting both current and future boards.

 

u-boot and devicetree should be close to immutable once a board is sorted out. And this is a leadership/management issue that can be easily solved - and believe me, this will make new boards easier to support... along with sorting out new issues with bringing in a new kernel and/or userland.

 

Sorry for a short rant here - but at the same time, every build that has come out of armbian, I've had to do some sort of work here to get things re-sorted. While I'm a bit of a HW hacker, so my cause here might be minimal, there are downstream folks that use Armbian these days as their base.

Link to comment
Share on other sites

Hi,

 

I've just tested my pcDuino3 and pcDuino3nano boards. I compiled Ubuntu 18.04, Dev kernel as headless and desktop for nano and non-nano) with vagrant.

Interestingly, the nano "flavour" seems to work fine on both boards (4.20.7-sunxi Kernel , HDMI, USB, Nework on pcDunino nano (except for the not-working network on the pcDuino3 board, obviously).

But I cannot boot the non-nano version on either board. I connected a serial output and it hangs at:

 

U-Boot 2018.11-armbian (Feb 07 2019 - 13:21:03 +0000) Allwinner Technology

CPU:   Allwinner A20 (SUN7I)
Model: LinkSprite pcDuino3
I2C:   ready
DRAM:  1 GiB
MMC: 

 

Tried different cards, different PSUs, no change.

Link to comment
Share on other sites

On 1/2/2019 at 1:17 PM, some4 said:

I'm using a PSP, 5V 2A power supply and a Samsung 32GB card.

 

I hit ctrl+c to copy error and i got past now I'm getting:


[   74.002120] Unable to handle kernel NULL pointer dereference at virtual addre                                                                             ss 0000000000000008
[   74.004751] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[   74.010899] Mem abort info:
[   74.016811]   ESR = 0x96000044
[   74.019604] rcu:     3-...!: (1 GPs behind) idle=ffa/1/0x4000000000000000 sof                                                                             tirq=357/364 fqs=20
[   74.022646]   Exception class = DABT (current EL), IL = 32 bits
[   74.031238] rcu:
[   74.037142]   SET = 0, FnV = 0
[   74.037148] (detected by 0, t=17447 jiffies, g=-799, q=296)
[   74.039152]   EA = 0, S1PTW = 0
[   74.042199] Task dump for CPU 3:
[   74.047757] Data abort info:
[   74.050890] udevadm

 

Just wanted give some closure and follow-up on this issue: it was traced to bad RAM modules.  Tested ok on different Orange Pi Primes.:thumbup:

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines